Bladeren bron

fix(core): avoid multiple calls to useCamera

alvarosabu 2 jaren geleden
bovenliggende
commit
b0278c653c

+ 3 - 4
packages/tres/src/core/useInstanceCreator/index.ts

@@ -24,7 +24,7 @@ const COLOR_KEYS = ['r', 'g', 'b']
  */
  */
 export function useInstanceCreator(prefix: string) {
 export function useInstanceCreator(prefix: string) {
   const { /* logMessage, */ logError } = useLogger()
   const { /* logMessage, */ logError } = useLogger()
-
+  const { pushCamera } = useCamera()
   /**
   /**
    * Process props to `.setAttribute` on instance.
    * Process props to `.setAttribute` on instance.
    *
    *
@@ -167,8 +167,8 @@ export function useInstanceCreator(prefix: string) {
       return
       return
     } else {
     } else {
       const vNodeType = ((vnode.type as TresVNodeType).name as string).replace(prefix, '')
       const vNodeType = ((vnode.type as TresVNodeType).name as string).replace(prefix, '')
-      const { catalogue: fallback } = useCatalogue()
-      const catalogue = inject<Ref<TresCatalogue>>('catalogue') || fallback
+
+      const catalogue = inject<Ref<TresCatalogue>>('catalogue')
 
 
       // check if args prop is defined on the vnode
       // check if args prop is defined on the vnode
       let internalInstance
       let internalInstance
@@ -265,7 +265,6 @@ export function useInstanceCreator(prefix: string) {
               const { onLoop } = useRenderLoop()
               const { onLoop } = useRenderLoop()
               const scene = state.scene
               const scene = state.scene
               const raycaster = state.raycaster
               const raycaster = state.raycaster
-              const { pushCamera } = useCamera()
 
 
               let instance = createInstance(threeObj, attrs, slots)
               let instance = createInstance(threeObj, attrs, slots)
               processProps(attrs, instance)
               processProps(attrs, instance)

+ 2 - 1
packages/tres/src/core/useRenderer/index.ts

@@ -149,6 +149,8 @@ export function useRenderer(canvas: MaybeElementRef, container: MaybeElementRef,
     preset = undefined,
     preset = undefined,
   } = toRefs(options)
   } = toRefs(options)
 
 
+  const { setState } = useTres()
+
   const { width, height } = resolveUnref(windowSize) ? useWindowSize() : useElementSize(container)
   const { width, height } = resolveUnref(windowSize) ? useWindowSize() : useElementSize(container)
   const { logError } = useLogger()
   const { logError } = useLogger()
   const { pixelRatio } = useDevicePixelRatio()
   const { pixelRatio } = useDevicePixelRatio()
@@ -212,7 +214,6 @@ export function useRenderer(canvas: MaybeElementRef, container: MaybeElementRef,
       premultipliedAlpha: resolveUnref(premultipliedAlpha),
       premultipliedAlpha: resolveUnref(premultipliedAlpha),
     })
     })
 
 
-    const { setState } = useTres()
     setState('renderer', renderer.value)
     setState('renderer', renderer.value)
     setState('clock', new Clock())
     setState('clock', new Clock())
     setState('aspectRatio', aspectRatio)
     setState('aspectRatio', aspectRatio)