From dd59bdfd185f20aa2328d54cf3d6a01cf03e2ae3 Mon Sep 17 00:00:00 2001 From: Fernando Serrano Date: Tue, 30 Apr 2019 20:37:17 +0200 Subject: [PATCH] Properly dispose WebGLMultiviewRenderTarget textures and fbos --- src/renderers/webgl/WebGLTextures.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/renderers/webgl/WebGLTextures.js b/src/renderers/webgl/WebGLTextures.js index b5e44d6b21..462a40a1b1 100644 --- a/src/renderers/webgl/WebGLTextures.js +++ b/src/renderers/webgl/WebGLTextures.js @@ -258,6 +258,21 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, } + if ( renderTarget.isWebGLMultiviewRenderTarget ) { + + _gl.deleteTexture( renderTargetProperties.__webglColorTexture ); + _gl.deleteTexture( renderTargetProperties.__webglDepthStencilTexture ); + + info.memory.textures -= 2; + + for ( var i = 0, il = renderTargetProperties.__webglViewFramebuffers.length; i < il; i ++ ) { + + _gl.deleteFramebuffer( renderTargetProperties.__webglViewFramebuffers[ i ] ); + + } + + } + properties.remove( renderTarget.texture ); properties.remove( renderTarget ); @@ -992,6 +1007,8 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, var ext = extensions.get( 'OVR_multiview2' ); + info.memory.textures += 2; + var colorTexture = _gl.createTexture(); _gl.bindTexture( _gl.TEXTURE_2D_ARRAY, colorTexture ); _gl.texParameteri( _gl.TEXTURE_2D_ARRAY, _gl.TEXTURE_MAG_FILTER, _gl.NEAREST ); @@ -1227,4 +1244,4 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, } -export { WebGLTextures }; +export { WebGLTextures }; \ No newline at end of file -- GitLab