@codexo/exojs 0.13.0 → 0.15.0

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 (822) hide show
  1. package/CHANGELOG.md +265 -6
  2. package/README.md +82 -67
  3. package/dist/esm/animation/Tween.d.ts.map +1 -1
  4. package/dist/esm/animation/Tween.js +1 -2
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +50 -7
  7. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +68 -10
  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 +7 -4
  15. package/dist/esm/animation/index.d.ts.map +1 -1
  16. package/dist/esm/audio/AudioBus.d.ts +12 -12
  17. package/dist/esm/audio/AudioBus.js +29 -29
  18. package/dist/esm/audio/AudioEffect.d.ts +18 -0
  19. package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
  20. package/dist/esm/audio/AudioEffect.js +16 -0
  21. package/dist/esm/audio/AudioEffect.js.map +1 -0
  22. package/dist/esm/audio/AudioGenerator.d.ts +91 -0
  23. package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
  24. package/dist/esm/audio/AudioGenerator.js +165 -0
  25. package/dist/esm/audio/AudioGenerator.js.map +1 -0
  26. package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
  27. package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
  28. package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
  29. package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
  30. package/dist/esm/audio/AudioInput.d.ts +39 -0
  31. package/dist/esm/audio/AudioInput.d.ts.map +1 -0
  32. package/dist/esm/audio/AudioInput.js +53 -0
  33. package/dist/esm/audio/AudioInput.js.map +1 -0
  34. package/dist/esm/audio/AudioManager.d.ts +72 -34
  35. package/dist/esm/audio/AudioManager.d.ts.map +1 -1
  36. package/dist/esm/audio/AudioManager.js +97 -51
  37. package/dist/esm/audio/AudioManager.js.map +1 -1
  38. package/dist/esm/audio/AudioStream.d.ts +49 -0
  39. package/dist/esm/audio/AudioStream.d.ts.map +1 -0
  40. package/dist/esm/audio/AudioStream.js +109 -0
  41. package/dist/esm/audio/AudioStream.js.map +1 -0
  42. package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
  43. package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
  44. package/dist/esm/audio/AudioStreamVoice.js +137 -0
  45. package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
  46. package/dist/esm/audio/BaseVoice.d.ts +111 -0
  47. package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
  48. package/dist/esm/audio/BaseVoice.js +298 -0
  49. package/dist/esm/audio/BaseVoice.js.map +1 -0
  50. package/dist/esm/audio/BiquadEffect.d.ts +53 -0
  51. package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
  52. package/dist/esm/audio/BiquadEffect.js +110 -0
  53. package/dist/esm/audio/BiquadEffect.js.map +1 -0
  54. package/dist/esm/audio/InputVoice.d.ts +41 -0
  55. package/dist/esm/audio/InputVoice.d.ts.map +1 -0
  56. package/dist/esm/audio/InputVoice.js +85 -0
  57. package/dist/esm/audio/InputVoice.js.map +1 -0
  58. package/dist/esm/audio/NoopVoice.d.ts +29 -0
  59. package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
  60. package/dist/esm/audio/NoopVoice.js +52 -0
  61. package/dist/esm/audio/NoopVoice.js.map +1 -0
  62. package/dist/esm/audio/Playable.d.ts +135 -0
  63. package/dist/esm/audio/Playable.d.ts.map +1 -0
  64. package/dist/esm/audio/Sound.d.ts +64 -69
  65. package/dist/esm/audio/Sound.d.ts.map +1 -1
  66. package/dist/esm/audio/Sound.js +176 -377
  67. package/dist/esm/audio/Sound.js.map +1 -1
  68. package/dist/esm/audio/SoundVoice.d.ts +63 -0
  69. package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
  70. package/dist/esm/audio/SoundVoice.js +168 -0
  71. package/dist/esm/audio/SoundVoice.js.map +1 -0
  72. package/dist/esm/audio/WorkletEffect.d.ts +68 -0
  73. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
  74. package/dist/esm/audio/WorkletEffect.js +177 -0
  75. package/dist/esm/audio/WorkletEffect.js.map +1 -0
  76. package/dist/esm/audio/audio-context.js +1 -1
  77. package/dist/esm/audio/audio-context.js.map +1 -1
  78. package/dist/esm/audio/crossFade.d.ts +22 -13
  79. package/dist/esm/audio/crossFade.d.ts.map +1 -1
  80. package/dist/esm/audio/crossFade.js +21 -13
  81. package/dist/esm/audio/crossFade.js.map +1 -1
  82. package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
  83. package/dist/esm/audio/filters/HighpassFilter.js +2 -2
  84. package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
  85. package/dist/esm/audio/filters/LowpassFilter.js +2 -2
  86. package/dist/esm/audio/filters/index.d.ts +0 -10
  87. package/dist/esm/audio/filters/index.d.ts.map +1 -1
  88. package/dist/esm/audio/index.d.ts +13 -15
  89. package/dist/esm/audio/index.d.ts.map +1 -1
  90. package/dist/esm/core/Application.d.ts +169 -14
  91. package/dist/esm/core/Application.d.ts.map +1 -1
  92. package/dist/esm/core/Application.js +306 -31
  93. package/dist/esm/core/Application.js.map +1 -1
  94. package/dist/esm/core/BuildInfo.js +2 -2
  95. package/dist/esm/core/Codec.d.ts +41 -0
  96. package/dist/esm/core/Codec.d.ts.map +1 -0
  97. package/dist/esm/core/Codec.js +79 -0
  98. package/dist/esm/core/Codec.js.map +1 -0
  99. package/dist/esm/core/Color.d.ts +6 -4
  100. package/dist/esm/core/Color.d.ts.map +1 -1
  101. package/dist/esm/core/Color.js +19 -15
  102. package/dist/esm/core/Color.js.map +1 -1
  103. package/dist/esm/core/DisposalScope.d.ts +50 -0
  104. package/dist/esm/core/DisposalScope.d.ts.map +1 -0
  105. package/dist/esm/core/DisposalScope.js +86 -0
  106. package/dist/esm/core/DisposalScope.js.map +1 -0
  107. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  108. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  109. package/dist/esm/core/FixedTimestep.js +62 -0
  110. package/dist/esm/core/FixedTimestep.js.map +1 -0
  111. package/dist/esm/core/Perf.d.ts +10 -22
  112. package/dist/esm/core/Perf.d.ts.map +1 -1
  113. package/dist/esm/core/Perf.js +15 -8
  114. package/dist/esm/core/Perf.js.map +1 -1
  115. package/dist/esm/core/Registry.d.ts +64 -0
  116. package/dist/esm/core/Registry.d.ts.map +1 -0
  117. package/dist/esm/core/Registry.js +79 -0
  118. package/dist/esm/core/Registry.js.map +1 -0
  119. package/dist/esm/core/Scene.d.ts +83 -21
  120. package/dist/esm/core/Scene.d.ts.map +1 -1
  121. package/dist/esm/core/Scene.js +127 -16
  122. package/dist/esm/core/Scene.js.map +1 -1
  123. package/dist/esm/core/SceneManager.d.ts +28 -59
  124. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  125. package/dist/esm/core/SceneManager.js +86 -155
  126. package/dist/esm/core/SceneManager.js.map +1 -1
  127. package/dist/esm/core/SceneNode.d.ts +78 -7
  128. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  129. package/dist/esm/core/SceneNode.js +162 -21
  130. package/dist/esm/core/SceneNode.js.map +1 -1
  131. package/dist/esm/core/Signal.js.map +1 -1
  132. package/dist/esm/core/Stage.d.ts +49 -0
  133. package/dist/esm/core/Stage.d.ts.map +1 -0
  134. package/dist/esm/core/System.d.ts +22 -0
  135. package/dist/esm/core/System.d.ts.map +1 -0
  136. package/dist/esm/core/SystemRegistry.d.ts +40 -0
  137. package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
  138. package/dist/esm/core/SystemRegistry.js +114 -0
  139. package/dist/esm/core/SystemRegistry.js.map +1 -0
  140. package/dist/esm/core/Time.d.ts +15 -0
  141. package/dist/esm/core/Time.d.ts.map +1 -1
  142. package/dist/esm/core/Time.js +25 -0
  143. package/dist/esm/core/Time.js.map +1 -1
  144. package/dist/esm/core/dev.d.ts +9 -4
  145. package/dist/esm/core/dev.d.ts.map +1 -1
  146. package/dist/esm/core/dev.js +5 -0
  147. package/dist/esm/core/dev.js.map +1 -1
  148. package/dist/esm/core/index.d.ts +30 -15
  149. package/dist/esm/core/index.d.ts.map +1 -1
  150. package/dist/esm/core/letterbox.d.ts +25 -0
  151. package/dist/esm/core/letterbox.d.ts.map +1 -0
  152. package/dist/esm/core/letterbox.js +26 -0
  153. package/dist/esm/core/letterbox.js.map +1 -0
  154. package/dist/esm/core/logging.d.ts +34 -0
  155. package/dist/esm/core/logging.d.ts.map +1 -0
  156. package/dist/esm/core/logging.js +59 -0
  157. package/dist/esm/core/logging.js.map +1 -0
  158. package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
  159. package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
  160. package/dist/esm/core/serialization/Prefab.d.ts +49 -0
  161. package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
  162. package/dist/esm/core/serialization/Prefab.js +61 -0
  163. package/dist/esm/core/serialization/Prefab.js.map +1 -0
  164. package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
  165. package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
  166. package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
  167. package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
  168. package/dist/esm/core/serialization/commonFields.d.ts +20 -0
  169. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
  170. package/dist/esm/core/serialization/commonFields.js +155 -0
  171. package/dist/esm/core/serialization/commonFields.js.map +1 -0
  172. package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
  173. package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
  174. package/dist/esm/core/serialization/coreSerializers.js +101 -0
  175. package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
  176. package/dist/esm/core/serialization/index.d.ts +6 -0
  177. package/dist/esm/core/serialization/index.d.ts.map +1 -0
  178. package/dist/esm/core/serialization/read.d.ts +65 -0
  179. package/dist/esm/core/serialization/read.d.ts.map +1 -0
  180. package/dist/esm/core/serialization/read.js +48 -0
  181. package/dist/esm/core/serialization/read.js.map +1 -0
  182. package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
  183. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
  184. package/dist/esm/core/serialization/renderingSerializers.js +320 -0
  185. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
  186. package/dist/esm/core/serialization/serialize.d.ts +56 -0
  187. package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
  188. package/dist/esm/core/serialization/serialize.js +144 -0
  189. package/dist/esm/core/serialization/serialize.js.map +1 -0
  190. package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
  191. package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
  192. package/dist/esm/core/serialization/serializerHelpers.js +161 -0
  193. package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
  194. package/dist/esm/core/serialization/types.d.ts +49 -0
  195. package/dist/esm/core/serialization/types.d.ts.map +1 -0
  196. package/dist/esm/core/serialization/types.js +9 -0
  197. package/dist/esm/core/serialization/types.js.map +1 -0
  198. package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
  199. package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
  200. package/dist/esm/core/serialization/uiSerializers.js +206 -0
  201. package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
  202. package/dist/esm/core/types.d.ts +1 -1
  203. package/dist/esm/core/types.d.ts.map +1 -1
  204. package/dist/esm/core/utils.d.ts +1 -16
  205. package/dist/esm/core/utils.d.ts.map +1 -1
  206. package/dist/esm/core/utils.js +2 -100
  207. package/dist/esm/core/utils.js.map +1 -1
  208. package/dist/esm/debug/PerformanceLayer.js +8 -9
  209. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  210. package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
  211. package/dist/esm/debug/PointerStackLayer.js +9 -6
  212. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  213. package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
  214. package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
  215. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  216. package/dist/esm/extensions/Extension.d.ts +39 -4
  217. package/dist/esm/extensions/Extension.d.ts.map +1 -1
  218. package/dist/esm/extensions/materialize.d.ts +9 -1
  219. package/dist/esm/extensions/materialize.d.ts.map +1 -1
  220. package/dist/esm/extensions/materialize.js +17 -2
  221. package/dist/esm/extensions/materialize.js.map +1 -1
  222. package/dist/esm/extensions/snapshot.d.ts +2 -1
  223. package/dist/esm/extensions/snapshot.d.ts.map +1 -1
  224. package/dist/esm/extensions/snapshot.js +8 -0
  225. package/dist/esm/extensions/snapshot.js.map +1 -1
  226. package/dist/esm/index.d.ts +2 -1
  227. package/dist/esm/index.d.ts.map +1 -1
  228. package/dist/esm/index.js +41 -61
  229. package/dist/esm/index.js.map +1 -1
  230. package/dist/esm/input/FocusManager.d.ts +59 -0
  231. package/dist/esm/input/FocusManager.d.ts.map +1 -0
  232. package/dist/esm/input/FocusManager.js +175 -0
  233. package/dist/esm/input/FocusManager.js.map +1 -0
  234. package/dist/esm/input/Gamepad.d.ts +10 -0
  235. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  236. package/dist/esm/input/Gamepad.js +20 -4
  237. package/dist/esm/input/Gamepad.js.map +1 -1
  238. package/dist/esm/input/GamepadAxis.js +2 -2
  239. package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
  240. package/dist/esm/input/GamepadDefinitions.js +6 -2
  241. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  242. package/dist/esm/input/GestureRecognizer.d.ts +1 -2
  243. package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
  244. package/dist/esm/input/GestureRecognizer.js +1 -3
  245. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  246. package/dist/esm/input/InputBinding.js +3 -3
  247. package/dist/esm/input/InputBinding.js.map +1 -1
  248. package/dist/esm/input/InputManager.d.ts +7 -2
  249. package/dist/esm/input/InputManager.d.ts.map +1 -1
  250. package/dist/esm/input/InputManager.js +40 -21
  251. package/dist/esm/input/InputManager.js.map +1 -1
  252. package/dist/esm/input/InteractionManager.d.ts +67 -2
  253. package/dist/esm/input/InteractionManager.d.ts.map +1 -1
  254. package/dist/esm/input/InteractionManager.js +165 -41
  255. package/dist/esm/input/InteractionManager.js.map +1 -1
  256. package/dist/esm/input/KeyEvent.d.ts +25 -0
  257. package/dist/esm/input/KeyEvent.d.ts.map +1 -0
  258. package/dist/esm/input/KeyEvent.js +32 -0
  259. package/dist/esm/input/KeyEvent.js.map +1 -0
  260. package/dist/esm/input/Pointer.d.ts +21 -4
  261. package/dist/esm/input/Pointer.d.ts.map +1 -1
  262. package/dist/esm/input/Pointer.js +54 -15
  263. package/dist/esm/input/Pointer.js.map +1 -1
  264. package/dist/esm/input/index.d.ts +3 -1
  265. package/dist/esm/input/index.d.ts.map +1 -1
  266. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  267. package/dist/esm/math/AbstractVector.js +7 -2
  268. package/dist/esm/math/AbstractVector.js.map +1 -1
  269. package/dist/esm/math/Circle.d.ts.map +1 -1
  270. package/dist/esm/math/Circle.js +5 -1
  271. package/dist/esm/math/Circle.js.map +1 -1
  272. package/dist/esm/math/Line.d.ts +1 -1
  273. package/dist/esm/math/Line.d.ts.map +1 -1
  274. package/dist/esm/math/Line.js +1 -1
  275. package/dist/esm/math/Line.js.map +1 -1
  276. package/dist/esm/math/Matrix.d.ts.map +1 -1
  277. package/dist/esm/math/Matrix.js +6 -1
  278. package/dist/esm/math/Matrix.js.map +1 -1
  279. package/dist/esm/math/ObservableVector.d.ts +26 -8
  280. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  281. package/dist/esm/math/ObservableVector.js +24 -16
  282. package/dist/esm/math/ObservableVector.js.map +1 -1
  283. package/dist/esm/math/Polygon.d.ts +5 -0
  284. package/dist/esm/math/Polygon.d.ts.map +1 -1
  285. package/dist/esm/math/Polygon.js +27 -3
  286. package/dist/esm/math/Polygon.js.map +1 -1
  287. package/dist/esm/math/Random.d.ts +9 -9
  288. package/dist/esm/math/Random.d.ts.map +1 -1
  289. package/dist/esm/math/Random.js +46 -46
  290. package/dist/esm/math/Random.js.map +1 -1
  291. package/dist/esm/math/Rectangle.d.ts +11 -4
  292. package/dist/esm/math/Rectangle.d.ts.map +1 -1
  293. package/dist/esm/math/Rectangle.js +12 -6
  294. package/dist/esm/math/Rectangle.js.map +1 -1
  295. package/dist/esm/math/Vector.d.ts +1 -1
  296. package/dist/esm/math/Vector.d.ts.map +1 -1
  297. package/dist/esm/math/Vector.js +1 -1
  298. package/dist/esm/math/Vector.js.map +1 -1
  299. package/dist/esm/math/collision-detection.d.ts +42 -0
  300. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  301. package/dist/esm/math/collision-detection.js +54 -4
  302. package/dist/esm/math/collision-detection.js.map +1 -1
  303. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  304. package/dist/esm/math/collision-primitives.js +4 -0
  305. package/dist/esm/math/collision-primitives.js.map +1 -1
  306. package/dist/esm/math/geometry.d.ts +26 -0
  307. package/dist/esm/math/geometry.d.ts.map +1 -1
  308. package/dist/esm/math/geometry.js +89 -2
  309. package/dist/esm/math/geometry.js.map +1 -1
  310. package/dist/esm/math/index.d.ts +7 -5
  311. package/dist/esm/math/index.d.ts.map +1 -1
  312. package/dist/esm/math/swept-collision.d.ts +13 -0
  313. package/dist/esm/math/swept-collision.d.ts.map +1 -1
  314. package/dist/esm/math/swept-collision.js +15 -1
  315. package/dist/esm/math/swept-collision.js.map +1 -1
  316. package/dist/esm/math/triangulate.d.ts.map +1 -1
  317. package/dist/esm/math/triangulate.js +9 -1
  318. package/dist/esm/math/triangulate.js.map +1 -1
  319. package/dist/esm/math/utils.d.ts +20 -0
  320. package/dist/esm/math/utils.d.ts.map +1 -1
  321. package/dist/esm/math/utils.js +18 -15
  322. package/dist/esm/math/utils.js.map +1 -1
  323. package/dist/esm/renderer-sdk.d.ts +2 -0
  324. package/dist/esm/renderer-sdk.d.ts.map +1 -1
  325. package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
  326. package/dist/esm/renderer-sdk.js.map +1 -0
  327. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  328. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  329. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  330. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  331. package/dist/esm/rendering/CallbackRenderPass.js +17 -12
  332. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  333. package/dist/esm/rendering/Container.d.ts +3 -0
  334. package/dist/esm/rendering/Container.d.ts.map +1 -1
  335. package/dist/esm/rendering/Container.js +28 -5
  336. package/dist/esm/rendering/Container.js.map +1 -1
  337. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  338. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  339. package/dist/esm/rendering/Drawable.d.ts +24 -0
  340. package/dist/esm/rendering/Drawable.d.ts.map +1 -1
  341. package/dist/esm/rendering/Drawable.js +54 -0
  342. package/dist/esm/rendering/Drawable.js.map +1 -1
  343. package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
  344. package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
  345. package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
  346. package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
  347. package/dist/esm/rendering/PassContext.d.ts +42 -0
  348. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  349. package/dist/esm/rendering/PassContext.js +48 -0
  350. package/dist/esm/rendering/PassContext.js.map +1 -0
  351. package/dist/esm/rendering/RenderBackend.d.ts +29 -1
  352. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  353. package/dist/esm/rendering/RenderBatch.d.ts +55 -0
  354. package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
  355. package/dist/esm/rendering/RenderBatch.js +107 -0
  356. package/dist/esm/rendering/RenderBatch.js.map +1 -0
  357. package/dist/esm/rendering/RenderNode.d.ts +50 -10
  358. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  359. package/dist/esm/rendering/RenderNode.js +115 -22
  360. package/dist/esm/rendering/RenderNode.js.map +1 -1
  361. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  362. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  363. package/dist/esm/rendering/RenderNodePass.js +2 -2
  364. package/dist/esm/rendering/RenderNodePass.js.map +1 -1
  365. package/dist/esm/rendering/RenderStats.d.ts +39 -0
  366. package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
  367. package/dist/esm/rendering/RenderStats.js +14 -0
  368. package/dist/esm/rendering/RenderStats.js.map +1 -1
  369. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
  370. package/dist/esm/rendering/RendererRegistry.js +20 -23
  371. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  372. package/dist/esm/rendering/RenderingContext.d.ts +132 -17
  373. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  374. package/dist/esm/rendering/RenderingContext.js +228 -28
  375. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  376. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  377. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  378. package/dist/esm/rendering/TransformBuffer.js +60 -0
  379. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  380. package/dist/esm/rendering/View.d.ts +85 -15
  381. package/dist/esm/rendering/View.d.ts.map +1 -1
  382. package/dist/esm/rendering/View.js +81 -27
  383. package/dist/esm/rendering/View.js.map +1 -1
  384. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  385. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +10 -1
  386. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  387. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
  388. package/dist/esm/rendering/geometry/Geometry.js +4 -2
  389. package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
  390. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
  391. package/dist/esm/rendering/gradient/Gradient.js +7 -2
  392. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  393. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
  394. package/dist/esm/rendering/material/MaterialKey.js +2 -0
  395. package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
  396. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  397. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  398. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  399. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  400. package/dist/esm/rendering/material/ShaderSource.js +6 -0
  401. package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
  402. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  403. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  404. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  405. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  406. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
  407. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
  408. package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
  409. package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
  410. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
  411. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
  412. package/dist/esm/rendering/mesh/Mesh.js +40 -13
  413. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  414. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -1
  415. package/dist/esm/rendering/pixelSnap.js +1 -0
  416. package/dist/esm/rendering/pixelSnap.js.map +1 -1
  417. package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
  418. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
  419. package/dist/esm/rendering/plan/RenderCommand.js +23 -21
  420. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  421. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  422. package/dist/esm/rendering/plan/RenderEffectExecutor.js +8 -2
  423. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  424. package/dist/esm/rendering/plan/RenderInstruction.d.ts +12 -39
  425. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  426. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
  427. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  428. package/dist/esm/rendering/plan/RenderPlanBuilder.js +154 -50
  429. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  430. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
  431. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
  432. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
  433. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
  434. package/dist/esm/rendering/plan/RenderPlanPlayer.js +54 -17
  435. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  436. package/dist/esm/rendering/plan/RenderScope.d.ts +23 -10
  437. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  438. package/dist/esm/rendering/primitives/Graphics.d.ts +16 -1
  439. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  440. package/dist/esm/rendering/primitives/Graphics.js +46 -9
  441. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  442. package/dist/esm/rendering/{index.d.ts → public.d.ts} +9 -39
  443. package/dist/esm/rendering/public.d.ts.map +1 -0
  444. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
  445. package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
  446. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  447. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +60 -12
  448. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  449. package/dist/esm/rendering/sprite/AnimatedSprite.js +142 -30
  450. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  451. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -1
  452. package/dist/esm/rendering/sprite/NineSliceSprite.js +10 -11
  453. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -1
  454. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -1
  455. package/dist/esm/rendering/sprite/RepeatingSprite.js +1 -3
  456. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -1
  457. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  458. package/dist/esm/rendering/sprite/Sprite.js +30 -3
  459. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  460. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -1
  461. package/dist/esm/rendering/sprite/nineSlice.js +12 -18
  462. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -1
  463. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -1
  464. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +2 -2
  465. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -1
  466. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  467. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  468. package/dist/esm/rendering/text/BitmapText.js +6 -0
  469. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  470. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
  471. package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
  472. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
  473. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
  474. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
  475. package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
  476. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
  477. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
  478. package/dist/esm/rendering/text/GlyphSdf.js +5 -1
  479. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  480. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  481. package/dist/esm/rendering/text/HTMLText.js +3 -2
  482. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  483. package/dist/esm/rendering/text/Text.d.ts +17 -6
  484. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  485. package/dist/esm/rendering/text/Text.js +9 -12
  486. package/dist/esm/rendering/text/Text.js.map +1 -1
  487. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  488. package/dist/esm/rendering/text/TextLayout.js +4 -18
  489. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  490. package/dist/esm/rendering/texture/DataTexture.js +2 -2
  491. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  492. package/dist/esm/rendering/texture/Texture.d.ts +6 -0
  493. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
  494. package/dist/esm/rendering/texture/Texture.js +8 -0
  495. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  496. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -1
  497. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -1
  498. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -1
  499. package/dist/esm/rendering/texture/repeat.js +2 -2
  500. package/dist/esm/rendering/texture/repeat.js.map +1 -1
  501. package/dist/esm/rendering/types.d.ts +37 -2
  502. package/dist/esm/rendering/types.d.ts.map +1 -1
  503. package/dist/esm/rendering/types.js +37 -2
  504. package/dist/esm/rendering/types.js.map +1 -1
  505. package/dist/esm/rendering/video/Video.d.ts +7 -3
  506. package/dist/esm/rendering/video/Video.d.ts.map +1 -1
  507. package/dist/esm/rendering/video/Video.js +7 -3
  508. package/dist/esm/rendering/video/Video.js.map +1 -1
  509. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
  510. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
  511. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  512. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  513. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  514. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  515. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  516. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +55 -3
  517. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  518. package/dist/esm/rendering/webgl2/WebGl2Backend.js +209 -61
  519. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  520. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
  521. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
  522. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
  523. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
  524. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
  525. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
  526. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  527. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -1
  528. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +2 -1
  529. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -1
  530. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
  531. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
  532. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
  533. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  534. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -1
  535. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +15 -11
  536. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -1
  537. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
  538. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
  539. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  540. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
  541. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  542. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
  543. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
  544. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
  545. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
  546. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +7 -2
  547. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  548. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
  549. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
  550. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
  551. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  552. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +60 -15
  553. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  554. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  555. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  556. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  557. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  558. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  559. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  560. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  561. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  562. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  563. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +45 -2
  564. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  565. package/dist/esm/rendering/webgpu/WebGpuBackend.js +247 -69
  566. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  567. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  568. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -26
  569. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  570. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  571. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  572. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  573. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  574. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +17 -0
  575. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  576. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +105 -25
  577. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  578. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  579. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  580. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +8 -2
  581. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  582. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  583. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  584. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  585. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  586. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  587. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  588. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +23 -10
  589. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  590. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  591. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  592. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +10 -5
  593. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  594. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  595. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  596. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +3 -1
  597. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  598. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  599. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  600. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +22 -9
  601. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  602. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -3
  603. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  604. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +50 -6
  605. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  606. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
  607. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
  608. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
  609. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
  610. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
  611. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
  612. package/dist/esm/resources/Asset.d.ts +1 -1
  613. package/dist/esm/resources/Asset.d.ts.map +1 -1
  614. package/dist/esm/resources/Asset.js +0 -2
  615. package/dist/esm/resources/Asset.js.map +1 -1
  616. package/dist/esm/resources/AssetContainer.d.ts +75 -0
  617. package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
  618. package/dist/esm/resources/AssetContainer.js +100 -0
  619. package/dist/esm/resources/AssetContainer.js.map +1 -0
  620. package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
  621. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
  622. package/dist/esm/resources/Assets.d.ts.map +1 -1
  623. package/dist/esm/resources/Assets.js +0 -1
  624. package/dist/esm/resources/Assets.js.map +1 -1
  625. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
  626. package/dist/esm/resources/FactoryRegistry.js +14 -23
  627. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  628. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
  629. package/dist/esm/resources/IndexedDbDatabase.js +8 -1
  630. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  631. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
  632. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
  633. package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
  634. package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
  635. package/dist/esm/resources/KeyValueStore.d.ts +31 -0
  636. package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
  637. package/dist/esm/resources/Loader.d.ts +55 -2
  638. package/dist/esm/resources/Loader.d.ts.map +1 -1
  639. package/dist/esm/resources/Loader.js +159 -14
  640. package/dist/esm/resources/Loader.js.map +1 -1
  641. package/dist/esm/resources/MemoryStore.d.ts +17 -0
  642. package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
  643. package/dist/esm/resources/MemoryStore.js +30 -0
  644. package/dist/esm/resources/MemoryStore.js.map +1 -0
  645. package/dist/esm/resources/WebStorageStore.d.ts +40 -0
  646. package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
  647. package/dist/esm/resources/WebStorageStore.js +84 -0
  648. package/dist/esm/resources/WebStorageStore.js.map +1 -0
  649. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  650. package/dist/esm/resources/coreAssetBindings.js +16 -5
  651. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  652. package/dist/esm/resources/factories/BmFontFactory.js +4 -4
  653. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
  654. package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
  655. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
  656. package/dist/esm/resources/factories/MusicFactory.js +7 -7
  657. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  658. package/dist/esm/resources/factories/SoundFactory.js +2 -2
  659. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  660. package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
  661. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
  662. package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
  663. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
  664. package/dist/esm/resources/index.d.ts +51 -34
  665. package/dist/esm/resources/index.d.ts.map +1 -1
  666. package/dist/esm/resources/utils.js +4 -4
  667. package/dist/esm/resources/utils.js.map +1 -1
  668. package/dist/esm/ui/Button.d.ts +54 -0
  669. package/dist/esm/ui/Button.d.ts.map +1 -0
  670. package/dist/esm/ui/Button.js +139 -0
  671. package/dist/esm/ui/Button.js.map +1 -0
  672. package/dist/esm/ui/Label.d.ts +17 -0
  673. package/dist/esm/ui/Label.d.ts.map +1 -0
  674. package/dist/esm/ui/Label.js +37 -0
  675. package/dist/esm/ui/Label.js.map +1 -0
  676. package/dist/esm/ui/Panel.d.ts +38 -0
  677. package/dist/esm/ui/Panel.d.ts.map +1 -0
  678. package/dist/esm/ui/Panel.js +61 -0
  679. package/dist/esm/ui/Panel.js.map +1 -0
  680. package/dist/esm/ui/ProgressBar.d.ts +37 -0
  681. package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
  682. package/dist/esm/ui/ProgressBar.js +76 -0
  683. package/dist/esm/ui/ProgressBar.js.map +1 -0
  684. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  685. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  686. package/dist/esm/ui/ScrollContainer.js +99 -0
  687. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  688. package/dist/esm/ui/Stack.d.ts +34 -0
  689. package/dist/esm/ui/Stack.d.ts.map +1 -0
  690. package/dist/esm/ui/Stack.js +69 -0
  691. package/dist/esm/ui/Stack.js.map +1 -0
  692. package/dist/esm/ui/Tooltip.d.ts +67 -0
  693. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  694. package/dist/esm/ui/Tooltip.js +133 -0
  695. package/dist/esm/ui/Tooltip.js.map +1 -0
  696. package/dist/esm/ui/UIRoot.d.ts +31 -0
  697. package/dist/esm/ui/UIRoot.d.ts.map +1 -0
  698. package/dist/esm/ui/UIRoot.js +49 -0
  699. package/dist/esm/ui/UIRoot.js.map +1 -0
  700. package/dist/esm/ui/Widget.d.ts +45 -0
  701. package/dist/esm/ui/Widget.d.ts.map +1 -0
  702. package/dist/esm/ui/Widget.js +113 -0
  703. package/dist/esm/ui/Widget.js.map +1 -0
  704. package/dist/esm/ui/index.d.ts +17 -0
  705. package/dist/esm/ui/index.d.ts.map +1 -0
  706. package/dist/exo.debug.esm.js +1 -948
  707. package/dist/exo.debug.esm.js.map +1 -1
  708. package/dist/exo.esm.js +1 -40945
  709. package/dist/exo.esm.js.map +1 -1
  710. package/dist/exo.iife.js +45202 -0
  711. package/dist/exo.iife.js.map +1 -0
  712. package/dist/exo.iife.min.js +2 -0
  713. package/dist/exo.iife.min.js.map +1 -0
  714. package/package.json +37 -14
  715. package/dist/esm/audio/AbstractMedia.d.ts +0 -75
  716. package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
  717. package/dist/esm/audio/AbstractMedia.js +0 -179
  718. package/dist/esm/audio/AbstractMedia.js.map +0 -1
  719. package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
  720. package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
  721. package/dist/esm/audio/AudioAnalyser.js +0 -473
  722. package/dist/esm/audio/AudioAnalyser.js.map +0 -1
  723. package/dist/esm/audio/AudioFilter.d.ts +0 -17
  724. package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
  725. package/dist/esm/audio/AudioFilter.js +0 -15
  726. package/dist/esm/audio/AudioFilter.js.map +0 -1
  727. package/dist/esm/audio/BeatDetector.d.ts +0 -207
  728. package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
  729. package/dist/esm/audio/BeatDetector.js +0 -424
  730. package/dist/esm/audio/BeatDetector.js.map +0 -1
  731. package/dist/esm/audio/Media.d.ts +0 -37
  732. package/dist/esm/audio/Media.d.ts.map +0 -1
  733. package/dist/esm/audio/Music.d.ts +0 -42
  734. package/dist/esm/audio/Music.d.ts.map +0 -1
  735. package/dist/esm/audio/Music.js +0 -164
  736. package/dist/esm/audio/Music.js.map +0 -1
  737. package/dist/esm/audio/OscillatorSound.d.ts +0 -100
  738. package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
  739. package/dist/esm/audio/OscillatorSound.js +0 -346
  740. package/dist/esm/audio/OscillatorSound.js.map +0 -1
  741. package/dist/esm/audio/dsp/fft.d.ts +0 -23
  742. package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
  743. package/dist/esm/audio/dsp/mel.d.ts +0 -44
  744. package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
  745. package/dist/esm/audio/dsp/mel.js +0 -70
  746. package/dist/esm/audio/dsp/mel.js.map +0 -1
  747. package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
  748. package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
  749. package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
  750. package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
  751. package/dist/esm/audio/filters/ChorusFilter.js +0 -155
  752. package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
  753. package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
  754. package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
  755. package/dist/esm/audio/filters/CompressorFilter.js +0 -123
  756. package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
  757. package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
  758. package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
  759. package/dist/esm/audio/filters/DelayFilter.js +0 -114
  760. package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
  761. package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
  762. package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
  763. package/dist/esm/audio/filters/DuckingFilter.js +0 -172
  764. package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
  765. package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
  766. package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
  767. package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
  768. package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
  769. package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
  770. package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
  771. package/dist/esm/audio/filters/GranularFilter.js +0 -107
  772. package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
  773. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
  774. package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
  775. package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
  776. package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
  777. package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
  778. package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
  779. package/dist/esm/audio/filters/ReverbFilter.js +0 -122
  780. package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
  781. package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
  782. package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
  783. package/dist/esm/audio/filters/VocoderFilter.js +0 -94
  784. package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
  785. package/dist/esm/audio/filters/WorkletFilter.d.ts +0 -54
  786. package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
  787. package/dist/esm/audio/filters/WorkletFilter.js +0 -110
  788. package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
  789. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
  790. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
  791. package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
  792. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
  793. package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
  794. package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
  795. package/dist/esm/audio/worklets/granular.worklet.js +0 -89
  796. package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
  797. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
  798. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
  799. package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
  800. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
  801. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
  802. package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
  803. package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
  804. package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
  805. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
  806. package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
  807. package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
  808. package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
  809. package/dist/esm/rendering/Camera.d.ts +0 -34
  810. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  811. package/dist/esm/rendering/Camera.js +0 -38
  812. package/dist/esm/rendering/Camera.js.map +0 -1
  813. package/dist/esm/rendering/index.d.ts.map +0 -1
  814. package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
  815. package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
  816. package/dist/esm/rendering.d.ts +0 -29
  817. package/dist/esm/rendering.d.ts.map +0 -1
  818. package/dist/esm/rendering.js.map +0 -1
  819. package/dist/esm/resources/JsonStore.d.ts +0 -19
  820. package/dist/esm/resources/JsonStore.d.ts.map +0 -1
  821. package/dist/esm/resources/JsonStore.js +0 -62
  822. package/dist/esm/resources/JsonStore.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import type { Application } from './Application';
