From 2776f3cea4a2e7d1227dd71953091ae0eb66878e Mon Sep 17 00:00:00 2001 From: HF Date: Thu, 22 Feb 2024 10:42:23 +0100 Subject: [PATCH] be more smarter about when to render templates --- src/core/CanvasCleaner.js | 6 +++--- src/ui/render2Delements.js | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/core/CanvasCleaner.js b/src/core/CanvasCleaner.js index d807f175..f36489ab 100644 --- a/src/core/CanvasCleaner.js +++ b/src/core/CanvasCleaner.js @@ -34,7 +34,7 @@ const METHODS = { let rplPxl = null; for (let u = -1; u <= 1; u += 1) { for (let v = -1; v <= 1; v += 1) { - if (u === 0 && v === 0) { + if (u === 0 && v === 0) { continue; } pxl = canvasCleaner.getPixelInChunkArea(xc + u, yc + v); @@ -61,7 +61,7 @@ const METHODS = { let rplPxl = null; for (let u = -1; u <= 1; u += 1) { for (let v = -1; v <= 1; v += 1) { - if (u === 0 && v === 0) { + if (u === 0 && v === 0) { continue; } pxl = canvasCleaner.getPixelInChunkArea(xc + u, yc + v); @@ -92,7 +92,7 @@ const METHODS = { const origPxl = pxl; for (let u = -1; u <= 1; u += 1) { for (let v = -1; v <= 1; v += 1) { - if (u === 0 && v === 0) { + if (u === 0 && v === 0) { continue; } pxl = canvasCleaner.getPixelInChunkArea(xc + u, yc + v); diff --git a/src/ui/render2Delements.js b/src/ui/render2Delements.js index 7c608d9b..4ba13dfe 100644 --- a/src/ui/render2Delements.js +++ b/src/ui/render2Delements.js @@ -113,7 +113,7 @@ export function renderOverlay( tiledScale, scaleThreshold, ) { - if (!templateLoader.ready) return; + if (!templateLoader.ready || scale < 0.035) return; const { canvasSize, canvasId } = state.canvas; // world coordinates of center of center chunk const [x, y] = centerChunk @@ -139,13 +139,14 @@ export function renderOverlay( context.scale(offscreenScale, offscreenScale); context.globalAlpha = state.templates.oOpacity / 100; for (const template of templates) { + const tempWidth = template.x - x + width / 2 / offscreenScale; + const tempHeight = template.y - y + height / 2 / offscreenScale; + if (tempWidth < 1 || tempHeight < 1) continue; + const image = templateLoader.getTemplateSync(template.imageId); if (!image) continue; - context.drawImage(image, - template.x - x + width / 2 / offscreenScale, - template.y - y + height / 2 / offscreenScale, - ); + context.drawImage(image, tempWidth, tempHeight); } context.restore(); }