Parcourir la source

Fixed issue with viewport and postprocess

David Catuhe il y a 8 ans
Parent
commit
d12a316374

Fichier diff supprimé car celui-ci est trop grand
+ 6145 - 6145
dist/preview release/babylon.d.ts


Fichier diff supprimé car celui-ci est trop grand
+ 2 - 2
dist/preview release/babylon.js


+ 4 - 4
dist/preview release/babylon.max.js

@@ -8570,7 +8570,7 @@ var BABYLON;
                 this.vrDisplaysPromise = navigator.getVRDisplays().then(getWebVRDevices);
             }
         };
-        Engine.prototype.bindFramebuffer = function (texture, faceIndex, requiredWidth, requiredHeight) {
+        Engine.prototype.bindFramebuffer = function (texture, faceIndex, requiredWidth, requiredHeight, forceFullscreenViewport) {
             if (this._currentRenderTarget) {
                 this.unBindFramebuffer(this._currentRenderTarget);
             }
@@ -8580,7 +8580,7 @@ var BABYLON;
             if (texture.isCube) {
                 gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, texture, 0);
             }
-            if (this._cachedViewport) {
+            if (this._cachedViewport && !forceFullscreenViewport) {
                 this.setViewport(this._cachedViewport, requiredWidth, requiredHeight);
             }
             else {
@@ -45963,11 +45963,11 @@ var BABYLON;
             }
             if (this.enablePixelPerfectMode) {
                 this._scaleRatio.copyFromFloats(requiredWidth / desiredWidth, requiredHeight / desiredHeight);
-                this._engine.bindFramebuffer(target, 0, requiredWidth, requiredHeight);
+                this._engine.bindFramebuffer(target, 0, requiredWidth, requiredHeight, true);
             }
             else {
                 this._scaleRatio.copyFromFloats(1, 1);
-                this._engine.bindFramebuffer(target);
+                this._engine.bindFramebuffer(target, 0, undefined, undefined, true);
             }
             this.onActivateObservable.notifyObservers(camera);
             // Clear

Fichier diff supprimé car celui-ci est trop grand
+ 6145 - 6145
dist/preview release/babylon.module.d.ts


Fichier diff supprimé car celui-ci est trop grand
+ 2 - 2
dist/preview release/babylon.worker.js


Fichier diff supprimé car celui-ci est trop grand
+ 805 - 805
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


Fichier diff supprimé car celui-ci est trop grand
+ 2 - 2
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


+ 4 - 4
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js

@@ -8570,7 +8570,7 @@ var BABYLON;
                 this.vrDisplaysPromise = navigator.getVRDisplays().then(getWebVRDevices);
             }
         };
-        Engine.prototype.bindFramebuffer = function (texture, faceIndex, requiredWidth, requiredHeight) {
+        Engine.prototype.bindFramebuffer = function (texture, faceIndex, requiredWidth, requiredHeight, forceFullscreenViewport) {
             if (this._currentRenderTarget) {
                 this.unBindFramebuffer(this._currentRenderTarget);
             }
@@ -8580,7 +8580,7 @@ var BABYLON;
             if (texture.isCube) {
                 gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, texture, 0);
             }
-            if (this._cachedViewport) {
+            if (this._cachedViewport && !forceFullscreenViewport) {
                 this.setViewport(this._cachedViewport, requiredWidth, requiredHeight);
             }
             else {
@@ -34398,11 +34398,11 @@ var BABYLON;
             }
             if (this.enablePixelPerfectMode) {
                 this._scaleRatio.copyFromFloats(requiredWidth / desiredWidth, requiredHeight / desiredHeight);
-                this._engine.bindFramebuffer(target, 0, requiredWidth, requiredHeight);
+                this._engine.bindFramebuffer(target, 0, requiredWidth, requiredHeight, true);
             }
             else {
                 this._scaleRatio.copyFromFloats(1, 1);
-                this._engine.bindFramebuffer(target);
+                this._engine.bindFramebuffer(target, 0, undefined, undefined, true);
             }
             this.onActivateObservable.notifyObservers(camera);
             // Clear

Fichier diff supprimé car celui-ci est trop grand
+ 805 - 805
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


+ 2 - 2
src/PostProcess/babylon.postProcess.ts

@@ -283,11 +283,11 @@
 
             if (this.enablePixelPerfectMode) {
                 this._scaleRatio.copyFromFloats(requiredWidth / desiredWidth, requiredHeight / desiredHeight);
-                this._engine.bindFramebuffer(target, 0, requiredWidth, requiredHeight);
+                this._engine.bindFramebuffer(target, 0, requiredWidth, requiredHeight, true);
             }
             else {
                 this._scaleRatio.copyFromFloats(1, 1);
-                this._engine.bindFramebuffer(target);
+                this._engine.bindFramebuffer(target, 0, undefined, undefined, true);
             }
 
             this.onActivateObservable.notifyObservers(camera);

+ 2 - 2
src/babylon.engine.ts

@@ -1484,7 +1484,7 @@
             }
         }
 
-        public bindFramebuffer(texture: WebGLTexture, faceIndex?: number, requiredWidth?: number, requiredHeight?: number): void {
+        public bindFramebuffer(texture: WebGLTexture, faceIndex?: number, requiredWidth?: number, requiredHeight?: number, forceFullscreenViewport?: boolean): void {
             if (this._currentRenderTarget) {
                 this.unBindFramebuffer(this._currentRenderTarget);
             }
@@ -1495,7 +1495,7 @@
                 gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, texture, 0);
             }
 
-            if (this._cachedViewport) {
+            if (this._cachedViewport && !forceFullscreenViewport) {
                 this.setViewport(this._cachedViewport, requiredWidth, requiredHeight);            
             } else {
                 gl.viewport(0, 0, requiredWidth || texture._width, requiredHeight || texture._height);