Browse Source

GPUComputationRenderer: Add dispose(). (#24414)

Michael Herzog 3 years ago
parent
commit
0f40e80537
1 changed files with 26 additions and 0 deletions
  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 ) {
 		function addResolutionDefine( materialShader ) {
 
 
 			materialShader.defines.resolution = 'vec2( ' + sizeX.toFixed( 1 ) + ', ' + sizeY.toFixed( 1 ) + ' )';
 			materialShader.defines.resolution = 'vec2( ' + sizeX.toFixed( 1 ) + ', ' + sizeY.toFixed( 1 ) + ' )';