瀏覽代碼

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

Mr.doob 13 年之前
父節點
當前提交
fb248f5b0b
共有 1 個文件被更改,包括 24 次插入0 次删除
  1. 24 0
      src/renderers/WebGLRenderer.js

+ 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 ) {