@codexo/exojs 0.7.11 → 0.7.13

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 (492) hide show
  1. package/CHANGELOG.md +442 -0
  2. package/dist/esm/animation/Tween.d.ts +60 -1
  3. package/dist/esm/animation/Tween.js +60 -1
  4. package/dist/esm/animation/Tween.js.map +1 -1
  5. package/dist/esm/animation/TweenManager.d.ts +10 -0
  6. package/dist/esm/animation/TweenManager.js +10 -0
  7. package/dist/esm/animation/TweenManager.js.map +1 -1
  8. package/dist/esm/animation/types.d.ts +15 -0
  9. package/dist/esm/animation/types.js +6 -0
  10. package/dist/esm/animation/types.js.map +1 -1
  11. package/dist/esm/audio/AbstractMedia.d.ts +11 -0
  12. package/dist/esm/audio/AbstractMedia.js +10 -0
  13. package/dist/esm/audio/AbstractMedia.js.map +1 -1
  14. package/dist/esm/audio/AudioAnalyser.d.ts +21 -0
  15. package/dist/esm/audio/AudioAnalyser.js +16 -0
  16. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  17. package/dist/esm/audio/AudioBus.d.ts +37 -0
  18. package/dist/esm/audio/AudioBus.js +36 -0
  19. package/dist/esm/audio/AudioBus.js.map +1 -1
  20. package/dist/esm/audio/AudioFilter.d.ts +7 -0
  21. package/dist/esm/audio/AudioFilter.js +6 -0
  22. package/dist/esm/audio/AudioFilter.js.map +1 -1
  23. package/dist/esm/audio/AudioListener.d.ts +19 -0
  24. package/dist/esm/audio/AudioListener.js +11 -0
  25. package/dist/esm/audio/AudioListener.js.map +1 -1
  26. package/dist/esm/audio/AudioManager.d.ts +37 -0
  27. package/dist/esm/audio/AudioManager.js +37 -0
  28. package/dist/esm/audio/AudioManager.js.map +1 -1
  29. package/dist/esm/audio/BeatDetector.d.ts +21 -0
  30. package/dist/esm/audio/BeatDetector.js +21 -0
  31. package/dist/esm/audio/BeatDetector.js.map +1 -1
  32. package/dist/esm/audio/Media.d.ts +11 -0
  33. package/dist/esm/audio/Music.d.ts +12 -0
  34. package/dist/esm/audio/Music.js +12 -0
  35. package/dist/esm/audio/Music.js.map +1 -1
  36. package/dist/esm/audio/Sound.d.ts +25 -0
  37. package/dist/esm/audio/Sound.js +18 -0
  38. package/dist/esm/audio/Sound.js.map +1 -1
  39. package/dist/esm/audio/audio-context.d.ts +48 -0
  40. package/dist/esm/audio/audio-context.js +48 -5
  41. package/dist/esm/audio/audio-context.js.map +1 -1
  42. package/dist/esm/audio/filters/ChorusFilter.d.ts +5 -0
  43. package/dist/esm/audio/filters/ChorusFilter.js +4 -0
  44. package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
  45. package/dist/esm/audio/filters/CompressorFilter.d.ts +12 -0
  46. package/dist/esm/audio/filters/CompressorFilter.js +11 -0
  47. package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
  48. package/dist/esm/audio/filters/DelayFilter.d.ts +11 -0
  49. package/dist/esm/audio/filters/DelayFilter.js +10 -0
  50. package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
  51. package/dist/esm/audio/filters/DuckingFilter.d.ts +13 -0
  52. package/dist/esm/audio/filters/DuckingFilter.js +12 -0
  53. package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
  54. package/dist/esm/audio/filters/EqualizerFilter.d.ts +20 -0
  55. package/dist/esm/audio/filters/EqualizerFilter.js +40 -0
  56. package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
  57. package/dist/esm/audio/filters/GranularFilter.d.ts +6 -0
  58. package/dist/esm/audio/filters/GranularFilter.js +6 -0
  59. package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
  60. package/dist/esm/audio/filters/HighpassFilter.d.ts +10 -0
  61. package/dist/esm/audio/filters/HighpassFilter.js +9 -0
  62. package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
  63. package/dist/esm/audio/filters/LowpassFilter.d.ts +10 -0
  64. package/dist/esm/audio/filters/LowpassFilter.js +9 -0
  65. package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
  66. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +2 -0
  67. package/dist/esm/audio/filters/PitchShiftFilter.js +2 -0
  68. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
  69. package/dist/esm/audio/filters/ReverbFilter.d.ts +12 -0
  70. package/dist/esm/audio/filters/ReverbFilter.js +11 -0
  71. package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
  72. package/dist/esm/audio/filters/VocoderFilter.d.ts +11 -0
  73. package/dist/esm/audio/filters/VocoderFilter.js +11 -0
  74. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
  75. package/dist/esm/audio/filters/WorkletFilter.d.ts +6 -1
  76. package/dist/esm/audio/filters/WorkletFilter.js +6 -1
  77. package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
  78. package/dist/esm/core/Application.d.ts +66 -1
  79. package/dist/esm/core/Application.js +68 -6
  80. package/dist/esm/core/Application.js.map +1 -1
  81. package/dist/esm/core/Bounds.d.ts +23 -0
  82. package/dist/esm/core/Bounds.js +23 -0
  83. package/dist/esm/core/Bounds.js.map +1 -1
  84. package/dist/esm/core/Clock.d.ts +21 -0
  85. package/dist/esm/core/Clock.js +21 -0
  86. package/dist/esm/core/Clock.js.map +1 -1
  87. package/dist/esm/core/Color.d.ts +35 -0
  88. package/dist/esm/core/Color.js +35 -0
  89. package/dist/esm/core/Color.js.map +1 -1
  90. package/dist/esm/core/Scene.d.ts +76 -0
  91. package/dist/esm/core/Scene.js +83 -0
  92. package/dist/esm/core/Scene.js.map +1 -1
  93. package/dist/esm/core/SceneManager.d.ts +62 -0
  94. package/dist/esm/core/SceneManager.js +51 -2
  95. package/dist/esm/core/SceneManager.js.map +1 -1
  96. package/dist/esm/core/SceneNode.d.ts +31 -0
  97. package/dist/esm/core/SceneNode.js +31 -0
  98. package/dist/esm/core/SceneNode.js.map +1 -1
  99. package/dist/esm/core/Signal.d.ts +44 -0
  100. package/dist/esm/core/Signal.js +39 -0
  101. package/dist/esm/core/Signal.js.map +1 -1
  102. package/dist/esm/core/Time.d.ts +21 -0
  103. package/dist/esm/core/Time.js +21 -0
  104. package/dist/esm/core/Time.js.map +1 -1
  105. package/dist/esm/core/Timer.d.ts +7 -0
  106. package/dist/esm/core/Timer.js +7 -0
  107. package/dist/esm/core/Timer.js.map +1 -1
  108. package/dist/esm/core/capabilities.d.ts +12 -0
  109. package/dist/esm/core/capabilities.js +12 -0
  110. package/dist/esm/core/capabilities.js.map +1 -1
  111. package/dist/esm/core/types.d.ts +37 -0
  112. package/dist/esm/core/utils.d.ts +48 -0
  113. package/dist/esm/core/utils.js +48 -0
  114. package/dist/esm/core/utils.js.map +1 -1
  115. package/dist/esm/debug/BoundingBoxesLayer.d.ts +8 -0
  116. package/dist/esm/debug/BoundingBoxesLayer.js +8 -0
  117. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  118. package/dist/esm/debug/DebugLayer.d.ts +16 -3
  119. package/dist/esm/debug/DebugLayer.js +11 -3
  120. package/dist/esm/debug/DebugLayer.js.map +1 -1
  121. package/dist/esm/debug/DebugOverlay.d.ts +11 -0
  122. package/dist/esm/debug/DebugOverlay.js +8 -2
  123. package/dist/esm/debug/DebugOverlay.js.map +1 -1
  124. package/dist/esm/debug/HitTestLayer.d.ts +9 -0
  125. package/dist/esm/debug/HitTestLayer.js +9 -0
  126. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  127. package/dist/esm/debug/PerformanceLayer.d.ts +17 -1
  128. package/dist/esm/debug/PerformanceLayer.js +18 -0
  129. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  130. package/dist/esm/debug/PointerStackLayer.d.ts +8 -0
  131. package/dist/esm/debug/PointerStackLayer.js +11 -3
  132. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  133. package/dist/esm/index.js +6 -5
  134. package/dist/esm/index.js.map +1 -1
  135. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
  136. package/dist/esm/input/ArcadeStickGamepadMapping.js +25 -19
  137. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
  138. package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
  139. package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
  140. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
  141. package/dist/esm/input/Gamepad.d.ts +181 -31
  142. package/dist/esm/input/Gamepad.js +307 -108
  143. package/dist/esm/input/Gamepad.js.map +1 -1
  144. package/dist/esm/input/GamepadAxis.d.ts +120 -0
  145. package/dist/esm/input/GamepadAxis.js +106 -0
  146. package/dist/esm/input/GamepadAxis.js.map +1 -0
  147. package/dist/esm/input/GamepadButton.d.ts +110 -0
  148. package/dist/esm/input/GamepadButton.js +99 -0
  149. package/dist/esm/input/GamepadButton.js.map +1 -0
  150. package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
  151. package/dist/esm/input/GamepadDefinitions.js +44 -1
  152. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  153. package/dist/esm/input/GamepadMapping.d.ts +42 -8
  154. package/dist/esm/input/GamepadMapping.js +46 -5
  155. package/dist/esm/input/GamepadMapping.js.map +1 -1
  156. package/dist/esm/input/GamepadPromptLayouts.d.ts +35 -2
  157. package/dist/esm/input/GamepadPromptLayouts.js +43 -18
  158. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
  159. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +13 -0
  160. package/dist/esm/input/GenericDualAnalogGamepadMapping.js +62 -43
  161. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
  162. package/dist/esm/input/GestureRecognizer.d.ts +11 -2
  163. package/dist/esm/input/GestureRecognizer.js +11 -2
  164. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  165. package/dist/esm/input/InputBinding.d.ts +74 -0
  166. package/dist/esm/input/InputBinding.js +100 -0
  167. package/dist/esm/input/InputBinding.js.map +1 -0
  168. package/dist/esm/input/InputManager.d.ts +100 -21
  169. package/dist/esm/input/InputManager.js +248 -90
  170. package/dist/esm/input/InputManager.js.map +1 -1
  171. package/dist/esm/input/InteractionEvent.d.ts +13 -0
  172. package/dist/esm/input/InteractionEvent.js +8 -0
  173. package/dist/esm/input/InteractionEvent.js.map +1 -1
  174. package/dist/esm/input/InteractionManager.d.ts +34 -5
  175. package/dist/esm/input/InteractionManager.js +46 -17
  176. package/dist/esm/input/InteractionManager.js.map +1 -1
  177. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +17 -3
  178. package/dist/esm/input/JoyConLeftGamepadMapping.js +42 -3
  179. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
  180. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +17 -3
  181. package/dist/esm/input/JoyConRightGamepadMapping.js +38 -3
  182. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
  183. package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
  184. package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
  185. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
  186. package/dist/esm/input/Pointer.d.ts +106 -71
  187. package/dist/esm/input/Pointer.js +93 -71
  188. package/dist/esm/input/Pointer.js.map +1 -1
  189. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
  190. package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
  191. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
  192. package/dist/esm/input/SteamDeckGamepadMapping.d.ts +18 -0
  193. package/dist/esm/input/SteamDeckGamepadMapping.js +76 -0
  194. package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -0
  195. package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
  196. package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
  197. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
  198. package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
  199. package/dist/esm/input/XboxGamepadMapping.js +8 -0
  200. package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
  201. package/dist/esm/input/index.d.ts +7 -4
  202. package/dist/esm/input/types.d.ts +17 -73
  203. package/dist/esm/input/types.js +18 -77
  204. package/dist/esm/input/types.js.map +1 -1
  205. package/dist/esm/math/AbstractVector.d.ts +83 -0
  206. package/dist/esm/math/AbstractVector.js +83 -0
  207. package/dist/esm/math/AbstractVector.js.map +1 -1
  208. package/dist/esm/math/Circle.d.ts +32 -0
  209. package/dist/esm/math/Circle.js +34 -2
  210. package/dist/esm/math/Circle.js.map +1 -1
  211. package/dist/esm/math/CircleLike.d.ts +1 -0
  212. package/dist/esm/math/Collision.d.ts +39 -0
  213. package/dist/esm/math/Collision.js +5 -0
  214. package/dist/esm/math/Collision.js.map +1 -1
  215. package/dist/esm/math/Ellipse.d.ts +11 -0
  216. package/dist/esm/math/Ellipse.js +18 -2
  217. package/dist/esm/math/Ellipse.js.map +1 -1
  218. package/dist/esm/math/EllipseLike.d.ts +3 -0
  219. package/dist/esm/math/Flags.d.ts +31 -0
  220. package/dist/esm/math/Flags.js +31 -0
  221. package/dist/esm/math/Flags.js.map +1 -1
  222. package/dist/esm/math/Interval.d.ts +15 -0
  223. package/dist/esm/math/Interval.js +15 -0
  224. package/dist/esm/math/Interval.js.map +1 -1
  225. package/dist/esm/math/Line.d.ts +17 -1
  226. package/dist/esm/math/Line.js +17 -1
  227. package/dist/esm/math/Line.js.map +1 -1
  228. package/dist/esm/math/LineLike.d.ts +1 -0
  229. package/dist/esm/math/Matrix.d.ts +44 -3
  230. package/dist/esm/math/Matrix.js +44 -3
  231. package/dist/esm/math/Matrix.js.map +1 -1
  232. package/dist/esm/math/ObservableSize.d.ts +7 -0
  233. package/dist/esm/math/ObservableSize.js +7 -0
  234. package/dist/esm/math/ObservableSize.js.map +1 -1
  235. package/dist/esm/math/ObservableVector.d.ts +9 -0
  236. package/dist/esm/math/ObservableVector.js +9 -0
  237. package/dist/esm/math/ObservableVector.js.map +1 -1
  238. package/dist/esm/math/PointLike.d.ts +1 -0
  239. package/dist/esm/math/PolarVector.d.ts +15 -0
  240. package/dist/esm/math/PolarVector.js +16 -1
  241. package/dist/esm/math/PolarVector.js.map +1 -1
  242. package/dist/esm/math/Polygon.d.ts +20 -0
  243. package/dist/esm/math/Polygon.js +20 -0
  244. package/dist/esm/math/Polygon.js.map +1 -1
  245. package/dist/esm/math/PolygonLike.d.ts +4 -0
  246. package/dist/esm/math/Quadtree.d.ts +40 -3
  247. package/dist/esm/math/Quadtree.js +39 -3
  248. package/dist/esm/math/Quadtree.js.map +1 -1
  249. package/dist/esm/math/Random.d.ts +25 -0
  250. package/dist/esm/math/Random.js +25 -0
  251. package/dist/esm/math/Random.js.map +1 -1
  252. package/dist/esm/math/Rectangle.d.ts +15 -0
  253. package/dist/esm/math/Rectangle.js +17 -2
  254. package/dist/esm/math/Rectangle.js.map +1 -1
  255. package/dist/esm/math/RectangleLike.d.ts +1 -0
  256. package/dist/esm/math/Segment.d.ts +7 -0
  257. package/dist/esm/math/Segment.js +7 -0
  258. package/dist/esm/math/Segment.js.map +1 -1
  259. package/dist/esm/math/ShapeLike.d.ts +6 -0
  260. package/dist/esm/math/Size.d.ts +9 -0
  261. package/dist/esm/math/Size.js +9 -0
  262. package/dist/esm/math/Size.js.map +1 -1
  263. package/dist/esm/math/Vector.d.ts +16 -0
  264. package/dist/esm/math/Vector.js +16 -0
  265. package/dist/esm/math/Vector.js.map +1 -1
  266. package/dist/esm/math/collision-detection.d.ts +47 -1
  267. package/dist/esm/math/collision-detection.js +228 -17
  268. package/dist/esm/math/collision-detection.js.map +1 -1
  269. package/dist/esm/math/collision-primitives.d.ts +23 -0
  270. package/dist/esm/math/collision-primitives.js +23 -0
  271. package/dist/esm/math/collision-primitives.js.map +1 -1
  272. package/dist/esm/math/geometry.d.ts +42 -0
  273. package/dist/esm/math/geometry.js +37 -0
  274. package/dist/esm/math/geometry.js.map +1 -1
  275. package/dist/esm/math/utils.d.ts +41 -0
  276. package/dist/esm/math/utils.js +41 -0
  277. package/dist/esm/math/utils.js.map +1 -1
  278. package/dist/esm/particles/Particle.d.ts +37 -0
  279. package/dist/esm/particles/Particle.js +37 -0
  280. package/dist/esm/particles/Particle.js.map +1 -1
  281. package/dist/esm/particles/ParticleProperties.d.ts +15 -0
  282. package/dist/esm/particles/ParticleSystem.d.ts +69 -0
  283. package/dist/esm/particles/ParticleSystem.js +69 -0
  284. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  285. package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
  286. package/dist/esm/particles/affectors/ColorAffector.js +13 -0
  287. package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
  288. package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
  289. package/dist/esm/particles/affectors/ForceAffector.js +11 -0
  290. package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
  291. package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
  292. package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
  293. package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
  294. package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
  295. package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
  296. package/dist/esm/particles/affectors/TorqueAffector.js +11 -0
  297. package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
  298. package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
  299. package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
  300. package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
  301. package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
  302. package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
  303. package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
  304. package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
  305. package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
  306. package/dist/esm/rendering/CallbackRenderPass.js +12 -0
  307. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  308. package/dist/esm/rendering/Container.d.ts +43 -0
  309. package/dist/esm/rendering/Container.js +43 -0
  310. package/dist/esm/rendering/Container.js.map +1 -1
  311. package/dist/esm/rendering/Drawable.d.ts +22 -0
  312. package/dist/esm/rendering/Drawable.js +22 -0
  313. package/dist/esm/rendering/Drawable.js.map +1 -1
  314. package/dist/esm/rendering/RenderBackend.d.ts +13 -0
  315. package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
  316. package/dist/esm/rendering/RenderBackendType.js +4 -0
  317. package/dist/esm/rendering/RenderBackendType.js.map +1 -1
  318. package/dist/esm/rendering/RenderNode.d.ts +18 -0
  319. package/dist/esm/rendering/RenderNode.js +18 -0
  320. package/dist/esm/rendering/RenderNode.js.map +1 -1
  321. package/dist/esm/rendering/RenderPass.d.ts +8 -0
  322. package/dist/esm/rendering/RenderStats.d.ts +19 -0
  323. package/dist/esm/rendering/RenderStats.js +7 -0
  324. package/dist/esm/rendering/RenderStats.js.map +1 -1
  325. package/dist/esm/rendering/RenderTarget.d.ts +17 -0
  326. package/dist/esm/rendering/RenderTarget.js +17 -0
  327. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  328. package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
  329. package/dist/esm/rendering/RenderTargetPass.js +7 -0
  330. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  331. package/dist/esm/rendering/Renderer.d.ts +15 -0
  332. package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
  333. package/dist/esm/rendering/RendererRegistry.js +7 -0
  334. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  335. package/dist/esm/rendering/View.d.ts +67 -2
  336. package/dist/esm/rendering/View.js +57 -0
  337. package/dist/esm/rendering/View.js.map +1 -1
  338. package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
  339. package/dist/esm/rendering/filters/BlurFilter.js +8 -0
  340. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  341. package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
  342. package/dist/esm/rendering/filters/ColorFilter.js +7 -0
  343. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  344. package/dist/esm/rendering/filters/Filter.d.ts +23 -0
  345. package/dist/esm/rendering/filters/Filter.js +20 -0
  346. package/dist/esm/rendering/filters/Filter.js.map +1 -1
  347. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +5 -0
  348. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +5 -0
  349. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  350. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +5 -0
  351. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -0
  352. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  353. package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
  354. package/dist/esm/rendering/mesh/Mesh.js +2 -0
  355. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  356. package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
  357. package/dist/esm/rendering/primitives/Graphics.js +34 -0
  358. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  359. package/dist/esm/rendering/shader/Shader.d.ts +36 -0
  360. package/dist/esm/rendering/shader/Shader.js +26 -0
  361. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  362. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
  363. package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
  364. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  365. package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
  366. package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
  367. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  368. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
  369. package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
  370. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  371. package/dist/esm/rendering/sprite/Sprite.d.ts +56 -0
  372. package/dist/esm/rendering/sprite/Sprite.js +56 -0
  373. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  374. package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
  375. package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
  376. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
  377. package/dist/esm/rendering/text/Text.d.ts +2 -0
  378. package/dist/esm/rendering/text/Text.js +2 -0
  379. package/dist/esm/rendering/text/Text.js.map +1 -1
  380. package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
  381. package/dist/esm/rendering/text/TextStyle.js +24 -0
  382. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  383. package/dist/esm/rendering/text/types.d.ts +1 -0
  384. package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
  385. package/dist/esm/rendering/texture/RenderTexture.js +16 -0
  386. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  387. package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
  388. package/dist/esm/rendering/texture/Sampler.js +13 -0
  389. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  390. package/dist/esm/rendering/texture/Texture.d.ts +30 -0
  391. package/dist/esm/rendering/texture/Texture.js +30 -0
  392. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  393. package/dist/esm/rendering/types.d.ts +29 -0
  394. package/dist/esm/rendering/types.js +29 -0
  395. package/dist/esm/rendering/types.js.map +1 -1
  396. package/dist/esm/rendering/utils.d.ts +20 -0
  397. package/dist/esm/rendering/utils.js +10 -0
  398. package/dist/esm/rendering/utils.js.map +1 -1
  399. package/dist/esm/rendering/video/Video.d.ts +35 -1
  400. package/dist/esm/rendering/video/Video.js +36 -2
  401. package/dist/esm/rendering/video/Video.js.map +1 -1
  402. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
  403. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
  404. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  405. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +13 -0
  406. package/dist/esm/rendering/webgl2/WebGl2Backend.js +13 -0
  407. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  408. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
  409. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
  410. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  411. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -0
  412. package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -5
  413. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  414. package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
  415. package/dist/esm/resources/AbstractAssetFactory.js +20 -0
  416. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
  417. package/dist/esm/resources/AssetFactory.d.ts +26 -0
  418. package/dist/esm/resources/AssetManifest.d.ts +45 -0
  419. package/dist/esm/resources/AssetManifest.js +25 -0
  420. package/dist/esm/resources/AssetManifest.js.map +1 -1
  421. package/dist/esm/resources/CacheFirstStrategy.d.ts +15 -0
  422. package/dist/esm/resources/CacheFirstStrategy.js +19 -4
  423. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
  424. package/dist/esm/resources/CacheStore.d.ts +23 -0
  425. package/dist/esm/resources/CacheStrategy.d.ts +28 -0
  426. package/dist/esm/resources/Database.d.ts +45 -0
  427. package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
  428. package/dist/esm/resources/FactoryRegistry.js +24 -0
  429. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  430. package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
  431. package/dist/esm/resources/IndexedDbDatabase.js +21 -0
  432. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  433. package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
  434. package/dist/esm/resources/IndexedDbStore.js +12 -0
  435. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  436. package/dist/esm/resources/Loader.d.ts +172 -0
  437. package/dist/esm/resources/Loader.js +129 -37
  438. package/dist/esm/resources/Loader.js.map +1 -1
  439. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +11 -0
  440. package/dist/esm/resources/NetworkOnlyStrategy.js +16 -3
  441. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
  442. package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
  443. package/dist/esm/resources/factories/BinaryFactory.js +13 -0
  444. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
  445. package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
  446. package/dist/esm/resources/factories/FontFactory.js +26 -0
  447. package/dist/esm/resources/factories/FontFactory.js.map +1 -1
  448. package/dist/esm/resources/factories/ImageFactory.d.ts +26 -2
  449. package/dist/esm/resources/factories/ImageFactory.js +19 -0
  450. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  451. package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
  452. package/dist/esm/resources/factories/JsonFactory.js +13 -0
  453. package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
  454. package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
  455. package/dist/esm/resources/factories/MusicFactory.js +44 -4
  456. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  457. package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
  458. package/dist/esm/resources/factories/SoundFactory.js +18 -0
  459. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  460. package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
  461. package/dist/esm/resources/factories/SvgFactory.js +19 -0
  462. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  463. package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
  464. package/dist/esm/resources/factories/TextFactory.js +11 -0
  465. package/dist/esm/resources/factories/TextFactory.js.map +1 -1
  466. package/dist/esm/resources/factories/TextureFactory.d.ts +27 -2
  467. package/dist/esm/resources/factories/TextureFactory.js +20 -0
  468. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  469. package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
  470. package/dist/esm/resources/factories/VideoFactory.js +48 -5
  471. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  472. package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
  473. package/dist/esm/resources/factories/VttFactory.js +104 -3
  474. package/dist/esm/resources/factories/VttFactory.js.map +1 -1
  475. package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
  476. package/dist/esm/resources/factories/WasmFactory.js +16 -0
  477. package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
  478. package/dist/esm/resources/utils.d.ts +10 -0
  479. package/dist/esm/resources/utils.js +10 -0
  480. package/dist/esm/resources/utils.js.map +1 -1
  481. package/dist/exo.esm.js +4673 -745
  482. package/dist/exo.esm.js.map +1 -1
  483. package/package.json +8 -8
  484. package/dist/esm/input/GamepadChannels.d.ts +0 -39
  485. package/dist/esm/input/GamepadChannels.js +0 -45
  486. package/dist/esm/input/GamepadChannels.js.map +0 -1
  487. package/dist/esm/input/GamepadControl.d.ts +0 -15
  488. package/dist/esm/input/GamepadControl.js +0 -29
  489. package/dist/esm/input/GamepadControl.js.map +0 -1
  490. package/dist/esm/input/Input.d.ts +0 -28
  491. package/dist/esm/input/Input.js +0 -68
  492. package/dist/esm/input/Input.js.map +0 -1
