浏览代码

fix: start loop if user calls useRenderLoop (#695)

andretchen0 1 年之前
父节点
当前提交
43c3229032
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      src/composables/useRenderLoop/index.ts

+ 9 - 0
src/composables/useRenderLoop/index.ts

@@ -40,7 +40,16 @@ onAfterLoop.on(() => {
   elapsed = clock.getElapsedTime()
   elapsed = clock.getElapsedTime()
 })
 })
 
 
+let startedOnce = false
 export const useRenderLoop = (): UseRenderLoopReturn => {
 export const useRenderLoop = (): UseRenderLoopReturn => {
+  if (!startedOnce) {
+    // NOTE: `useRenderLoop` is not started by default
+    // in order not to waste user resources. Instead, we'll
+    // start the loop the first time the user uses
+    // `useRenderLoop`.
+    startedOnce = true
+    resume()
+  }
   return {
   return {
     onBeforeLoop: onBeforeLoop.on,
     onBeforeLoop: onBeforeLoop.on,
     onLoop: onLoop.on,
     onLoop: onLoop.on,