Преглед на файлове

WebGPURenderPipelines: Set material dispose listener only once.

Mugen87 преди 4 години
родител
ревизия
4bf6228977
променени са 1 файла, в които са добавени 7 реда и са изтрити 3 реда
  1. 7 3
      examples/jsm/renderers/webgpu/WebGPURenderPipelines.js

+ 7 - 3
examples/jsm/renderers/webgpu/WebGPURenderPipelines.js

@@ -97,10 +97,14 @@ class WebGPURenderPipelines {
 
 			const materialProperties = properties.get( material );
 
-			const disposeCallback = onMaterialDispose.bind( this );
-			materialProperties.disposeCallback = disposeCallback;
+			if ( materialProperties.disposeCallback === undefined ) {
 
-			material.addEventListener( 'dispose', disposeCallback );
+				const disposeCallback = onMaterialDispose.bind( this );
+				materialProperties.disposeCallback = disposeCallback;
+
+				material.addEventListener( 'dispose', disposeCallback );
+
+			}
 
 			// determine shader attributes