diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 78b8b52..9aa97c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -408,6 +408,7 @@ this.gl.viewport(0, 0, this.width, this.height); + this.filterManager.resize(width, height); this.renderTarget.resize(width, height); }; diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 78b8b52..9aa97c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -408,6 +408,7 @@ this.gl.viewport(0, 0, this.width, this.height); + this.filterManager.resize(width, height); this.renderTarget.resize(width, height); }; diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index c419356..01b15f2 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -32,7 +32,7 @@ // listen for context and update necessary buffers //TODO make this dynamic! - this.textureSize = new math.Rectangle(0, 0, 800, 600); + this.textureSize = new math.Rectangle( 0, 0, renderer.width, renderer.height ); this.currentFrame = null; @@ -76,10 +76,9 @@ this.capFilterArea( bounds ); - var texture = this.getRenderTarget(); + this.currentFrame = bounds; - // set the frame so the render target knows how much to render! - texture.frame = bounds; + var texture = this.getRenderTarget(); this.renderer.setRenderTarget( texture ); @@ -108,7 +107,6 @@ var output = previousFilterData.renderTarget; - // use program var gl = this.renderer.gl; var filter = filterData.filter[0]; @@ -116,6 +114,7 @@ this.currentFrame = input.frame; this.quad.map(this.textureSize, input.frame); + // TODO.. this probably only needs to be done once! gl.bindBuffer(gl.ARRAY_BUFFER, this.quad.vertexBuffer); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.quad.indexBuffer); @@ -263,6 +262,14 @@ } }; +FilterManager.prototype.resize = function ( width, height ) +{ + for (var i = 0; i < this.texturePool.length; i++) + { + this.texturePool[i].resize( width, height ); + } +}; + /** * Destroys the filter and removes it from the filter stack. *