diff --git a/src/pixi/renderers/webgl/utils/FilterTexture.js b/src/pixi/renderers/webgl/utils/FilterTexture.js index 45ceae9..ded9cd5 100644 --- a/src/pixi/renderers/webgl/utils/FilterTexture.js +++ b/src/pixi/renderers/webgl/utils/FilterTexture.js @@ -8,9 +8,10 @@ * @param gl {WebGLContext} the current WebGL drawing context * @param width {Number} the horizontal range of the filter * @param height {Number} the vertical range of the filter +* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts * @private */ -PIXI.FilterTexture = function(gl, width, height) +PIXI.FilterTexture = function(gl, width, height, scaleMode) { /** * @property gl @@ -22,9 +23,11 @@ this.frameBuffer = gl.createFramebuffer(); this.texture = gl.createTexture(); + scaleMode = scaleMode || PIXI.scaleModes.DEFAULT; + gl.bindTexture(gl.TEXTURE_2D, this.texture); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, scaleMode === PIXI.scaleModes.LINEAR ? gl.LINEAR : gl.NEAREST); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, scaleMode === PIXI.scaleModes.LINEAR ? gl.LINEAR : gl.NEAREST); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer ); diff --git a/src/pixi/renderers/webgl/utils/FilterTexture.js b/src/pixi/renderers/webgl/utils/FilterTexture.js index 45ceae9..ded9cd5 100644 --- a/src/pixi/renderers/webgl/utils/FilterTexture.js +++ b/src/pixi/renderers/webgl/utils/FilterTexture.js @@ -8,9 +8,10 @@ * @param gl {WebGLContext} the current WebGL drawing context * @param width {Number} the horizontal range of the filter * @param height {Number} the vertical range of the filter +* @param scaleMode {Number} Should be one of the PIXI.scaleMode consts * @private */ -PIXI.FilterTexture = function(gl, width, height) +PIXI.FilterTexture = function(gl, width, height, scaleMode) { /** * @property gl @@ -22,9 +23,11 @@ this.frameBuffer = gl.createFramebuffer(); this.texture = gl.createTexture(); + scaleMode = scaleMode || PIXI.scaleModes.DEFAULT; + gl.bindTexture(gl.TEXTURE_2D, this.texture); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, scaleMode === PIXI.scaleModes.LINEAR ? gl.LINEAR : gl.NEAREST); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, scaleMode === PIXI.scaleModes.LINEAR ? gl.LINEAR : gl.NEAREST); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer ); diff --git a/src/pixi/textures/RenderTexture.js b/src/pixi/textures/RenderTexture.js index cd73f65..f91907e 100644 --- a/src/pixi/textures/RenderTexture.js +++ b/src/pixi/textures/RenderTexture.js @@ -29,8 +29,9 @@ * @constructor * @param width {Number} The width of the render texture * @param height {Number} The height of the render texture + * @param scaleMode {Number} Should be one of the PIXI.scaleMode consts */ -PIXI.RenderTexture = function(width, height, renderer) +PIXI.RenderTexture = function(width, height, renderer, scaleMode) { PIXI.EventTarget.call( this ); @@ -68,6 +69,8 @@ this.baseTexture.height = this.height; this.baseTexture._glTextures = []; + this.baseTexture.scaleMode = scaleMode || PIXI.scaleModes.DEFAULT; + this.baseTexture.hasLoaded = true; // each render texture can only belong to one renderer at the moment if its webGL @@ -77,7 +80,7 @@ { var gl = this.renderer.gl; - this.textureBuffer = new PIXI.FilterTexture(gl, this.width, this.height); + this.textureBuffer = new PIXI.FilterTexture(gl, this.width, this.height, this.baseTexture.scaleMode); this.baseTexture._glTextures[gl.id] = this.textureBuffer.texture; this.render = this.renderWebGL;