Przeglądaj źródła

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

Christian Helgeson 8 miesięcy temu
rodzic
commit
eb42abc40c

+ 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.
 	 * Updates the given array of bindings.

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

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

粤ICP备19079148号