Просмотр исходного кода

Renderer - Properly Delete Bind Groups on Bindings in Dispose (#31879)

Christian Helgeson 7 месяцев назад
Родитель
Сommit
eb42abc40c
2 измененных файлов с 17 добавлено и 1 удалено
  1. 16 0
      src/renderers/common/Bindings.js
  2. 1 1
      src/renderers/common/RenderObjects.js

+ 16 - 0
src/renderers/common/Bindings.js

@@ -170,6 +170,22 @@ class Bindings extends DataMap {
 
 	}
 
+	/**
+	 * Deletes the bindings for the given renderObject node.
+	 *
+	 * @param {RenderObject} renderObject - The renderObject.
+	 */
+	deleteForRender( renderObject ) {
+
+		const bindings = renderObject.getBindings();
+
+		for ( const bindGroup of bindings ) {
+
+			this.delete( bindGroup );
+
+		}
+
+	}
 
 	/**
 	 * Updates the given array of bindings.

+ 1 - 1
src/renderers/common/RenderObjects.js

@@ -185,7 +185,7 @@ class RenderObjects {
 		renderObject.onDispose = () => {
 
 			this.pipelines.delete( renderObject );
-			this.bindings.delete( renderObject );
+			this.bindings.deleteForRender( renderObject );
 			this.nodes.delete( renderObject );
 
 			chainMap.delete( renderObject.getChainArray() );

粤ICP备19079148号