ソースを参照

chore: accidentally removed code

alvarosabu 2 年 前
コミット
923ae5991f
1 ファイル変更9 行追加0 行削除
  1. 9 0
      src/core/nodeOps.ts

+ 9 - 0
src/core/nodeOps.ts

@@ -63,6 +63,15 @@ export const nodeOps: RendererOptions<TresObject, TresObject> = {
       else if (instance.isBufferGeometry) instance.attach = 'geometry'
       else if (instance.isBufferGeometry) instance.attach = 'geometry'
     }
     }
 
 
+    // determine whether the material was passed via prop to
+    // prevent it's disposal when node is removed later in it's lifecycle
+    const { GEOMETRY_VIA_PROP, MATERIAL_VIA_PROP } = OBJECT_3D_USER_DATA_KEYS
+
+    if (instance.isObject3D) {
+      if (props?.material?.isMaterial) (instance as Object3D).userData[MATERIAL_VIA_PROP] = true
+      if (props?.geometry?.isBufferGeometry) (instance as Object3D).userData[GEOMETRY_VIA_PROP] = true
+    }
+
     instance.events = {}
     instance.events = {}
 
 
     return instance
     return instance