diff --git a/src/pixi/textures/RenderTexture.js b/src/pixi/textures/RenderTexture.js index f91907e..37fe97d 100644 --- a/src/pixi/textures/RenderTexture.js +++ b/src/pixi/textures/RenderTexture.js @@ -101,29 +101,55 @@ PIXI.RenderTexture.prototype = Object.create(PIXI.Texture.prototype); PIXI.RenderTexture.prototype.constructor = PIXI.RenderTexture; -PIXI.RenderTexture.prototype.resize = function(width, height) +/** + * Resize the RenderTexture. + * + * @method resize + * @param width {Number} The width to resize to. + * @param height {Number} The height to resize to. + * @param updateBase {Boolean} Should the baseTexture.width and height values be resized as well? + */ +PIXI.RenderTexture.prototype.resize = function(width, height, updateBase) { + if (width === this.width && height === this.height) + { + return; + } + this.width = width; this.height = height; this.frame.width = this.width; this.frame.height = this.height; - if(this.renderer.type === PIXI.WEBGL_RENDERER) + if (updateBase) + { + this.baseTexture.width = this.width; + this.baseTexture.height = this.height; + } + + if (this.renderer.type === PIXI.WEBGL_RENDERER) { this.projection.x = this.width / 2; this.projection.y = -this.height / 2; - - var gl = this.renderer.gl; - gl.bindTexture(gl.TEXTURE_2D, this.baseTexture._glTextures[gl.id]); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, this.width, this.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); } - else + + this.textureBuffer.resize(this.width, this.height); +}; + +/** + * Clears the RenderTexture. + * + * @method clear + */ +PIXI.RenderTexture.prototype.clear = function() +{ + if (this.renderer.type === PIXI.WEBGL_RENDERER) { - this.textureBuffer.resize(this.width, this.height); + this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER, this.textureBuffer.frameBuffer); } - - PIXI.Texture.frameUpdates.push(this); + + this.textureBuffer.clear(); }; /**