@@ -1,5 +1,40 @@
1
1
  import { Container } from '../rendering/Container.js';
2
2
 
3
+ /**
4
+ * Scene-bound input proxy that automatically disposes its bindings when
5
+ * the owning scene unloads. Created lazily on first access via
6
+ * {@link Scene.inputs}; do not instantiate directly.
7
+ */
8
+ class SceneInputs {
9
+ _scene;
10
+ _bindings = new Set();
11
+ constructor(_scene) {
12
+ this._scene = _scene;
13
+ }
14
+ onStart(channel, callback, options) {
15
+ return this._track(this._scene.app.input.onStart(channel, callback, options));
16
+ }
17
+ onActive(channel, callback, options) {
18
+ return this._track(this._scene.app.input.onActive(channel, callback, options));
19
+ }
20
+ onStop(channel, callback, options) {
21
+ return this._track(this._scene.app.input.onStop(channel, callback, options));
22
+ }
23
+ onTrigger(channel, callback, options) {
24
+ return this._track(this._scene.app.input.onTrigger(channel, callback, options));
25
+ }
26
+ /** @internal Called by Scene.destroy. */
27
+ _disposeAll() {
28
+ for (const binding of Array.from(this._bindings)) {
29
+ binding.unbind();
30
+ }
31
+ this._bindings.clear();
32
+ }
33
+ _track(binding) {
34
+ this._bindings.add(binding);
35
+ return binding;
36
+ }
37
+ }
3
38
  /**
4
39
  * A scene's lifecycle host. Subclass to define scene behavior:
5
40
  *
@@ -23,6 +58,7 @@ class Scene {
23
58
  _root = new Container();
24
59
  _stackMode = 'overlay';
25
60
  _inputMode = 'capture';
61
+ _inputs = null;
26
62
  get app() {
27
63
  return this._app;
28
64
  }
@@ -45,6 +81,24 @@ class Scene {
45
81
  get root() {
46
82
  return this._root;
47
83
  }
84
+ /**
85
+ * Scene-bound input registry. Bindings created via
86
+ * `this.inputs.onTrigger(...)` etc. are automatically disposed when the
87
+ * scene unloads — no manual cleanup required.
88
+ *
89
+ * Lazily instantiated on first access; throws if accessed before
90
+ * {@link Scene.app} is set (i.e. before the scene is registered with
91
+ * a {@link SceneManager}).
92
+ */
93
+ get inputs() {
94
+ if (this._inputs === null) {
95
+ if (this._app === null) {
96
+ throw new Error('Scene.inputs is unavailable before the scene is attached to an Application.');
97
+ }
98
+ this._inputs = new SceneInputs(this);
99
+ }
100
+ return this._inputs;
101
+ }
48
102
  get stackMode() {
49
103
  return this._stackMode;
50
104
  }
