UNPKG

@awayjs/renderer

Version:
160 lines 6 kB
import { Matrix3D, Plane3D, Vector3D, AbstractionBase, IAsset, Box, Rectangle, IAbstraction, IAbstractionPool } from '@awayjs/core'; import { BitmapImage2D, IContextGL, Stage, StageEvent, RTTBufferManager, Image2D } from '@awayjs/stage'; import { View, ViewEvent, IPartitionTraverser, IEntityTraverser, INode, ContainerNode } from '@awayjs/view'; import { _Render_RenderableBase } from './base/_Render_RenderableBase'; import { IMapper } from './base/IMapper'; import { RenderGroup } from './RenderGroup'; import { IRenderEntitySorter } from './sort/IRenderEntitySorter'; import { _Render_Renderer } from './CacheRenderer'; import { _Render_ElementsBase } from './base/_Render_ElementsBase'; import { Style } from './base/Style'; import { IRenderable } from './base/IRenderable'; import { AbstractionSet } from '@awayjs/core/dist/lib/base/AbstractionSet'; /** * RendererBase forms an abstract base class for classes that are used in the rendering pipeline to render the * contents of a partition * * @class away.render.RendererBase */ export declare class RendererBase extends AbstractionBase implements IPartitionTraverser, IEntityTraverser, IAbstractionPool { private static _store; static _collectionMark: number; readonly abstractions: AbstractionSet; _renderObjects: Record<number, _Render_Renderer>; protected _renderMatrix: Matrix3D; protected _parentNode: ContainerNode; private _boundsPicker; private _boundsScale; private _parentPosition; private _maskConfig; private _maskId; private _activeMasksDirty; private _activeMaskOwners; protected _paddedBounds: Rectangle; private _bounds; protected _style: Style; private _boundsDirty; private _mappers; private _elementsPools; protected _context: IContextGL; _cameraTransform: Matrix3D; private _cameraForward; _pRttBufferManager: RTTBufferManager; protected _depthTextureDirty: boolean; protected _depthPrepass: boolean; private _snapshotBitmapImage2D; private _snapshotRequired; private _onInvalidateProperties; private _onContextUpdateDelegate; protected _onSizeInvalidateDelegate: (event: ViewEvent | StageEvent) => void; _pNumElements: number; protected _opaqueRenderables: _Render_RenderableBase[]; protected _blendedRenderables: _Render_RenderableBase[]; _disableColor: boolean; _disableClear: boolean; _renderBlended: boolean; private _cullPlanes; private _customCullPlanes; private _numCullPlanes; protected _traverserGroup: RenderGroup; protected _maskGroup: RenderGroup; private _pickEntity; private _renderEntity; /** * */ get cullPlanes(): Array<Plane3D>; set cullPlanes(value: Array<Plane3D>); get renderBlended(): boolean; set renderBlended(value: boolean); get disableColor(): boolean; set disableColor(value: boolean); get disableClear(): boolean; set disableClear(value: boolean); /** * */ get numElements(): number; get context(): IContextGL; getPaddedBounds(): Rectangle; getBounds(): Box; getBoundsScale(): number; getParentPosition(): Vector3D; /** * */ get style(): Style; set style(value: Style); parentRenderer: RendererBase; /** * */ renderableSorter: IRenderEntitySorter; get node(): ContainerNode; get group(): RenderGroup; view: View; stage: Stage; get blendMode(): string; get useNonNativeBlend(): boolean; constructor(); /** * Creates a new RendererBase object. */ init(node: INode, group: RenderGroup): void; onClear(): void; onInvalidate(): void; update(node: INode): void; _addMapper(mapper: IMapper): void; _removeMapper(mapper: IMapper): void; getRenderElements(elements: IAsset): _Render_ElementsBase; requestAbstraction(asset: IAsset): IAbstraction; storeAbstraction(abstraction: IAbstraction): void; /** * Renders the potentially visible geometry to the back buffer or texture. * @param target An option target texture to render to. * @param surfaceSelector The index of a CubeTexture's face to render to. * @param additionalClearMask Additional clear mask information, in case extra clear channels are to be omitted. */ render(enableDepthAndStencil?: boolean, surfaceSelector?: number, mipmapSelector?: number, maskConfig?: number): void; resetHead(): void; traverse(): void; _iRenderCascades(enableDepthAndStencil?: boolean, surfaceSelector?: number): void; /** * Renders the potentially visible geometry to the back buffer or texture. Only executed if everything is set up. * * @param target An option target texture to render to. * @param surfaceSelector The index of a CubeTexture's face to render to. * @param additionalClearMask Additional clear mask information, in case extra clear channels are to be omitted. */ executeRender(enableDepthAndStencil?: boolean, surfaceSelector?: number, mipmapSelector?: number): void; queueSnapshot(bmd: BitmapImage2D): void; /** * Draw a list of renderables. * * @param renderables The renderables to draw. */ drawRenderables(renderRenderables: _Render_RenderableBase[]): void; /** * Assign the context once retrieved */ private onContextUpdate; /** * */ onSizeInvalidate(event: ViewEvent | StageEvent): void; /** * * @param node * @returns {boolean} */ enterNode(node: INode): boolean; getTraverser(rootNode: ContainerNode): IPartitionTraverser | void; applyEntity(node: ContainerNode): void; applyTraversable(renderable: IRenderable): void; protected _renderMasks(maskOwners: ContainerNode[]): void; private _checkMaskOwners; _onInvalidateStyle(): void; protected _updateBounds(): void; _initRender(target: Image2D): void; } //# sourceMappingURL=RendererBase.d.ts.map