From 2b3ae8165be4cfed792a568f7189a7dd95c2fe57 Mon Sep 17 00:00:00 2001 From: Deseteral Date: Tue, 10 Oct 2023 02:03:28 +0200 Subject: [PATCH] Factored out rectangle drawing methods --- src/gfx/screen.ts | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/gfx/screen.ts b/src/gfx/screen.ts index 98eb595..b3dd0e2 100644 --- a/src/gfx/screen.ts +++ b/src/gfx/screen.ts @@ -140,13 +140,7 @@ export class Screen { * Draws rectangle border with upper-left corner at specified position and provided width and height. */ public drawRect(x: number, y: number, w: number, h: number): void { - x |= 0; // eslint-disable-line no-param-reassign - y |= 0; // eslint-disable-line no-param-reassign - - this._ctx.fillRect(x, y, w, 1); - this._ctx.fillRect(x, y + h - 1, w, 1); - this._ctx.fillRect(x, y, 1, h); - this._ctx.fillRect(x + w - 1, y, 1, h); + this.rect(x, y, w, h, false); } /** @@ -419,7 +413,19 @@ export class Screen { } } - private line(x1: number, y1: number, x2: number, y2: number, clear: boolean = false): void { + private rect(x: number, y: number, w: number, h: number, clear: boolean): void { + x |= 0; // eslint-disable-line no-param-reassign + y |= 0; // eslint-disable-line no-param-reassign + + const drawFn = clear ? this._ctx.clearRect : this._ctx.fillRect; + + drawFn(x, y, w, 1); + drawFn(x, y + h - 1, w, 1); + drawFn(x, y, 1, h); + drawFn(x + w - 1, y, 1, h); + } + + private line(x1: number, y1: number, x2: number, y2: number, clear: boolean): void { x1 |= x1; // eslint-disable-line no-param-reassign y1 |= y1; // eslint-disable-line no-param-reassign x2 |= x2; // eslint-disable-line no-param-reassign