瀏覽代碼

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'
     }
 
+    // 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 = {}
 
     return instance