diff --git a/src/pixi/renderers/canvas/CanvasRenderer.js b/src/pixi/renderers/canvas/CanvasRenderer.js index 1e927d3..aa15b4f 100644 --- a/src/pixi/renderers/canvas/CanvasRenderer.js +++ b/src/pixi/renderers/canvas/CanvasRenderer.js @@ -163,10 +163,11 @@ if(displayObject instanceof PIXI.Sprite) { - - var frame = displayObject.texture.frame; - - if(frame && frame.width && frame.height) + + var frame = displayObject.texture.frame; + + //ignore null sources + if(frame && frame.width && frame.height && displayObject.texture.baseTexture.source) { context.globalAlpha = displayObject.worldAlpha; diff --git a/src/pixi/renderers/canvas/CanvasRenderer.js b/src/pixi/renderers/canvas/CanvasRenderer.js index 1e927d3..aa15b4f 100644 --- a/src/pixi/renderers/canvas/CanvasRenderer.js +++ b/src/pixi/renderers/canvas/CanvasRenderer.js @@ -163,10 +163,11 @@ if(displayObject instanceof PIXI.Sprite) { - - var frame = displayObject.texture.frame; - - if(frame && frame.width && frame.height) + + var frame = displayObject.texture.frame; + + //ignore null sources + if(frame && frame.width && frame.height && displayObject.texture.baseTexture.source) { context.globalAlpha = displayObject.worldAlpha; diff --git a/src/pixi/textures/BaseTexture.js b/src/pixi/textures/BaseTexture.js index 22ac5a0..81fba50 100644 --- a/src/pixi/textures/BaseTexture.js +++ b/src/pixi/textures/BaseTexture.js @@ -91,6 +91,7 @@ PIXI.texturesToUpdate.push(this); } + this.imageUrl = null; this._powerOf2 = false; } @@ -105,6 +106,9 @@ { if(this.source instanceof Image) { + if (this.imageUrl in PIXI.BaseTextureCache) + delete PIXI.BaseTextureCache[this.imageUrl]; + this.imageUrl = null; this.source.src = null; } this.source = null; @@ -134,6 +138,7 @@ } image.src = imageUrl; baseTexture = new PIXI.BaseTexture(image); + baseTexture.imageUrl = imageUrl; PIXI.BaseTextureCache[imageUrl] = baseTexture; } diff --git a/src/pixi/renderers/canvas/CanvasRenderer.js b/src/pixi/renderers/canvas/CanvasRenderer.js index 1e927d3..aa15b4f 100644 --- a/src/pixi/renderers/canvas/CanvasRenderer.js +++ b/src/pixi/renderers/canvas/CanvasRenderer.js @@ -163,10 +163,11 @@ if(displayObject instanceof PIXI.Sprite) { - - var frame = displayObject.texture.frame; - - if(frame && frame.width && frame.height) + + var frame = displayObject.texture.frame; + + //ignore null sources + if(frame && frame.width && frame.height && displayObject.texture.baseTexture.source) { context.globalAlpha = displayObject.worldAlpha; diff --git a/src/pixi/textures/BaseTexture.js b/src/pixi/textures/BaseTexture.js index 22ac5a0..81fba50 100644 --- a/src/pixi/textures/BaseTexture.js +++ b/src/pixi/textures/BaseTexture.js @@ -91,6 +91,7 @@ PIXI.texturesToUpdate.push(this); } + this.imageUrl = null; this._powerOf2 = false; } @@ -105,6 +106,9 @@ { if(this.source instanceof Image) { + if (this.imageUrl in PIXI.BaseTextureCache) + delete PIXI.BaseTextureCache[this.imageUrl]; + this.imageUrl = null; this.source.src = null; } this.source = null; @@ -134,6 +138,7 @@ } image.src = imageUrl; baseTexture = new PIXI.BaseTexture(image); + baseTexture.imageUrl = imageUrl; PIXI.BaseTextureCache[imageUrl] = baseTexture; } diff --git a/src/pixi/utils/EventTarget.js b/src/pixi/utils/EventTarget.js index 73da516..3ee5fc2 100644 --- a/src/pixi/utils/EventTarget.js +++ b/src/pixi/utils/EventTarget.js @@ -63,4 +63,9 @@ }; + this.removeAllEventListeners = function( type ) { + var a = listeners[type]; + if (a) + a.length = 0; + }; };