From dbae5a7c7d3c2add730cbd92494bd43b53b7a009 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Sun, 8 Dec 2024 21:32:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=98=BE=E4=BC=A4=E5=B1=82=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/render/preset/block.ts | 14 +++++--------- src/core/render/preset/damage.ts | 3 ++- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/core/render/preset/block.ts b/src/core/render/preset/block.ts index 8da2a94..a014470 100644 --- a/src/core/render/preset/block.ts +++ b/src/core/render/preset/block.ts @@ -130,10 +130,8 @@ export class BlockCacher< if (deep & (1 << i)) { const nowIndex = index * this.cacheDepth + i; const item = this.cache.get(nowIndex); - if (item) { - item.destroy(); - this.cache.delete(nowIndex); - } + item?.destroy(); + this.cache.delete(nowIndex); } } } @@ -141,12 +139,10 @@ export class BlockCacher< /** * 清空指定索引的缓存,与 {@link clearCache} 不同的是,这里会直接清空对应索引的缓存,而不是指定分块的缓存(分块->void) */ - clearCacheByIndex(index: number, func: (item: T) => void) { + clearCacheByIndex(index: number) { const item = this.cache.get(index); - if (item) { - item.destroy(); - this.cache.delete(index); - } + item?.destroy(); + this.cache.delete(index); } /** diff --git a/src/core/render/preset/damage.ts b/src/core/render/preset/damage.ts index 216a7cd..74906bb 100644 --- a/src/core/render/preset/damage.ts +++ b/src/core/render/preset/damage.ts @@ -503,7 +503,8 @@ export class Damage extends RenderItem { this.emit('dirtyUpdate', v); // 否则依次渲染并写入缓存 - const temp = cache?.canvas ?? new MotaOffscreenCanvas2D(); + const temp = + block.cache.get(v)?.canvas ?? new MotaOffscreenCanvas2D(); temp.clear(); temp.setHD(true); temp.setAntiAliasing(true);