@@ -80,12 +134,28 @@ class Scene {
80
134
  input: this._inputMode,
81
135
  };
82
136
  }
137
+ /**
138
+ * Async asset preload hook. Called once before {@link Scene.init} the
139
+ * first time the scene is pushed. Use the loader to register and
140
+ * resolve assets needed by the scene; await any returned promise from
141
+ * `loader.load()`.
142
+ */
83
143
  load(_loader) {
84
144
  // override in subclass
85
145
  }
146
+ /**
147
+ * One-shot setup hook. Called after {@link Scene.load} resolves, before
148
+ * the first update. Build the scene-graph subtree, register signal
149
+ * handlers, etc. Override in subclass.
150
+ */
86
151
  init(_loader) {
87
152
  // override in subclass
88
153
  }
154
+ /**
155
+ * Per-frame logic hook. Receives the time elapsed since the previous
156
+ * frame. The scene-graph transforms are still authoritative — mutate
157
+ * positions, advance timers, drive AI here. Override in subclass.
158
+ */
89
159
  update(_delta) {
90
160
  // override in subclass
91
161
  }
@@ -107,13 +177,26 @@ class Scene {
107
177
  draw(_backend) {
108
178
  // override in subclass
109
179
  }
180
+ /**
181
+ * Input event hook. Override to react to keyboard, pointer, and wheel
182
+ * events delivered to this scene by the {@link InputManager}. Return
183
+ * `true` to consume the event (stops it propagating to scenes below);
184
+ * any other return value lets it through.
185
+ */
110
186
  handleInput(_event) {
111
187
  // override in subclass
112
188
  }
189
+ /**
190
+ * Async asset teardown hook. Called when the scene is finally popped
191
+ * off the stack. Use the loader to release assets that are scene-private
192
+ * and not shared with another scene still on the stack.
193
+ */
113
194
  unload(_loader) {
114
195
  // override in subclass
115
196
  }
116
197
  destroy() {
198
+ this._inputs?._disposeAll();
199
+ this._inputs = null;
117
200
  this._root.destroy();
118
201
  this._app = null;
119
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.js","sources":["../../../../src/core/Scene.ts"],"sourcesContent":[null],"names":[],"mappings":";;AA8BA;;;;;;;;;;;;;;;;;AAiBG;MACU,KAAK,CAAA;IAEJ,IAAI,GAAuB,IAAI;AACtB,IAAA,KAAK,GAAG,IAAI,SAAS,EAAE;IAChC,UAAU,GAAmB,SAAS;IACtC,UAAU,GAAmB,SAAS;AAEhD,IAAA,IAAW,GAAG,GAAA;QACV,OAAO,IAAI,CAAC,IAAI;IACpB;IAEA,IAAW,GAAG,CAAC,GAAuB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;IACnB;AAEA;;;;;;;;;;;;AAYG;AACH,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,IAAoB,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IAC1B;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,IAAoB,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IAC1B;AAEO,IAAA,QAAQ,CAAC,KAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAE1B,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,WAAW,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AAE7B,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,sBAAsB,CAAC,MAAgC,EAAA;AAC1D,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI;QACjC;AAEA,QAAA,IAAI,MAAM,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK;QAClC;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,sBAAsB,GAAA;QACzB,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,KAAK,EAAE,IAAI,CAAC,UAAU;SACzB;IACL;AAEO,IAAA,IAAI,CAAC,OAAe,EAAA;;IAE3B;AAEO,IAAA,IAAI,CAAC,OAAe,EAAA;;IAE3B;AAEO,IAAA,MAAM,CAAC,MAAY,EAAA;;IAE1B;AAEA;;;;;;;;;;;;;;AAcG;AACI,IAAA,IAAI,CAAC,QAAuB,EAAA;;IAEnC;AAEO,IAAA,WAAW,CAAC,MAAuB,EAAA;;IAE1C;AAEO,IAAA,MAAM,CAAC,OAAe,EAAA;;IAE7B;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IACpB;AACH;;;;"}
1
+ {"version":3,"file":"Scene.js","sources":["../../../../src/core/Scene.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -3,37 +3,99 @@ import { Color } from './Color';
3
3
  import type { Time } from './Time';
4
4
  import type { Application } from './Application';
5
5
  import type { Scene, SceneParticipationPolicy } from './Scene';
6
+ /**
7
+ * Fade-to-color scene transition. The screen fades to `color` (default black)
8
+ * over `duration` ms (default 220), the scene change happens at full
9
+ * opacity, then the screen fades back in.
10
+ */
6
11
  export interface FadeSceneTransition {
7
12
  type: 'fade';
8
13
  duration?: number;
9
14
  color?: Color;
10
15
  }
16
+ /** Discriminated union of supported {@link SceneManager} transitions. */
11
17
  export type SceneTransition = FadeSceneTransition;
18
+ /** Options passed to {@link SceneManager.setScene}. */
12
19
  export interface SetSceneOptions {
13
20
  transition?: SceneTransition;
14
21
  }
22
+ /**
23
+ * Options passed to {@link SceneManager.pushScene}. Inherits
24
+ * {@link SceneParticipationPolicy} so the pushed scene's stack/input mode
25
+ * can be overridden at the call site without subclassing.
26
+ */
15
27
  export interface PushSceneOptions extends SceneParticipationPolicy {
16
28
  transition?: SceneTransition;
17
29
  }
30
+ /** Options passed to {@link SceneManager.popScene}. */
18
31
  export interface PopSceneOptions {
19
32
  transition?: SceneTransition;
20
33
  }
34
+ /**
35
+ * Stack-based scene controller owned by {@link Application}. Maintains an
36
+ * ordered stack of {@link Scene} instances, each tagged with its
37
+ * participation policy ({@link SceneStackMode} + {@link SceneInputMode}).
38
+ * Scenes higher on the stack overlay scenes lower; the policy of each
39
+ * scene determines whether scenes below continue to update / render and
40
+ * whether input events propagate down past it.
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.
46
+ *
47
+ * Input from the {@link InputManager} is automatically routed through the
48
+ * stack top-to-bottom; each scene's {@link Scene.handleInput} return value
49
+ * plus the scene's input policy decide whether the next scene below
50
+ * receives the event.
51
+ */
21
52
  export declare class SceneManager {
22
53
  private readonly _app;
23
54
  private readonly _stack;
24
55
  private readonly _transitionOverlay;
25
56
  private _transition;
57
+ /** Fires whenever the topmost scene changes (push, pop, set, or clear). Payload is the new top, or `null` when the stack becomes empty. */
26
58
  readonly onChangeScene: Signal<[Scene | null]>;
59
+ /** Fires after a scene's `init` resolves and it joins the stack. */
27
60
  readonly onStartScene: Signal<[Scene]>;
61
+ /** Fires once per frame for the topmost scene after its `update` ran. */
28
62
  readonly onUpdateScene: Signal<[Scene]>;
63
+ /** Fires just before a scene is unloaded (`unload` then `destroy`). */
29
64
  readonly onStopScene: Signal<[Scene]>;
30
65
  constructor(app: Application);
31
66
  get scene(): Scene | null;
32
67
  set scene(scene: Scene | null);
33
68
  get scenes(): ReadonlyArray<Scene>;
69
+ /**
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.
76
+ */
34
77
  setScene(scene: Scene | null, options?: SetSceneOptions): Promise<this>;
78
+ /**
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
+ */
35
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.
90
+ */
36
91
  popScene(options?: PopSceneOptions): Promise<this>;
92
+ /**
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).
98
+ */
37
99
  update(delta: Time): this;
38
100
  destroy(): void;
39
101
  private _prepareScene;
@@ -16,14 +16,36 @@ const createOverlayMesh = () => new TransitionOverlayMesh({
16
16
  indices: new Uint16Array([0, 1, 2, 1, 3, 2]),
17
17
  });
18
18
  const defaultFadeTransitionDuration = 220;
19
+ /**
20
+ * Stack-based scene controller owned by {@link Application}. Maintains an
21
+ * ordered stack of {@link Scene} instances, each tagged with its
22
+ * participation policy ({@link SceneStackMode} + {@link SceneInputMode}).
23
+ * Scenes higher on the stack overlay scenes lower; the policy of each
24
+ * scene determines whether scenes below continue to update / render and
25
+ * whether input events propagate down past it.
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.
31
+ *
32
+ * Input from the {@link InputManager} is automatically routed through the
33
+ * stack top-to-bottom; each scene's {@link Scene.handleInput} return value
34
+ * plus the scene's input policy decide whether the next scene below
35
+ * receives the event.
36
+ */
19
37
  class SceneManager {
20
38
  _app;
21
39
  _stack = [];
22
40
  _transitionOverlay = createOverlayMesh();
23
41
  _transition = null;
42
+ /** Fires whenever the topmost scene changes (push, pop, set, or clear). Payload is the new top, or `null` when the stack becomes empty. */
24
43
  onChangeScene = new Signal();
44
+ /** Fires after a scene's `init` resolves and it joins the stack. */
25
45
  onStartScene = new Signal();
46
+ /** Fires once per frame for the topmost scene after its `update` ran. */
26
47
  onUpdateScene = new Signal();
48
+ /** Fires just before a scene is unloaded (`unload` then `destroy`). */
27
49
  onStopScene = new Signal();
28
50
  constructor(app) {
29
51
  this._app = app;
@@ -38,6 +60,14 @@ class SceneManager {
38
60
  get scenes() {
39
61
  return this._stack.map(entry => entry.scene);
40
62
  }
63
+ /**
64
+ * Replace the entire scene stack with `scene`, or clear it when `scene`
65
+ * is `null`. Existing scenes are unloaded in reverse order. If `scene`
66
+ * is already the topmost, only the scenes underneath are unloaded
67
+ * (no-op when it is also the only scene).
68
+ *
69
+ * Throws if `scene` is somewhere in the stack but not the top.
70
+ */
41
71
  async setScene(scene, options = {}) {
42
72
  await this._runWithTransition(async () => {
43
73
  if (scene === null) {
@@ -63,6 +93,14 @@ class SceneManager {
63
93
  }, options.transition);
64
94
  return this;
65
95
  }
96
+ /**
97
+ * Push `scene` onto the stack, leaving any underlying scenes intact.
98
+ * Resolves once the pushed scene's async `load` + `init` complete.
99
+ * `options` may override the scene's declared participation policy
100
+ * (stack mode, input mode) for this particular push.
101
+ *
102
+ * Throws if `scene` is already present in the stack.
103
+ */
66
104
  async pushScene(scene, options = {}) {
67
105
  await this._runWithTransition(async () => {
68
106
  if (this._stack.some((entry) => entry.scene === scene)) {
@@ -76,6 +114,10 @@ class SceneManager {
76
114
  }, options.transition);
77
115
  return this;
78
116
  }
117
+ /**
118
+ * Remove the topmost scene from the stack. Resolves once the scene's
119
+ * `unload` finishes. No-op when the stack is empty.
120
+ */
79
121
  async popScene(options = {}) {
80
122
  await this._runWithTransition(async () => {
81
123
  if (this._stack.length === 0) {
@@ -91,6 +133,13 @@ class SceneManager {
91
133
  }, options.transition);
92
134
  return this;
93
135
  }
136
+ /**
137
+ * Per-frame entry point called by {@link Application.update}. Advances
138
+ * any active fade transition, then iterates the stack top-to-bottom
139
+ * deciding which scenes update and which draw based on each scene's
140
+ * participation policy (`opaque` covers everything below, `modal`
141
+ * covers only updates).
142
+ */
94
143
  update(delta) {
95
144
  this._advanceTransition(delta.milliseconds);
96
145
  const { updateScenes, drawScenes } = this._resolveParticipants();
@@ -217,7 +266,7 @@ class SceneManager {
217
266
  return { updateScenes, drawScenes };
218
267
  }
219
268
  _subscribeInputRouting() {
220
- const inputManager = this._app.inputManager;
269
+ const inputManager = this._app.input;
221
270
  inputManager?.onKeyDown?.add?.(this._handleKeyDown);
222
271
  inputManager?.onKeyUp?.add?.(this._handleKeyUp);
223
272
  inputManager?.onPointerEnter?.add?.(this._handlePointerEnter);
@@ -231,7 +280,7 @@ class SceneManager {
231
280
  inputManager?.onMouseWheel?.add?.(this._handleMouseWheel);
232
281
  }
233
282
  _unsubscribeInputRouting() {
234
- const inputManager = this._app.inputManager;
283
+ const inputManager = this._app.input;
235
284
  inputManager?.onKeyDown?.remove?.(this._handleKeyDown);
236
285
  inputManager?.onKeyUp?.remove?.(this._handleKeyUp);
237
286
  inputManager?.onPointerEnter?.remove?.(this._handlePointerEnter);
@@ -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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"}
@@ -20,6 +20,30 @@ declare enum SceneNodeTransformFlags {
20
20
  GlobalTransform = 256,// own _globalTransform is stale
21
21
  BoundsRect = 512
22
22
  }
23
+ /**
24
+ * Transform-bearing leaf in the scene-graph hierarchy. Carries position,
25
+ * rotation, scale, origin, and a 2-component {@link Vector} `anchor` used to
26
+ * derive `origin` from the local bounds. Implements {@link Collidable} so
27
+ * any node can participate directly in the SAT collision pipeline via its
28
+ * AABB or rotated quad.
29
+ *
30
+ * Transform state is dirty-flag-cached: position/rotation/scale/origin
31
+ * mutations invalidate the local transform; either kind of mutation also
32
+ * invalidates the global transform (own + descendants) and the bounds rect
33
+ * for this node and every {@link Container} ancestor up the parent chain.
34
+ * The caches rebuild lazily on the next read.
35
+ *
36
+ * The fast-path `isAlignedBox` getter reports `true` when the rotation is a
37
+ * multiple of 90°; in that case the (cheaper) AABB-based collision test is
38
+ * used instead of the rotated-quad SAT path.
39
+ *
40
+ * `_invalidate*` methods are exported as `public` for friend-class access
41
+ * from {@link Container} and {@link InteractionManager}; treat them as
42
+ * `@internal`.
43
+ *
44
+ * Subclasses: {@link Container} (carries children), {@link RenderNode}
45
+ * (carries draw payloads).
46
+ */
23
47
  export declare class SceneNode implements Collidable {
24
48
  readonly collisionType: CollisionType;
25
49
  readonly flags: Flags<SceneNodeTransformFlags>;
@@ -45,12 +69,19 @@ export declare class SceneNode implements Collidable {
45
69
  set x(x: number);
46
70
  get y(): number;
47
71
  set y(y: number);
72
+ /** Rotation angle in degrees. Wraps via `trimRotation` on assignment. */
48
73
  get rotation(): number;
49
74
  set rotation(rotation: number);
50
75
  get scale(): ObservableVector;
51
76
  set scale(scale: ObservableVector);
52
77
  get origin(): ObservableVector;
53
78
  set origin(origin: ObservableVector);
79
+ /**
80
+ * Normalized anchor in 0..1 along each axis that derives `origin` from
81
+ * the current bounds size. `(0, 0)` = top-left, `(0.5, 0.5)` = center,
82
+ * `(1, 1)` = bottom-right. Updates `origin` whenever the anchor or the
83
+ * local bounds change.
84
+ */
54
85
  get anchor(): ObservableVector;
55
86
  set anchor(anchor: ObservableVector);
56
87
  get parent(): Container | null;
@@ -25,6 +25,30 @@ var SceneNodeTransformFlags;
25
25
  SceneNodeTransformFlags[SceneNodeTransformFlags["GlobalTransform"] = 256] = "GlobalTransform";
26
26
  SceneNodeTransformFlags[SceneNodeTransformFlags["BoundsRect"] = 512] = "BoundsRect";
27
27
  })(SceneNodeTransformFlags || (SceneNodeTransformFlags = {}));
28
+ /**
29
+ * Transform-bearing leaf in the scene-graph hierarchy. Carries position,
30
+ * rotation, scale, origin, and a 2-component {@link Vector} `anchor` used to
31
+ * derive `origin` from the local bounds. Implements {@link Collidable} so
32
+ * any node can participate directly in the SAT collision pipeline via its
33
+ * AABB or rotated quad.
34
+ *
35
+ * Transform state is dirty-flag-cached: position/rotation/scale/origin
36
+ * mutations invalidate the local transform; either kind of mutation also
37
+ * invalidates the global transform (own + descendants) and the bounds rect
38
+ * for this node and every {@link Container} ancestor up the parent chain.
39
+ * The caches rebuild lazily on the next read.
40
+ *
41
+ * The fast-path `isAlignedBox` getter reports `true` when the rotation is a
42
+ * multiple of 90°; in that case the (cheaper) AABB-based collision test is
43
+ * used instead of the rotated-quad SAT path.
44
+ *
45
+ * `_invalidate*` methods are exported as `public` for friend-class access
46
+ * from {@link Container} and {@link InteractionManager}; treat them as
47
+ * `@internal`.
48
+ *
49
+ * Subclasses: {@link Container} (carries children), {@link RenderNode}
50
+ * (carries draw payloads).
51
+ */
28
52
  class SceneNode {
29
53
  collisionType = CollisionType.SceneNode;
30
54
  flags = new Flags(SceneNodeTransformFlags.Transform
@@ -64,6 +88,7 @@ class SceneNode {
64
88
  set y(y) {
65
89
  this._position.y = y;
66
90
  }
91
+ /** Rotation angle in degrees. Wraps via `trimRotation` on assignment. */
67
92
  get rotation() {
68
93
  return this._rotation;
69
94
  }
@@ -82,6 +107,12 @@ class SceneNode {
82
107
  set origin(origin) {
83
108
  this._origin.copy(origin);
84
109
  }
110
+ /**
111
+ * Normalized anchor in 0..1 along each axis that derives `origin` from
112
+ * the current bounds size. `(0, 0)` = top-left, `(0.5, 0.5)` = center,
113
+ * `(1, 1)` = bottom-right. Updates `origin` whenever the anchor or the
114
+ * local bounds change.
115
+ */
85
116
  get anchor() {
86
117
  return this._anchor;
87
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SceneNode.js","sources":["../../../../src/core/SceneNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SceneNode.js","sources":["../../../../src/core/SceneNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,17 +1,61 @@
1
+ /**
2
+ * Listener function for a {@link Signal}. Returning `false` from a handler
3
+ * stops further dispatch to remaining listeners for the current invocation
4
+ * (subsequent dispatches are unaffected).
5
+ */
1
6
  type SignalHandler<Args extends Array<unknown>> = (...params: Args) => void | boolean;
2
7
  interface SignalBinding<Args extends Array<unknown>> {
3
8
  handler: SignalHandler<Args>;
4
9
  context?: object;
5
10
  }
11
+ /**
12
+ * Lightweight typed event emitter. Each `Signal` represents one named
13
+ * notification channel (e.g. `onResize`, `onFrame`). Listeners are added with
14
+ * {@link Signal.add} or {@link Signal.once}, removed with
15
+ * {@link Signal.remove}, and notified with {@link Signal.dispatch}.
16
+ *
17
+ * `Args` is the tuple of arguments passed to listeners — type-checked end to
18
+ * end so a `new Signal<[number, string]>()` enforces both `dispatch(1, 'x')`
19
+ * and the listener signature `(n: number, s: string) => …`.
20
+ *
21
+ * `dispatch` snapshots the bindings list before iterating, so handlers may
22
+ * freely add or remove listeners during the same dispatch without corrupting
23
+ * the loop. Returning `false` from a handler short-circuits the rest of the
24
+ * dispatch (handy for capturing-style flows).
25
+ */
6
26
  export declare class Signal<Args extends Array<unknown> = []> {
7
27
  private readonly _bindings;
8
28
  get bindings(): ReadonlyArray<SignalBinding<Args>>;
29
+ /** `true` when `handler` is registered with the same `context`. */
9
30
  has(handler: SignalHandler<Args>, context?: object): boolean;
31
+ /**
32
+ * Register a listener. Idempotent — adding the same `(handler, context)`
33
+ * pair twice is a no-op. `context` becomes `this` inside the handler.
34
+ */
10
35
  add(handler: SignalHandler<Args>, context?: object): this;
36
+ /**
37
+ * Register a listener that auto-removes itself after the first dispatch.
38
+ * Wraps `handler` in a self-removing closure; calling
39
+ * {@link Signal.remove} with the original `handler` reference does NOT
40
+ * remove the wrapper — use {@link Signal.clear} or
41
+ * {@link Signal.clearByContext} to undo a `once` registration.
42
+ */
11
43
  once(handler: SignalHandler<Args>, context?: object): this;
44
+ /** Remove a previously registered `(handler, context)` pair. No-op if absent. */
12
45
  remove(handler: SignalHandler<Args>, context?: object): this;
46
+ /**
47
+ * Remove every listener bound to `context`. Useful when an object is
48
+ * being torn down and needs to detach all its subscriptions in one call.
49
+ */
13
50
  clearByContext(context?: object): this;
51
+ /** Remove every listener. */
14
52
  clear(): this;
53
+ /**
54
+ * Notify every registered listener in registration order. Returning `false`
55
+ * from a handler stops dispatch to the remaining listeners for this call.
56
+ * Listeners may safely add/remove bindings during dispatch — the iteration
57
+ * uses a pre-snapshot of the bindings array.
58
+ */
15
59
  dispatch(...params: Args): this;
16
60
  destroy(): void;
17
61
  }