Răsfoiți Sursa

GPUComputationRenderer: Add dispose(). (#24414)

Michael Herzog 3 ani în urmă
părinte
comite
0f40e80537
1 a modificat fișierele cu 26 adăugiri și 0 ștergeri
  1. 26 0
      examples/jsm/misc/GPUComputationRenderer.js

+ 26 - 0
examples/jsm/misc/GPUComputationRenderer.js

@@ -288,6 +288,32 @@ class GPUComputationRenderer {
 
 		};
 
+		this.dispose = function () {
+
+			mesh.geometry.dispose();
+			mesh.material.dispose();
+
+			const variables = this.variables;
+
+			for ( let i = 0; i < variables.length; i ++ ) {
+
+				const variable = variables[ i ];
+
+				variable.initialValueTexture?.dispose();
+
+				const renderTargets = variable.renderTargets;
+
+				for ( let j = 0; j < renderTargets.length; j ++ ) {
+
+					const renderTarget = renderTargets[ j ];
+					renderTarget.dispose();
+
+				}
+
+			}
+
+		};
+
 		function addResolutionDefine( materialShader ) {
 
 			materialShader.defines.resolution = 'vec2( ' + sizeX.toFixed( 1 ) + ', ' + sizeY.toFixed( 1 ) + ' )';