Skip to content

Commit 318cc87

Browse files
committed
Use proper matrix for static layer, so we can do fun things with Render Textures
1 parent 8135b68 commit 318cc87

1 file changed

Lines changed: 17 additions & 6 deletions

File tree

src/tilemaps/staticlayer/StaticTilemapLayerCanvasRenderer.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,25 @@ var StaticTilemapLayerCanvasRenderer = function (renderer, src, interpolationPer
2828
var tileCount = renderTiles.length;
2929

3030
var image = tileset.image.getSourceImage();
31-
var tx = src.x - camera.scrollX * src.scrollFactorX;
32-
var ty = src.y - camera.scrollY * src.scrollFactorY;
31+
32+
var camMatrix = renderer._tempMatrix1;
33+
var layerMatrix = renderer._tempMatrix2;
34+
var calcMatrix = renderer._tempMatrix3;
35+
36+
layerMatrix.applyITRS(src.x, src.y, src.rotation, src.scaleX, src.scaleY);
3337

3438
ctx.save();
35-
ctx.translate(tx, ty);
36-
ctx.rotate(src.rotation);
37-
ctx.scale(src.scaleX, src.scaleY);
38-
ctx.scale(src.flipX ? -1 : 1, src.flipY ? -1 : 1);
39+
40+
camMatrix.copyFrom(camera.matrix);
41+
42+
layerMatrix.e -= camera.scrollX * src.scrollFactorX;
43+
layerMatrix.f -= camera.scrollY * src.scrollFactorY;
44+
45+
// Multiply by the Sprite matrix, store result in calcMatrix
46+
camMatrix.multiply(layerMatrix, calcMatrix);
47+
48+
calcMatrix.copyToContext(ctx);
49+
3950
ctx.globalAlpha = camera.alpha * src.alpha;
4051

4152
for (var index = 0; index < tileCount; ++index)

0 commit comments

Comments
 (0)