@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
TypeScript
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;
}