UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

63 lines (62 loc) 3.31 kB
import type { Nullable } from "../types.js"; import type { InternalTexture } from "../Materials/Textures/internalTexture.js"; import type { PostProcess } from "./postProcess.js"; import type { RenderTargetWrapper } from "../Engines/renderTargetWrapper.js"; import { Observable } from "../Misc/observable.js"; import type { Scene } from "../scene.js"; /** * PostProcessManager is used to manage one or more post processes or post process pipelines * See https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses */ export declare class PostProcessManager { private _scene; private _indexBuffer; private _vertexBuffers; /** * Creates a new instance PostProcess * @param scene The scene that the post process is associated with. */ constructor(scene: Scene); private _prepareBuffers; private _buildIndexBuffer; onBeforeRenderObservable: Observable<PostProcessManager>; /** * Rebuilds the vertex buffers of the manager. * @internal */ _rebuild(): void; /** * Prepares a frame to be run through a post process. * @param sourceTexture The input texture to the post processes. (default: null) * @param postProcesses An array of post processes to be run. (default: null) * @returns True if the post processes were able to be run. * @internal */ _prepareFrame(sourceTexture?: Nullable<InternalTexture>, postProcesses?: Nullable<PostProcess[]>): boolean; /** * Manually render a set of post processes to a texture. * Please note, the frame buffer won't be unbound after the call in case you have more render to do. * @param postProcesses An array of post processes to be run. * @param targetTexture The render target wrapper to render to. * @param forceFullscreenViewport force gl.viewport to be full screen eg. 0,0,textureWidth,textureHeight * @param faceIndex defines the face to render to if a cubemap is defined as the target * @param lodLevel defines which lod of the texture to render to * @param doNotBindFrambuffer If set to true, assumes that the framebuffer has been bound previously * @param numPostsProcesses The number of post processes to render. Defaults to the length of the postProcesses array. */ directRender(postProcesses: PostProcess[], targetTexture?: Nullable<RenderTargetWrapper>, forceFullscreenViewport?: boolean, faceIndex?: number, lodLevel?: number, doNotBindFrambuffer?: boolean, numPostsProcesses?: number): void; /** * Finalize the result of the output of the postprocesses. * @param doNotPresent If true the result will not be displayed to the screen. * @param targetTexture The render target wrapper to render to. * @param faceIndex The index of the face to bind the target texture to. * @param postProcesses The array of post processes to render. * @param forceFullscreenViewport force gl.viewport to be full screen eg. 0,0,textureWidth,textureHeight (default: false) * @internal */ _finalizeFrame(doNotPresent?: boolean, targetTexture?: RenderTargetWrapper, faceIndex?: number, postProcesses?: Array<PostProcess>, forceFullscreenViewport?: boolean): void; /** * Disposes of the post process manager. */ dispose(): void; }