diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index 2f4cbba..04aefd0 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -298,8 +298,12 @@ FilterManager.prototype.destroy = function() { + this.shaderCache = []; + FilterManager.emptyPool(); }; + + //TODO move to a seperate class could be on renderer? //also - could cause issue with multiple contexts? FilterManager.getPotRenderTarget = function(gl, minWidth, minHeight, resolution) @@ -326,6 +330,23 @@ return renderTarget; }; +FilterManager.emptyPool = function() +{ + for (var i in FilterManager.pool) + { + var textures = FilterManager.pool[i]; + if(textures) + { + for (var j = 0; j < textures.length; j++) + { + textures[j].destroy(true); + }; + } + }; + + FilterManager.pool = {}; +} + FilterManager.freePotRenderTarget = function(renderTarget) { var minWidth = renderTarget.size.width * renderTarget.resolution;