mirror of
https://github.com/photonstorm/phaser
synced 2025-02-17 14:38:30 +00:00
#3673 fix nested mask behaviour for Phaser.CANVAS mode
This commit is contained in:
parent
58d40fa9e0
commit
f607f1f521
2 changed files with 20 additions and 3 deletions
|
@ -54,7 +54,12 @@ var ContainerCanvasRenderer = function (renderer, container, interpolationPercen
|
|||
|
||||
var alpha = container._alpha;
|
||||
var scrollFactorX = container.scrollFactorX;
|
||||
var scrollFactorY = container.scrollFactorY;
|
||||
var scrollFactorY = container.scrollFactorY;
|
||||
|
||||
if (container.mask) {
|
||||
container.mask.preRenderCanvas(renderer, null, camera);
|
||||
}
|
||||
|
||||
|
||||
for (var i = 0; i < children.length; i++)
|
||||
{
|
||||
|
@ -85,7 +90,11 @@ var ContainerCanvasRenderer = function (renderer, container, interpolationPercen
|
|||
// Restore original values
|
||||
child.setAlpha(childAlpha);
|
||||
child.setScrollFactor(childScrollFactorX, childScrollFactorY);
|
||||
}
|
||||
}
|
||||
|
||||
if (container.mask) {
|
||||
container.mask.postRenderCanvas(renderer);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = ContainerCanvasRenderer;
|
||||
|
|
|
@ -765,10 +765,18 @@ var CanvasRenderer = new Class({
|
|||
|
||||
ctx.globalAlpha = alpha;
|
||||
|
||||
ctx.imageSmoothingEnabled = !(!this.antialias || frame.source.scaleMode);
|
||||
ctx.imageSmoothingEnabled = !(!this.antialias || frame.source.scaleMode);
|
||||
|
||||
if (sprite.mask) {
|
||||
sprite.mask.preRenderCanvas(this, sprite, camera);
|
||||
}
|
||||
|
||||
ctx.drawImage(frame.source.image, frameX, frameY, frameWidth, frameHeight, x, y, frameWidth / res, frameHeight / res);
|
||||
|
||||
if (sprite.mask) {
|
||||
sprite.mask.postRenderCanvas(this, sprite, camera);
|
||||
}
|
||||
|
||||
ctx.restore();
|
||||
},
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue