Jelajahi Sumber

FullScreenQuad: Introduce dispose().

Mugen87 5 tahun lalu
induk
melakukan
5fbec8510d

+ 6 - 0
examples/js/postprocessing/EffectComposer.js

@@ -279,6 +279,12 @@ THREE.Pass.FullScreenQuad = ( function () {
 
 	Object.assign( FullScreenQuad.prototype, {
 
+		dispose: function () {
+
+			this._mesh.geometry.dispose();
+
+		},
+
 		render: function ( renderer ) {
 
 			renderer.render( this._mesh, camera );

+ 4 - 0
examples/js/postprocessing/SSAOPass.js

@@ -160,6 +160,10 @@ THREE.SSAOPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ),
 		this.copyMaterial.dispose();
 		this.depthRenderMaterial.dispose();
 
+		// dipsose full screen quad
+
+		this.fsQuad.dispose();
+
 	},
 
 	render: function ( renderer, writeBuffer /*, readBuffer, deltaTime, maskActive */ ) {

+ 1 - 0
examples/jsm/postprocessing/Pass.d.ts

@@ -23,6 +23,7 @@ export namespace Pass {
 		constructor( material?: Material );
 
 		render( renderer: WebGLRenderer ): void;
+		dispose(): void;
 
 		material: Material;
 

+ 6 - 0
examples/jsm/postprocessing/Pass.js

@@ -63,6 +63,12 @@ Pass.FullScreenQuad = ( function () {
 
 	Object.assign( FullScreenQuad.prototype, {
 
+		dispose: function () {
+
+			this._mesh.geometry.dispose();
+
+		},
+
 		render: function ( renderer ) {
 
 			renderer.render( this._mesh, camera );

+ 4 - 0
examples/jsm/postprocessing/SSAOPass.js

@@ -190,6 +190,10 @@ SSAOPass.prototype = Object.assign( Object.create( Pass.prototype ), {
 		this.copyMaterial.dispose();
 		this.depthRenderMaterial.dispose();
 
+		// dipsose full screen quad
+
+		this.fsQuad.dispose();
+
 	},
 
 	render: function ( renderer, writeBuffer /*, readBuffer, deltaTime, maskActive */ ) {