2
2
  import { Color } from './Color';
3
- import type { SceneParticipationPolicy } from './Scene';
4
3
  import { Scene } from './Scene';
5
4
  import { Signal } from './Signal';
6
5
  import type { Time } from './Time';
@@ -21,90 +20,60 @@ export interface SetSceneOptions {
21
20
  transition?: SceneTransition;
22
21
  }
23
22
  /**
24
- * Options passed to {@link SceneManager.pushScene}. Inherits
25
- * {@link SceneParticipationPolicy} so the pushed scene's stack mode
26
- * can be overridden at the call site without subclassing.
27
- */
28
- export interface PushSceneOptions extends SceneParticipationPolicy {
29
- transition?: SceneTransition;
30
- }
31
- /** Options passed to {@link SceneManager.popScene}. */
32
- export interface PopSceneOptions {
33
- transition?: SceneTransition;
34
- }
35
- /**
36
- * Stack-based scene controller owned by {@link Application}. Maintains an
37
- * ordered stack of {@link Scene} instances, each tagged with its
38
- * participation policy ({@link SceneStackMode}).
39
- * Scenes higher on the stack overlay scenes lower; the policy of each
40
- * scene determines whether scenes below continue to update / render.
41
- *
42
- * Use {@link SceneManager.setScene} to replace the entire stack with one
43
- * scene, {@link SceneManager.pushScene} to overlay a new scene on top, and
44
- * {@link SceneManager.popScene} to remove the topmost. All three accept an
45
- * optional fade transition.
23
+ * Single-active-scene controller owned by {@link Application}. Holds at most one
24
+ * active {@link Scene} (the current "screen"); {@link SceneManager.setScene}
25
+ * switches to a new scene — unloading the previous one with an optional fade
26
+ * transition.
46
27
  *
28
+ * There is no scene stack: overlays, HUDs and pause menus belong on
29
+ * {@link Scene.ui} (the screen-fixed UI layer), and "freeze the game but keep
30
+ * drawing it" is `scene.paused = true` (skips the scene's `update` + systems
31
+ * while it keeps rendering).
47
32
  */
