diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 2bd1d41..1f3df95 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -211,7 +211,7 @@ return; } - + var gl = this.gl; this._lastObjectRendered = displayObject; @@ -339,11 +339,21 @@ if(renderTexture) { var baseTexture = renderTexture.baseTexture; + var gl = this.gl; if(!baseTexture._glRenderTargets[this.CONTEXT_UID]) { + this.textureManager.updateTexture(baseTexture); + gl.bindTexture(gl.TEXTURE_2D, null); } + else + { + // the texture needs to be unbound if its being rendererd too.. + gl.activeTexture(gl.TEXTURE0 + baseTexture._id); + gl.bindTexture(gl.TEXTURE_2D, null); + } + renderTarget = baseTexture._glRenderTargets[this.CONTEXT_UID]; renderTarget.setFrame(renderTexture.frame); diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 2bd1d41..1f3df95 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -211,7 +211,7 @@ return; } - + var gl = this.gl; this._lastObjectRendered = displayObject; @@ -339,11 +339,21 @@ if(renderTexture) { var baseTexture = renderTexture.baseTexture; + var gl = this.gl; if(!baseTexture._glRenderTargets[this.CONTEXT_UID]) { + this.textureManager.updateTexture(baseTexture); + gl.bindTexture(gl.TEXTURE_2D, null); } + else + { + // the texture needs to be unbound if its being rendererd too.. + gl.activeTexture(gl.TEXTURE0 + baseTexture._id); + gl.bindTexture(gl.TEXTURE_2D, null); + } + renderTarget = baseTexture._glRenderTargets[this.CONTEXT_UID]; renderTarget.setFrame(renderTexture.frame); diff --git a/src/core/sprites/webgl/SpriteRenderer.js b/src/core/sprites/webgl/SpriteRenderer.js index 59751e8..f1fe8da 100644 --- a/src/core/sprites/webgl/SpriteRenderer.js +++ b/src/core/sprites/webgl/SpriteRenderer.js @@ -104,6 +104,7 @@ this.MAX_TEXTURES = Math.min(gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS), CONST.SPRITE_MAX_TEXTURES); + this.shader = generateMultiTextureShader(gl, this.MAX_TEXTURES); // create a couple of buffers this.indexBuffer = glCore.GLBuffer.createIndexBuffer(gl, this.indices, gl.STATIC_DRAW); @@ -121,10 +122,6 @@ .addAttribute(this.vertexBuffers[i], this.shader.attributes.aTextureId, gl.FLOAT, false, this.vertByteSize, 4 * 4); } - this.vertexBuffer = this.vertexBuffers[0]; - this.vao = this.vaos[0]; - - this.currentBlendMode = 99999; };