diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index 3b2869f..561dfdb 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -78,15 +78,17 @@ { const { gl } = this; - this.current = framebuffer; - if (framebuffer) { // TODO caching layer! const fbo = framebuffer.glFramebuffers[this.CONTEXT_UID] || this.initFramebuffer(framebuffer); - gl.bindFramebuffer(gl.FRAMEBUFFER, fbo.framebuffer); + if (this.current !== framebuffer) + { + this.current = framebuffer; + gl.bindFramebuffer(gl.FRAMEBUFFER, fbo.framebuffer); + } // make sure all textures are unbound.. // now check for updates... @@ -134,7 +136,11 @@ } else { - gl.bindFramebuffer(gl.FRAMEBUFFER, null); + if (this.current) + { + this.current = null; + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + } if (frame) { diff --git a/packages/core/src/framebuffer/FramebufferSystem.js b/packages/core/src/framebuffer/FramebufferSystem.js index 3b2869f..561dfdb 100644 --- a/packages/core/src/framebuffer/FramebufferSystem.js +++ b/packages/core/src/framebuffer/FramebufferSystem.js @@ -78,15 +78,17 @@ { const { gl } = this; - this.current = framebuffer; - if (framebuffer) { // TODO caching layer! const fbo = framebuffer.glFramebuffers[this.CONTEXT_UID] || this.initFramebuffer(framebuffer); - gl.bindFramebuffer(gl.FRAMEBUFFER, fbo.framebuffer); + if (this.current !== framebuffer) + { + this.current = framebuffer; + gl.bindFramebuffer(gl.FRAMEBUFFER, fbo.framebuffer); + } // make sure all textures are unbound.. // now check for updates... @@ -134,7 +136,11 @@ } else { - gl.bindFramebuffer(gl.FRAMEBUFFER, null); + if (this.current) + { + this.current = null; + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + } if (frame) { diff --git a/packages/core/src/renderTexture/RenderTextureSystem.js b/packages/core/src/renderTexture/RenderTextureSystem.js index d7ed5fe..b38476e 100644 --- a/packages/core/src/renderTexture/RenderTextureSystem.js +++ b/packages/core/src/renderTexture/RenderTextureSystem.js @@ -63,10 +63,8 @@ * @param {PIXI.Rectangle} sourceFrame * @param {PIXI.Rectangle} destinationFrame */ - bind(renderTexture, sourceFrame, destinationFrame) + bind(renderTexture = null, sourceFrame, destinationFrame) { - // TODO - do we want this?? - if (this.current === renderTexture) return; this.current = renderTexture; const renderer = this.renderer;