2
0
Эх сурвалжийг харах

Implemented @kovleouf's deallocateRenderTarget() method in WebGLRenderer. Fixes #1566.

Mr.doob 13 жил өмнө
parent
commit
fb248f5b0b

+ 24 - 0
src/renderers/WebGLRenderer.js

@@ -333,6 +333,30 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 	};
 
+	this.deallocateRenderTarget = function ( renderTarget ) {
+
+		if ( !renderTarget || ! renderTarget.__webglTexture ) return;
+
+		_gl.deleteTexture( renderTarget.__webglTexture );
+
+		if ( renderTarget instanceof THREE.WebGLRenderTargetCube ) {
+
+			for ( var i = 0; i < 6; i ++ ) {
+
+				_gl.deleteFramebuffer( renderTarget.__webglFramebuffer[ i ] );
+				_gl.deleteRenderbuffer( renderTarget.__webglRenderbuffer[ i ] );
+
+			}
+
+		} else {
+
+			_gl.deleteFramebuffer( renderTarget.__webglFramebuffer );
+			_gl.deleteRenderbuffer( renderTarget.__webglRenderbuffer );
+
+		}
+
+	};
+
 	// Rendering
 
 	this.updateShadowMap = function ( scene, camera ) {