Procházet zdrojové kódy

Renderer - Properly Delete ComputeNode Bindings in Dispose (#31832)

* init branch

* use this.delete
Christian Helgeson před 7 měsíci
rodič
revize
18924686e0

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

@@ -153,6 +153,24 @@ class Bindings extends DataMap {
 
 	}
 
+	/**
+	 * Deletes the bindings for the given compute node.
+	 *
+	 * @param {Node} computeNode - The compute node.
+	 */
+	deleteForCompute( computeNode ) {
+
+		const bindings = this.nodes.getForCompute( computeNode ).bindings;
+
+		for ( const bindGroup of bindings ) {
+
+			this.delete( bindGroup );
+
+		}
+
+	}
+
+
 	/**
 	 * Updates the given array of bindings.
 	 *

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

@@ -2389,7 +2389,7 @@ class Renderer {
 					computeNode.removeEventListener( 'dispose', dispose );
 
 					pipelines.delete( computeNode );
-					bindings.delete( computeNode );
+					bindings.deleteForCompute( computeNode );
 					nodes.delete( computeNode );
 
 				};

粤ICP备19079148号