diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/src/deprecation.js b/src/deprecation.js new file mode 100644 index 0000000..60d052f --- /dev/null +++ b/src/deprecation.js @@ -0,0 +1,37 @@ +var core = require('./core'), + text = require('./text'); + +core.Stage = function () +{ + window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container."); + return new core.Container(); +}; + +core.SpriteBatch = function () +{ + window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead."); +}; + +core.AssetsLoader = function () { + window.console.warn("The loader system was overhauled in pixi v3, please see the new PIXI.Loader class."); +}; + +core.Sprite.prototype.setTexture = function (texture) +{ + this.texture = texture; + window.console.warn("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;"); +}; + +text.BitmapText.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';"); +}; + +text.Text.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';"); +}; + +module.exports = {}; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/src/deprecation.js b/src/deprecation.js new file mode 100644 index 0000000..60d052f --- /dev/null +++ b/src/deprecation.js @@ -0,0 +1,37 @@ +var core = require('./core'), + text = require('./text'); + +core.Stage = function () +{ + window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container."); + return new core.Container(); +}; + +core.SpriteBatch = function () +{ + window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead."); +}; + +core.AssetsLoader = function () { + window.console.warn("The loader system was overhauled in pixi v3, please see the new PIXI.Loader class."); +}; + +core.Sprite.prototype.setTexture = function (texture) +{ + this.texture = texture; + window.console.warn("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;"); +}; + +text.BitmapText.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';"); +}; + +text.Text.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';"); +}; + +module.exports = {}; diff --git a/src/extras/Strip.js b/src/extras/Strip.js index 3e0ef1b..b327c8a 100644 --- a/src/extras/Strip.js +++ b/src/extras/Strip.js @@ -249,14 +249,8 @@ * * @param renderer {CanvasRenderer} */ -Strip.prototype.renderCanvas = function (renderer) +Strip.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || !this.renderable) - { - return; - } - var context = renderer.context; var transform = this.worldTransform; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/src/deprecation.js b/src/deprecation.js new file mode 100644 index 0000000..60d052f --- /dev/null +++ b/src/deprecation.js @@ -0,0 +1,37 @@ +var core = require('./core'), + text = require('./text'); + +core.Stage = function () +{ + window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container."); + return new core.Container(); +}; + +core.SpriteBatch = function () +{ + window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead."); +}; + +core.AssetsLoader = function () { + window.console.warn("The loader system was overhauled in pixi v3, please see the new PIXI.Loader class."); +}; + +core.Sprite.prototype.setTexture = function (texture) +{ + this.texture = texture; + window.console.warn("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;"); +}; + +text.BitmapText.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';"); +}; + +text.Text.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';"); +}; + +module.exports = {}; diff --git a/src/extras/Strip.js b/src/extras/Strip.js index 3e0ef1b..b327c8a 100644 --- a/src/extras/Strip.js +++ b/src/extras/Strip.js @@ -249,14 +249,8 @@ * * @param renderer {CanvasRenderer} */ -Strip.prototype.renderCanvas = function (renderer) +Strip.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || !this.renderable) - { - return; - } - var context = renderer.context; var transform = this.worldTransform; diff --git a/src/extras/TilingSprite.js b/src/extras/TilingSprite.js index b8431de..e274c8f 100644 --- a/src/extras/TilingSprite.js +++ b/src/extras/TilingSprite.js @@ -214,20 +214,10 @@ * * @param renderer {CanvasRenderer} a reference to the canvas renderer */ -TilingSprite.prototype.renderCanvas = function (renderer) +TilingSprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0) - { - return; - } - var context = renderer.context; - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - context.globalAlpha = this.worldAlpha; var transform = this.worldTransform; @@ -283,16 +273,6 @@ context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); context.scale(1 / tileScale.x, 1 / tileScale.y); - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } - - for (i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } }; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/src/deprecation.js b/src/deprecation.js new file mode 100644 index 0000000..60d052f --- /dev/null +++ b/src/deprecation.js @@ -0,0 +1,37 @@ +var core = require('./core'), + text = require('./text'); + +core.Stage = function () +{ + window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container."); + return new core.Container(); +}; + +core.SpriteBatch = function () +{ + window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead."); +}; + +core.AssetsLoader = function () { + window.console.warn("The loader system was overhauled in pixi v3, please see the new PIXI.Loader class."); +}; + +core.Sprite.prototype.setTexture = function (texture) +{ + this.texture = texture; + window.console.warn("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;"); +}; + +text.BitmapText.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';"); +}; + +text.Text.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';"); +}; + +module.exports = {}; diff --git a/src/extras/Strip.js b/src/extras/Strip.js index 3e0ef1b..b327c8a 100644 --- a/src/extras/Strip.js +++ b/src/extras/Strip.js @@ -249,14 +249,8 @@ * * @param renderer {CanvasRenderer} */ -Strip.prototype.renderCanvas = function (renderer) +Strip.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || !this.renderable) - { - return; - } - var context = renderer.context; var transform = this.worldTransform; diff --git a/src/extras/TilingSprite.js b/src/extras/TilingSprite.js index b8431de..e274c8f 100644 --- a/src/extras/TilingSprite.js +++ b/src/extras/TilingSprite.js @@ -214,20 +214,10 @@ * * @param renderer {CanvasRenderer} a reference to the canvas renderer */ -TilingSprite.prototype.renderCanvas = function (renderer) +TilingSprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0) - { - return; - } - var context = renderer.context; - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - context.globalAlpha = this.worldAlpha; var transform = this.worldTransform; @@ -283,16 +273,6 @@ context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); context.scale(1 / tileScale.x, 1 / tileScale.y); - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } - - for (i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } }; diff --git a/src/extras/cacheAsBitmap.js b/src/extras/cacheAsBitmap.js index 20f2b99..9fe88df 100644 --- a/src/extras/cacheAsBitmap.js +++ b/src/extras/cacheAsBitmap.js @@ -17,6 +17,15 @@ Object.defineProperties(DisplayObject.prototype, { + + /** + * Set this to true if you want this display object to be cached as a bitmap. + * This basically takes a snap shot of the display object as it is at that moment. It can provide a performance benefit for complex static displayObjects. + * To remove simply set this property to 'null' + * + * @member {boolean} + * @memberof DisplayObject# + */ cacheAsBitmap: { get: function () { @@ -60,12 +69,17 @@ this.getBounds = this._originalGetBounds; this.updateTransform = this._originalUpdateTransform; - this.containsPoint = this._originalContainesPoint; + this.containsPoint = this._originalContainsPoint; } } } }); - +/** +* Renders a cached version of the sprite with WebGL +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._renderCachedWebGL = function(renderer) { this._initCachedDisplayObject( renderer ); @@ -76,6 +90,12 @@ renderer.plugins.sprite.render( this._cachedSprite ); }; +/** +* Prepares the WebGL renderer to cache the sprite +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObject = function( renderer ) { if(this._cachedSprite) @@ -83,6 +103,7 @@ return; } + // first we flush anything left in the renderer (otherwise it would get rendered to the cached texture) renderer.currentRenderer.flush(); //this.filters= []; @@ -117,7 +138,7 @@ this.renderWebGL = this._renderCachedWebGL; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -130,7 +151,12 @@ this.containsPoint = this._cachedSprite.containsPoint.bind(this._cachedSprite); }; - +/** +* Renders a cached version of the sprite with canvas +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._renderCachedCanvas = function(renderer) { this._initCachedDisplayObjectCanvas( renderer ); @@ -141,6 +167,12 @@ }; //TODO this can be the same as the webGL verison.. will need to do a little tweaking first though.. +/** +* Prepares the Canvas renderer to cache the sprite +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObjectCanvas = function( renderer ) { if(this._cachedSprite) @@ -171,7 +203,7 @@ this.renderCanvas = this._renderCachedCanvas; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -182,13 +214,23 @@ this.hitTest = this._cachedSprite.hitTest.bind(this._cachedSprite); }; -DisplayObject.prototype._getCahcedBounds = function() +/** +* Calculates the bounds of the cached sprite +* +* @private +*/ +DisplayObject.prototype._getCachedBounds = function() { this._cachedSprite._currentBounds = null; return this._cachedSprite.getBounds(); }; +/** +* Destroys the cached sprite. +* +* @private +*/ DisplayObject.prototype._destroyCachedDisplayObject = function() { this._cachedSprite._texture.destroy(); diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/src/deprecation.js b/src/deprecation.js new file mode 100644 index 0000000..60d052f --- /dev/null +++ b/src/deprecation.js @@ -0,0 +1,37 @@ +var core = require('./core'), + text = require('./text'); + +core.Stage = function () +{ + window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container."); + return new core.Container(); +}; + +core.SpriteBatch = function () +{ + window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead."); +}; + +core.AssetsLoader = function () { + window.console.warn("The loader system was overhauled in pixi v3, please see the new PIXI.Loader class."); +}; + +core.Sprite.prototype.setTexture = function (texture) +{ + this.texture = texture; + window.console.warn("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;"); +}; + +text.BitmapText.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';"); +}; + +text.Text.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';"); +}; + +module.exports = {}; diff --git a/src/extras/Strip.js b/src/extras/Strip.js index 3e0ef1b..b327c8a 100644 --- a/src/extras/Strip.js +++ b/src/extras/Strip.js @@ -249,14 +249,8 @@ * * @param renderer {CanvasRenderer} */ -Strip.prototype.renderCanvas = function (renderer) +Strip.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || !this.renderable) - { - return; - } - var context = renderer.context; var transform = this.worldTransform; diff --git a/src/extras/TilingSprite.js b/src/extras/TilingSprite.js index b8431de..e274c8f 100644 --- a/src/extras/TilingSprite.js +++ b/src/extras/TilingSprite.js @@ -214,20 +214,10 @@ * * @param renderer {CanvasRenderer} a reference to the canvas renderer */ -TilingSprite.prototype.renderCanvas = function (renderer) +TilingSprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0) - { - return; - } - var context = renderer.context; - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - context.globalAlpha = this.worldAlpha; var transform = this.worldTransform; @@ -283,16 +273,6 @@ context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); context.scale(1 / tileScale.x, 1 / tileScale.y); - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } - - for (i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } }; diff --git a/src/extras/cacheAsBitmap.js b/src/extras/cacheAsBitmap.js index 20f2b99..9fe88df 100644 --- a/src/extras/cacheAsBitmap.js +++ b/src/extras/cacheAsBitmap.js @@ -17,6 +17,15 @@ Object.defineProperties(DisplayObject.prototype, { + + /** + * Set this to true if you want this display object to be cached as a bitmap. + * This basically takes a snap shot of the display object as it is at that moment. It can provide a performance benefit for complex static displayObjects. + * To remove simply set this property to 'null' + * + * @member {boolean} + * @memberof DisplayObject# + */ cacheAsBitmap: { get: function () { @@ -60,12 +69,17 @@ this.getBounds = this._originalGetBounds; this.updateTransform = this._originalUpdateTransform; - this.containsPoint = this._originalContainesPoint; + this.containsPoint = this._originalContainsPoint; } } } }); - +/** +* Renders a cached version of the sprite with WebGL +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._renderCachedWebGL = function(renderer) { this._initCachedDisplayObject( renderer ); @@ -76,6 +90,12 @@ renderer.plugins.sprite.render( this._cachedSprite ); }; +/** +* Prepares the WebGL renderer to cache the sprite +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObject = function( renderer ) { if(this._cachedSprite) @@ -83,6 +103,7 @@ return; } + // first we flush anything left in the renderer (otherwise it would get rendered to the cached texture) renderer.currentRenderer.flush(); //this.filters= []; @@ -117,7 +138,7 @@ this.renderWebGL = this._renderCachedWebGL; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -130,7 +151,12 @@ this.containsPoint = this._cachedSprite.containsPoint.bind(this._cachedSprite); }; - +/** +* Renders a cached version of the sprite with canvas +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._renderCachedCanvas = function(renderer) { this._initCachedDisplayObjectCanvas( renderer ); @@ -141,6 +167,12 @@ }; //TODO this can be the same as the webGL verison.. will need to do a little tweaking first though.. +/** +* Prepares the Canvas renderer to cache the sprite +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObjectCanvas = function( renderer ) { if(this._cachedSprite) @@ -171,7 +203,7 @@ this.renderCanvas = this._renderCachedCanvas; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -182,13 +214,23 @@ this.hitTest = this._cachedSprite.hitTest.bind(this._cachedSprite); }; -DisplayObject.prototype._getCahcedBounds = function() +/** +* Calculates the bounds of the cached sprite +* +* @private +*/ +DisplayObject.prototype._getCachedBounds = function() { this._cachedSprite._currentBounds = null; return this._cachedSprite.getBounds(); }; +/** +* Destroys the cached sprite. +* +* @private +*/ DisplayObject.prototype._destroyCachedDisplayObject = function() { this._cachedSprite._texture.destroy(); diff --git a/src/index.js b/src/index.js index f864027..e3622fb 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,5 @@ -var core = module.exports = require('./core'); +var core = require('./core'), + deprecation = require('./deprecation'); // plugins: core.extras = require('./extras'); @@ -7,3 +8,5 @@ core.loaders = require('./loaders'); core.spine = require('./spine'); core.text = require('./text'); + +module.exports = core; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/src/deprecation.js b/src/deprecation.js new file mode 100644 index 0000000..60d052f --- /dev/null +++ b/src/deprecation.js @@ -0,0 +1,37 @@ +var core = require('./core'), + text = require('./text'); + +core.Stage = function () +{ + window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container."); + return new core.Container(); +}; + +core.SpriteBatch = function () +{ + window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead."); +}; + +core.AssetsLoader = function () { + window.console.warn("The loader system was overhauled in pixi v3, please see the new PIXI.Loader class."); +}; + +core.Sprite.prototype.setTexture = function (texture) +{ + this.texture = texture; + window.console.warn("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;"); +}; + +text.BitmapText.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';"); +}; + +text.Text.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';"); +}; + +module.exports = {}; diff --git a/src/extras/Strip.js b/src/extras/Strip.js index 3e0ef1b..b327c8a 100644 --- a/src/extras/Strip.js +++ b/src/extras/Strip.js @@ -249,14 +249,8 @@ * * @param renderer {CanvasRenderer} */ -Strip.prototype.renderCanvas = function (renderer) +Strip.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || !this.renderable) - { - return; - } - var context = renderer.context; var transform = this.worldTransform; diff --git a/src/extras/TilingSprite.js b/src/extras/TilingSprite.js index b8431de..e274c8f 100644 --- a/src/extras/TilingSprite.js +++ b/src/extras/TilingSprite.js @@ -214,20 +214,10 @@ * * @param renderer {CanvasRenderer} a reference to the canvas renderer */ -TilingSprite.prototype.renderCanvas = function (renderer) +TilingSprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0) - { - return; - } - var context = renderer.context; - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - context.globalAlpha = this.worldAlpha; var transform = this.worldTransform; @@ -283,16 +273,6 @@ context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); context.scale(1 / tileScale.x, 1 / tileScale.y); - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } - - for (i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } }; diff --git a/src/extras/cacheAsBitmap.js b/src/extras/cacheAsBitmap.js index 20f2b99..9fe88df 100644 --- a/src/extras/cacheAsBitmap.js +++ b/src/extras/cacheAsBitmap.js @@ -17,6 +17,15 @@ Object.defineProperties(DisplayObject.prototype, { + + /** + * Set this to true if you want this display object to be cached as a bitmap. + * This basically takes a snap shot of the display object as it is at that moment. It can provide a performance benefit for complex static displayObjects. + * To remove simply set this property to 'null' + * + * @member {boolean} + * @memberof DisplayObject# + */ cacheAsBitmap: { get: function () { @@ -60,12 +69,17 @@ this.getBounds = this._originalGetBounds; this.updateTransform = this._originalUpdateTransform; - this.containsPoint = this._originalContainesPoint; + this.containsPoint = this._originalContainsPoint; } } } }); - +/** +* Renders a cached version of the sprite with WebGL +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._renderCachedWebGL = function(renderer) { this._initCachedDisplayObject( renderer ); @@ -76,6 +90,12 @@ renderer.plugins.sprite.render( this._cachedSprite ); }; +/** +* Prepares the WebGL renderer to cache the sprite +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObject = function( renderer ) { if(this._cachedSprite) @@ -83,6 +103,7 @@ return; } + // first we flush anything left in the renderer (otherwise it would get rendered to the cached texture) renderer.currentRenderer.flush(); //this.filters= []; @@ -117,7 +138,7 @@ this.renderWebGL = this._renderCachedWebGL; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -130,7 +151,12 @@ this.containsPoint = this._cachedSprite.containsPoint.bind(this._cachedSprite); }; - +/** +* Renders a cached version of the sprite with canvas +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._renderCachedCanvas = function(renderer) { this._initCachedDisplayObjectCanvas( renderer ); @@ -141,6 +167,12 @@ }; //TODO this can be the same as the webGL verison.. will need to do a little tweaking first though.. +/** +* Prepares the Canvas renderer to cache the sprite +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObjectCanvas = function( renderer ) { if(this._cachedSprite) @@ -171,7 +203,7 @@ this.renderCanvas = this._renderCachedCanvas; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -182,13 +214,23 @@ this.hitTest = this._cachedSprite.hitTest.bind(this._cachedSprite); }; -DisplayObject.prototype._getCahcedBounds = function() +/** +* Calculates the bounds of the cached sprite +* +* @private +*/ +DisplayObject.prototype._getCachedBounds = function() { this._cachedSprite._currentBounds = null; return this._cachedSprite.getBounds(); }; +/** +* Destroys the cached sprite. +* +* @private +*/ DisplayObject.prototype._destroyCachedDisplayObject = function() { this._cachedSprite._texture.destroy(); diff --git a/src/index.js b/src/index.js index f864027..e3622fb 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,5 @@ -var core = module.exports = require('./core'); +var core = require('./core'), + deprecation = require('./deprecation'); // plugins: core.extras = require('./extras'); @@ -7,3 +8,5 @@ core.loaders = require('./loaders'); core.spine = require('./spine'); core.text = require('./text'); + +module.exports = core; diff --git a/src/loaders/bitmapFontParser.js b/src/loaders/bitmapFontParser.js index 1c8b400..f0551a1 100644 --- a/src/loaders/bitmapFontParser.js +++ b/src/loaders/bitmapFontParser.js @@ -1,5 +1,6 @@ var Resource = require('resource-loader').Resource, - core = require('../core'); + core = require('../core'), + text = require('../text'); module.exports = function () { @@ -84,6 +85,10 @@ resource.bitmapFont = data; + // I'm leaving this as a temporary fix so we can test the bitmap fonts in v3 + // but it's very likely to change + text.BitmapText.fonts[data.font] = data; + next(); }); }; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/src/deprecation.js b/src/deprecation.js new file mode 100644 index 0000000..60d052f --- /dev/null +++ b/src/deprecation.js @@ -0,0 +1,37 @@ +var core = require('./core'), + text = require('./text'); + +core.Stage = function () +{ + window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container."); + return new core.Container(); +}; + +core.SpriteBatch = function () +{ + window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead."); +}; + +core.AssetsLoader = function () { + window.console.warn("The loader system was overhauled in pixi v3, please see the new PIXI.Loader class."); +}; + +core.Sprite.prototype.setTexture = function (texture) +{ + this.texture = texture; + window.console.warn("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;"); +}; + +text.BitmapText.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';"); +}; + +text.Text.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';"); +}; + +module.exports = {}; diff --git a/src/extras/Strip.js b/src/extras/Strip.js index 3e0ef1b..b327c8a 100644 --- a/src/extras/Strip.js +++ b/src/extras/Strip.js @@ -249,14 +249,8 @@ * * @param renderer {CanvasRenderer} */ -Strip.prototype.renderCanvas = function (renderer) +Strip.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || !this.renderable) - { - return; - } - var context = renderer.context; var transform = this.worldTransform; diff --git a/src/extras/TilingSprite.js b/src/extras/TilingSprite.js index b8431de..e274c8f 100644 --- a/src/extras/TilingSprite.js +++ b/src/extras/TilingSprite.js @@ -214,20 +214,10 @@ * * @param renderer {CanvasRenderer} a reference to the canvas renderer */ -TilingSprite.prototype.renderCanvas = function (renderer) +TilingSprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0) - { - return; - } - var context = renderer.context; - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - context.globalAlpha = this.worldAlpha; var transform = this.worldTransform; @@ -283,16 +273,6 @@ context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); context.scale(1 / tileScale.x, 1 / tileScale.y); - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } - - for (i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } }; diff --git a/src/extras/cacheAsBitmap.js b/src/extras/cacheAsBitmap.js index 20f2b99..9fe88df 100644 --- a/src/extras/cacheAsBitmap.js +++ b/src/extras/cacheAsBitmap.js @@ -17,6 +17,15 @@ Object.defineProperties(DisplayObject.prototype, { + + /** + * Set this to true if you want this display object to be cached as a bitmap. + * This basically takes a snap shot of the display object as it is at that moment. It can provide a performance benefit for complex static displayObjects. + * To remove simply set this property to 'null' + * + * @member {boolean} + * @memberof DisplayObject# + */ cacheAsBitmap: { get: function () { @@ -60,12 +69,17 @@ this.getBounds = this._originalGetBounds; this.updateTransform = this._originalUpdateTransform; - this.containsPoint = this._originalContainesPoint; + this.containsPoint = this._originalContainsPoint; } } } }); - +/** +* Renders a cached version of the sprite with WebGL +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._renderCachedWebGL = function(renderer) { this._initCachedDisplayObject( renderer ); @@ -76,6 +90,12 @@ renderer.plugins.sprite.render( this._cachedSprite ); }; +/** +* Prepares the WebGL renderer to cache the sprite +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObject = function( renderer ) { if(this._cachedSprite) @@ -83,6 +103,7 @@ return; } + // first we flush anything left in the renderer (otherwise it would get rendered to the cached texture) renderer.currentRenderer.flush(); //this.filters= []; @@ -117,7 +138,7 @@ this.renderWebGL = this._renderCachedWebGL; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -130,7 +151,12 @@ this.containsPoint = this._cachedSprite.containsPoint.bind(this._cachedSprite); }; - +/** +* Renders a cached version of the sprite with canvas +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._renderCachedCanvas = function(renderer) { this._initCachedDisplayObjectCanvas( renderer ); @@ -141,6 +167,12 @@ }; //TODO this can be the same as the webGL verison.. will need to do a little tweaking first though.. +/** +* Prepares the Canvas renderer to cache the sprite +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObjectCanvas = function( renderer ) { if(this._cachedSprite) @@ -171,7 +203,7 @@ this.renderCanvas = this._renderCachedCanvas; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -182,13 +214,23 @@ this.hitTest = this._cachedSprite.hitTest.bind(this._cachedSprite); }; -DisplayObject.prototype._getCahcedBounds = function() +/** +* Calculates the bounds of the cached sprite +* +* @private +*/ +DisplayObject.prototype._getCachedBounds = function() { this._cachedSprite._currentBounds = null; return this._cachedSprite.getBounds(); }; +/** +* Destroys the cached sprite. +* +* @private +*/ DisplayObject.prototype._destroyCachedDisplayObject = function() { this._cachedSprite._texture.destroy(); diff --git a/src/index.js b/src/index.js index f864027..e3622fb 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,5 @@ -var core = module.exports = require('./core'); +var core = require('./core'), + deprecation = require('./deprecation'); // plugins: core.extras = require('./extras'); @@ -7,3 +8,5 @@ core.loaders = require('./loaders'); core.spine = require('./spine'); core.text = require('./text'); + +module.exports = core; diff --git a/src/loaders/bitmapFontParser.js b/src/loaders/bitmapFontParser.js index 1c8b400..f0551a1 100644 --- a/src/loaders/bitmapFontParser.js +++ b/src/loaders/bitmapFontParser.js @@ -1,5 +1,6 @@ var Resource = require('resource-loader').Resource, - core = require('../core'); + core = require('../core'), + text = require('../text'); module.exports = function () { @@ -84,6 +85,10 @@ resource.bitmapFont = data; + // I'm leaving this as a temporary fix so we can test the bitmap fonts in v3 + // but it's very likely to change + text.BitmapText.fonts[data.font] = data; + next(); }); }; diff --git a/src/text/BitmapText.js b/src/text/BitmapText.js index 2ffd2b4..898b468 100644 --- a/src/text/BitmapText.js +++ b/src/text/BitmapText.js @@ -10,7 +10,7 @@ * // in this case the font is in a file called 'desyrel.fnt' * var bitmapText = new PIXI.BitmapText("text using a fancy font!", {font: "35px Desyrel", align: "right"}); * ``` - * + * * * http://www.angelcode.com/products/bmfont/ for windows or * http://www.bmglyph.com/ for mac. @@ -203,7 +203,7 @@ */ BitmapText.prototype.updateText = function () { - var data = BitmapText.fonts[this.fontName]; + var data = BitmapText.fonts[this._style.fontName]; var pos = new core.math.Point(); var prevCharCode = null; var chars = []; @@ -275,11 +275,11 @@ { var alignOffset = 0; - if (this.style.align === 'right') + if (this._style.align === 'right') { alignOffset = maxLineWidth - lineWidths[i]; } - else if (this.style.align === 'center') + else if (this._style.align === 'center') { alignOffset = (maxLineWidth - lineWidths[i]) / 2; } @@ -341,9 +341,4 @@ this.containerUpdateTransform(); }; -BitmapText.prototype.setText = function () -{ - window.console.warn(" setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text'; "); -}; - BitmapText.fonts = {}; diff --git a/README.md b/README.md index cb417e9..f6d9bef 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ of course check back on [our site]() as any breakthroughs will be posted up there too! +[![Inline docs](http://inch-ci.org/github/GoodBoyDigital/pixi.js.svg?branch=dev)](http://inch-ci.org/github/GoodBoyDigital/pixi.js) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/GoodBoyDigital/pixi.js/trend.png)](https://bitdeli.com/free "Bitdeli Badge") ### Demos ### diff --git a/inch.json b/inch.json index 9ca46c5..a5bc4c0 100644 --- a/inch.json +++ b/inch.json @@ -1,8 +1,10 @@ { "files": { - // Config file for the docs badge, http://inch-ci.org/github/GoodBoyDigital/pixi.js + "included": [ + "src/**/*.js" + ], "excluded": [ - "src/spine/Spine.js" + "src/spine/SpineRuntime.js" ] } -} \ No newline at end of file +} diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5b97a75..5f9e229 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -490,7 +490,7 @@ /** * To be overridden by the subclass - * + * * @param renderer {WebGLRenderer} The renderer * @private */ @@ -499,6 +499,16 @@ // this is where content itself gets rendered... }; +/** + * To be overridden by the subclass + * + * @param renderer {CanvasRenderer} The renderer + * @private + */ +Container.prototype._renderCanvas = function (renderer) +{ + // this is where content itself gets rendered... +}; /** @@ -508,6 +518,7 @@ */ Container.prototype.renderCanvas = function (renderer) { + // if not visible or the alpha is 0 then no need to render this if (!this.visible || this.alpha <= 0 || !this.renderable) { return; @@ -518,6 +529,7 @@ renderer.maskManager.pushMask(this._mask, renderer); } + this._renderCanvas(renderer); for (var i = 0, j = this.children.length; i < j; ++i) { this.children[i].renderCanvas(renderer); diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index 2f58716..6d923b5 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -743,10 +743,9 @@ * @param renderer {CanvasRenderer} * @private */ -Graphics.prototype.renderCanvas = function (renderer) +Graphics.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || this.isMask === true || !this.renderable) + if (this.isMask === true) { return; } @@ -772,7 +771,7 @@ this._cachedSprite.alpha = this.alpha; - Sprite.prototype.renderCanvas.call(this._cachedSprite, renderer); + Sprite.prototype._renderCanvas.call(this._cachedSprite, renderer); return; } @@ -787,11 +786,6 @@ context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - var resolution = renderer.resolution; context.setTransform( transform.a * resolution, @@ -803,16 +797,6 @@ ); CanvasGraphics.renderGraphics(this, context); - - for (var i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } } }; diff --git a/src/core/index.js b/src/core/index.js index b67c15a..dcbf19d 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -80,16 +80,6 @@ } return new core.CanvasRenderer(width, height, options); - }, - - Stage: function () - { - window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container"); - return new core.Container(); - }, - - SpriteBatch: function () { - window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead"); } }; diff --git a/src/core/particles/ParticleContainer.js b/src/core/particles/ParticleContainer.js index 823fc78..cf2b4c0 100644 --- a/src/core/particles/ParticleContainer.js +++ b/src/core/particles/ParticleContainer.js @@ -66,7 +66,7 @@ /** * @member {boolean} - * + * */ this.interactiveChildren = false; diff --git a/src/core/sprites/Sprite.js b/src/core/sprites/Sprite.js index e3c6b54..024d155 100644 --- a/src/core/sprites/Sprite.js +++ b/src/core/sprites/Sprite.js @@ -361,9 +361,9 @@ * * @param renderer {CanvasRenderer} The renderer */ -Sprite.prototype.renderCanvas = function (renderer) +Sprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0 || this.texture.crop.width <= 0 || this.texture.crop.height <= 0 || !this.renderable) + if (this.texture.crop.width <= 0 || this.texture.crop.height <= 0) { return; } @@ -374,11 +374,6 @@ renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode]; } - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - // Ignore null sources if (this.texture.valid) { @@ -498,21 +493,6 @@ ); } } - - for (var i = 0, j = this.children.length; i < j; i++) - { - this.children[i].renderCanvas(renderer); - } - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } -}; - -Sprite.prototype.setTexture = function () -{ - window.console.warn('setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture; '); }; // some helper functions.. diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 9b38581..7339b24 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -72,26 +72,29 @@ */ canUseNewCanvasBlendModes: function () { - if (typeof document === 'undefined') - { - return false; - } + if (typeof document === 'undefined') return false; - var canvas = document.createElement('canvas'), - context = canvas.getContext('2d'); + var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; + var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - canvas.width = 1; + var magenta = new Image(); + magenta.src = pngHead + 'AP804Oa6' + pngEnd; + + var yellow = new Image(); + yellow.src = pngHead + '/wCKxvRF' + pngEnd; + + var canvas = document.createElement('canvas'); + canvas.width = 6; canvas.height = 1; - context.fillStyle = '#000'; - context.fillRect(0, 0, 1, 1); - + var context = canvas.getContext('2d'); context.globalCompositeOperation = 'multiply'; + context.drawImage(magenta, 0, 0); + context.drawImage(yellow, 2, 0); - context.fillStyle = '#fff'; - context.fillRect(0, 0, 1, 1); + var data = context.getImageData(2,0,1,1).data; - return context.getImageData(0,0,1,1).data[0] === 0; + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }, /** diff --git a/src/deprecation.js b/src/deprecation.js new file mode 100644 index 0000000..60d052f --- /dev/null +++ b/src/deprecation.js @@ -0,0 +1,37 @@ +var core = require('./core'), + text = require('./text'); + +core.Stage = function () +{ + window.console.warn("You don't need to use a PIXI Stage any more, you can simply render any container."); + return new core.Container(); +}; + +core.SpriteBatch = function () +{ + window.console.warn("SpriteBatch doesn't exist any more, please use the new ParticleContainer instead."); +}; + +core.AssetsLoader = function () { + window.console.warn("The loader system was overhauled in pixi v3, please see the new PIXI.Loader class."); +}; + +core.Sprite.prototype.setTexture = function (texture) +{ + this.texture = texture; + window.console.warn("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;"); +}; + +text.BitmapText.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';"); +}; + +text.Text.prototype.setText = function (text) +{ + this.text = text; + window.console.warn("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';"); +}; + +module.exports = {}; diff --git a/src/extras/Strip.js b/src/extras/Strip.js index 3e0ef1b..b327c8a 100644 --- a/src/extras/Strip.js +++ b/src/extras/Strip.js @@ -249,14 +249,8 @@ * * @param renderer {CanvasRenderer} */ -Strip.prototype.renderCanvas = function (renderer) +Strip.prototype._renderCanvas = function (renderer) { - // if the sprite is not visible or the alpha is 0 then no need to render this element - if (!this.visible || this.alpha <= 0 || !this.renderable) - { - return; - } - var context = renderer.context; var transform = this.worldTransform; diff --git a/src/extras/TilingSprite.js b/src/extras/TilingSprite.js index b8431de..e274c8f 100644 --- a/src/extras/TilingSprite.js +++ b/src/extras/TilingSprite.js @@ -214,20 +214,10 @@ * * @param renderer {CanvasRenderer} a reference to the canvas renderer */ -TilingSprite.prototype.renderCanvas = function (renderer) +TilingSprite.prototype._renderCanvas = function (renderer) { - if (!this.visible || this.alpha <= 0) - { - return; - } - var context = renderer.context; - if (this._mask) - { - renderer.maskManager.pushMask(this._mask, renderer); - } - context.globalAlpha = this.worldAlpha; var transform = this.worldTransform; @@ -283,16 +273,6 @@ context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); context.scale(1 / tileScale.x, 1 / tileScale.y); - - if (this._mask) - { - renderer.maskManager.popMask(renderer); - } - - for (i = 0, j = this.children.length; i < j; ++i) - { - this.children[i].renderCanvas(renderer); - } }; diff --git a/src/extras/cacheAsBitmap.js b/src/extras/cacheAsBitmap.js index 20f2b99..9fe88df 100644 --- a/src/extras/cacheAsBitmap.js +++ b/src/extras/cacheAsBitmap.js @@ -17,6 +17,15 @@ Object.defineProperties(DisplayObject.prototype, { + + /** + * Set this to true if you want this display object to be cached as a bitmap. + * This basically takes a snap shot of the display object as it is at that moment. It can provide a performance benefit for complex static displayObjects. + * To remove simply set this property to 'null' + * + * @member {boolean} + * @memberof DisplayObject# + */ cacheAsBitmap: { get: function () { @@ -60,12 +69,17 @@ this.getBounds = this._originalGetBounds; this.updateTransform = this._originalUpdateTransform; - this.containsPoint = this._originalContainesPoint; + this.containsPoint = this._originalContainsPoint; } } } }); - +/** +* Renders a cached version of the sprite with WebGL +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._renderCachedWebGL = function(renderer) { this._initCachedDisplayObject( renderer ); @@ -76,6 +90,12 @@ renderer.plugins.sprite.render( this._cachedSprite ); }; +/** +* Prepares the WebGL renderer to cache the sprite +* +* @param renderer {WebGLRenderer} the WebGL renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObject = function( renderer ) { if(this._cachedSprite) @@ -83,6 +103,7 @@ return; } + // first we flush anything left in the renderer (otherwise it would get rendered to the cached texture) renderer.currentRenderer.flush(); //this.filters= []; @@ -117,7 +138,7 @@ this.renderWebGL = this._renderCachedWebGL; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -130,7 +151,12 @@ this.containsPoint = this._cachedSprite.containsPoint.bind(this._cachedSprite); }; - +/** +* Renders a cached version of the sprite with canvas +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._renderCachedCanvas = function(renderer) { this._initCachedDisplayObjectCanvas( renderer ); @@ -141,6 +167,12 @@ }; //TODO this can be the same as the webGL verison.. will need to do a little tweaking first though.. +/** +* Prepares the Canvas renderer to cache the sprite +* +* @param renderer {CanvasRenderer} the Canvas renderer +* @private +*/ DisplayObject.prototype._initCachedDisplayObjectCanvas = function( renderer ) { if(this._cachedSprite) @@ -171,7 +203,7 @@ this.renderCanvas = this._renderCachedCanvas; this.updateTransform = this.displayObjectUpdateTransform; - this.getBounds = this._getCahcedBounds; + this.getBounds = this._getCachedBounds; // create our cached sprite @@ -182,13 +214,23 @@ this.hitTest = this._cachedSprite.hitTest.bind(this._cachedSprite); }; -DisplayObject.prototype._getCahcedBounds = function() +/** +* Calculates the bounds of the cached sprite +* +* @private +*/ +DisplayObject.prototype._getCachedBounds = function() { this._cachedSprite._currentBounds = null; return this._cachedSprite.getBounds(); }; +/** +* Destroys the cached sprite. +* +* @private +*/ DisplayObject.prototype._destroyCachedDisplayObject = function() { this._cachedSprite._texture.destroy(); diff --git a/src/index.js b/src/index.js index f864027..e3622fb 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,5 @@ -var core = module.exports = require('./core'); +var core = require('./core'), + deprecation = require('./deprecation'); // plugins: core.extras = require('./extras'); @@ -7,3 +8,5 @@ core.loaders = require('./loaders'); core.spine = require('./spine'); core.text = require('./text'); + +module.exports = core; diff --git a/src/loaders/bitmapFontParser.js b/src/loaders/bitmapFontParser.js index 1c8b400..f0551a1 100644 --- a/src/loaders/bitmapFontParser.js +++ b/src/loaders/bitmapFontParser.js @@ -1,5 +1,6 @@ var Resource = require('resource-loader').Resource, - core = require('../core'); + core = require('../core'), + text = require('../text'); module.exports = function () { @@ -84,6 +85,10 @@ resource.bitmapFont = data; + // I'm leaving this as a temporary fix so we can test the bitmap fonts in v3 + // but it's very likely to change + text.BitmapText.fonts[data.font] = data; + next(); }); }; diff --git a/src/text/BitmapText.js b/src/text/BitmapText.js index 2ffd2b4..898b468 100644 --- a/src/text/BitmapText.js +++ b/src/text/BitmapText.js @@ -10,7 +10,7 @@ * // in this case the font is in a file called 'desyrel.fnt' * var bitmapText = new PIXI.BitmapText("text using a fancy font!", {font: "35px Desyrel", align: "right"}); * ``` - * + * * * http://www.angelcode.com/products/bmfont/ for windows or * http://www.bmglyph.com/ for mac. @@ -203,7 +203,7 @@ */ BitmapText.prototype.updateText = function () { - var data = BitmapText.fonts[this.fontName]; + var data = BitmapText.fonts[this._style.fontName]; var pos = new core.math.Point(); var prevCharCode = null; var chars = []; @@ -275,11 +275,11 @@ { var alignOffset = 0; - if (this.style.align === 'right') + if (this._style.align === 'right') { alignOffset = maxLineWidth - lineWidths[i]; } - else if (this.style.align === 'center') + else if (this._style.align === 'center') { alignOffset = (maxLineWidth - lineWidths[i]) / 2; } @@ -341,9 +341,4 @@ this.containerUpdateTransform(); }; -BitmapText.prototype.setText = function () -{ - window.console.warn(" setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text'; "); -}; - BitmapText.fonts = {}; diff --git a/src/text/Text.js b/src/text/Text.js index 000815b..0eec0e8 100644 --- a/src/text/Text.js +++ b/src/text/Text.js @@ -362,7 +362,7 @@ * * @param renderer {CanvasRenderer} */ -Text.prototype.renderCanvas = function (renderer) +Text.prototype._renderCanvas = function (renderer) { if (this.dirty) { @@ -371,7 +371,7 @@ this.updateText(); } - core.Sprite.prototype.renderCanvas.call(this, renderer); + core.Sprite.prototype._renderCanvas.call(this, renderer); }; /** @@ -553,8 +553,3 @@ this._texture.destroy(destroyBaseTexture === undefined ? true : destroyBaseTexture); }; - -Text.prototype.setText = function () -{ - window.console.warn(" setText is now deprecated, please use the text property, e.g : myText.text = 'my text'; "); -};