Skip to content

Commit 259b702

Browse files
authored
Merge pull request phaserjs#5193 from scott20145/master
Fix nested mask behaviour for Phaser.CANVAS mode
2 parents 92a4b5a + ea3279b commit 259b702

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/gameobjects/container/ContainerCanvasRenderer.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,11 @@ var ContainerCanvasRenderer = function (renderer, container, interpolationPercen
5555
var alpha = container._alpha;
5656
var scrollFactorX = container.scrollFactorX;
5757
var scrollFactorY = container.scrollFactorY;
58-
58+
59+
if (container.mask) {
60+
container.mask.preRenderCanvas(renderer, null, camera);
61+
}
62+
5963
for (var i = 0; i < children.length; i++)
6064
{
6165
var child = children[i];
@@ -86,6 +90,11 @@ var ContainerCanvasRenderer = function (renderer, container, interpolationPercen
8690
child.setAlpha(childAlpha);
8791
child.setScrollFactor(childScrollFactorX, childScrollFactorY);
8892
}
93+
94+
if (container.mask) {
95+
container.mask.postRenderCanvas(renderer);
96+
}
97+
8998
};
9099

91100
module.exports = ContainerCanvasRenderer;

src/renderer/canvas/CanvasRenderer.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -766,9 +766,17 @@ var CanvasRenderer = new Class({
766766
ctx.globalAlpha = alpha;
767767

768768
ctx.imageSmoothingEnabled = !(!this.antialias || frame.source.scaleMode);
769+
770+
if (sprite.mask) {
771+
sprite.mask.preRenderCanvas(this, sprite, camera);
772+
}
769773

770774
ctx.drawImage(frame.source.image, frameX, frameY, frameWidth, frameHeight, x, y, frameWidth / res, frameHeight / res);
771775

776+
if (sprite.mask) {
777+
sprite.mask.postRenderCanvas(this, sprite, camera);
778+
}
779+
772780
ctx.restore();
773781
},
774782

0 commit comments

Comments
 (0)