Pārlūkot izejas kodu

Fixing issues with RenderTargetTexture sizes

David Catuhe 11 gadi atpakaļ
vecāks
revīzija
b1562695e4

+ 1 - 1
Babylon/Cameras/babylon.camera.js

@@ -27,7 +27,7 @@ var BABYLON;
             this.subCameras = [];
             this.subCameras = [];
             this._computedViewMatrix = BABYLON.Matrix.Identity();
             this._computedViewMatrix = BABYLON.Matrix.Identity();
             this._projectionMatrix = new BABYLON.Matrix();
             this._projectionMatrix = new BABYLON.Matrix();
-            this._postProcesses = [];
+            this._postProcesses = new Array();
             this._postProcessesTakenIndices = [];
             this._postProcessesTakenIndices = [];
 
 
             scene.cameras.push(this);
             scene.cameras.push(this);

+ 1 - 1
Babylon/Cameras/babylon.camera.ts

@@ -22,7 +22,7 @@
         private _computedViewMatrix = BABYLON.Matrix.Identity();
         private _computedViewMatrix = BABYLON.Matrix.Identity();
         private _projectionMatrix = new BABYLON.Matrix();
         private _projectionMatrix = new BABYLON.Matrix();
         private _worldMatrix: Matrix;
         private _worldMatrix: Matrix;
-        public _postProcesses = [];
+        public _postProcesses = new Array<PostProcess>();
         public _postProcessesTakenIndices = [];
         public _postProcessesTakenIndices = [];
 
 
         constructor(name: string, public position: Vector3, scene: Scene) {
         constructor(name: string, public position: Vector3, scene: Scene) {

+ 5 - 5
Babylon/Materials/textures/babylon.renderTargetTexture.js

@@ -8,7 +8,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var RenderTargetTexture = (function (_super) {
     var RenderTargetTexture = (function (_super) {
         __extends(RenderTargetTexture, _super);
         __extends(RenderTargetTexture, _super);
-        function RenderTargetTexture(name, size, scene, generateMipMaps, doNotChangeAspectratio) {
+        function RenderTargetTexture(name, size, scene, generateMipMaps, doNotChangeAspectRatio) {
             _super.call(this, null, scene, !generateMipMaps);
             _super.call(this, null, scene, !generateMipMaps);
             this.renderList = new Array();
             this.renderList = new Array();
             this.renderParticles = true;
             this.renderParticles = true;
@@ -19,7 +19,7 @@ var BABYLON;
             this.isRenderTarget = true;
             this.isRenderTarget = true;
             this._size = size;
             this._size = size;
             this._generateMipMaps = generateMipMaps;
             this._generateMipMaps = generateMipMaps;
-            this._doNotChangeAspectratio = doNotChangeAspectratio;
+            this._doNotChangeAspectRatio = doNotChangeAspectRatio;
 
 
             this._texture = scene.getEngine().createRenderTargetTexture(size, generateMipMaps);
             this._texture = scene.getEngine().createRenderTargetTexture(size, generateMipMaps);
 
 
@@ -54,7 +54,7 @@ var BABYLON;
             }
             }
 
 
             // Bind
             // Bind
-            if (!useCameraPostProcess || !scene.postProcessManager._prepareFrame()) {
+            if (!useCameraPostProcess || !scene.postProcessManager._prepareFrame(this._texture)) {
                 engine.bindFramebuffer(this._texture);
                 engine.bindFramebuffer(this._texture);
             }
             }
 
 
@@ -75,7 +75,7 @@ var BABYLON;
                 }
                 }
             }
             }
 
 
-            if (!this._doNotChangeAspectratio) {
+            if (!this._doNotChangeAspectRatio) {
                 scene.updateTransformMatrix(true);
                 scene.updateTransformMatrix(true);
             }
             }
 
 
@@ -97,7 +97,7 @@ var BABYLON;
             // Unbind
             // Unbind
             engine.unBindFramebuffer(this._texture);
             engine.unBindFramebuffer(this._texture);
 
 
-            if (!this._doNotChangeAspectratio) {
+            if (!this._doNotChangeAspectRatio) {
                 scene.updateTransformMatrix(true);
                 scene.updateTransformMatrix(true);
             }
             }
         };
         };

+ 6 - 6
Babylon/Materials/textures/babylon.renderTargetTexture.ts

@@ -12,16 +12,16 @@
         public _generateMipMaps: boolean;
         public _generateMipMaps: boolean;
         private _renderingManager
         private _renderingManager
         public _waitingRenderList: string[];
         public _waitingRenderList: string[];
-        private _doNotChangeAspectratio: boolean;
+        private _doNotChangeAspectRatio: boolean;
 
 
-        constructor(name: string, size: any, scene: Scene, generateMipMaps?: boolean, doNotChangeAspectratio?: boolean) {
+        constructor(name: string, size: any, scene: Scene, generateMipMaps?: boolean, doNotChangeAspectRatio?: boolean) {
             super(null, scene, !generateMipMaps);
             super(null, scene, !generateMipMaps);
 
 
             this.name = name;
             this.name = name;
             this.isRenderTarget = true;
             this.isRenderTarget = true;
             this._size = size;
             this._size = size;
             this._generateMipMaps = generateMipMaps;
             this._generateMipMaps = generateMipMaps;
-            this._doNotChangeAspectratio = doNotChangeAspectratio;
+            this._doNotChangeAspectRatio = doNotChangeAspectRatio;
 
 
             this._texture = scene.getEngine().createRenderTargetTexture(size, generateMipMaps);
             this._texture = scene.getEngine().createRenderTargetTexture(size, generateMipMaps);
 
 
@@ -57,7 +57,7 @@
             }
             }
 
 
             // Bind
             // Bind
