Skip to content

Commit bc45286

Browse files
committed
tiling sprite render for atlas texture in sprite renderer
1 parent 5ed33c6 commit bc45286

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/drivers/canvas/SpriteRendererCanvas.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* @extends Renderer
55
* @cat drivers.canvas
66
*/
7+
78
/* @echo EXPORT */
89
class SpriteRendererCanvas extends Renderer {
910
constructor() {
@@ -194,7 +195,12 @@ class SpriteRendererCanvas extends Renderer {
194195
//}
195196

196197
if (this.pattern === null || this.patternTexture !== texture) {
197-
this.pattern = ctx.createPattern(texture.native, 'repeat');
198+
const renderCanvas = new RenderTargetCanvas(texture.width, texture.height);
199+
const r = texture.region;
200+
const u = texture.untrimmedRegion;
201+
renderCanvas.context.drawImage(texture.native, r.x, r.y, r.width, r.height, u.x, u.y, r.width, r.height);
202+
203+
this.pattern = ctx.createPattern(renderCanvas.native, 'repeat');
198204
this.patternTexture = texture;
199205
}
200206

@@ -203,7 +209,7 @@ class SpriteRendererCanvas extends Renderer {
203209
let dpr = driver.mDPR;
204210

205211
let m = gameObject.worldTransformation.clone();
206-
m.scale(gameObject.tiling.scaleX * dpr, gameObject.tiling.scaleY * dpr)
212+
m.scale(gameObject.tiling.scaleX * dpr, gameObject.tiling.scaleY * dpr);
207213
m.translate(gameObject.tiling.wrapX / dpr, gameObject.tiling.wrapY / dpr);
208214

209215
driver.setTransform(m);

0 commit comments

Comments
 (0)