Просмотр исходного кода

NodeManager: Correctly dispose of background mesh. (#34108)

Michael Herzog 10 часов назад
Родитель
Сommit
e21b3d9810
1 измененных файлов с 21 добавлено и 0 удалено
  1. 21 0
      src/renderers/common/nodes/NodeManager.js

+ 21 - 0
src/renderers/common/nodes/NodeManager.js

@@ -740,6 +740,27 @@ class NodeManager extends DataMap {
 
 		if ( node === undefined || forceUpdate ) {
 
+			if ( node === undefined && object.isTexture === true ) {
+
+				const onTextureDispose = () => {
+
+					object.removeEventListener( 'dispose', onTextureDispose );
+
+					const node = nodeCache.get( object );
+
+					if ( node !== undefined ) {
+
+						nodeCache.delete( object );
+						node.dispose();
+
+					}
+
+				};
+
+				object.addEventListener( 'dispose', onTextureDispose );
+
+			}
+
 			node = callback();
 			nodeCache.set( object, node );
 

粤ICP备19079148号