-            if (!useCameraPostProcess || !scene.postProcessManager._prepareFrame()) {
+            if (!useCameraPostProcess || !scene.postProcessManager._prepareFrame(this._texture)) {
                 engine.bindFramebuffer(this._texture);
                 engine.bindFramebuffer(this._texture);
             }
             }
 
 
@@ -78,7 +78,7 @@
                 }
                 }
             }
             }
 
 
-            if (!this._doNotChangeAspectratio) {
+            if (!this._doNotChangeAspectRatio) {
                 scene.updateTransformMatrix(true);
                 scene.updateTransformMatrix(true);
             }
             }
 
 
@@ -101,7 +101,7 @@
             // Unbind
             // Unbind
             engine.unBindFramebuffer(this._texture);
             engine.unBindFramebuffer(this._texture);
 
 
-            if (!this._doNotChangeAspectratio) {
+            if (!this._doNotChangeAspectRatio) {
                 scene.updateTransformMatrix(true);
                 scene.updateTransformMatrix(true);
             }
             }
         }
         }

+ 3 - 3
Babylon/PostProcess/babylon.postProcess.js

@@ -30,12 +30,12 @@
             return this._reusable;
             return this._reusable;
         };
         };
 
 
-        PostProcess.prototype.activate = function (camera) {
+        PostProcess.prototype.activate = function (camera, sourceTexture) {
             camera = camera || this._camera;
             camera = camera || this._camera;
 
 
             var scene = camera.getScene();
             var scene = camera.getScene();
-            var desiredWidth = this._engine.getRenderWidth() * this._renderRatio;
-            var desiredHeight = this._engine.getRenderHeight() * this._renderRatio;
+            var desiredWidth = (sourceTexture ? sourceTexture._width : this._engine.getRenderingCanvas().width) * this._renderRatio;
+            var desiredHeight = (sourceTexture ? sourceTexture._height : this._engine.getRenderingCanvas().height) * this._renderRatio;
             if (this.width !== desiredWidth || this.height !== desiredHeight) {
             if (this.width !== desiredWidth || this.height !== desiredHeight) {
                 if (this._textures.length > 0) {
                 if (this._textures.length > 0) {
                     for (var i = 0; i < this._textures.length; i++) {
                     for (var i = 0; i < this._textures.length; i++) {

+ 3 - 3
Babylon/PostProcess/babylon.postProcess.ts

@@ -44,12 +44,12 @@
             return this._reusable;
             return this._reusable;
         }
         }
 
 
-        public activate(camera: Camera): void {
+        public activate(camera: Camera, sourceTexture?: WebGLTexture): void {
             camera = camera || this._camera;
             camera = camera || this._camera;
 
 
             var scene = camera.getScene();
             var scene = camera.getScene();
-            var desiredWidth = this._engine.getRenderWidth() * this._renderRatio;
-            var desiredHeight = this._engine.getRenderHeight() * this._renderRatio;
+            var desiredWidth =  (sourceTexture ? sourceTexture._width : this._engine.getRenderingCanvas().width) * this._renderRatio;
+            var desiredHeight = (sourceTexture ? sourceTexture._height : this._engine.getRenderingCanvas().height) * this._renderRatio;
             if (this.width !== desiredWidth || this.height !== desiredHeight) {
             if (this.width !== desiredWidth || this.height !== desiredHeight) {
                 if (this._textures.length > 0) {
                 if (this._textures.length > 0) {
                     for (var i = 0; i < this._textures.length; i++) {
                     for (var i = 0; i < this._textures.length; i++) {

+ 2 - 2
Babylon/PostProcess/babylon.postProcessManager.js

@@ -27,7 +27,7 @@
             this._indexBuffer = scene.getEngine().createIndexBuffer(indices);
             this._indexBuffer = scene.getEngine().createIndexBuffer(indices);
         }
         }
         // Methods
         // Methods
-        PostProcessManager.prototype._prepareFrame = function () {
+        PostProcessManager.prototype._prepareFrame = function (sourceTexture) {
             var postProcesses = this._scene.activeCamera._postProcesses;
             var postProcesses = this._scene.activeCamera._postProcesses;
             var postProcessesTakenIndices = this._scene.activeCamera._postProcessesTakenIndices;
             var postProcessesTakenIndices = this._scene.activeCamera._postProcessesTakenIndices;
 
 
@@ -35,7 +35,7 @@
                 return false;
                 return false;
             }
             }
 
 
-            postProcesses[this._scene.activeCamera._postProcessesTakenIndices[0]].activate(this._scene.activeCamera);
+            postProcesses[this._scene.activeCamera._postProcessesTakenIndices[0]].activate(this._scene.activeCamera, sourceTexture);
 
 
             return true;
             return true;
         };
         };

+ 2 - 2
Babylon/PostProcess/babylon.postProcessManager.ts

@@ -31,7 +31,7 @@
         }
         }
 
 
         // Methods
         // Methods
-        public _prepareFrame(): boolean {
+        public _prepareFrame(sourceTexture?: WebGLTexture): boolean {
             var postProcesses = this._scene.activeCamera._postProcesses;
             var postProcesses = this._scene.activeCamera._postProcesses;
             var postProcessesTakenIndices = this._scene.activeCamera._postProcessesTakenIndices;
             var postProcessesTakenIndices = this._scene.activeCamera._postProcessesTakenIndices;
 
 
@@ -39,7 +39,7 @@
                 return false;
                 return false;
             }
             }
 
 
-            postProcesses[this._scene.activeCamera._postProcessesTakenIndices[0]].activate(this._scene.activeCamera);
+            postProcesses[this._scene.activeCamera._postProcessesTakenIndices[0]].activate(this._scene.activeCamera, sourceTexture);
 
 
             return true;
             return true;
         }
         }

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 6 - 6
babylon.1.12-beta.js