UNPKG

@itwin/core-frontend

Version:
60 lines 3.13 kB
/** @packageDocumentation * @module WebGL */ import { ContourDisplay } from "@itwin/core-common"; import { SceneContext } from "../../../ViewContext"; import { ViewRect } from "../../../common/ViewRect"; import { Pixel } from "../../../render/Pixel"; import { GraphicList } from "../../../render/RenderGraphic"; import { RenderMemory } from "../../../render/RenderMemory"; import { CachedGeometry } from "./CachedGeometry"; import { WebGLDisposable } from "./Disposable"; import { FrameBuffer } from "./FrameBuffer"; import { RenderCommands } from "./RenderCommands"; import { SolarShadowMap } from "./SolarShadowMap"; import { Target } from "./Target"; import { TextureHandle } from "./Texture"; import { Primitive } from "./Primitive"; import { ShaderProgramExecutor } from "./ShaderProgram"; import { EyeDomeLighting } from "./EDL"; export declare function collectTextureStatistics(texture: TextureHandle | undefined, stats: RenderMemory.Statistics): void; export declare function collectGeometryStatistics(geom: CachedGeometry | undefined, stats: RenderMemory.Statistics): void; interface ContourPixels { display: ContourDisplay; data: Uint32Array; zLow: number; zHigh: number; } /** Orchestrates rendering of the scene on behalf of a Target. * This base class exists only so we don't have to export all the types of the shared Compositor members like Textures, FrameBuffers, etc. * @internal */ export declare abstract class SceneCompositor implements WebGLDisposable, RenderMemory.Consumer { readonly target: Target; readonly solarShadowMap: SolarShadowMap; readonly eyeDomeLighting: EyeDomeLighting; protected _needHiddenEdges: boolean; abstract get isDisposed(): boolean; abstract [Symbol.dispose](): void; abstract preDraw(): void; abstract draw(_commands: RenderCommands): void; abstract drawForReadPixels(_commands: RenderCommands, sceneOverlays: GraphicList, worldOverlayDecorations: GraphicList | undefined, viewOverlayDecorations: GraphicList | undefined): void; abstract readPixels(rect: ViewRect, selector: Pixel.Selector): Pixel.Buffer | undefined; abstract readDepthAndOrder(rect: ViewRect): Uint8Array | undefined; abstract readContours(rect: ViewRect): ContourPixels | undefined; abstract readFeatureIds(rect: ViewRect): Uint8Array | undefined; abstract updateSolarShadows(context: SceneContext | undefined): void; abstract drawPrimitive(primitive: Primitive, exec: ShaderProgramExecutor, outputsToPick: boolean): void; abstract forceBufferChange(): void; /** Obtain a framebuffer with a single spare RGBA texture that can be used for screen-space effect shaders. */ abstract get screenSpaceEffectFbo(): FrameBuffer; abstract get featureIds(): TextureHandle; abstract get depthAndOrder(): TextureHandle; abstract get antialiasSamples(): number; get needHiddenEdges(): boolean; protected constructor(target: Target); static create(target: Target): SceneCompositor; abstract collectStatistics(stats: RenderMemory.Statistics): void; } export {}; //# sourceMappingURL=SceneCompositor.d.ts.map