babylon.postProcessRenderPass.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. module BABYLON {
  2. export class PostProcessRenderPass {
  3. private _enabled: boolean = true;
  4. private _renderList: Mesh[];
  5. private _renderTexture: RenderTargetTexture;
  6. private _scene: Scene;
  7. private _refCount: number = 0;
  8. public m_name: string;
  9. constructor(scene: Scene, public name: string, size: number, renderList: Mesh[], beforeRender: () => void, afterRender: () => void) {
  10. this.name = name;
  11. this._renderTexture = new RenderTargetTexture(name, size, scene);
  12. this.setRenderList(renderList);
  13. this._renderTexture.onBeforeRender = beforeRender;
  14. this._renderTexture.onAfterRender = afterRender;
  15. this._scene = scene;
  16. }
  17. public incRefCount(): number {
  18. if (this._refCount == 0) {
  19. this._scene.customRenderTargets.push(this._renderTexture);
  20. }
  21. return ++this._refCount;
  22. }
  23. public decRefCount(): number {
  24. this._refCount--;
  25. if (this._refCount <= 0) {
  26. this._scene.customRenderTargets.splice(this._scene.customRenderTargets.indexOf(this._renderTexture), 1);
  27. }
  28. return this._refCount;
  29. }
  30. public setRenderList(renderList: Mesh[]): void {
  31. this._renderTexture.renderList = renderList;
  32. }
  33. public getRenderTexture(): RenderTargetTexture {
  34. return this._renderTexture;
  35. }
  36. public _update(): void {
  37. this.setRenderList(this._renderList);
  38. }
  39. }
  40. }