From 40a4ff8f43a7c141d87eaf723d383b7784f88eca Mon Sep 17 00:00:00 2001 From: Owen Mech Date: Wed, 9 Jul 2025 17:31:36 -0700 Subject: [PATCH 1/5] add items to renderlist --- src/renderers/webgl/WebGLRenderLists.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/renderers/webgl/WebGLRenderLists.js b/src/renderers/webgl/WebGLRenderLists.js index 2839e8b94ac61e..2549c1eb27cd97 100644 --- a/src/renderers/webgl/WebGLRenderLists.js +++ b/src/renderers/webgl/WebGLRenderLists.js @@ -56,6 +56,8 @@ function WebGLRenderList() { const transmissive = []; const transparent = []; + let items = new WeakMap(); + function init() { renderItemsIndex = 0; @@ -64,6 +66,8 @@ function WebGLRenderList() { transmissive.length = 0; transparent.length = 0; + items = new WeakMap(); + } function getNextRenderItem( object, geometry, material, groupOrder, z, group ) { @@ -122,6 +126,8 @@ function WebGLRenderList() { } + items.set( object, renderItem ); + } function unshift( object, geometry, material, groupOrder, z, group ) { @@ -142,6 +148,8 @@ function WebGLRenderList() { } + items.set( object, renderItem ); + } function sort( customOpaqueSort, customTransparentSort ) { @@ -178,6 +186,8 @@ function WebGLRenderList() { transmissive: transmissive, transparent: transparent, + items: items, + init: init, push: push, unshift: unshift, From 798cfcaaa874bcbba8e70fc2849e3c09094be6fe Mon Sep 17 00:00:00 2001 From: Owen Mech Date: Fri, 11 Jul 2025 11:18:48 -0700 Subject: [PATCH 2/5] rename items to objectIdToRenderItem --- src/renderers/webgl/WebGLRenderLists.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/renderers/webgl/WebGLRenderLists.js b/src/renderers/webgl/WebGLRenderLists.js index 2549c1eb27cd97..ebf579635dd41a 100644 --- a/src/renderers/webgl/WebGLRenderLists.js +++ b/src/renderers/webgl/WebGLRenderLists.js @@ -56,7 +56,7 @@ function WebGLRenderList() { const transmissive = []; const transparent = []; - let items = new WeakMap(); + let objectIdToRenderItem = new WeakMap(); function init() { @@ -66,7 +66,7 @@ function WebGLRenderList() { transmissive.length = 0; transparent.length = 0; - items = new WeakMap(); + objectIdToRenderItem = new WeakMap(); } @@ -126,7 +126,7 @@ function WebGLRenderList() { } - items.set( object, renderItem ); + objectIdToRenderItem.set( object, renderItem ); } @@ -148,7 +148,7 @@ function WebGLRenderList() { } - items.set( object, renderItem ); + objectIdToRenderItem.set( object, renderItem ); } @@ -186,7 +186,7 @@ function WebGLRenderList() { transmissive: transmissive, transparent: transparent, - items: items, + objectIdToRenderItem, init: init, push: push, From 8bd8a076ff55fcce20333a9c7421704afeb0313e Mon Sep 17 00:00:00 2001 From: Owen Mech Date: Fri, 11 Jul 2025 11:19:37 -0700 Subject: [PATCH 3/5] consistent style --- src/renderers/webgl/WebGLRenderLists.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/webgl/WebGLRenderLists.js b/src/renderers/webgl/WebGLRenderLists.js index ebf579635dd41a..1cd5a8caec0533 100644 --- a/src/renderers/webgl/WebGLRenderLists.js +++ b/src/renderers/webgl/WebGLRenderLists.js @@ -186,7 +186,7 @@ function WebGLRenderList() { transmissive: transmissive, transparent: transparent, - objectIdToRenderItem, + objectIdToRenderItem: objectIdToRenderItem, init: init, push: push, From e9a0b6062f52884630199c7a25fbeeec9acc3b1f Mon Sep 17 00:00:00 2001 From: Owen Mech Date: Fri, 11 Jul 2025 11:26:52 -0700 Subject: [PATCH 4/5] weakmap -> map --- src/renderers/webgl/WebGLRenderLists.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/renderers/webgl/WebGLRenderLists.js b/src/renderers/webgl/WebGLRenderLists.js index 1cd5a8caec0533..e632301e1bc599 100644 --- a/src/renderers/webgl/WebGLRenderLists.js +++ b/src/renderers/webgl/WebGLRenderLists.js @@ -56,7 +56,7 @@ function WebGLRenderList() { const transmissive = []; const transparent = []; - let objectIdToRenderItem = new WeakMap(); + let objectIdToRenderItem = new Map(); function init() { @@ -66,7 +66,7 @@ function WebGLRenderList() { transmissive.length = 0; transparent.length = 0; - objectIdToRenderItem = new WeakMap(); + objectIdToRenderItem.clear(); } @@ -126,7 +126,7 @@ function WebGLRenderList() { } - objectIdToRenderItem.set( object, renderItem ); + objectIdToRenderItem.set( object.id, renderItem ); } @@ -148,7 +148,7 @@ function WebGLRenderList() { } - objectIdToRenderItem.set( object, renderItem ); + objectIdToRenderItem.set( object.id, renderItem ); } From 0138fee96284a49e235885ac6a1f76a06b5f2928 Mon Sep 17 00:00:00 2001 From: Owen Mech Date: Fri, 11 Jul 2025 11:28:18 -0700 Subject: [PATCH 5/5] use const map since it is stable --- src/renderers/webgl/WebGLRenderLists.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/webgl/WebGLRenderLists.js b/src/renderers/webgl/WebGLRenderLists.js index e632301e1bc599..c3909d4355c46a 100644 --- a/src/renderers/webgl/WebGLRenderLists.js +++ b/src/renderers/webgl/WebGLRenderLists.js @@ -56,7 +56,7 @@ function WebGLRenderList() { const transmissive = []; const transparent = []; - let objectIdToRenderItem = new Map(); + const objectIdToRenderItem = new Map(); function init() {