From c58861bc93f4eaf3b6da0a14422cd74e604c4c36 Mon Sep 17 00:00:00 2001 From: Emma Date: Tue, 24 Oct 2023 01:11:15 -0600 Subject: [PATCH] deferred drawing --- canvas.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/canvas.ts b/canvas.ts index 24bbfab..968b08e 100644 --- a/canvas.ts +++ b/canvas.ts @@ -89,6 +89,7 @@ export class Doodler { // } for (const [i, l] of (this.layers || []).entries()) { l(this.ctx, i); + this.drawDeferred(); } this.drawUI(); } @@ -227,6 +228,18 @@ export class Doodler { ); } + private deferredDrawings: (() => void)[] = []; + + deferDrawing(cb: () => void) { + this.deferredDrawings.push(cb); + } + + drawDeferred() { + while (this.deferredDrawings.length) { + this.deferredDrawings.pop()?.(); + } + } + setStyle(style?: IStyle) { const ctx = this.ctx; ctx.fillStyle = style?.color || style?.fillColor || "black";