48
33
  export declare class SceneManager {
49
34
  private readonly _app;
50
- private readonly _stack;
35
+ private _activeScene;
51
36
  private readonly _transitionOverlay;
52
37
  private _transition;
53
- /** Fires whenever the topmost scene changes (push, pop, set, or clear). Payload is the new top, or `null` when the stack becomes empty. */
38
+ /** Fires whenever the active scene changes (set or clear). Payload is the new scene, or `null` when cleared. */
54
39
  readonly onChangeScene: Signal<[Scene | null]>;
55
- /** Fires after a scene's `init` resolves and it joins the stack. */
40
+ /** Fires after a scene's `init` resolves and it becomes active. */
56
41
  readonly onStartScene: Signal<[Scene]>;
57
- /** Fires once per frame for the topmost scene after its `update` ran. */
42
+ /** Fires once per frame for the active scene after its `update` ran. */
58
43
  readonly onUpdateScene: Signal<[Scene]>;
59
44
  /** Fires just before a scene is unloaded (`unload` then `destroy`). */
60
45
  readonly onStopScene: Signal<[Scene]>;
61
46
  private readonly _asyncUpdateWarned;
62
47
  private readonly _asyncDrawWarned;
63
- private readonly _updateScratch;
64
- private readonly _drawScratch;
65
48
  constructor(app: Application);
49
+ /** The active scene, or `null` when none is set. */
66
50
  get currentScene(): Scene | null;
67
51
  set currentScene(scene: Scene | null);
68
- get scenes(): readonly Scene[];
69
52
  /**
70
- * Replace the entire scene stack with `scene`, or clear it when `scene`
71
- * is `null`. Existing scenes are unloaded in reverse order. If `scene`
72
- * is already the topmost, only the scenes underneath are unloaded
73
- * (no-op when it is also the only scene).
74
- *
75
- * Throws if `scene` is somewhere in the stack but not the top.
53
+ * Switch to `scene` (or clear to `null`), unloading the previously active
54
+ * scene. No-op when `scene` is already active. An optional fade transition
55
+ * runs the swap at full opacity. The new scene is loaded before the old one
56
+ * is torn down, so there is no blank frame between them.
76
57
  */
77
58
  setScene(scene: Scene | null, options?: SetSceneOptions): Promise<this>;
78
59
  /**
79
- * Push `scene` onto the stack, leaving any underlying scenes intact.
80
- * Resolves once the pushed scene's async `load` + `init` complete.
81
- * `options` may override the scene's declared participation policy
82
- * (stack mode, input mode) for this particular push.
83
- *
84
- * Throws if `scene` is already present in the stack.
85
- */
86
- pushScene(scene: Scene, options?: PushSceneOptions): Promise<this>;
87
- /**
88
- * Remove the topmost scene from the stack. Resolves once the scene's
89
- * `unload` finishes. No-op when the stack is empty.
60
+ * Per-frame entry point called by {@link Application.update}. Advances any
61
+ * active fade transition, then — for the active scene runs `update` and
62
+ * ticks its systems (unless {@link Scene.paused}), draws it, and renders its
63
+ * UI layer on top.
90
64
  */
91
- popScene(options?: PopSceneOptions): Promise<this>;
65
+ update(delta: Time): this;
92
66
  /**
93
- * Per-frame entry point called by {@link Application.update}. Advances
94
- * any active fade transition, then iterates the stack top-to-bottom
95
- * deciding which scenes update and which draw based on each scene's
96
- * participation policy (`opaque` covers everything below, `modal`
97
- * covers only updates).
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.
98
71
  */
99
- update(delta: Time): this;
72
+ fixedUpdate(delta: Time): this;
100
73
  destroy(): void;
101
74
  private _prepareScene;
102
75
  private _disposeScene;
103
- private _unloadAllScenes;
104
- private _unloadCoveredScenes;
105
- private _unloadAllScenesOnDestroy;
106
- private _resolveParticipationPolicy;
107
- private _resolveParticipants;
76
+ private _unloadActiveSceneOnDestroy;
108
77
  private _runWithTransition;
109
78
  private _advanceTransition;
110
79
  private _executeTransitionAction;
@@ -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,KAAK,EAAE,wBAAwB,EAAkB,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAWnC;;;;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;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB;IAChE,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAgCD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8C;IACjF,OAAO,CAAC,WAAW,CAAqC;IAExD,2IAA2I;IAC3I,SAAgB,aAAa,yBAAgC;IAC7D,oEAAoE;IACpE,SAAgB,YAAY,kBAAyB;IACrD,yEAAyE;IACzE,SAAgB,aAAa,kBAAyB;IACtD,uEAAuE;IACvE,SAAgB,WAAW,kBAAyB;IAEpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IAEzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEzB,GAAG,EAAE,WAAW;IAInC,IAAW,YAAY,IAAI,KAAK,GAAG,IAAI,CAEtC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAE1C;IAED,IAAW,MAAM,IAAI,SAAS,KAAK,EAAE,CAEpC;IAED;;;;;;;OAOG;IACU,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCxF;;;;;;;OAOG;IACU,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnF;;;OAGG;IACU,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnE;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IA0CzB,OAAO,IAAI,IAAI;YAkBR,aAAa;YA0Cb,aAAa;YAOb,gBAAgB;YAQhB,oBAAoB;YAmBpB,yBAAyB;IAYvC,OAAO,CAAC,2BAA2B;IAMnC,OAAO,CAAC,oBAAoB;YA+Bd,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
 
@@ -18,152 +19,115 @@ const createOverlayMesh = () => new TransitionOverlayMesh({
18
19
  });
19
20
  const defaultFadeTransitionDuration = 220;
20
21
  /**
21
- * Stack-based scene controller owned by {@link Application}. Maintains an
22
- * ordered stack of {@link Scene} instances, each tagged with its
23
- * participation policy ({@link SceneStackMode}).
24
- * Scenes higher on the stack overlay scenes lower; the policy of each
25
- * scene determines whether scenes below continue to update / render.
26
- *
27
- * Use {@link SceneManager.setScene} to replace the entire stack with one
28
- * scene, {@link SceneManager.pushScene} to overlay a new scene on top, and
29
- * {@link SceneManager.popScene} to remove the topmost. All three accept an
30
- * optional fade transition.
22
+ * Single-active-scene controller owned by {@link Application}. Holds at most one
23
+ * active {@link Scene} (the current "screen"); {@link SceneManager.setScene}
24
+ * switches to a new scene — unloading the previous one — with an optional fade
25
+ * transition.
31
26
  *
27
+ * There is no scene stack: overlays, HUDs and pause menus belong on
28
+ * {@link Scene.ui} (the screen-fixed UI layer), and "freeze the game but keep
29
+ * drawing it" is `scene.paused = true` (skips the scene's `update` + systems
30
+ * while it keeps rendering).
32
31
  */
33
32
  class SceneManager {
34
33
  _app;
35
- _stack = [];
34
+ _activeScene = null;
36
35
  _transitionOverlay = createOverlayMesh();
37
36
  _transition = null;
38
- /** Fires whenever the topmost scene changes (push, pop, set, or clear). Payload is the new top, or `null` when the stack becomes empty. */
37
+ /** Fires whenever the active scene changes (set or clear). Payload is the new scene, or `null` when cleared. */
39
38
  onChangeScene = new Signal();
40
- /** Fires after a scene's `init` resolves and it joins the stack. */
39
+ /** Fires after a scene's `init` resolves and it becomes active. */
41
40
  onStartScene = new Signal();
42
- /** Fires once per frame for the topmost scene after its `update` ran. */
41
+ /** Fires once per frame for the active scene after its `update` ran. */
43
42
  onUpdateScene = new Signal();
44
43
  /** Fires just before a scene is unloaded (`unload` then `destroy`). */
45
44
  onStopScene = new Signal();
46
45
  _asyncUpdateWarned = new WeakSet();
47
46
  _asyncDrawWarned = new WeakSet();
48
- _updateScratch = [];
49
- _drawScratch = [];
50
47
  constructor(app) {
51
48
  this._app = app;
52
49
  }
50
+ /** The active scene, or `null` when none is set. */
53
51
  get currentScene() {
54
- return this._stack.at(-1)?.scene ?? null;
52
+ return this._activeScene;
55
53
  }
56
54
  set currentScene(scene) {
57
55
  void this.setScene(scene);
58
56
  }
59
- get scenes() {
60
- return this._stack.map(entry => entry.scene);
61
- }
62
57
  /**
63
- * Replace the entire scene stack with `scene`, or clear it when `scene`
64
- * is `null`. Existing scenes are unloaded in reverse order. If `scene`
65
- * is already the topmost, only the scenes underneath are unloaded
66
- * (no-op when it is also the only scene).
67
- *
68
- * Throws if `scene` is somewhere in the stack but not the top.
58
+ * Switch to `scene` (or clear to `null`), unloading the previously active
59
+ * scene. No-op when `scene` is already active. An optional fade transition
60
+ * runs the swap at full opacity. The new scene is loaded before the old one
61
+ * is torn down, so there is no blank frame between them.
69
62
  */
70
63
  async setScene(scene, options = {}) {
71
64
  await this._runWithTransition(async () => {
72
- if (scene === null) {
73
- await this._unloadAllScenes();
74
- this.onChangeScene.dispatch(null);
75
- return;
76
- }
77
- if (this.currentScene === scene) {
78
- if (this._stack.length > 1) {
79
- await this._unloadCoveredScenes();
80
- }
65
+ if (scene === this._activeScene) {
81
66
  return;
82
67
  }
83
- if (this._stack.some(entry => entry.scene === scene)) {
84
- throw new Error('Cannot set a scene that is already present in the scene stack.');
68
+ if (scene !== null) {
69
+ await this._prepareScene(scene);
85
70
  }
86
- const policy = this._resolveParticipationPolicy(scene);
87
- await this._prepareScene(scene);
88
- await this._unloadAllScenes();
89
- this._stack.push({ scene, policy });
90
- this.onChangeScene.dispatch(scene);
91
- this.onStartScene.dispatch(scene);
92
- }, options.transition);
93
- return this;
94
- }
95
- /**
96
- * Push `scene` onto the stack, leaving any underlying scenes intact.
97
- * Resolves once the pushed scene's async `load` + `init` complete.
98
- * `options` may override the scene's declared participation policy
99
- * (stack mode, input mode) for this particular push.
100
- *
101
- * Throws if `scene` is already present in the stack.
102
- */
103
- async pushScene(scene, options = {}) {
104
- await this._runWithTransition(async () => {
105
- if (this._stack.some(entry => entry.scene === scene)) {
106
- throw new Error('Cannot push a scene instance that is already present in the stack.');
71
+ const previous = this._activeScene;
72
+ this._activeScene = scene;
73
+ if (previous !== null) {
74
+ await this._disposeScene(previous);
107
75
  }
108
- const policy = this._resolveParticipationPolicy(scene, options);
109
- await this._prepareScene(scene);
110
- this._stack.push({ scene, policy });
111
76
  this.onChangeScene.dispatch(scene);
112
- this.onStartScene.dispatch(scene);
113
- }, options.transition);
114
- return this;
115
- }
116
- /**
117
- * Remove the topmost scene from the stack. Resolves once the scene's
118
- * `unload` finishes. No-op when the stack is empty.
119
- */
120
- async popScene(options = {}) {
121
- await this._runWithTransition(async () => {
122
- if (this._stack.length === 0) {
123
- return;
124
- }
125
- const removed = this._stack.at(-1);
126
- if (!removed) {
127
- return;
77
+ if (scene !== null) {
78
+ this.onStartScene.dispatch(scene);
128
79
  }
129
- await this._disposeScene(removed.scene);
130
- this._stack.pop();
131
- this.onChangeScene.dispatch(this.currentScene);
132
80
  }, options.transition);
133
81
  return this;
134
82
  }
135
83
  /**
136
- * Per-frame entry point called by {@link Application.update}. Advances
137
- * any active fade transition, then iterates the stack top-to-bottom
138
- * deciding which scenes update and which draw based on each scene's
139
- * participation policy (`opaque` covers everything below, `modal`
140
- * covers only updates).
84
+ * Per-frame entry point called by {@link Application.update}. Advances any
85
+ * active fade transition, then for the active scene — runs `update` and
86
+ * ticks its systems (unless {@link Scene.paused}), draws it, and renders its
87
+ * UI layer on top.
141
88
  */
142
89
  update(delta) {
143
90
  this._advanceTransition(delta.milliseconds);
144
- this._resolveParticipants();
145
- for (const scene of this._updateScratch) {
146
- // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
147
- const updateResult = scene.update(delta);
148
- if (!this._asyncUpdateWarned.has(scene) && updateResult instanceof Promise) {
149
- this._asyncUpdateWarned.add(scene);
150
- 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.`);
91
+ const scene = this._activeScene;
92
+ if (scene !== null) {
93
+ if (!scene.paused) {
94
+ // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
95
+ const updateResult = scene.update(delta);
96
+ if (!this._asyncUpdateWarned.has(scene) && updateResult instanceof Promise) {
97
+ this._asyncUpdateWarned.add(scene);
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.`);
99
+ }
100
+ // Tick the scene's systems (e.g. a physics world) after its update().
101
+ scene._tickSystems(delta);
151
102
  }
152
- }
153
- for (const scene of this._drawScratch) {
154
103
  // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
155
104
  const drawResult = scene.draw(this._app.rendering);
156
105
  if (!this._asyncDrawWarned.has(scene) && drawResult instanceof Promise) {
157
106
  this._asyncDrawWarned.add(scene);
158
- 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.`);
159
108
  }
109
+ // Auto-render the scene's screen-fixed UI layer above its content.
110
+ scene._peekUI()?._render(this._app.rendering);
160
111
  }
161
112
  const transitionAlpha = this._getTransitionAlpha();
162
113
  if (transitionAlpha > 0) {
163
114
  this._renderTransitionOverlay(transitionAlpha);
164
115
  }
165
- if (this.currentScene !== null) {
166
- this.onUpdateScene.dispatch(this.currentScene);
116
+ if (scene !== null) {
117
+ this.onUpdateScene.dispatch(scene);
118
+ }
119
+ return this;
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);
167
131
  }
168
132
  return this;
169
133
  }
@@ -174,7 +138,7 @@ class SceneManager {
174
138
  transition.color.destroy();
175
139
  transition.reject(new Error('SceneManager was destroyed while a transition was active.'));
176
140
  }
177
- void this._unloadAllScenesOnDestroy();
141
+ void this._unloadActiveSceneOnDestroy();
178
142
  this._transitionOverlay.destroy();
179
143
  this.onChangeScene.destroy();
180
144
  this.onStartScene.destroy();
@@ -187,8 +151,17 @@ class SceneManager {
187
151
  await scene.load(this._app.loader);
188
152
  await scene.init(this._app.loader);
189
153
  if (scene.root.children.length > 0 && scene.draw === Scene.prototype.draw) {
190
- 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().`);
155
+ }
156
+ // Bind the scene's root to the app's interaction manager so its nodes
157
+ // route picking/bounds notifications to this Application (no global).
158
+ this._app.interaction.attachRoot(scene.root);
159
+ // Bind the UI layer too, if it was materialized before activation.
160
+ const ui = scene._peekUI();
161
+ if (ui !== null) {
162
+ this._app.interaction.attachUIRoot(ui);
191
163
  }
164
+ scene.onLoad.dispatch();
192
165
  }
193
166
  catch (error) {
194
167
  let cleanupError = null;
@@ -217,71 +190,29 @@ class SceneManager {
217
190
  }
218
191
  }
219
192
  async _disposeScene(scene) {
193
+ scene.onUnload.dispatch();
220
194
  this.onStopScene.dispatch(scene);
221
195
  await scene.unload(this._app.loader);
196
+ const ui = scene._peekUI();
197
+ if (ui !== null) {
198
+ this._app.interaction.detachUIRoot(ui);
199
+ }
200
+ this._app.interaction.detachRoot(scene.root);
222
201
  scene.destroy();
223
202
  scene.app = null;
224
203
  }
225
- async _unloadAllScenes() {
226
- for (let index = this._stack.length - 1; index >= 0; index--) {
227
- await this._disposeScene(this._stack[index].scene);
228
- }
229
- this._stack.length = 0;
230
- }
231
- async _unloadCoveredScenes() {
232
- if (this._stack.length <= 1) {
204
+ async _unloadActiveSceneOnDestroy() {
205
+ const scene = this._activeScene;
206
+ if (scene === null) {
233
207
  return;
234
208
  }
235
- const activeEntry = this._stack.at(-1);
236
- if (!activeEntry) {
237
- return;
238
- }
239
- for (let index = this._stack.length - 2; index >= 0; index--) {
240
- await this._disposeScene(this._stack[index].scene);
241
- }
242
- this._stack.length = 0;
243
- this._stack.push(activeEntry);
244
- }
245
- async _unloadAllScenesOnDestroy() {
246
- for (let index = this._stack.length - 1; index >= 0; index--) {
247
- try {
248
- await this._disposeScene(this._stack[index].scene);
249
- }
250
- catch (error) {
251
- console.error('SceneManager.destroy() failed to unload the active scene.', error);
252
- }
209
+ this._activeScene = null;
210
+ try {
211
+ await this._disposeScene(scene);
253
212
  }
254
- this._stack.length = 0;
255
- }
256
- _resolveParticipationPolicy(scene, overrides = {}) {
257
- const mode = overrides.mode ?? scene.stackMode ?? 'overlay';
258
- return { mode };
259
- }
260
- _resolveParticipants() {
261
- const updateScenes = this._updateScratch;
262
- const drawScenes = this._drawScratch;
263
- updateScenes.length = 0;
264
- drawScenes.length = 0;
265
- let allowBelowUpdate = true;
266
- let allowBelowDraw = true;
267
- for (let index = this._stack.length - 1; index >= 0; index--) {
268
- const entry = this._stack[index];
269
- if (allowBelowUpdate) {
270
- updateScenes.push(entry.scene);
271
- }
272
- if (allowBelowDraw) {
273
- drawScenes.push(entry.scene);
274
- }
275
- if (entry.policy.mode === 'opaque') {
276
- allowBelowUpdate = false;
277
- allowBelowDraw = false;
278
- }
279
- else if (entry.policy.mode === 'modal') {
280
- allowBelowUpdate = false;
281
- }
213
+ catch (error) {
214
+ logger.error('scene', 'SceneManager.destroy() failed to unload the active scene.', error instanceof Error ? error : undefined);
282
215
  }
283
- updateScenes.reverse();
284
- drawScenes.reverse();
285
216
  }
286
217
  async _runWithTransition(action, transition) {
287
218
  if (transition?.type !== 'fade') {
@@ -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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"}