diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 464a8b7..7a59fbd 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -50,14 +50,6 @@ this.handleContextLost = this.handleContextLost.bind(this); this.handleContextRestored = this.handleContextRestored.bind(this); - this._updateTextureBound = function(e){ - this.updateTexture(e.target); - }.bind(this); - - this._destroyTextureBound = function(e){ - this.destroyTexture(e.target); - }.bind(this); - this.view.addEventListener('webglcontextlost', this.handleContextLost, false); this.view.addEventListener('webglcontextrestored', this.handleContextRestored, false); @@ -138,7 +130,7 @@ * Holds the current render target * @member {Object} */ - this.currentRenderTarget = this.renderTarget; + this.currentRenderTarget = null; /** * object renderer @alvin @@ -196,6 +188,8 @@ this.renderTarget = new RenderTarget(this.gl, this.width, this.height, null, this.resolution, true); + this.setRenderTarget(this.renderTarget); + this.emit('context', gl); // setup the width/height properties and gl viewport @@ -248,6 +242,7 @@ var gl = this.gl; // make sure we are bound to the main frame buffer + this.setRenderTarget(this.renderTarget); if (this.clearBeforeRender) { @@ -273,12 +268,17 @@ * @param renderTarget {RenderTarget} The render target to use to render this display object * */ -WebGLRenderer.prototype.renderDisplayObject = function (displayObject, renderTarget)//projection, buffer) +WebGLRenderer.prototype.renderDisplayObject = function (displayObject, renderTarget, clear)//projection, buffer) { // TODO is this needed... //this.blendModeManager.setBlendMode(CONST.BLEND_MODES.NORMAL); this.setRenderTarget(renderTarget); + if(clear) + { + renderTarget.clear(); + } + // start the filter manager this.filterManager.setFilterStack( renderTarget.filterStack ); @@ -336,9 +336,16 @@ { SystemRenderer.prototype.resize.call(this, width, height); + if(this.currentRenderTarget === this.renderTarget) + { + this.renderTarget.activate(); + } + // console.log(width) this.filterManager.resize(width, height); this.renderTarget.resize(width, height); + + }; /** @@ -360,8 +367,8 @@ if (!texture._glTextures[gl.id]) { texture._glTextures[gl.id] = gl.createTexture(); - texture.on('update', this._updateTextureBound); - texture.on('dispose', this._destroyTextureBound); + texture.on('update', this.updateTexture, this); + texture.on('dispose', this.destroyTexture, this); }