@codexo/exojs 0.14.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/CHANGELOG.md +183 -0
  2. package/README.md +2 -4
  3. package/dist/esm/animation/Tween.d.ts.map +1 -1
  4. package/dist/esm/animation/Tween.js +0 -1
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +44 -5
  7. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +57 -5
  9. package/dist/esm/animation/TweenManager.js.map +1 -1
  10. package/dist/esm/animation/TweenSequencer.d.ts +139 -0
  11. package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
  12. package/dist/esm/animation/TweenSequencer.js +305 -0
  13. package/dist/esm/animation/TweenSequencer.js.map +1 -0
  14. package/dist/esm/animation/index.d.ts +1 -0
  15. package/dist/esm/animation/index.d.ts.map +1 -1
  16. package/dist/esm/audio/Playable.d.ts +6 -1
  17. package/dist/esm/audio/Playable.d.ts.map +1 -1
  18. package/dist/esm/audio/WorkletEffect.d.ts +34 -20
  19. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -1
  20. package/dist/esm/audio/WorkletEffect.js +92 -25
  21. package/dist/esm/audio/WorkletEffect.js.map +1 -1
  22. package/dist/esm/core/Application.d.ts +43 -5
  23. package/dist/esm/core/Application.d.ts.map +1 -1
  24. package/dist/esm/core/Application.js +83 -9
  25. package/dist/esm/core/Application.js.map +1 -1
  26. package/dist/esm/core/BuildInfo.js +2 -2
  27. package/dist/esm/core/Codec.d.ts +41 -0
  28. package/dist/esm/core/Codec.d.ts.map +1 -0
  29. package/dist/esm/core/Codec.js +79 -0
  30. package/dist/esm/core/Codec.js.map +1 -0
  31. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  32. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  33. package/dist/esm/core/FixedTimestep.js +62 -0
  34. package/dist/esm/core/FixedTimestep.js.map +1 -0
  35. package/dist/esm/core/Scene.d.ts +14 -0
  36. package/dist/esm/core/Scene.d.ts.map +1 -1
  37. package/dist/esm/core/Scene.js +18 -0
  38. package/dist/esm/core/Scene.js.map +1 -1
  39. package/dist/esm/core/SceneManager.d.ts +7 -0
  40. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  41. package/dist/esm/core/SceneManager.js +20 -4
  42. package/dist/esm/core/SceneManager.js.map +1 -1
  43. package/dist/esm/core/SceneNode.d.ts +46 -7
  44. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  45. package/dist/esm/core/SceneNode.js +73 -12
  46. package/dist/esm/core/SceneNode.js.map +1 -1
  47. package/dist/esm/core/Stage.d.ts +7 -0
  48. package/dist/esm/core/Stage.d.ts.map +1 -1
  49. package/dist/esm/core/SystemRegistry.d.ts +5 -0
  50. package/dist/esm/core/SystemRegistry.d.ts.map +1 -1
  51. package/dist/esm/core/SystemRegistry.js +10 -0
  52. package/dist/esm/core/SystemRegistry.js.map +1 -1
  53. package/dist/esm/core/index.d.ts +4 -0
  54. package/dist/esm/core/index.d.ts.map +1 -1
  55. package/dist/esm/core/logging.d.ts +34 -0
  56. package/dist/esm/core/logging.d.ts.map +1 -0
  57. package/dist/esm/core/logging.js +59 -0
  58. package/dist/esm/core/logging.js.map +1 -0
  59. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -1
  60. package/dist/esm/core/serialization/commonFields.js +6 -0
  61. package/dist/esm/core/serialization/commonFields.js.map +1 -1
  62. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -1
  63. package/dist/esm/core/serialization/renderingSerializers.js +14 -5
  64. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -1
  65. package/dist/esm/debug/BoundingBoxesLayer.d.ts.map +1 -1
  66. package/dist/esm/debug/BoundingBoxesLayer.js +2 -1
  67. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  68. package/dist/esm/debug/HitTestLayer.js +4 -4
  69. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  70. package/dist/esm/debug/PerformanceLayer.js +1 -1
  71. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  72. package/dist/esm/debug/RenderPassInspectorLayer.js +2 -2
  73. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  74. package/dist/esm/index.js +7 -2
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/input/Gamepad.d.ts +10 -0
  77. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  78. package/dist/esm/input/Gamepad.js +12 -0
  79. package/dist/esm/input/Gamepad.js.map +1 -1
  80. package/dist/esm/input/InputManager.d.ts.map +1 -1
  81. package/dist/esm/input/InputManager.js +5 -0
  82. package/dist/esm/input/InputManager.js.map +1 -1
  83. package/dist/esm/input/InteractionManager.js +4 -4
  84. package/dist/esm/input/InteractionManager.js.map +1 -1
  85. package/dist/esm/math/AbstractVector.d.ts +4 -3
  86. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  87. package/dist/esm/math/AbstractVector.js +5 -4
  88. package/dist/esm/math/AbstractVector.js.map +1 -1
  89. package/dist/esm/math/ObservableVector.d.ts +2 -0
  90. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  91. package/dist/esm/math/ObservableVector.js +9 -0
  92. package/dist/esm/math/ObservableVector.js.map +1 -1
  93. package/dist/esm/math/Polygon.d.ts.map +1 -1
  94. package/dist/esm/math/Polygon.js +4 -1
  95. package/dist/esm/math/Polygon.js.map +1 -1
  96. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  97. package/dist/esm/math/collision-detection.js +14 -14
  98. package/dist/esm/math/collision-detection.js.map +1 -1
  99. package/dist/esm/math/collision-primitives.d.ts +1 -1
  100. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  101. package/dist/esm/math/collision-primitives.js +4 -1
  102. package/dist/esm/math/collision-primitives.js.map +1 -1
  103. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  104. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  105. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  106. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  107. package/dist/esm/rendering/CallbackRenderPass.js +16 -11
  108. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  109. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  110. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  111. package/dist/esm/rendering/PassContext.d.ts +42 -0
  112. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  113. package/dist/esm/rendering/PassContext.js +48 -0
  114. package/dist/esm/rendering/PassContext.js.map +1 -0
  115. package/dist/esm/rendering/RenderBackend.d.ts +14 -0
  116. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  117. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  118. package/dist/esm/rendering/RenderNode.js +2 -2
  119. package/dist/esm/rendering/RenderNode.js.map +1 -1
  120. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  121. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  122. package/dist/esm/rendering/RenderingContext.d.ts +47 -16
  123. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  124. package/dist/esm/rendering/RenderingContext.js +134 -36
  125. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  126. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  127. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  128. package/dist/esm/rendering/TransformBuffer.js +58 -0
  129. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  130. package/dist/esm/rendering/View.d.ts +38 -0
  131. package/dist/esm/rendering/View.d.ts.map +1 -1
  132. package/dist/esm/rendering/View.js +37 -0
  133. package/dist/esm/rendering/View.js.map +1 -1
  134. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  135. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +9 -2
  136. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  137. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  138. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  139. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  140. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  141. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  142. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  143. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  144. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  145. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  146. package/dist/esm/rendering/plan/RenderEffectExecutor.js +7 -2
  147. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  148. package/dist/esm/rendering/plan/RenderInstruction.d.ts +5 -2
  149. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  150. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  151. package/dist/esm/rendering/plan/RenderPlanBuilder.js +23 -5
  152. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  153. package/dist/esm/rendering/plan/RenderScope.d.ts +7 -0
  154. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  155. package/dist/esm/rendering/primitives/Graphics.d.ts +17 -1
  156. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  157. package/dist/esm/rendering/primitives/Graphics.js +50 -15
  158. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  159. package/dist/esm/rendering/public.d.ts +5 -5
  160. package/dist/esm/rendering/public.d.ts.map +1 -1
  161. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +57 -19
  162. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  163. package/dist/esm/rendering/sprite/AnimatedSprite.js +138 -31
  164. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  165. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  166. package/dist/esm/rendering/sprite/Sprite.js +8 -0
  167. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  168. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  169. package/dist/esm/rendering/text/BitmapText.js +2 -0
  170. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  171. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  172. package/dist/esm/rendering/text/HTMLText.js +2 -2
  173. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  174. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  175. package/dist/esm/rendering/text/Text.js +2 -0
  176. package/dist/esm/rendering/text/Text.js.map +1 -1
  177. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  178. package/dist/esm/rendering/text/TextLayout.js +2 -3
  179. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  180. package/dist/esm/rendering/types.d.ts +37 -13
  181. package/dist/esm/rendering/types.d.ts.map +1 -1
  182. package/dist/esm/rendering/types.js +37 -13
  183. package/dist/esm/rendering/types.js.map +1 -1
  184. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  185. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  186. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  187. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  188. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +34 -1
  189. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  190. package/dist/esm/rendering/webgl2/WebGl2Backend.js +108 -60
  191. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  192. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  193. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +50 -11
  194. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  195. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  196. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  197. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  198. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  199. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  200. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  201. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  202. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  203. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  204. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +27 -0
  205. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  206. package/dist/esm/rendering/webgpu/WebGpuBackend.js +157 -60
  207. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  208. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  209. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -29
  210. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  211. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  212. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  213. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  214. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  215. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -0
  216. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  217. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +3 -1
  218. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  219. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  220. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  221. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +2 -1
  222. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  223. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  224. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  225. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  226. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  227. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  228. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  229. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +4 -1
  230. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  231. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  232. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  233. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +2 -1
  234. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  235. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  236. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  237. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +2 -1
  238. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  239. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  240. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  241. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +3 -2
  242. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  243. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -1
  244. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  245. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +29 -5
  246. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  247. package/dist/esm/resources/Loader.d.ts +13 -0
  248. package/dist/esm/resources/Loader.d.ts.map +1 -1
  249. package/dist/esm/resources/Loader.js +67 -7
  250. package/dist/esm/resources/Loader.js.map +1 -1
  251. package/dist/esm/resources/coreAssetBindings.d.ts +11 -0
  252. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  253. package/dist/esm/resources/coreAssetBindings.js +10 -2
  254. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  255. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  256. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  257. package/dist/esm/ui/ScrollContainer.js +99 -0
  258. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  259. package/dist/esm/ui/Tooltip.d.ts +67 -0
  260. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  261. package/dist/esm/ui/Tooltip.js +133 -0
  262. package/dist/esm/ui/Tooltip.js.map +1 -0
  263. package/dist/esm/ui/index.d.ts +4 -0
  264. package/dist/esm/ui/index.d.ts.map +1 -1
  265. package/dist/exo.debug.esm.js +1 -1
  266. package/dist/exo.debug.esm.js.map +1 -1
  267. package/dist/exo.esm.js +1 -1
  268. package/dist/exo.esm.js.map +1 -1
  269. package/dist/exo.iife.js +45273 -0
  270. package/dist/exo.iife.js.map +1 -0
  271. package/dist/exo.iife.min.js +2 -0
  272. package/dist/exo.iife.min.js.map +1 -0
  273. package/package.json +15 -3
  274. package/dist/esm/rendering/Camera.d.ts +0 -34
  275. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  276. package/dist/esm/rendering/Camera.js +0 -38
  277. package/dist/esm/rendering/Camera.js.map +0 -1
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Fixed-timestep accumulator (Gaffer's "Fix Your Timestep"). Converts the
3
+ * variable per-frame delta into a whole number of fixed-size steps, carrying the
4
+ * sub-step remainder across frames as an interpolation {@link FixedTimestep.alpha}.
5
+ *
6
+ * Pure timing logic — no scene or signal coupling — so the loop can drive it and
7
+ * tests can exercise the step/alpha maths directly. The {@link maxSteps} cap is
8
+ * the spiral-of-death guard: when a frame is so long it would need more than
9
+ * `maxSteps` catch-up steps, the surplus whole-step backlog is dropped rather
10
+ * than accumulated (which would make the next frame even longer).
11
+ *
12
+ * @internal
13
+ */
14
+ class FixedTimestep {
15
+ _stepMs;
16
+ _maxSteps;
17
+ _accumulatorMs = 0;
18
+ constructor(_stepMs, _maxSteps) {
19
+ this._stepMs = _stepMs;
20
+ this._maxSteps = _maxSteps;
21
+ if (!(_stepMs > 0) || !Number.isFinite(_stepMs)) {
22
+ throw new RangeError(`FixedTimestep: step must be a positive finite number of ms, received ${_stepMs}.`);
23
+ }
24
+ }
25
+ /** The fixed step size in milliseconds. */
26
+ get stepMs() {
27
+ return this._stepMs;
28
+ }
29
+ /** Leftover fraction `[0, 1)` of a step — the render interpolation factor. */
30
+ get alpha() {
31
+ return this._accumulatorMs / this._stepMs;
32
+ }
33
+ /** Add a frame's elapsed time and return how many fixed steps to run now (capped at `maxSteps`). */
34
+ advance(frameDeltaMs) {
35
+ this._accumulatorMs += frameDeltaMs;
36
+ // Tolerance so an accumulator that lands a rounding-error below a whole
37
+ // multiple of the step (e.g. 3×step) still yields that many steps.
38
+ const epsilon = this._stepMs * 1e-9;
39
+ let steps = 0;
40
+ while (this._accumulatorMs >= this._stepMs - epsilon && steps < this._maxSteps) {
41
+ this._accumulatorMs -= this._stepMs;
42
+ steps++;
43
+ }
44
+ // Capped: drop the whole-step backlog, keep only the sub-step remainder so
45
+ // alpha stays in [0, 1) and the next frame does not replay the lost time.
46
+ if (this._accumulatorMs > this._stepMs) {
47
+ this._accumulatorMs %= this._stepMs;
48
+ }
49
+ // Clamp the tiny negative the epsilon subtraction can leave.
50
+ if (this._accumulatorMs < 0) {
51
+ this._accumulatorMs = 0;
52
+ }
53
+ return steps;
54
+ }
55
+ /** Clear the accumulator (e.g. on start/resume so a paused gap is not caught up). */
56
+ reset() {
57
+ this._accumulatorMs = 0;
58
+ }
59
+ }
60
+
61
+ export { FixedTimestep };
62
+ //# sourceMappingURL=FixedTimestep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixedTimestep.js","sources":["../../../../src/core/FixedTimestep.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;AAYG;MACU,aAAa,CAAA;AAIL,IAAA,OAAA;AACA,IAAA,SAAA;IAJX,cAAc,GAAG,CAAC;IAE1B,WAAA,CACmB,OAAe,EACf,SAAiB,EAAA;QADjB,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,SAAS,GAAT,SAAS;AAE1B,QAAA,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC/C,YAAA,MAAM,IAAI,UAAU,CAAC,wEAAwE,OAAO,CAAA,CAAA,CAAG,CAAC;QAC1G;IACF;;AAGA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;;AAGA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO;IAC3C;;AAGO,IAAA,OAAO,CAAC,YAAoB,EAAA;AACjC,QAAA,IAAI,CAAC,cAAc,IAAI,YAAY;;;AAInC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;QACnC,IAAI,KAAK,GAAG,CAAC;AAEb,QAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9E,YAAA,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO;AACnC,YAAA,KAAK,EAAE;QACT;;;QAIA,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,YAAA,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO;QACrC;;AAGA,QAAA,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QACzB;AAEA,QAAA,OAAO,KAAK;IACd;;IAGO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;IACzB;AACD;;;;"}
@@ -7,6 +7,7 @@ import type { Loader } from '#resources/Loader';
7
7
  import { UIRoot } from '#ui/UIRoot';
8
8
  import type { Application } from './Application';
9
9
  import { type SerializedScene } from './serialization/types';
10
+ import { Signal } from './Signal';
10
11
  import { SystemRegistry } from './SystemRegistry';
11
12
  import type { Time } from './Time';
12
13
  import type { Destroyable } from './types';
@@ -65,6 +66,10 @@ export declare class Scene {
65
66
  * (show a panel on `scene.ui`, then set `scene.paused = true`).
66
67
  */
67
68
  paused: boolean;
69
+ /** Dispatched after the scene finishes loading (after load() and init() complete). */
70
+ readonly onLoad: Signal<[]>;
71
+ /** Dispatched when the scene is about to be unloaded. */
72
+ readonly onUnload: Signal<[]>;
68
73
  private _inputs;
69
74
  private _tweens;
70
75
  private _systems;
@@ -175,6 +180,15 @@ export declare class Scene {
175
180
  * positions, advance timers, drive AI here. Override in subclass.
176
181
  */
177
182
  update(_delta: Time): void;
183
+ /**
184
+ * Fixed-timestep logic hook. Called zero or more times per frame with a
185
+ * constant `delta` ({@link Application.fixedTimeStep}) before {@link Scene.update},
186
+ * so physics and deterministic gameplay advance at a frame-rate-independent
187
+ * rate. Put `physicsWorld.step(delta)` and movement here; leave camera, UI and
188
+ * purely visual work in {@link Scene.update}. Default is a no-op. Override in
189
+ * subclass.
190
+ */
191
+ fixedUpdate(_delta: Time): void;
178
192
  /**
179
193
  * Explicit per-frame rendering entry point. Override to choose
180
194
  * what gets rendered.
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../../src/core/Scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../../src/core/Scene.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { UIRoot } from '../ui/UIRoot.js';
3
3
  import { DisposalScope } from './DisposalScope.js';
4
4
  import { serializeTree, migrate, deserializeInto } from './serialization/serialize.js';
5
5
  import { SERIALIZATION_VERSION } from './serialization/types.js';
6
+ import { Signal } from './Signal.js';
6
7
  import { SystemRegistry } from './SystemRegistry.js';
7
8
 
8
9
  /**
@@ -93,6 +94,10 @@ class Scene {
93
94
  * (show a panel on `scene.ui`, then set `scene.paused = true`).
94
95
  */
95
96
  paused = false;
97
+ /** Dispatched after the scene finishes loading (after load() and init() complete). */
98
+ onLoad = new Signal();
99
+ /** Dispatched when the scene is about to be unloaded. */
100
+ onUnload = new Signal();
96
101
  _inputs = null;
97
102
  _tweens = null;
98
103
  _systems = null;
@@ -277,6 +282,17 @@ class Scene {
277
282
  update(_delta) {
278
283
  // override in subclass
279
284
  }
285
+ /**
286
+ * Fixed-timestep logic hook. Called zero or more times per frame with a
287
+ * constant `delta` ({@link Application.fixedTimeStep}) before {@link Scene.update},
288
+ * so physics and deterministic gameplay advance at a frame-rate-independent
289
+ * rate. Put `physicsWorld.step(delta)` and movement here; leave camera, UI and
290
+ * purely visual work in {@link Scene.update}. Default is a no-op. Override in
291
+ * subclass.
292
+ */
293
+ fixedUpdate(_delta) {
294
+ // override in subclass
295
+ }
280
296
  /**
281
297
  * Explicit per-frame rendering entry point. Override to choose
282
298
  * what gets rendered.
@@ -310,6 +326,8 @@ class Scene {
310
326
  this._inputs = null;
311
327
  this._tweens = null;
312
328
  this._systems = null;
329
+ this.onLoad.destroy();
330
+ this.onUnload.destroy();
313
331
  this._root.destroy();
314
332
  this._app = null;
315
333
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.js","sources":["../../../../src/core/Scene.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scene.js","sources":["../../../../src/core/Scene.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAiBA;;;AAGG;AACH,MAAM,WAAW,CAAA;AAGqB,IAAA,MAAA;AAFnB,IAAA,SAAS,GAAG,IAAI,GAAG,EAAgB;AAEpD,IAAA,WAAA,CAAoC,MAAa,EAAA;QAAb,IAAA,CAAA,MAAM,GAAN,MAAM;IAAU;AAE7C,IAAA,OAAO,CAAC,OAA+C,EAAE,QAAiC,EAAE,OAA6B,EAAA;QAC9H,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChF;AAEO,IAAA,QAAQ,CAAC,OAA+C,EAAE,QAAiC,EAAE,OAA6B,EAAA;QAC/H,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjF;AAEO,IAAA,MAAM,CAAC,OAA+C,EAAE,QAAiC,EAAE,OAA6B,EAAA;QAC7H,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/E;AAEO,IAAA,SAAS,CAAC,OAA+C,EAAE,QAAiC,EAAE,OAA6B,EAAA;QAChI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClF;IAEO,OAAO,GAAA;AACZ,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,OAAO,CAAC,MAAM,EAAE;QAClB;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IACxB;AAEQ,IAAA,MAAM,CAAC,OAAqB,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AAE3B,QAAA,OAAO,OAAO;IAChB;AACD;AAED;;;AAGG;AACH,MAAM,WAAW,CAAA;AAGqB,IAAA,MAAA;AAFnB,IAAA,OAAO,GAAG,IAAI,GAAG,EAAS;AAE3C,IAAA,WAAA,CAAoC,MAAa,EAAA;QAAb,IAAA,CAAA,MAAM,GAAN,MAAM;IAAU;AAE7C,IAAA,MAAM,CAAmB,MAAS,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAEvB,QAAA,OAAO,KAAK;IACd;AAEO,IAAA,GAAG,CAAC,KAAY,EAAA;QACrB,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAEvB,QAAA,OAAO,IAAI;IACb;IAEO,OAAO,GAAA;AACZ,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,KAAK,CAAC,IAAI,EAAE;QACd;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;IACtB;AACD;AAED;;;;;;;;;;;;;;;;;;AAkBG;MACU,KAAK,CAAA;IACN,IAAI,GAAuB,IAAI;AACtB,IAAA,KAAK,GAAG,IAAI,SAAS,EAAE;AAE1C;;;;AAIG;IACI,MAAM,GAAG,KAAK;;AAGL,IAAA,MAAM,GAAG,IAAI,MAAM,EAAE;;AAErB,IAAA,QAAQ,GAAG,IAAI,MAAM,EAAE;IAE/B,OAAO,GAAuB,IAAI;IAClC,OAAO,GAAuB,IAAI;IAClC,QAAQ,GAA0B,IAAI;AAC7B,IAAA,SAAS,GAAG,IAAI,aAAa,EAAE;AAEhD,IAAA,IAAW,GAAG,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI;IAClB;IAEA,IAAW,GAAG,CAAC,GAAuB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;IACjB;AAEA;;;;;;;;;;;;AAYG;AACH,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;IACnB;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACtB,gBAAA,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC;YAChG;AAEA,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5D;QAEA,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACtB,gBAAA,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC;YAChG;AAEA,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5D;QAEA,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA;;;;;AAKG;AACI,IAAA,KAAK,CAAwB,IAAO,EAAA;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;IACnC;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;QAC5D;QAEA,OAAO,IAAI,CAAC,QAAQ;IACtB;;AAGO,IAAA,YAAY,CAAC,KAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;IAC7B;IAEQ,GAAG,GAAkB,IAAI;AAEjC;;;;;;;;;AASG;AACH,IAAA,IAAW,EAAE,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE;AACrB,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;;;YAI7C,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;gBACnC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/C;QACF;QAEA,OAAO,IAAI,CAAC,GAAG;IACjB;;;IAIO,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,GAAG;IACjB;AAEO,IAAA,QAAQ,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAE1B,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,WAAW,CAAC,KAAiB,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AAE7B,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;;;;AASG;IACI,SAAS,GAAA;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW;QACvC,MAAM,IAAI,GAAoB,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;AACnH,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AAEzB,QAAA,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC;QAC/C;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;;;;AASG;AACI,IAAA,WAAW,CAAC,IAAqB,EAAA;AACtC,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW;AAEvC,QAAA,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;AAE5D,QAAA,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;AAC7B,YAAA,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC;QACzD;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;;AAKG;AACI,IAAA,IAAI,CAAC,OAAe,EAAA;;IAE3B;AAEA;;;;AAIG;AACI,IAAA,IAAI,CAAC,OAAe,EAAA;;IAE3B;AAEA;;;;AAIG;AACI,IAAA,MAAM,CAAC,MAAY,EAAA;;IAE1B;AAEA;;;;;;;AAOG;AACI,IAAA,WAAW,CAAC,MAAY,EAAA;;IAE/B;AAEA;;;;;;;;;;;;;;AAcG;AACI,IAAA,IAAI,CAAC,QAA0B,EAAA;;IAEtC;AAEA;;;;AAIG;AACI,IAAA,MAAM,CAAC,OAAe,EAAA;;IAE7B;IAEO,OAAO,GAAA;;;AAGZ,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AACD;;;;"}
@@ -63,6 +63,13 @@ export declare class SceneManager {
63
63
  * UI layer on top.
64
64
  */
65
65
  update(delta: Time): this;
66
+ /**
67
+ * Drive one fixed-timestep step on the active scene (unless paused). Called
68
+ * zero or more times per frame by the {@link Application} loop, ahead of
69
+ * {@link SceneManager.update}. No drawing or transition advance happens here —
70
+ * those are per-frame, not per fixed step.
71
+ */
72
+ fixedUpdate(delta: Time): this;
66
73
  destroy(): void;
67
74
  private _prepareScene;
68
75
  private _disposeScene;
@@ -1 +1 @@
1
- {"version":3,"file":"SceneManager.d.ts","sourceRoot":"","sources":["../../../src/core/SceneManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,yEAAyE;AACzE,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAgCD;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8C;IACjF,OAAO,CAAC,WAAW,CAAqC;IAExD,gHAAgH;IAChH,SAAgB,aAAa,yBAAgC;IAC7D,mEAAmE;IACnE,SAAgB,YAAY,kBAAyB;IACrD,wEAAwE;IACxE,SAAgB,aAAa,kBAAyB;IACtD,uEAAuE;IACvE,SAAgB,WAAW,kBAAyB;IAEpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;gBAEtC,GAAG,EAAE,WAAW;IAInC,oDAAoD;IACpD,IAAW,YAAY,IAAI,KAAK,GAAG,IAAI,CAEtC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAE1C;IAED;;;;;OAKG;IACU,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BxF;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAgDzB,OAAO,IAAI,IAAI;YAkBR,aAAa;YAqDb,aAAa;YAeb,2BAA2B;YAgB3B,kBAAkB;IAiChC,OAAO,CAAC,kBAAkB;YAyBZ,wBAAwB;IA2BtC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,wBAAwB;CAoBjC"}
1
+ {"version":3,"file":"SceneManager.d.ts","sourceRoot":"","sources":["../../../src/core/SceneManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,yEAAyE;AACzE,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAElD,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAgCD;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8C;IACjF,OAAO,CAAC,WAAW,CAAqC;IAExD,gHAAgH;IAChH,SAAgB,aAAa,yBAAgC;IAC7D,mEAAmE;IACnE,SAAgB,YAAY,kBAAyB;IACrD,wEAAwE;IACxE,SAAgB,aAAa,kBAAyB;IACtD,uEAAuE;IACvE,SAAgB,WAAW,kBAAyB;IAEpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;gBAEtC,GAAG,EAAE,WAAW;IAInC,oDAAoD;IACpD,IAAW,YAAY,IAAI,KAAK,GAAG,IAAI,CAEtC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAE1C;IAED;;;;;OAKG;IACU,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BxF;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAkDhC;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAU9B,OAAO,IAAI,IAAI;YAkBR,aAAa;YAwDb,aAAa;YAgBb,2BAA2B;YAgB3B,kBAAkB;IAiChC,OAAO,CAAC,kBAAkB;YAyBZ,wBAAwB;IA2BtC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,wBAAwB;CAoBjC"}
@@ -1,5 +1,6 @@
1
1
  import { Mesh } from '../rendering/mesh/Mesh.js';
2
2
  import { Color } from './Color.js';
3
+ import { logger } from './logging.js';
3
4
  import { Scene } from './Scene.js';
4
5
  import { Signal } from './Signal.js';
5
6
 
@@ -94,7 +95,7 @@ class SceneManager {
94
95
  const updateResult = scene.update(delta);
95
96
  if (!this._asyncUpdateWarned.has(scene) && updateResult instanceof Promise) {
96
97
  this._asyncUpdateWarned.add(scene);
97
- console.warn(`[ExoJS] Scene.update() returned a Promise. update() must be synchronous — async logic here breaks frame timing and silently drops errors. Move async work into load() or init() instead.`);
98
+ logger.warn('scene', `Scene.update() returned a Promise. update() must be synchronous — async logic here breaks frame timing and silently drops errors. Move async work into load() or init() instead.`);
98
99
  }
99
100
  // Tick the scene's systems (e.g. a physics world) after its update().
100
101
  scene._tickSystems(delta);
@@ -103,7 +104,7 @@ class SceneManager {
103
104
  const drawResult = scene.draw(this._app.rendering);
104
105
  if (!this._asyncDrawWarned.has(scene) && drawResult instanceof Promise) {
105
106
  this._asyncDrawWarned.add(scene);
106
- console.warn(`[ExoJS] Scene.draw() returned a Promise. draw() must be synchronous — an async draw() produces incomplete frames and silently drops errors.`);
107
+ logger.warn('scene', `Scene.draw() returned a Promise. draw() must be synchronous — an async draw() produces incomplete frames and silently drops errors.`);
107
108
  }
108
109
  // Auto-render the scene's screen-fixed UI layer above its content.
109
110
  scene._peekUI()?._render(this._app.rendering);
@@ -117,6 +118,19 @@ class SceneManager {
117
118
  }
118
119
  return this;
119
120
  }
121
+ /**
122
+ * Drive one fixed-timestep step on the active scene (unless paused). Called
123
+ * zero or more times per frame by the {@link Application} loop, ahead of
124
+ * {@link SceneManager.update}. No drawing or transition advance happens here —
125
+ * those are per-frame, not per fixed step.
126
+ */
127
+ fixedUpdate(delta) {
128
+ const scene = this._activeScene;
129
+ if (scene !== null && !scene.paused) {
130
+ scene.fixedUpdate(delta);
131
+ }
132
+ return this;
133
+ }
120
134
  destroy() {
121
135
  if (this._transition) {
122
136
  const transition = this._transition;
@@ -137,7 +151,7 @@ class SceneManager {
137
151
  await scene.load(this._app.loader);
138
152
  await scene.init(this._app.loader);
139
153
  if (scene.root.children.length > 0 && scene.draw === Scene.prototype.draw) {
140
- console.warn(`[ExoJS] Scene.root has ${scene.root.children.length} child(ren) after init() but draw() is not overridden. Scene.root is not auto-rendered — call context.render(this.root) inside draw().`);
154
+ logger.warn('scene', `Scene.root has ${scene.root.children.length} child(ren) after init() but draw() is not overridden. Scene.root is not auto-rendered — call context.render(this.root) inside draw().`);
141
155
  }
142
156
  // Bind the scene's root to the app's interaction manager so its nodes
143
157
  // route picking/bounds notifications to this Application (no global).
@@ -147,6 +161,7 @@ class SceneManager {
147
161
  if (ui !== null) {
148
162
  this._app.interaction.attachUIRoot(ui);
149
163
  }
164
+ scene.onLoad.dispatch();
150
165
  }
151
166
  catch (error) {
152
167
  let cleanupError = null;
@@ -175,6 +190,7 @@ class SceneManager {
175
190
  }
176
191
  }
177
192
  async _disposeScene(scene) {
193
+ scene.onUnload.dispatch();
178
194
  this.onStopScene.dispatch(scene);
179
195
  await scene.unload(this._app.loader);
180
196
  const ui = scene._peekUI();
@@ -195,7 +211,7 @@ class SceneManager {
195
211
  await this._disposeScene(scene);
196
212
  }
197
213
  catch (error) {
198
- console.error('SceneManager.destroy() failed to unload the active scene.', error);
214
+ logger.error('scene', 'SceneManager.destroy() failed to unload the active scene.', error instanceof Error ? error : undefined);
199
215
  }
200
216
  }
201
217
  async _runWithTransition(action, transition) {
@@ -1 +1 @@
1
- {"version":3,"file":"SceneManager.js","sources":["../../../../src/core/SceneManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SceneManager.js","sources":["../../../../src/core/SceneManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { Interval } from '#math/Interval';
5
5
  import { Matrix } from '#math/Matrix';
6
6
  import { ObservableVector, type ObservableVectorOwner } from '#math/ObservableVector';
7
7
  import { Rectangle } from '#math/Rectangle';
8
- import type { Vector } from '#math/Vector';
8
+ import { Vector } from '#math/Vector';
9
9
  import type { Container } from '#rendering/Container';
10
10
  import type { View } from '#rendering/View';
11
11
  import { Bounds } from './Bounds';
@@ -35,10 +35,10 @@ declare enum SceneNodeTransformFlags {
35
35
  * for this node and every {@link Container} ancestor up the parent chain.
36
36
  * The caches rebuild lazily on the next read.
37
37
  *
38
- * The fast-path `isAlignedBox` getter reports `true` when the rotation is a
39
- * multiple of 90° and both skew components are zero; in that case the
40
- * (cheaper) AABB-based collision test is used instead of the rotated/skewed
41
- * quad SAT path.
38
+ * Collision and hit-testing take the cheaper AABB path when the node's *world*
39
+ * box is axis-aligned (its own and any inherited rotation compose to a multiple
40
+ * of 90° with no skew) and the oriented-quad SAT path otherwise. The public
41
+ * `isAlignedBox` getter reports that predicate for this node's own rotation only.
42
42
  *
43
43
  * `_invalidate*` methods are exported as `public` for friend-class access
44
44
  * from {@link Container} and {@link InteractionManager}; treat them as
@@ -69,6 +69,9 @@ export declare class SceneNode implements Collidable, ObservableVectorOwner {
69
69
  private _parentNode;
70
70
  private _zIndex;
71
71
  private _cullable;
72
+ private _cullArea;
73
+ /** Lazily-built oriented bounding box (the local bounds under the global transform) for rotated-node SAT. */
74
+ private _orientedBounds;
72
75
  /**
73
76
  * Optional human-readable identity for this node. Defaults to `null`.
74
77
  *
@@ -104,8 +107,19 @@ export declare class SceneNode implements Collidable, ObservableVectorOwner {
104
107
  set visible(visible: boolean);
105
108
  get zIndex(): number;
106
109
  set zIndex(zIndex: number);
110
+ /**
111
+ * When `false`, this node is never culled by the viewport check and is
112
+ * always considered in-view. Defaults to `true`.
113
+ */
107
114
  get cullable(): boolean;
108
115
  set cullable(cullable: boolean);
116
+ /**
117
+ * Custom rectangle used for viewport cull intersection test.
118
+ * When set, replaces the default node bounds in cull checks.
119
+ * Set to `null` to restore default bounds-based culling.
120
+ */
121
+ get cullArea(): Rectangle | null;
122
+ set cullArea(rect: Rectangle | null);
109
123
  /**
110
124
  * Horizontal skew angle in degrees. Shears the node along the X axis
111
125
  * (positive values lean the top edge right). Combines correctly with
@@ -138,12 +152,28 @@ export declare class SceneNode implements Collidable, ObservableVectorOwner {
138
152
  getGlobalTransform(): Matrix;
139
153
  getNormals(): Vector[];
140
154
  project(axis: Vector, result?: Interval): Interval;
155
+ /**
156
+ * The node's oriented bounding box: the four local-bounds corners under the
157
+ * global transform, as a {@link Polygon}. Used by the SAT collision path so a
158
+ * rotated node tests its true oriented axes instead of the loose AABB. Built
159
+ * lazily and refreshed in place; only ever reached for non-axis-aligned nodes.
160
+ */
161
+ private _orientedBoundsPolygon;
162
+ /**
163
+ * Whether the node's *world* box is axis-aligned — its own and every inherited
164
+ * rotation/skew compose to a transform that maps axes to axes (a multiple of
165
+ * 90°, no shear). When true the AABB equals the oriented box, so the cheaper
166
+ * AABB collision/hit-test path is exact; otherwise the oriented-quad SAT path
167
+ * is used. Unlike {@link isAlignedBox} (this node's own rotation only), this
168
+ * accounts for a rotated ancestor.
169
+ */
170
+ private _isWorldAligned;
141
171
  intersectsWith(target: Collidable): boolean;
142
172
  collidesWith(target: Collidable): CollisionResponse | null;
143
173
  /**
144
174
  * Hit-test the world-space point `(x, y)` against this node.
145
175
  *
146
- * For axis-aligned nodes ({@link isAlignedBox} rotation a multiple of 90°
176
+ * For world-axis-aligned nodes (own and inherited rotation a multiple of 90°
147
177
  * and no skew) the AABB equals the oriented box, so the cheap
148
178
  * {@link getBounds} test is exact. For rotated or skewed nodes the point is
149
179
  * mapped back into local space with the inverse of the global transform and
@@ -184,7 +214,16 @@ export declare class SceneNode implements Collidable, ObservableVectorOwner {
184
214
  private _setScalingDirty;
185
215
  private _setOriginDirty;
186
216
  private _setSkewDirty;
187
- private _updateOrigin;
217
+ /**
218
+ * Re-derive `origin` from the fractional anchor and the CURRENT local
219
+ * bounds. Uses local (untransformed) bounds on purpose: the transform
220
+ * multiplies the origin by scale itself, so deriving from world bounds
221
+ * would double-apply scale whenever the anchor is set after scaling.
222
+ * Subclasses whose local bounds change after construction (e.g. a sprite
223
+ * switching to a texture sub-frame) must call this to keep an anchored
224
+ * node anchored.
225
+ */
226
+ protected _updateOrigin(): void;
188
227
  }
189
228
  export {};
190
229
  //# sourceMappingURL=SceneNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SceneNode.d.ts","sourceRoot":"","sources":["../../../src/core/SceneNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SceneNode.d.ts","sourceRoot":"","sources":["../../../src/core/SceneNode.ts"],"names":[],"mappings":"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"}