diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 5edba93..39221c8 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -485,11 +485,13 @@ this.maskManager.destroy(); this.stencilManager.destroy(); this.filterManager.destroy(); + this.blendModeManager.destroy(); this.shaderManager = null; this.maskManager = null; this.filterManager = null; this.blendModeManager = null; + this.currentRenderer = null; this.handleContextLost = null; this.handleContextRestored = null; diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 5edba93..39221c8 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -485,11 +485,13 @@ this.maskManager.destroy(); this.stencilManager.destroy(); this.filterManager.destroy(); + this.blendModeManager.destroy(); this.shaderManager = null; this.maskManager = null; this.filterManager = null; this.blendModeManager = null; + this.currentRenderer = null; this.handleContextLost = null; this.handleContextRestored = null; diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index 00d2dac..ab4a2e2 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -433,6 +433,8 @@ */ FilterManager.prototype.destroy = function () { + WebGLManager.prototype.destroy.call(this); + this.filterStack = null; this.offsetY = 0; diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 5edba93..39221c8 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -485,11 +485,13 @@ this.maskManager.destroy(); this.stencilManager.destroy(); this.filterManager.destroy(); + this.blendModeManager.destroy(); this.shaderManager = null; this.maskManager = null; this.filterManager = null; this.blendModeManager = null; + this.currentRenderer = null; this.handleContextLost = null; this.handleContextRestored = null; diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index 00d2dac..ab4a2e2 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -433,6 +433,8 @@ */ FilterManager.prototype.destroy = function () { + WebGLManager.prototype.destroy.call(this); + this.filterStack = null; this.offsetY = 0; diff --git a/src/core/sprites/webgl/SpriteRenderer.js b/src/core/sprites/webgl/SpriteRenderer.js index ad77a74..5508aa2 100644 --- a/src/core/sprites/webgl/SpriteRenderer.js +++ b/src/core/sprites/webgl/SpriteRenderer.js @@ -446,6 +446,8 @@ */ SpriteRenderer.prototype.destroy = function () { + ObjectRenderer.prototype.destroy.call(this); + this.renderer.gl.deleteBuffer(this.vertexBuffer); this.renderer.gl.deleteBuffer(this.indexBuffer); diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 5edba93..39221c8 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -485,11 +485,13 @@ this.maskManager.destroy(); this.stencilManager.destroy(); this.filterManager.destroy(); + this.blendModeManager.destroy(); this.shaderManager = null; this.maskManager = null; this.filterManager = null; this.blendModeManager = null; + this.currentRenderer = null; this.handleContextLost = null; this.handleContextRestored = null; diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index 00d2dac..ab4a2e2 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -433,6 +433,8 @@ */ FilterManager.prototype.destroy = function () { + WebGLManager.prototype.destroy.call(this); + this.filterStack = null; this.offsetY = 0; diff --git a/src/core/sprites/webgl/SpriteRenderer.js b/src/core/sprites/webgl/SpriteRenderer.js index ad77a74..5508aa2 100644 --- a/src/core/sprites/webgl/SpriteRenderer.js +++ b/src/core/sprites/webgl/SpriteRenderer.js @@ -446,6 +446,8 @@ */ SpriteRenderer.prototype.destroy = function () { + ObjectRenderer.prototype.destroy.call(this); + this.renderer.gl.deleteBuffer(this.vertexBuffer); this.renderer.gl.deleteBuffer(this.indexBuffer); diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 29ebc47..e43e8b5 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -267,6 +267,9 @@ this.crop = null; this.valid = false; + + this.off('dispose', this.dispose, this); + this.off('update', this.update, this); }; /** diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 5edba93..39221c8 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -485,11 +485,13 @@ this.maskManager.destroy(); this.stencilManager.destroy(); this.filterManager.destroy(); + this.blendModeManager.destroy(); this.shaderManager = null; this.maskManager = null; this.filterManager = null; this.blendModeManager = null; + this.currentRenderer = null; this.handleContextLost = null; this.handleContextRestored = null; diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index 00d2dac..ab4a2e2 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -433,6 +433,8 @@ */ FilterManager.prototype.destroy = function () { + WebGLManager.prototype.destroy.call(this); + this.filterStack = null; this.offsetY = 0; diff --git a/src/core/sprites/webgl/SpriteRenderer.js b/src/core/sprites/webgl/SpriteRenderer.js index ad77a74..5508aa2 100644 --- a/src/core/sprites/webgl/SpriteRenderer.js +++ b/src/core/sprites/webgl/SpriteRenderer.js @@ -446,6 +446,8 @@ */ SpriteRenderer.prototype.destroy = function () { + ObjectRenderer.prototype.destroy.call(this); + this.renderer.gl.deleteBuffer(this.vertexBuffer); this.renderer.gl.deleteBuffer(this.indexBuffer); diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 29ebc47..e43e8b5 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -267,6 +267,9 @@ this.crop = null; this.valid = false; + + this.off('dispose', this.dispose, this); + this.off('update', this.update, this); }; /** diff --git a/src/mesh/webgl/MeshRenderer.js b/src/mesh/webgl/MeshRenderer.js index 0be74df..cb01daf 100644 --- a/src/mesh/webgl/MeshRenderer.js +++ b/src/mesh/webgl/MeshRenderer.js @@ -209,4 +209,5 @@ */ MeshRenderer.prototype.destroy = function () { + ObjectRenderer.prototype.destroy.call(this); };