From 6ffee7804a3b5db7fce3d1dbc2dc9fe8490d29cb Mon Sep 17 00:00:00 2001 From: singlecoder Date: Thu, 18 Jan 2024 12:14:03 +0800 Subject: [PATCH] fix(2d): fix the mesh of 2d batcher error when call gc (#1977) --- packages/core/src/RenderPipeline/Basic2DBatcher.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/core/src/RenderPipeline/Basic2DBatcher.ts b/packages/core/src/RenderPipeline/Basic2DBatcher.ts index f5cdb073f4..d693b0d25c 100644 --- a/packages/core/src/RenderPipeline/Basic2DBatcher.ts +++ b/packages/core/src/RenderPipeline/Basic2DBatcher.ts @@ -121,7 +121,9 @@ export abstract class Basic2DBatcher { const { _meshes: meshes, _vertexBuffers: vertexBuffers, _indiceBuffers: indiceBuffers } = this; for (let i = 0, n = meshes.length; i < n; ++i) { - meshes[i].destroy(); + const mesh = meshes[i]; + mesh._addReferCount(-1); + mesh.destroy(); } this._meshes = null; @@ -149,7 +151,7 @@ export abstract class Basic2DBatcher { private _createMesh(engine: Engine, index: number): BufferMesh { const { MAX_VERTEX_COUNT } = Basic2DBatcher; const mesh = new BufferMesh(engine, `BufferMesh${index}`); - mesh.isGCIgnored = true; + mesh._addReferCount(1); const vertexElements: VertexElement[] = []; const vertexStride = this.createVertexElements(vertexElements);