From 16e687cb2a44aa0bfd710569e85e5aa76c930e19 Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Thu, 3 Nov 2016 21:50:14 +0000 Subject: [PATCH] Fixed issue with FBO leaving no bound texture on unit zero. --- src/renderer/webgl/QuadFBO.js | 12 ++++++++---- src/renderer/webgl/WebGLRenderer.js | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/renderer/webgl/QuadFBO.js b/src/renderer/webgl/QuadFBO.js index 395577a2d..b16007eaa 100644 --- a/src/renderer/webgl/QuadFBO.js +++ b/src/renderer/webgl/QuadFBO.js @@ -115,9 +115,11 @@ Phaser.Renderer.WebGL.QuadFBO.prototype = { this.createShader(); + this.emptyTexture = this.renderer.createEmptyTexture(1, 1, 0, 0); + // Reset back to defaults - gl.bindRenderbuffer(gl.RENDERBUFFER, null); - gl.bindFramebuffer(gl.FRAMEBUFFER, null); + // gl.bindRenderbuffer(gl.RENDERBUFFER, null); + // gl.bindFramebuffer(gl.FRAMEBUFFER, null); }, // This whole function ought to be split out into the Shader Manager @@ -295,8 +297,10 @@ Phaser.Renderer.WebGL.QuadFBO.prototype = { this.renderer.drawCount++; - // Unbind the fbo texture - if we forget this we corrupt the main context texture! - gl.bindTexture(gl.TEXTURE_2D, null); + // Unbind the fbo texture and replace it with an empty texture. + // If we forget this we corrupt the main context texture! + // or get `RENDER WARNING: there is no texture bound to the unit 0` spam in the console + gl.bindTexture(gl.TEXTURE_2D, this.emptyTexture); }, destroy: function () diff --git a/src/renderer/webgl/WebGLRenderer.js b/src/renderer/webgl/WebGLRenderer.js index 30fcf172b..6ea86065e 100644 --- a/src/renderer/webgl/WebGLRenderer.js +++ b/src/renderer/webgl/WebGLRenderer.js @@ -322,7 +322,7 @@ Phaser.Renderer.WebGL.prototype = { if (Array.isArray(textureArray)) { - // index 0 is reserved! + // index 0 is reserved? var index = 0; for (var i = 0; i < textureArray.length; i++)