auto: 2026-07-26 20:41 (ESD_LAPTOP)

This commit is contained in:
2026-07-26 20:41:48 +09:00
parent 9ac4612641
commit 99babfacaf
6 changed files with 206 additions and 7 deletions
@@ -238,6 +238,29 @@ export class ScreenCanvasDrawController implements DrawController {
this.context.fillStyle = fillColor;
}
/**
* Temporarily redirect all draw calls to another 2d context (eg an
* offscreen canvas used as static scene cache), reusing the current
* offset/scale/canvasSize without touching state or react triggers.
*/
public withContext(temporaryContext: CanvasRenderingContext2D, renderFunction: () => void) {
const originalContext = this.context;
this.context = temporaryContext;
try {
renderFunction();
} finally {
this.context = originalContext;
}
}
/**
* Blit a pre-rendered bitmap (static scene cache) onto the canvas at a
* pixel offset. Used while panning to avoid re-stroking every entity.
*/
public blitImage(source: CanvasImageSource, dx: number, dy: number) {
this.context.drawImage(source, dx, dy);
}
public clear() {
if (this.canvasSize === null) return;