Browse Source

Updating Typescript for RenderPipeline
Fixing bugs

Michaël KORBAS 11 years ago
parent
commit
4c5667a23b

+ 12 - 7
Babylon/PostProcess/RenderPipeline/babylon.postProcessRenderEffect.js

@@ -64,12 +64,13 @@ var BABYLON;
 
         PostProcessRenderEffect._GetParametersNames = function (func) {
             var commentsRegex = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
-            var functWithoutComments = eval(func).toString().replace(commentsRegex, '');
+            var functWithoutComments = func.toString().replace(commentsRegex, '');
 
             var parameters = functWithoutComments.slice(functWithoutComments.indexOf('(') + 1, functWithoutComments.indexOf(')')).match(/([^\s,]+)/g);
 
             if (parameters === null)
                 parameters = [];
+
             return parameters;
         };
 
@@ -130,13 +131,13 @@ var BABYLON;
 
                 var index = camera.attachPostProcess(this._postProcesses[cameraKey]);
 
-                if (this._indicesForCamera[cameraName] == null) {
+                if (this._indicesForCamera[cameraName] === null) {
                     this._indicesForCamera[cameraName] = [];
                 }
 
                 this._indicesForCamera[cameraName].push(index);
 
-                if (this._cameras.indexOf(camera) == -1) {
+                if (this._cameras.indexOf(camera) === -1) {
                     this._cameras[cameraName] = camera;
                 }
 
@@ -153,7 +154,7 @@ var BABYLON;
 
             for (var i = 0; i < _cam.length; i++) {
                 var camera = _cam[i];
-                var cameraName = camera.Name;
+                var cameraName = camera.name;
 
                 camera.detachPostProcess(this._postProcesses[this._singleInstance ? 0 : cameraName], this._indicesForCamera[cameraName]);
 
@@ -173,7 +174,7 @@ var BABYLON;
 
             for (var i = 0; i < _cam.length; i++) {
                 var camera = _cam[i];
-                var cameraName = camera.Name;
+                var cameraName = camera.name;
 
                 for (var j = 0; j < this._indicesForCamera[cameraName].length; j++) {
                     if (camera._postProcesses[this._indicesForCamera[cameraName][j]] === undefined) {
@@ -202,8 +203,12 @@ var BABYLON;
             }
         };
 
-        PostProcessRenderEffect.prototype.getPostProcess = function () {
-            return this._postProcesses[0];
+        PostProcessRenderEffect.prototype.getPostProcess = function (camera) {
+            if (this._singleInstance) {
+                return this._postProcesses[0];
+            } else {
+                return this._postProcesses[camera.name];
+            }
         };
 
         PostProcessRenderEffect.prototype._linkParameters = function () {

+ 13 - 7
Babylon/PostProcess/RenderPipeline/babylon.postProcessRenderEffect.ts

@@ -82,12 +82,13 @@ module BABYLON {
 
         private static _GetParametersNames(func): string[] {
             var commentsRegex = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
-            var functWithoutComments = eval(func).toString().replace(commentsRegex, ''); //TODO: delete eval
+            var functWithoutComments = func.toString().replace(commentsRegex, '');
 
             var parameters = functWithoutComments.slice(functWithoutComments.indexOf('(') + 1, functWithoutComments.indexOf(')')).match(/([^\s,]+)/g);
 
             if (parameters === null)
                 parameters = [];
+
             return parameters;
         }
 
@@ -152,13 +153,13 @@ module BABYLON {
 
                 var index = camera.attachPostProcess(this._postProcesses[cameraKey]);
 
-                if (this._indicesForCamera[cameraName] == null) {
+                if (this._indicesForCamera[cameraName] === null) {
                     this._indicesForCamera[cameraName] = [];
                 }
 
                 this._indicesForCamera[cameraName].push(index);
 
-                if (this._cameras.indexOf(camera) == -1) {
+                if (this._cameras.indexOf(camera) === -1) {
                     this._cameras[cameraName] = camera;
                 }
 
@@ -178,7 +179,7 @@ module BABYLON {
 
             for (var i = 0; i < _cam.length; i++) {
                 var camera = _cam[i];
-                var cameraName = camera.Name;
+                var cameraName = camera.name;
 
                 camera.detachPostProcess(this._postProcesses[this._singleInstance ? 0 : cameraName], this._indicesForCamera[cameraName]);
 
@@ -201,7 +202,7 @@ module BABYLON {
 
             for (var i = 0; i < _cam.length; i++) {
                 var camera = _cam[i];
-                var cameraName = camera.Name;
+                var cameraName = camera.name;
 
                 for (var j = 0; j < this._indicesForCamera[cameraName].length; j++) {
                     if (camera._postProcesses[this._indicesForCamera[cameraName][j]] === undefined) {
@@ -233,8 +234,13 @@ module BABYLON {
             }
         }
 
-        public getPostProcess(): PostProcess {
-            return this._postProcesses[0]; // todo: always 0?
+        public getPostProcess(camera?: Camera): PostProcess {
+            if (this._singleInstance) {
+                return this._postProcesses[0];
+            }
+            else {
+                return this._postProcesses[camera.name];
+            }
         }
 
         private _linkParameters(): void {

+ 1 - 1
Babylon/PostProcess/RenderPipeline/babylon.postProcessRenderPass.js

@@ -16,7 +16,7 @@
         }
         // private
         PostProcessRenderPass.prototype._incRefCount = function () {
-            if (this._refCount == 0) {
+            if (this._refCount === 0) {
                 this._scene.customRenderTargets.push(this._renderTexture);
             }
 

+ 1 - 1
Babylon/PostProcess/RenderPipeline/babylon.postProcessRenderPass.ts

@@ -24,7 +24,7 @@
         // private
 
         public _incRefCount(): number {
-            if (this._refCount == 0) {
+            if (this._refCount === 0) {
                 this._scene.customRenderTargets.push(this._renderTexture);
             }
 

+ 22 - 15
Babylon/PostProcess/RenderPipeline/babylon.postProcessRenderPipeline.js

@@ -14,7 +14,7 @@ var BABYLON;
             this._renderEffects[renderEffect._name] = renderEffect;
         };
 
-        PostProcessRenderPipeline.prototype.enableEffect = function (renderEffectName, cameras) {
+        PostProcessRenderPipeline.prototype._enableEffect = function (renderEffectName, cameras) {
             var renderEffects = this._renderEffects[renderEffectName];
 
             if (!renderEffects) {
@@ -24,7 +24,7 @@ var BABYLON;
             renderEffects.enable(BABYLON.Tools.MakeArray(cameras || this._cameras));
         };
 
-        PostProcessRenderPipeline.prototype.disableEffect = function (renderEffectName, cameras) {
+        PostProcessRenderPipeline.prototype._disableEffect = function (renderEffectName, cameras) {
             var renderEffects = this._renderEffects[renderEffectName];
 
             if (!renderEffects) {
@@ -34,7 +34,7 @@ var BABYLON;
             renderEffects.disable(BABYLON.Tools.MakeArray(cameras || this._cameras));
         };
 
-        PostProcessRenderPipeline.prototype.attachCameras = function (cameras, unique) {
+        PostProcessRenderPipeline.prototype._attachCameras = function (cameras, unique) {
             var _cam = BABYLON.Tools.MakeArray(cameras || this._cameras);
 
             var indicesToDelete = [];
@@ -59,7 +59,7 @@ var BABYLON;
             }
         };
 
-        PostProcessRenderPipeline.prototype.detachCameras = function (cameras) {
+        PostProcessRenderPipeline.prototype._detachCameras = function (cameras) {
             var _cam = BABYLON.Tools.MakeArray(cameras || this._cameras);
 
             for (var renderEffectName in this._renderEffects) {
@@ -71,7 +71,7 @@ var BABYLON;
             }
         };
 
-        PostProcessRenderPipeline.prototype.enableDisplayOnlyPass = function (passName, cameras) {
+        PostProcessRenderPipeline.prototype._enableDisplayOnlyPass = function (passName, cameras) {
             var _cam = BABYLON.Tools.MakeArray(cameras || this._cameras);
 
             var pass = null;
@@ -84,7 +84,7 @@ var BABYLON;
                 }
             }
 
-            if (pass == null) {
+            if (pass === null) {
                 return;
             }
 
@@ -95,19 +95,25 @@ var BABYLON;
             pass._name = PostProcessRenderPipeline.PASS_SAMPLER_NAME;
 
             for (var i = 0; i < _cam.length; i++) {
-                this._renderEffectsForIsolatedPass[_cam[i].name] = this._renderEffectsForIsolatedPass[_cam[i].name] || new BABYLON.PostProcessRenderEffect(this._engine, PostProcessRenderPipeline.PASS_EFFECT_NAME, "BABYLON.DisplayPassPostProcess", 1.0, null, null);
-                this._renderEffectsForIsolatedPass[_cam[i].name].emptyPasses();
-                this._renderEffectsForIsolatedPass[_cam[i].name].addPass(pass);
-                this._renderEffectsForIsolatedPass[_cam[i].name]._attachCameras(_cam[i]);
+                var camera = _cam[i];
+                var cameraName = camera.name;
+
+                this._renderEffectsForIsolatedPass[cameraName] = this._renderEffectsForIsolatedPass[cameraName] || new BABYLON.PostProcessRenderEffect(this._engine, PostProcessRenderPipeline.PASS_EFFECT_NAME, "BABYLON.DisplayPassPostProcess", 1.0, null, null);
+                this._renderEffectsForIsolatedPass[cameraName].emptyPasses();
+                this._renderEffectsForIsolatedPass[cameraName].addPass(pass);
+                this._renderEffectsForIsolatedPass[cameraName]._attachCameras(camera);
             }
         };
 
-        PostProcessRenderPipeline.prototype.disableDisplayOnlyPass = function (cameras) {
+        PostProcessRenderPipeline.prototype._disableDisplayOnlyPass = function (cameras) {
             var _cam = BABYLON.Tools.MakeArray(cameras || this._cameras);
 
             for (var i = 0; i < _cam.length; i++) {
-                this._renderEffectsForIsolatedPass[_cam[i].name] = this._renderEffectsForIsolatedPass[_cam[i].name] || new BABYLON.PostProcessRenderEffect(this._engine, PostProcessRenderPipeline.PASS_EFFECT_NAME, "BABYLON.DisplayPassPostProcess", 1.0, null, null);
-                this._renderEffectsForIsolatedPass[_cam[i].name]._disable(_cam[i]);
+                var camera = _cam[i];
+                var cameraName = camera.name;
+
+                this._renderEffectsForIsolatedPass[cameraName] = this._renderEffectsForIsolatedPass[cameraName] || new BABYLON.PostProcessRenderEffect(this._engine, PostProcessRenderPipeline.PASS_EFFECT_NAME, "BABYLON.DisplayPassPostProcess", 1.0, null, null);
+                this._renderEffectsForIsolatedPass[cameraName]._disable(camera);
             }
 
             for (var renderEffectName in this._renderEffects) {
@@ -121,8 +127,9 @@ var BABYLON;
             }
 
             for (var i = 0; i < this._cameras.length; i++) {
-                if (this._renderEffectsForIsolatedPass[this._cameras[i].name]) {
-                    this._renderEffectsForIsolatedPass[this._cameras[i].name]._update();
+                var cameraName = this._cameras[i].name;
+                if (this._renderEffectsForIsolatedPass[cameraName]) {
+                    this._renderEffectsForIsolatedPass[cameraName]._update();
                 }
             }
         };

+ 36 - 28
Babylon/PostProcess/RenderPipeline/babylon.postProcessRenderPipeline.ts

@@ -27,9 +27,11 @@ module BABYLON {
             this._renderEffects[renderEffect._name] = renderEffect;
         }
 
-        public enableEffect(renderEffectName: string, cameras: Camera);
-        public enableEffect(renderEffectName: string, cameras: Camera[]);
-        public enableEffect(renderEffectName: string, cameras: any): void {
+        // private
+
+        public _enableEffect(renderEffectName: string, cameras: Camera);
+        public _enableEffect(renderEffectName: string, cameras: Camera[]);
+        public _enableEffect(renderEffectName: string, cameras: any): void {
             var renderEffects = this._renderEffects[renderEffectName];
 
             if (!renderEffects) {
@@ -39,9 +41,9 @@ module BABYLON {
             renderEffects.enable(Tools.MakeArray(cameras || this._cameras));
         }
 
-        public disableEffect(renderEffectName: string, cameras: Camera);
-        public disableEffect(renderEffectName: string, cameras: Camera[]);
-        public disableEffect(renderEffectName: string, cameras): void {
+        public _disableEffect(renderEffectName: string, cameras: Camera);
+        public _disableEffect(renderEffectName: string, cameras: Camera[]);
+        public _disableEffect(renderEffectName: string, cameras): void {
             var renderEffects = this._renderEffects[renderEffectName];
 
             if (!renderEffects) {
@@ -51,9 +53,9 @@ module BABYLON {
             renderEffects.disable(Tools.MakeArray(cameras || this._cameras));
         }
 
-        public attachCameras(cameras: Camera, unique: boolean);
-        public attachCameras(cameras: Camera[], unique: boolean);
-        public attachCameras(cameras: any, unique: boolean): void {
+        public _attachCameras(cameras: Camera, unique: boolean);
+        public _attachCameras(cameras: Camera[], unique: boolean);
+        public _attachCameras(cameras: any, unique: boolean): void {
             var _cam = Tools.MakeArray(cameras || this._cameras);
 
             var indicesToDelete = [];
@@ -79,10 +81,9 @@ module BABYLON {
             }
         }
 
-        // todo
-        public detachCameras(cameras: Camera);
-        public detachCameras(cameras: Camera[]);
-        public detachCameras(cameras: any): void {
+        public _detachCameras(cameras: Camera);
+        public _detachCameras(cameras: Camera[]);
+        public _detachCameras(cameras: any): void {
             var _cam = Tools.MakeArray(cameras || this._cameras);
 
             for (var renderEffectName in this._renderEffects) {
@@ -94,9 +95,9 @@ module BABYLON {
             }
         }
 
-        public enableDisplayOnlyPass(passName, cameras: Camera);
-        public enableDisplayOnlyPass(passName, cameras: Camera[]);
-        public enableDisplayOnlyPass(passName, cameras: any): void {
+        public _enableDisplayOnlyPass(passName, cameras: Camera);
+        public _enableDisplayOnlyPass(passName, cameras: Camera[]);
+        public _enableDisplayOnlyPass(passName, cameras: any): void {
             var _cam = Tools.MakeArray(cameras || this._cameras);
 
             var pass = null;
@@ -109,7 +110,7 @@ module BABYLON {
                 }
             }
 
-            if (pass == null) {
+            if (pass === null) {
                 return;
             }
 
@@ -120,21 +121,27 @@ module BABYLON {
             pass._name = PostProcessRenderPipeline.PASS_SAMPLER_NAME;
 
             for (var i = 0; i < _cam.length; i++) {
-                this._renderEffectsForIsolatedPass[_cam[i].name] = this._renderEffectsForIsolatedPass[_cam[i].name] || new PostProcessRenderEffect(this._engine, PostProcessRenderPipeline.PASS_EFFECT_NAME, "BABYLON.DisplayPassPostProcess", 1.0, null, null);
-                this._renderEffectsForIsolatedPass[_cam[i].name].emptyPasses();
-                this._renderEffectsForIsolatedPass[_cam[i].name].addPass(pass);
-                this._renderEffectsForIsolatedPass[_cam[i].name]._attachCameras(_cam[i]);
+                var camera = _cam[i];
+                var cameraName = camera.name;
+
+                this._renderEffectsForIsolatedPass[cameraName] = this._renderEffectsForIsolatedPass[cameraName] || new PostProcessRenderEffect(this._engine, PostProcessRenderPipeline.PASS_EFFECT_NAME, "BABYLON.DisplayPassPostProcess", 1.0, null, null);
+                this._renderEffectsForIsolatedPass[cameraName].emptyPasses();
+                this._renderEffectsForIsolatedPass[cameraName].addPass(pass);
+                this._renderEffectsForIsolatedPass[cameraName]._attachCameras(camera);
             }
         }
 
-        public disableDisplayOnlyPass(cameras: Camera);
-        public disableDisplayOnlyPass(cameras: Camera[]);
-        public disableDisplayOnlyPass(cameras: any): void {
+        public _disableDisplayOnlyPass(cameras: Camera);
+        public _disableDisplayOnlyPass(cameras: Camera[]);
+        public _disableDisplayOnlyPass(cameras: any): void {
             var _cam = Tools.MakeArray(cameras || this._cameras);
 
             for (var i = 0; i < _cam.length; i++) {
-                this._renderEffectsForIsolatedPass[_cam[i].name] = this._renderEffectsForIsolatedPass[_cam[i].name] || new PostProcessRenderEffect(this._engine, PostProcessRenderPipeline.PASS_EFFECT_NAME, "BABYLON.DisplayPassPostProcess", 1.0, null, null);
-                this._renderEffectsForIsolatedPass[_cam[i].name]._disable(_cam[i]);
+                var camera = _cam[i];
+                var cameraName = camera.name;
+
+                this._renderEffectsForIsolatedPass[cameraName] = this._renderEffectsForIsolatedPass[cameraName] || new PostProcessRenderEffect(this._engine, PostProcessRenderPipeline.PASS_EFFECT_NAME, "BABYLON.DisplayPassPostProcess", 1.0, null, null);
+                this._renderEffectsForIsolatedPass[cameraName]._disable(camera);
             }
 
             for (var renderEffectName in this._renderEffects) {
@@ -148,8 +155,9 @@ module BABYLON {
             }
 
             for (var i = 0; i < this._cameras.length; i++) {
-                if (this._renderEffectsForIsolatedPass[this._cameras[i].name]) {
-                    this._renderEffectsForIsolatedPass[this._cameras[i].name]._update();
+                var cameraName = this._cameras[i].name;
+                if (this._renderEffectsForIsolatedPass[cameraName]) {
+                    this._renderEffectsForIsolatedPass[cameraName]._update();
                 }
             }
         }

+ 8 - 8
Babylon/PostProcess/RenderPipeline/babylon.postProcessRenderPipelineManager.ts

@@ -12,7 +12,7 @@ module BABYLON {
 
         public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: Camera, unique?: boolean);
         public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: Camera[], unique?: boolean);
-        public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: any, unique?:boolean): void {
+        public attachCamerasToRenderPipeline(renderPipelineName: string, cameras: any, unique?: boolean): void {
             var renderPipeline = this._renderPipelines[renderPipelineName];
 
             if (!renderPipeline) {
@@ -34,8 +34,8 @@ module BABYLON {
             renderPipeline.detachCameras(cameras);
         }
 
-        public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera)
-        public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera[])
+        public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera);
+        public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera[]);
         public enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: any): void {
             var renderPipeline = this._renderPipelines[renderPipelineName];
 
@@ -58,9 +58,9 @@ module BABYLON {
             renderPipeline.disableEffect(renderEffectName, cameras);
         }
 
-        public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: Camera)
-        public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: Camera[])
-        public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras:any): void {
+        public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: Camera);
+        public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: Camera[]);
+        public enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: any): void {
             var renderPipeline = this._renderPipelines[renderPipelineName];
 
             if (!renderPipeline) {
@@ -70,8 +70,8 @@ module BABYLON {
             renderPipeline.enableDisplayOnlyPass(passName, cameras);
         }
 
-        public disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: Camera)
-        public disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: Camera[])
+        public disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: Camera);
+        public disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: Camera[]);
         public disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: any): void {
             var renderPipeline = this._renderPipelines[renderPipelineName];
 

File diff suppressed because it is too large
+ 1 - 1
Tools/BuildOurOwnBabylonJS/BuildOurOwnBabylonJS/ourOwnBabylon.js