diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 7cfa782..c5a7b55 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -527,12 +527,7 @@ this.maskManager.destroy(); this.filterManager.destroy(); - for (var o in this.objectRenderers) { - this.objectRenderers[o].destroy(); - this.objectRenderers[o] = null; - } - - this.objectRenderers = null; + this.destroyPlugins(); // this.uuid = utils.uuid(); // this.type = CONST.WEBGL_RENDERER; diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 7cfa782..c5a7b55 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -527,12 +527,7 @@ this.maskManager.destroy(); this.filterManager.destroy(); - for (var o in this.objectRenderers) { - this.objectRenderers[o].destroy(); - this.objectRenderers[o] = null; - } - - this.objectRenderers = null; + this.destroyPlugins(); // this.uuid = utils.uuid(); // this.type = CONST.WEBGL_RENDERER; diff --git a/src/core/utils/pluginTarget.js b/src/core/utils/pluginTarget.js index ef272e1..c394389 100644 --- a/src/core/utils/pluginTarget.js +++ b/src/core/utils/pluginTarget.js @@ -23,6 +23,15 @@ this.plugins[o] = new (obj.__plugins[o])(this); } }; + + obj.prototype.destroyPlugins = function () { + for (var o in this.plugins) { + this.plugins[o].destroy(); + this.plugins[o] = null; + } + + this.plugins = null; + } } module.exports = pluginTarget;