babylon.postProcessRenderPipelineManager.ts 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. module BABYLON {
  2. export class PostProcessRenderPipelineManager {
  3. private _renderPipelines: any;
  4. constructor() {
  5. this._renderPipelines = {};
  6. }
  7. public addPipeline(renderPipeline: PostProcessRenderPipeline): void {
  8. this._renderPipelines[renderPipeline._name] = renderPipeline;
  9. }
  10. public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: Camera, unique?: boolean);
  11. public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: Camera[], unique?: boolean);
  12. public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: any, unique?: boolean): void {
  13. var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
  14. if (!renderPipeline) {
  15. return;
  16. }
  17. renderPipeline._attachCameras(cameras, unique);
  18. }
  19. public detachCamerasFromRenderPipeline(renderPipelineName: string, cameras: Camera);
  20. public detachCamerasFromRenderPipeline(renderPipelineName: string, cameras: Camera[]);
  21. public detachCamerasFromRenderPipeline(renderPipelineName: string, cameras: any): void {
  22. var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
  23. if (!renderPipeline) {
  24. return;
  25. }
  26. renderPipeline._detachCameras(cameras);
  27. }
  28. public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera);
  29. public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera[]);
  30. public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: any): void {
  31. var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
  32. if (!renderPipeline) {
  33. return;
  34. }
  35. renderPipeline._enableEffect(renderEffectName, cameras);
  36. }
  37. public disableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera);
  38. public disableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera[]);
  39. public disableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: any): void {
  40. var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
  41. if (!renderPipeline) {
  42. return;
  43. }
  44. renderPipeline._disableEffect(renderEffectName, cameras);
  45. }
  46. public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: Camera);
  47. public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: Camera[]);
  48. public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: any): void {
  49. var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
  50. if (!renderPipeline) {
  51. return;
  52. }
  53. renderPipeline._enableDisplayOnlyPass(passName, cameras);
  54. }
  55. public disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: Camera);
  56. public disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: Camera[]);
  57. public disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: any): void {
  58. var renderPipeline: PostProcessRenderPipeline = this._renderPipelines[renderPipelineName];
  59. if (!renderPipeline) {
  60. return;
  61. }
  62. renderPipeline._disableDisplayOnlyPass(cameras);
  63. }
  64. public update(): void {
  65. for (var renderPipelineName in this._renderPipelines) {
  66. if (this._renderPipelines.hasOwnProperty(renderPipelineName)) {
  67. var pipeline = this._renderPipelines[renderPipelineName];
  68. if (!pipeline.isSupported) {
  69. pipeline.dispose();
  70. delete this._renderPipelines[renderPipelineName];
  71. } else {
  72. pipeline._update();
  73. }
  74. }
  75. }
  76. }
  77. public _rebuild(): void {
  78. for (var renderPipelineName in this._renderPipelines) {
  79. if (this._renderPipelines.hasOwnProperty(renderPipelineName)) {
  80. var pipeline = this._renderPipelines[renderPipelineName];
  81. pipeline._rebuild();
  82. }
  83. }
  84. }
  85. public dispose(): void {
  86. for (var renderPipelineName in this._renderPipelines) {
  87. if (this._renderPipelines.hasOwnProperty(renderPipelineName)) {
  88. var pipeline = this._renderPipelines[renderPipelineName];
  89. pipeline.dispose();
  90. }
  91. }
  92. }
  93. }
  94. }