diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5399755..e8f7832 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -472,7 +472,7 @@ renderCanvas(renderer) { // if not visible or the alpha is 0 then no need to render this - if (!this.visible || this.alpha <= 0 || !this.renderable) + if (!this.visible || this.worldAlpha <= 0 || !this.renderable) { return; } diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5399755..e8f7832 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -472,7 +472,7 @@ renderCanvas(renderer) { // if not visible or the alpha is 0 then no need to render this - if (!this.visible || this.alpha <= 0 || !this.renderable) + if (!this.visible || this.worldAlpha <= 0 || !this.renderable) { return; } diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 0ce75d2..6a070ed 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -18,7 +18,8 @@ * let sprite2 = new PIXI.Sprite(texture); * ``` * - * Textures made from SVGs, loaded or not, cannot be used before the file finishes processing. You can check for this by checking the sprite's _textureID property. + * Textures made from SVGs, loaded or not, cannot be used before the file finishes processing. + * You can check for this by checking the sprite's _textureID property. * ```js * var texture = PIXI.Texture.fromImage('assets/image.svg'); * var sprite1 = new PIXI.Sprite(texture); diff --git a/src/core/display/Container.js b/src/core/display/Container.js index 5399755..e8f7832 100644 --- a/src/core/display/Container.js +++ b/src/core/display/Container.js @@ -472,7 +472,7 @@ renderCanvas(renderer) { // if not visible or the alpha is 0 then no need to render this - if (!this.visible || this.alpha <= 0 || !this.renderable) + if (!this.visible || this.worldAlpha <= 0 || !this.renderable) { return; } diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 0ce75d2..6a070ed 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -18,7 +18,8 @@ * let sprite2 = new PIXI.Sprite(texture); * ``` * - * Textures made from SVGs, loaded or not, cannot be used before the file finishes processing. You can check for this by checking the sprite's _textureID property. + * Textures made from SVGs, loaded or not, cannot be used before the file finishes processing. + * You can check for this by checking the sprite's _textureID property. * ```js * var texture = PIXI.Texture.fromImage('assets/image.svg'); * var sprite1 = new PIXI.Sprite(texture); diff --git a/test/core/Container.js b/test/core/Container.js index 17658ef..5249107 100644 --- a/test/core/Container.js +++ b/test/core/Container.js @@ -358,6 +358,57 @@ }); }); + describe('render', () => + { + it('should not render when object not visible', () => + { + const container = new PIXI.Container(); + + container.visible = false; + + assertWebGLNotRendered(container); + assertCanvasNotRendered(container); + }); + + it('should not render when alpha is zero', () => + { + const container = new PIXI.Container(); + + container.worldAlpha = 0; + + assertWebGLNotRendered(container); + assertCanvasNotRendered(container); + }); + + it('should not render when object not renderable', () => + { + const container = new PIXI.Container(); + + container.renderable = false; + + assertWebGLNotRendered(container); + assertCanvasNotRendered(container); + }); + + it('should render children', () => + { + const container = new PIXI.Container(); + const child = new PIXI.Container(); + let canvasChildRendered = false; + let webGLChildRendered = false; + + container.addChild(child); + child._renderCanvas = () => { canvasChildRendered = true; }; + child._renderWebGL = () => { webGLChildRendered = true; }; + + container.renderWebGL(); + expect(webGLChildRendered).to.be.true; + + container.renderCanvas(); + expect(canvasChildRendered).to.be.true; + }); + }); + describe('removeChildren', () => { it('should remove all children when no arguments supplied', () => @@ -527,6 +578,24 @@ }); }); + function assertWebGLNotRendered(container) + { + let rendered = false; + + container._renderWebGL = () => { rendered = true; }; + container.renderWebGL(); + expect(rendered).to.be.false; + } + + function assertCanvasNotRendered(container) + { + let rendered = false; + + container._renderCanvas = () => { rendered = true; }; + container.renderCanvas(); + expect(rendered).to.be.false; + } + function assertCallToOnChildrenChanged(container, smallestIndex, functionToAssert) { let triggered = false;