Skip to content

Commit

Permalink
Fixed canvas renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
steel97 committed Feb 21, 2023
1 parent 076ed26 commit 903f434
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 15 deletions.
8 changes: 7 additions & 1 deletion demo/basic.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
/* global PIXI */
const useCanvas = false;

const app = new PIXI.Application({ width: 800, height: 600 });
if (useCanvas) {
PIXI.tilemap.CanvasTileRenderer.registerExtension();
}

const canvRenderer = new PIXI.CanvasRenderer();
const app = new PIXI.Application({ width: 800, height: 600, forceCanvas: useCanvas, hello: true });
const tilemap = new PIXI.tilemap.CompositeTilemap();

document.body.appendChild(app.view);
Expand Down
16 changes: 10 additions & 6 deletions src/CanvasTileRenderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { extensions, ExtensionType, IRenderer } from '@pixi/core';
*
* // You must register this yourself (optional). @pixi/tilemap doesn't do it to
* // prevent a hard dependency on @pixi/canvas-core.
* CanvasRenderer.registerPlugin('tilemap', CanvasTileRenderer);
* CanvasTileRenderer.registerExtension();
* ```
*/
// TODO: Move to @pixi/tilemap-canvas
Expand All @@ -29,14 +29,18 @@ export class CanvasTileRenderer {
this.tileAnim = [0, 0];
}

static registerExtension() {
extensions.add({
name: 'tilemap',
type: ExtensionType.CanvasRendererPlugin,
ref: CanvasTileRenderer as any
});
}

// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
static getInstance(renderer: any): CanvasTileRenderer {
if (!renderer.plugins.tilemap) {
extensions.add({
name: 'tilemap',
type: ExtensionType.CanvasRendererPlugin,
ref: CanvasTileRenderer as any
});
throw new Error('Extension not registered!');
}

return renderer.plugins.tilemap;
Expand Down
2 changes: 1 addition & 1 deletion src/CompositeTilemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ export class CompositeTilemap extends Container
{
const wt = this.worldTransform;

renderer.context.setTransform(
renderer.canvasContext.activeContext.setTransform(
wt.a,
wt.b,
wt.c,
Expand Down
14 changes: 7 additions & 7 deletions src/Tilemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ export class Tilemap extends Container
{
const wt = this.worldTransform;

renderer.context.setTransform(
renderer.canvasContext.activeContext.setTransform(
wt.a,
wt.b,
wt.c,
Expand All @@ -357,7 +357,7 @@ export class Tilemap extends Container
const points = this.pointsBuf;
const tileAnim = this.tileAnim || (renderer.plugins.tilemap && renderer.plugins.tilemap.tileAnim);

renderer.context.fillStyle = '#000000';
renderer.canvasContext.activeContext.fillStyle = '#000000';
for (let i = 0, n = points.length; i < n; i += POINT_STRUCT_SIZE)
{
let x1 = points[i + POINT_STRUCT.U];
Expand All @@ -377,18 +377,18 @@ export class Tilemap extends Container

if (textureIndex >= 0 && this.tileset[textureIndex])
{
renderer.context.globalAlpha = alpha;
renderer.context.drawImage(
renderer.canvasContext.activeContext.globalAlpha = alpha;
renderer.canvasContext.activeContext.drawImage(
(this.tileset[textureIndex] as any).getDrawableSource(),
x1, y1, w, h, x2, y2, w, h
);
}
else
{
renderer.context.globalAlpha = 0.5;
renderer.context.fillRect(x2, y2, w, h);
renderer.canvasContext.activeContext.globalAlpha = 0.5;
renderer.canvasContext.activeContext.fillRect(x2, y2, w, h);
}
renderer.context.globalAlpha = 1;
renderer.canvasContext.activeContext.globalAlpha = 1;
}
}

Expand Down

0 comments on commit 903f434

Please sign in to comment.