diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 14ca433..1a2c851 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -420,6 +420,11 @@ { this.runners.destroy.run(); + for (const r in this.runners) + { + this.runners[r].destroy(); + } + // call base destroy super.destroy(removeView); diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 14ca433..1a2c851 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -420,6 +420,11 @@ { this.runners.destroy.run(); + for (const r in this.runners) + { + this.runners[r].destroy(); + } + // call base destroy super.destroy(removeView); diff --git a/packages/core/src/System.js b/packages/core/src/System.js index c38d5af..0e794c5 100644 --- a/packages/core/src/System.js +++ b/packages/core/src/System.js @@ -18,18 +18,6 @@ * @member {PIXI.Renderer} */ this.renderer = renderer; - - this.renderer.runners.contextChange.add(this); - } - - /** - * Generic method called when there is a WebGL context change. - * - * @param {WebGLRenderingContext} gl new webgl context - */ - contextChange(gl) // eslint-disable-line no-unused-vars - { - // do some codes init! } /** @@ -37,7 +25,6 @@ */ destroy() { - this.renderer.runners.contextChange.remove(this); this.renderer = null; } } diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 14ca433..1a2c851 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -420,6 +420,11 @@ { this.runners.destroy.run(); + for (const r in this.runners) + { + this.runners[r].destroy(); + } + // call base destroy super.destroy(removeView); diff --git a/packages/core/src/System.js b/packages/core/src/System.js index c38d5af..0e794c5 100644 --- a/packages/core/src/System.js +++ b/packages/core/src/System.js @@ -18,18 +18,6 @@ * @member {PIXI.Renderer} */ this.renderer = renderer; - - this.renderer.runners.contextChange.add(this); - } - - /** - * Generic method called when there is a WebGL context change. - * - * @param {WebGLRenderingContext} gl new webgl context - */ - contextChange(gl) // eslint-disable-line no-unused-vars - { - // do some codes init! } /** @@ -37,7 +25,6 @@ */ destroy() { - this.renderer.runners.contextChange.remove(this); this.renderer = null; } } diff --git a/packages/core/src/batch/BatchPluginFactory.js b/packages/core/src/batch/BatchPluginFactory.js index ce5a14a..16b7dbf 100644 --- a/packages/core/src/batch/BatchPluginFactory.js +++ b/packages/core/src/batch/BatchPluginFactory.js @@ -59,6 +59,8 @@ this.shaderGenerator = new BatchShaderGenerator(vertex, fragment); this.geometryClass = geometryClass; this.vertexSize = vertexSize; + + renderer.runners.contextChange.add(this); } }; }