123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- module BABYLON {
- export class PostProcessRenderPipelineManager {
- private _renderPipelines: {[Key:string]:PostProcessRenderPipeline};
-
- constructor() {
- this._renderPipelines = {};
- }
- public addPipeline(renderPipeline: PostProcessRenderPipeline): void {
- this._renderPipelines[renderPipeline._name] = renderPipeline;
- }
- public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: Camera, unique?: boolean): void;
- public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: Camera[], unique?: boolean): void;
- public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: any, unique: boolean = false): void {
- var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
- if (!renderPipeline) {
- return;
- }
- renderPipeline._attachCameras(cameras, unique);
- }
- public detachCamerasFromRenderPipeline(renderPipelineName: string, cameras: Camera): void;
- public detachCamerasFromRenderPipeline(renderPipelineName: string, cameras: Camera[]): void;
- public detachCamerasFromRenderPipeline(renderPipelineName: string, cameras: any): void {
- var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
- if (!renderPipeline) {
- return;
- }
- renderPipeline._detachCameras(cameras);
- }
- public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera): void;
- public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera[]): void;
- public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: any): void {
- var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
- if (!renderPipeline) {
- return;
- }
- renderPipeline._enableEffect(renderEffectName, cameras);
- }
- public disableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera): void;
- public disableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera[]): void;
- public disableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: any): void {
- var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
- if (!renderPipeline) {
- return;
- }
- renderPipeline._disableEffect(renderEffectName, cameras);
- }
- public update(): void {
- for (var renderPipelineName in this._renderPipelines) {
- if (this._renderPipelines.hasOwnProperty(renderPipelineName)) {
- var pipeline = this._renderPipelines[renderPipelineName];
- if (!pipeline.isSupported) {
- pipeline.dispose();
- delete this._renderPipelines[renderPipelineName];
- } else {
- pipeline._update();
- }
- }
- }
- }
- public _rebuild(): void {
- for (var renderPipelineName in this._renderPipelines) {
- if (this._renderPipelines.hasOwnProperty(renderPipelineName)) {
- var pipeline = this._renderPipelines[renderPipelineName];
- pipeline._rebuild();
- }
- }
- }
- public dispose(): void {
- for (var renderPipelineName in this._renderPipelines) {
- if (this._renderPipelines.hasOwnProperty(renderPipelineName)) {
- var pipeline = this._renderPipelines[renderPipelineName];
- pipeline.dispose();
- }
- }
- }
- }
- }
|