@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.
97 lines (96 loc) • 3.31 kB
TypeScript
import type { Nullable } from "../../types.js";
import type { Camera } from "../../Cameras/camera.js";
import type { AbstractEngine } from "../../Engines/abstractEngine.js";
import type { PostProcessRenderEffect } from "./postProcessRenderEffect.js";
import type { IInspectable } from "../../Misc/iInspectable.js";
import type { PrePassRenderer } from "../../Rendering/prePassRenderer.js";
/**
* PostProcessRenderPipeline
* @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/postProcessRenderPipeline
*/
export declare class PostProcessRenderPipeline {
private _engine;
protected _renderEffects: {
[key: string]: PostProcessRenderEffect;
};
protected _renderEffectsForIsolatedPass: PostProcessRenderEffect[];
/**
* List of inspectable custom properties (used by the Inspector)
* @see https://doc.babylonjs.com/toolsAndResources/inspector#extensibility
*/
inspectableCustomProperties: IInspectable[];
/**
* @internal
*/
protected _cameras: Camera[];
/** @internal */
_name: string;
/**
* Gets pipeline name
*/
get name(): string;
/** Gets the list of attached cameras */
get cameras(): Camera[];
/**
* Gets the active engine
*/
get engine(): AbstractEngine;
/**
* Initializes a PostProcessRenderPipeline
* @param _engine engine to add the pipeline to
* @param name name of the pipeline
*/
constructor(_engine: AbstractEngine, name: string);
/**
* Gets the class name
* @returns "PostProcessRenderPipeline"
*/
getClassName(): string;
/**
* If all the render effects in the pipeline are supported
*/
get isSupported(): boolean;
/**
* Adds an effect to the pipeline
* @param renderEffect the effect to add
*/
addEffect(renderEffect: PostProcessRenderEffect): void;
/** @internal */
_rebuild(): void;
/** @internal */
_enableEffect(renderEffectName: string, cameras: Camera): void;
/** @internal */
_enableEffect(renderEffectName: string, cameras: Camera[]): void;
/** @internal */
_disableEffect(renderEffectName: string, cameras: Nullable<Camera[]>): void;
/** @internal */
_disableEffect(renderEffectName: string, cameras: Nullable<Camera[]>): void;
/** @internal */
_attachCameras(cameras: Camera, unique: boolean): void;
/** @internal */
_attachCameras(cameras: Camera[], unique: boolean): void;
/** @internal */
_detachCameras(cameras: Camera): void;
/** @internal */
_detachCameras(cameras: Nullable<Camera[]>): void;
/** @internal */
_update(): void;
/** @internal */
_reset(): void;
protected _enableMSAAOnFirstPostProcess(sampleCount: number): boolean;
/**
* Ensures that all post processes in the pipeline are the correct size according to the
* the viewport's required size
*/
protected _adaptPostProcessesToViewPort(): void;
/**
* Sets the required values to the prepass renderer.
* @param prePassRenderer defines the prepass renderer to setup.
* @returns true if the pre pass is needed.
*/
setPrePassRenderer(prePassRenderer: PrePassRenderer): boolean;
/**
* Disposes of the pipeline
*/
dispose(): void;
}