diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index 2d5d5e9..2ccae12 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -595,6 +595,7 @@ renderTarget.resolution = resolution; renderTarget.defaultFrame.width = renderTarget.size.width = minWidth / resolution; renderTarget.defaultFrame.height = renderTarget.size.height = minHeight / resolution; + renderTarget.filterPoolKey = key; return renderTarget; } @@ -628,18 +629,7 @@ */ freePotRenderTarget(renderTarget) { - const minWidth = renderTarget.size.width * renderTarget.resolution; - const minHeight = renderTarget.size.height * renderTarget.resolution; - - let key = screenKey; - - if (minWidth !== this._screenWidth - || minHeight !== this._screenHeight) - { - key = ((minWidth & 0xFFFF) << 16) | (minHeight & 0xFFFF); - } - - this.pool[key].push(renderTarget); + this.pool[renderTarget.filterPoolKey].push(renderTarget); } /** diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index 2d5d5e9..2ccae12 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -595,6 +595,7 @@ renderTarget.resolution = resolution; renderTarget.defaultFrame.width = renderTarget.size.width = minWidth / resolution; renderTarget.defaultFrame.height = renderTarget.size.height = minHeight / resolution; + renderTarget.filterPoolKey = key; return renderTarget; } @@ -628,18 +629,7 @@ */ freePotRenderTarget(renderTarget) { - const minWidth = renderTarget.size.width * renderTarget.resolution; - const minHeight = renderTarget.size.height * renderTarget.resolution; - - let key = screenKey; - - if (minWidth !== this._screenWidth - || minHeight !== this._screenHeight) - { - key = ((minWidth & 0xFFFF) << 16) | (minHeight & 0xFFFF); - } - - this.pool[key].push(renderTarget); + this.pool[renderTarget.filterPoolKey].push(renderTarget); } /** diff --git a/src/core/renderers/webgl/utils/RenderTarget.js b/src/core/renderers/webgl/utils/RenderTarget.js index 4cf5b67..cf2e0ce 100644 --- a/src/core/renderers/webgl/utils/RenderTarget.js +++ b/src/core/renderers/webgl/utils/RenderTarget.js @@ -118,6 +118,13 @@ this.filterData = null; /** + * The key for pooled texture of FilterSystem + * @private + * @member {string} + */ + this.filterPoolKey = ''; + + /** * The scale mode. * * @member {number}