Explorar o código

fix: dispose morph textures when corresponding geometry is disposed (#23104)

0b5vr %!s(int64=3) %!d(string=hai) anos
pai
achega
74437e6a6a
Modificáronse 1 ficheiros con 12 adicións e 0 borrados
  1. 12 0
      src/renderers/webgl/WebGLMorphtargets.js

+ 12 - 0
src/renderers/webgl/WebGLMorphtargets.js

@@ -135,6 +135,18 @@ function WebGLMorphtargets( gl, capabilities, textures ) {
 
 				morphTextures.set( geometry, entry );
 
+				function disposeTexture() {
+
+					texture.dispose();
+
+					morphTextures.delete( geometry );
+
+					geometry.removeEventListener( 'dispose', disposeTexture );
+
+				}
+
+				geometry.addEventListener( 'dispose', disposeTexture );
+
 			}
 
 			//