@codexo/exojs 0.7.11 → 0.7.12

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 (478) hide show
  1. package/CHANGELOG.md +108 -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 +63 -0
  79. package/dist/esm/core/Application.js +61 -0
  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 +46 -0
  91. package/dist/esm/core/Scene.js +27 -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 +49 -0
  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 +6 -0
  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 +10 -2
  132. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  133. package/dist/esm/index.js +2 -2
  134. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
  135. package/dist/esm/input/ArcadeStickGamepadMapping.js +7 -0
  136. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
  137. package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
  138. package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
  139. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
  140. package/dist/esm/input/Gamepad.d.ts +48 -0
  141. package/dist/esm/input/Gamepad.js +43 -0
  142. package/dist/esm/input/Gamepad.js.map +1 -1
  143. package/dist/esm/input/GamepadChannels.d.ts +8 -0
  144. package/dist/esm/input/GamepadChannels.js +8 -0
  145. package/dist/esm/input/GamepadChannels.js.map +1 -1
  146. package/dist/esm/input/GamepadControl.d.ts +18 -0
  147. package/dist/esm/input/GamepadControl.js +13 -0
  148. package/dist/esm/input/GamepadControl.js.map +1 -1
  149. package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
  150. package/dist/esm/input/GamepadDefinitions.js +40 -1
  151. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  152. package/dist/esm/input/GamepadMapping.d.ts +32 -2
  153. package/dist/esm/input/GamepadMapping.js +24 -0
  154. package/dist/esm/input/GamepadMapping.js.map +1 -1
  155. package/dist/esm/input/GamepadPromptLayouts.d.ts +32 -1
  156. package/dist/esm/input/GamepadPromptLayouts.js +25 -1
  157. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
  158. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +10 -0
  159. package/dist/esm/input/GenericDualAnalogGamepadMapping.js +10 -0
  160. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
  161. package/dist/esm/input/GestureRecognizer.d.ts +11 -2
  162. package/dist/esm/input/GestureRecognizer.js +11 -2
  163. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  164. package/dist/esm/input/Input.d.ts +24 -0
  165. package/dist/esm/input/Input.js +22 -0
  166. package/dist/esm/input/Input.js.map +1 -1
  167. package/dist/esm/input/InputManager.d.ts +33 -0
  168. package/dist/esm/input/InputManager.js +33 -0
  169. package/dist/esm/input/InputManager.js.map +1 -1
  170. package/dist/esm/input/InteractionEvent.d.ts +13 -0
  171. package/dist/esm/input/InteractionEvent.js +8 -0
  172. package/dist/esm/input/InteractionEvent.js.map +1 -1
  173. package/dist/esm/input/InteractionManager.d.ts +33 -4
  174. package/dist/esm/input/InteractionManager.js +33 -4
  175. package/dist/esm/input/InteractionManager.js.map +1 -1
  176. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +9 -0
  177. package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
  178. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
  179. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +9 -0
  180. package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
  181. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
  182. package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
  183. package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
  184. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
  185. package/dist/esm/input/Pointer.d.ts +22 -0
  186. package/dist/esm/input/Pointer.js +22 -0
  187. package/dist/esm/input/Pointer.js.map +1 -1
  188. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
  189. package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
  190. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
  191. package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
  192. package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
  193. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
  194. package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
  195. package/dist/esm/input/XboxGamepadMapping.js +8 -0
  196. package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
  197. package/dist/esm/input/types.d.ts +20 -0
  198. package/dist/esm/input/types.js +20 -0
  199. package/dist/esm/input/types.js.map +1 -1
  200. package/dist/esm/math/AbstractVector.d.ts +83 -0
  201. package/dist/esm/math/AbstractVector.js +83 -0
  202. package/dist/esm/math/AbstractVector.js.map +1 -1
  203. package/dist/esm/math/Circle.d.ts +32 -0
  204. package/dist/esm/math/Circle.js +34 -2
  205. package/dist/esm/math/Circle.js.map +1 -1
  206. package/dist/esm/math/CircleLike.d.ts +1 -0
  207. package/dist/esm/math/Collision.d.ts +39 -0
  208. package/dist/esm/math/Collision.js +5 -0
  209. package/dist/esm/math/Collision.js.map +1 -1
  210. package/dist/esm/math/Ellipse.d.ts +11 -0
  211. package/dist/esm/math/Ellipse.js +18 -2
  212. package/dist/esm/math/Ellipse.js.map +1 -1
  213. package/dist/esm/math/EllipseLike.d.ts +3 -0
  214. package/dist/esm/math/Flags.d.ts +31 -0
  215. package/dist/esm/math/Flags.js +31 -0
  216. package/dist/esm/math/Flags.js.map +1 -1
  217. package/dist/esm/math/Interval.d.ts +15 -0
  218. package/dist/esm/math/Interval.js +15 -0
  219. package/dist/esm/math/Interval.js.map +1 -1
  220. package/dist/esm/math/Line.d.ts +17 -1
  221. package/dist/esm/math/Line.js +17 -1
  222. package/dist/esm/math/Line.js.map +1 -1
  223. package/dist/esm/math/LineLike.d.ts +1 -0
  224. package/dist/esm/math/Matrix.d.ts +44 -3
  225. package/dist/esm/math/Matrix.js +44 -3
  226. package/dist/esm/math/Matrix.js.map +1 -1
  227. package/dist/esm/math/ObservableSize.d.ts +7 -0
  228. package/dist/esm/math/ObservableSize.js +7 -0
  229. package/dist/esm/math/ObservableSize.js.map +1 -1
  230. package/dist/esm/math/ObservableVector.d.ts +9 -0
  231. package/dist/esm/math/ObservableVector.js +9 -0
  232. package/dist/esm/math/ObservableVector.js.map +1 -1
  233. package/dist/esm/math/PointLike.d.ts +1 -0
  234. package/dist/esm/math/PolarVector.d.ts +15 -0
  235. package/dist/esm/math/PolarVector.js +16 -1
  236. package/dist/esm/math/PolarVector.js.map +1 -1
  237. package/dist/esm/math/Polygon.d.ts +20 -0
  238. package/dist/esm/math/Polygon.js +20 -0
  239. package/dist/esm/math/Polygon.js.map +1 -1
  240. package/dist/esm/math/PolygonLike.d.ts +4 -0
  241. package/dist/esm/math/Quadtree.d.ts +40 -3
  242. package/dist/esm/math/Quadtree.js +39 -3
  243. package/dist/esm/math/Quadtree.js.map +1 -1
  244. package/dist/esm/math/Random.d.ts +25 -0
  245. package/dist/esm/math/Random.js +25 -0
  246. package/dist/esm/math/Random.js.map +1 -1
  247. package/dist/esm/math/Rectangle.d.ts +15 -0
  248. package/dist/esm/math/Rectangle.js +17 -2
  249. package/dist/esm/math/Rectangle.js.map +1 -1
  250. package/dist/esm/math/RectangleLike.d.ts +1 -0
  251. package/dist/esm/math/Segment.d.ts +7 -0
  252. package/dist/esm/math/Segment.js +7 -0
  253. package/dist/esm/math/Segment.js.map +1 -1
  254. package/dist/esm/math/ShapeLike.d.ts +6 -0
  255. package/dist/esm/math/Size.d.ts +9 -0
  256. package/dist/esm/math/Size.js +9 -0
  257. package/dist/esm/math/Size.js.map +1 -1
  258. package/dist/esm/math/Vector.d.ts +16 -0
  259. package/dist/esm/math/Vector.js +16 -0
  260. package/dist/esm/math/Vector.js.map +1 -1
  261. package/dist/esm/math/collision-detection.d.ts +47 -1
  262. package/dist/esm/math/collision-detection.js +228 -17
  263. package/dist/esm/math/collision-detection.js.map +1 -1
  264. package/dist/esm/math/collision-primitives.d.ts +23 -0
  265. package/dist/esm/math/collision-primitives.js +23 -0
  266. package/dist/esm/math/collision-primitives.js.map +1 -1
  267. package/dist/esm/math/geometry.d.ts +42 -0
  268. package/dist/esm/math/geometry.js +37 -0
  269. package/dist/esm/math/geometry.js.map +1 -1
  270. package/dist/esm/math/utils.d.ts +41 -0
  271. package/dist/esm/math/utils.js +41 -0
  272. package/dist/esm/math/utils.js.map +1 -1
  273. package/dist/esm/particles/Particle.d.ts +37 -0
  274. package/dist/esm/particles/Particle.js +37 -0
  275. package/dist/esm/particles/Particle.js.map +1 -1
  276. package/dist/esm/particles/ParticleProperties.d.ts +15 -0
  277. package/dist/esm/particles/ParticleSystem.d.ts +69 -0
  278. package/dist/esm/particles/ParticleSystem.js +69 -0
  279. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  280. package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
  281. package/dist/esm/particles/affectors/ColorAffector.js +13 -0
  282. package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
  283. package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
  284. package/dist/esm/particles/affectors/ForceAffector.js +11 -0
  285. package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
  286. package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
  287. package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
  288. package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
  289. package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
  290. package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
  291. package/dist/esm/particles/affectors/TorqueAffector.js +11 -0
  292. package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
  293. package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
  294. package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
  295. package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
  296. package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
  297. package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
  298. package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
  299. package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
  300. package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
  301. package/dist/esm/rendering/CallbackRenderPass.js +12 -0
  302. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  303. package/dist/esm/rendering/Container.d.ts +43 -0
  304. package/dist/esm/rendering/Container.js +43 -0
  305. package/dist/esm/rendering/Container.js.map +1 -1
  306. package/dist/esm/rendering/Drawable.d.ts +22 -0
  307. package/dist/esm/rendering/Drawable.js +22 -0
  308. package/dist/esm/rendering/Drawable.js.map +1 -1
  309. package/dist/esm/rendering/RenderBackend.d.ts +13 -0
  310. package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
  311. package/dist/esm/rendering/RenderBackendType.js +4 -0
  312. package/dist/esm/rendering/RenderBackendType.js.map +1 -1
  313. package/dist/esm/rendering/RenderNode.d.ts +18 -0
  314. package/dist/esm/rendering/RenderNode.js +18 -0
  315. package/dist/esm/rendering/RenderNode.js.map +1 -1
  316. package/dist/esm/rendering/RenderPass.d.ts +8 -0
  317. package/dist/esm/rendering/RenderStats.d.ts +19 -0
  318. package/dist/esm/rendering/RenderStats.js +7 -0
  319. package/dist/esm/rendering/RenderStats.js.map +1 -1
  320. package/dist/esm/rendering/RenderTarget.d.ts +17 -0
  321. package/dist/esm/rendering/RenderTarget.js +17 -0
  322. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  323. package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
  324. package/dist/esm/rendering/RenderTargetPass.js +7 -0
  325. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  326. package/dist/esm/rendering/Renderer.d.ts +15 -0
  327. package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
  328. package/dist/esm/rendering/RendererRegistry.js +7 -0
  329. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  330. package/dist/esm/rendering/View.d.ts +67 -2
  331. package/dist/esm/rendering/View.js +57 -0
  332. package/dist/esm/rendering/View.js.map +1 -1
  333. package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
  334. package/dist/esm/rendering/filters/BlurFilter.js +8 -0
  335. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  336. package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
  337. package/dist/esm/rendering/filters/ColorFilter.js +7 -0
  338. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  339. package/dist/esm/rendering/filters/Filter.d.ts +23 -0
  340. package/dist/esm/rendering/filters/Filter.js +20 -0
  341. package/dist/esm/rendering/filters/Filter.js.map +1 -1
  342. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +5 -0
  343. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +5 -0
  344. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  345. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +5 -0
  346. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -0
  347. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  348. package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
  349. package/dist/esm/rendering/mesh/Mesh.js +2 -0
  350. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  351. package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
  352. package/dist/esm/rendering/primitives/Graphics.js +34 -0
  353. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  354. package/dist/esm/rendering/shader/Shader.d.ts +36 -0
  355. package/dist/esm/rendering/shader/Shader.js +26 -0
  356. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  357. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
  358. package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
  359. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  360. package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
  361. package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
  362. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  363. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
  364. package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
  365. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  366. package/dist/esm/rendering/sprite/Sprite.d.ts +56 -0
  367. package/dist/esm/rendering/sprite/Sprite.js +56 -0
  368. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  369. package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
  370. package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
  371. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
  372. package/dist/esm/rendering/text/Text.d.ts +2 -0
  373. package/dist/esm/rendering/text/Text.js +2 -0
  374. package/dist/esm/rendering/text/Text.js.map +1 -1
  375. package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
  376. package/dist/esm/rendering/text/TextStyle.js +24 -0
  377. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  378. package/dist/esm/rendering/text/types.d.ts +1 -0
  379. package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
  380. package/dist/esm/rendering/texture/RenderTexture.js +16 -0
  381. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  382. package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
  383. package/dist/esm/rendering/texture/Sampler.js +13 -0
  384. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  385. package/dist/esm/rendering/texture/Texture.d.ts +30 -0
  386. package/dist/esm/rendering/texture/Texture.js +30 -0
  387. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  388. package/dist/esm/rendering/types.d.ts +29 -0
  389. package/dist/esm/rendering/types.js +29 -0
  390. package/dist/esm/rendering/types.js.map +1 -1
  391. package/dist/esm/rendering/utils.d.ts +20 -0
  392. package/dist/esm/rendering/utils.js +10 -0
  393. package/dist/esm/rendering/utils.js.map +1 -1
  394. package/dist/esm/rendering/video/Video.d.ts +35 -1
  395. package/dist/esm/rendering/video/Video.js +36 -2
  396. package/dist/esm/rendering/video/Video.js.map +1 -1
  397. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
  398. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
  399. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  400. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +13 -0
  401. package/dist/esm/rendering/webgl2/WebGl2Backend.js +13 -0
  402. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  403. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
  404. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
  405. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  406. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -0
  407. package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -5
  408. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  409. package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
  410. package/dist/esm/resources/AbstractAssetFactory.js +20 -0
  411. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
  412. package/dist/esm/resources/AssetFactory.d.ts +26 -0
  413. package/dist/esm/resources/AssetManifest.d.ts +45 -0
  414. package/dist/esm/resources/AssetManifest.js +25 -0
  415. package/dist/esm/resources/AssetManifest.js.map +1 -1
  416. package/dist/esm/resources/CacheFirstStrategy.d.ts +12 -0
  417. package/dist/esm/resources/CacheFirstStrategy.js +12 -0
  418. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
  419. package/dist/esm/resources/CacheStore.d.ts +23 -0
  420. package/dist/esm/resources/CacheStrategy.d.ts +20 -0
  421. package/dist/esm/resources/Database.d.ts +45 -0
  422. package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
  423. package/dist/esm/resources/FactoryRegistry.js +24 -0
  424. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  425. package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
  426. package/dist/esm/resources/IndexedDbDatabase.js +21 -0
  427. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  428. package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
  429. package/dist/esm/resources/IndexedDbStore.js +12 -0
  430. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  431. package/dist/esm/resources/Loader.d.ts +167 -0
  432. package/dist/esm/resources/Loader.js +110 -0
  433. package/dist/esm/resources/Loader.js.map +1 -1
  434. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +8 -0
  435. package/dist/esm/resources/NetworkOnlyStrategy.js +8 -0
  436. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
  437. package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
  438. package/dist/esm/resources/factories/BinaryFactory.js +13 -0
  439. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
  440. package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
  441. package/dist/esm/resources/factories/FontFactory.js +26 -0
  442. package/dist/esm/resources/factories/FontFactory.js.map +1 -1
  443. package/dist/esm/resources/factories/ImageFactory.d.ts +24 -0
  444. package/dist/esm/resources/factories/ImageFactory.js +19 -0
  445. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  446. package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
  447. package/dist/esm/resources/factories/JsonFactory.js +13 -0
  448. package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
  449. package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
  450. package/dist/esm/resources/factories/MusicFactory.js +44 -4
  451. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  452. package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
  453. package/dist/esm/resources/factories/SoundFactory.js +18 -0
  454. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  455. package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
  456. package/dist/esm/resources/factories/SvgFactory.js +19 -0
  457. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  458. package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
  459. package/dist/esm/resources/factories/TextFactory.js +11 -0
  460. package/dist/esm/resources/factories/TextFactory.js.map +1 -1
  461. package/dist/esm/resources/factories/TextureFactory.d.ts +25 -0
  462. package/dist/esm/resources/factories/TextureFactory.js +20 -0
  463. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  464. package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
  465. package/dist/esm/resources/factories/VideoFactory.js +48 -5
  466. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  467. package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
  468. package/dist/esm/resources/factories/VttFactory.js +24 -0
  469. package/dist/esm/resources/factories/VttFactory.js.map +1 -1
  470. package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
  471. package/dist/esm/resources/factories/WasmFactory.js +16 -0
  472. package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
  473. package/dist/esm/resources/utils.d.ts +10 -0
  474. package/dist/esm/resources/utils.js +10 -0
  475. package/dist/esm/resources/utils.js.map +1 -1
  476. package/dist/exo.esm.js +3392 -59
  477. package/dist/exo.esm.js.map +1 -1
  478. package/package.json +7 -8
@@ -1,4 +1,5 @@
1
1
  import type { AudioFilter } from './AudioFilter';
2
+ /** Construction options for {@link AudioBus}. */
2
3
  export interface AudioBusOptions {
3
4
  parent?: AudioBus | null;
4
5
  volume?: number;
@@ -6,6 +7,26 @@ export interface AudioBusOptions {
6
7
  pan?: number;
7
8
  filters?: ReadonlyArray<AudioFilter>;
8
9
  }
10
+ /**
11
+ * Hierarchical mixer node in the engine's audio routing graph. Each bus
12
+ * owns three Web Audio nodes (input gain, optional filter chain, stereo
13
+ * pan, output gain) and routes its output into its parent's input — the
14
+ * root bus connects to the destination.
15
+ *
16
+ * The three engine-built-in busses are constructed by {@link AudioManager}:
17
+ * `master` (root), `music` (child of master), `sound` (child of master).
18
+ * User code creates additional busses via `new AudioBus(name, { parent })`
19
+ * and registers them via {@link AudioManager.registerBus}.
20
+ *
21
+ * Volume is in 0..2 (1 = unity), pan is -1..1, mute is a boolean override.
22
+ * {@link AudioBus.fadeIn} / {@link AudioBus.fadeOut} produce smooth ramps
23
+ * over the output gain. Filter changes via {@link AudioBus.addFilter} /
24
+ * {@link AudioBus.removeFilter} rebuild the chain in place.
25
+ *
26
+ * Setup is deferred until the global `AudioContext` is unlocked
27
+ * (browser autoplay policy); operations that need live nodes are no-ops
28
+ * until that happens.
29
+ */
9
30
  export declare class AudioBus {
10
31
  readonly name: string;
11
32
  private _parent;
@@ -24,9 +45,25 @@ export declare class AudioBus {
24
45
  get pan(): number;
25
46
  set pan(value: number);
26
47
  get inputNode(): GainNode | null;
48
+ /**
49
+ * Append a filter to the end of the chain (before the pan stage). The
50
+ * chain is rebuilt in place; existing audio routes through the new
51
+ * filter on the next frame.
52
+ */
27
53
  addFilter(filter: AudioFilter): this;
54
+ /** Remove `filter` from the chain. No-op if not present. Caller still owns + must `destroy()` it. */
28
55
  removeFilter(filter: AudioFilter): this;
56
+ /**
57
+ * Linearly ramp the output gain from 0 to the current volume over
58
+ * `durationMs`. Cancels any in-flight ramps on the same gain node.
59
+ */
29
60
  fadeIn(durationMs: number): this;
61
+ /**
62
+ * Linearly ramp the output gain to 0 over `durationMs`. By default
63
+ * mutes the bus once the ramp completes (`stopAfter: true`); pass
64
+ * `stopAfter: false` to let the ramp finish silently while leaving
65
+ * `muted` unchanged.
66
+ */
30
67
  fadeOut(durationMs: number, options?: {
31
68
  stopAfter?: boolean;
32
69
  }): this;
@@ -1,6 +1,26 @@
1
1
  import { clamp } from '../math/utils.js';
2
2
  import { isAudioContextReady, getAudioContext, onAudioContextReady } from './audio-context.js';
3
3
 
4
+ /**
5
+ * Hierarchical mixer node in the engine's audio routing graph. Each bus
6
+ * owns three Web Audio nodes (input gain, optional filter chain, stereo
7
+ * pan, output gain) and routes its output into its parent's input — the
8
+ * root bus connects to the destination.
9
+ *
10
+ * The three engine-built-in busses are constructed by {@link AudioManager}:
11
+ * `master` (root), `music` (child of master), `sound` (child of master).
12
+ * User code creates additional busses via `new AudioBus(name, { parent })`
13
+ * and registers them via {@link AudioManager.registerBus}.
14
+ *
15
+ * Volume is in 0..2 (1 = unity), pan is -1..1, mute is a boolean override.
16
+ * {@link AudioBus.fadeIn} / {@link AudioBus.fadeOut} produce smooth ramps
17
+ * over the output gain. Filter changes via {@link AudioBus.addFilter} /
18
+ * {@link AudioBus.removeFilter} rebuild the chain in place.
19
+ *
20
+ * Setup is deferred until the global `AudioContext` is unlocked
21
+ * (browser autoplay policy); operations that need live nodes are no-ops
22
+ * until that happens.
23
+ */
4
24
  class AudioBus {
5
25
  name;
6
26
  _parent;
@@ -66,11 +86,17 @@ class AudioBus {
66
86
  get inputNode() {
67
87
  return this._setup?.inputNode ?? null;
68
88
  }
89
+ /**
90
+ * Append a filter to the end of the chain (before the pan stage). The
91
+ * chain is rebuilt in place; existing audio routes through the new
92
+ * filter on the next frame.
93
+ */
69
94
  addFilter(filter) {
70
95
  this._filters.push(filter);
71
96
  this._rebuildFilterChain();
72
97
  return this;
73
98
  }
99
+ /** Remove `filter` from the chain. No-op if not present. Caller still owns + must `destroy()` it. */
74
100
  removeFilter(filter) {
75
101
  const index = this._filters.indexOf(filter);
76
102
  if (index !== -1) {
@@ -79,6 +105,10 @@ class AudioBus {
79
105
  }
80
106
  return this;
81
107
  }
108
+ /**
109
+ * Linearly ramp the output gain from 0 to the current volume over
110
+ * `durationMs`. Cancels any in-flight ramps on the same gain node.
111
+ */
82
112
  fadeIn(durationMs) {
83
113
  this._clearScheduledStop();
84
114
  if (durationMs <= 0 || !this._setup) {
@@ -92,6 +122,12 @@ class AudioBus {
92
122
  node.gain.linearRampToValueAtTime(target, ctx.currentTime + durationMs / 1000);
93
123
  return this;
94
124
  }
125
+ /**
126
+ * Linearly ramp the output gain to 0 over `durationMs`. By default
127
+ * mutes the bus once the ramp completes (`stopAfter: true`); pass
128
+ * `stopAfter: false` to let the ramp finish silently while leaving
129
+ * `muted` unchanged.
130
+ */
95
131
  fadeOut(durationMs, options = {}) {
96
132
  const stopAfter = options.stopAfter ?? true;
97
133
  this._clearScheduledStop();
@@ -1 +1 @@
1
- {"version":3,"file":"AudioBus.js","sources":["../../../../src/audio/AudioBus.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioBus.js","sources":["../../../../src/audio/AudioBus.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Abstract base for all audio processing filters in ExoJS. Each filter exposes
3
+ * stable {@link inputNode} and {@link outputNode} AudioNodes that the audio bus
4
+ * connects into the Web Audio graph. Async filters (e.g., worklet-based) expose
5
+ * a {@link ready} promise that resolves once the filter is fully initialized.
6
+ */
1
7
  export declare abstract class AudioFilter {
2
8
  /** The node where audio enters this filter. */
3
9
  abstract get inputNode(): AudioNode;
@@ -5,5 +11,6 @@ export declare abstract class AudioFilter {
5
11
  abstract get outputNode(): AudioNode;
6
12
  /** Resolves when the filter is fully initialized. Defaults to immediately-resolved for sync filters. */
7
13
  get ready(): Promise<void>;
14
+ /** Disconnects all audio nodes and releases resources. Must be called when the filter is no longer needed. */
8
15
  abstract destroy(): void;
9
16
  }
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Abstract base for all audio processing filters in ExoJS. Each filter exposes
3
+ * stable {@link inputNode} and {@link outputNode} AudioNodes that the audio bus
4
+ * connects into the Web Audio graph. Async filters (e.g., worklet-based) expose
5
+ * a {@link ready} promise that resolves once the filter is fully initialized.
6
+ */
1
7
  class AudioFilter {
2
8
  /** Resolves when the filter is fully initialized. Defaults to immediately-resolved for sync filters. */
3
9
  get ready() { return Promise.resolve(); }
@@ -1 +1 @@
1
- {"version":3,"file":"AudioFilter.js","sources":["../../../../src/audio/AudioFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"MAAsB,WAAW,CAAA;;IAM7B,IAAW,KAAK,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAEjE;;;;"}
1
+ {"version":3,"file":"AudioFilter.js","sources":["../../../../src/audio/AudioFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;MACmB,WAAW,CAAA;;IAM7B,IAAW,KAAK,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAGjE;;;;"}
@@ -1,10 +1,29 @@
1
1
  import { Vector } from '@/math/Vector';
2
2
  import type { SceneNode } from '@/core/SceneNode';
3
3
  import type { View } from '@/rendering/View';
4
+ /**
5
+ * Anything {@link AudioListener.target} can be set to. The listener reads
6
+ * its world-space position from the target each frame:
7
+ * - {@link SceneNode}: uses `getGlobalTransform()` translation
8
+ * - {@link View}: uses `view.center`
9
+ * - Plain `{ x, y }` object: read directly
10
+ * - `null`: no automatic tracking — set `position` manually.
11
+ */
4
12
  export type AudioListenerTarget = SceneNode | View | {
5
13
  x: number;
6
14
  y: number;
7
15
  } | null;
16
+ /**
17
+ * Singleton observer position fed to the Web Audio panner nodes used by
18
+ * spatial sounds. Sets the listener orientation once at setup (forward = -Z,
19
+ * up = +Y for 2D scenes) and updates `positionX/Y/Z` (or legacy
20
+ * `setPosition`) every frame from {@link AudioListener.position} —
21
+ * which is in turn read from {@link AudioListener.target} when one is set.
22
+ *
23
+ * Owned by {@link AudioManager}; one instance per engine. `velocity` is a
24
+ * placeholder for future Doppler support (currently not piped to the Web
25
+ * Audio listener).
26
+ */
8
27
  export declare class AudioListener {
9
28
  readonly position: Vector;
10
29
  readonly velocity: Vector;
@@ -1,6 +1,17 @@
1
1
  import { Vector } from '../math/Vector.js';
2
2
  import { isAudioContextReady, getAudioContext, onAudioContextReady } from './audio-context.js';
3
3
 
4
+ /**
5
+ * Singleton observer position fed to the Web Audio panner nodes used by
6
+ * spatial sounds. Sets the listener orientation once at setup (forward = -Z,
7
+ * up = +Y for 2D scenes) and updates `positionX/Y/Z` (or legacy
8
+ * `setPosition`) every frame from {@link AudioListener.position} —
9
+ * which is in turn read from {@link AudioListener.target} when one is set.
10
+ *
11
+ * Owned by {@link AudioManager}; one instance per engine. `velocity` is a
12
+ * placeholder for future Doppler support (currently not piped to the Web
13
+ * Audio listener).
14
+ */
4
15
  class AudioListener {
5
16
  position = new Vector(0, 0);
6
17
  velocity = new Vector(0, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"AudioListener.js","sources":["../../../../src/audio/AudioListener.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioListener.js","sources":["../../../../src/audio/AudioListener.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,20 @@
1
1
  import { AudioBus } from './AudioBus';
2
2
  import { AudioListener } from './AudioListener';
3
3
  import type { Sound } from './Sound';
4
+ /**
5
+ * Module-level singleton that owns the engine-wide audio mix: three
6
+ * pre-configured {@link AudioBus} instances (`master` ← `music` + `sound`),
7
+ * a single shared {@link AudioListener} for spatial audio, and a registry
8
+ * of any extra busses the user constructs.
9
+ *
10
+ * Access the singleton via {@link getAudioManager} (or `app.audio`). The
11
+ * instance is constructed lazily on first access so client code that does
12
+ * not need audio pays no startup cost.
13
+ *
14
+ * Drives the per-frame `_tick()` on the listener and every spatial sound;
15
+ * propagates visibility-driven mute when {@link AudioManager.muteOnHidden}
16
+ * is enabled.
17
+ */
4
18
  export declare class AudioManager {
5
19
  readonly master: AudioBus;
6
20
  readonly music: AudioBus;
@@ -10,6 +24,12 @@ export declare class AudioManager {
10
24
  private readonly _spatialSounds;
11
25
  private _muteOnHidden;
12
26
  constructor();
27
+ /**
28
+ * When `true`, the master bus is muted while `document.hidden` is true.
29
+ * Wired to {@link Application.onVisibilityChange} via
30
+ * {@link AudioManager._applyVisibility}; the application calls that
31
+ * hook automatically — set this flag to opt in to the behavior.
32
+ */
13
33
  get muteOnHidden(): boolean;
14
34
  set muteOnHidden(value: boolean);
15
35
  /** Called once per frame from Application.update(). */
@@ -20,12 +40,29 @@ export declare class AudioManager {
20
40
  _unregisterSpatialSound(sound: Sound): void;
21
41
  /** Internal: called by Application when visibility changes. */
22
42
  _applyVisibility(visible: boolean): void;
43
+ /**
44
+ * Register a user-constructed {@link AudioBus} so it can be looked up by
45
+ * name via {@link AudioManager.getBus}. Throws if a bus with the same
46
+ * name is already registered.
47
+ */
23
48
  registerBus(bus: AudioBus): this;
49
+ /**
50
+ * Unregister and {@link AudioBus.destroy} a previously registered bus.
51
+ * Throws if you attempt to unregister one of the three built-ins
52
+ * (`master`, `music`, `sound`). No-op if the bus is unknown.
53
+ */
24
54
  unregisterBus(bus: AudioBus): this;
55
+ /** Look up a bus by name. Throws if the name is not registered. */
25
56
  getBus(name: string): AudioBus;
57
+ /** `true` when a bus with `name` has been registered. */
26
58
  hasBus(name: string): boolean;
27
59
  destroy(): void;
28
60
  }
61
+ /**
62
+ * Lazy accessor for the singleton {@link AudioManager}. Constructs the
63
+ * instance on first call, returns the same instance for every subsequent
64
+ * call. Equivalent to `app.audio`.
65
+ */
29
66
  export declare function getAudioManager(): AudioManager;
30
67
  /** For tests: reset the singleton so fresh instances can be created. */
31
68
  export declare function _resetAudioManagerForTesting(): void;
@@ -1,6 +1,20 @@
1
1
  import { AudioBus } from './AudioBus.js';
2
2
  import { AudioListener } from './AudioListener.js';
3
3
 
4
+ /**
5
+ * Module-level singleton that owns the engine-wide audio mix: three
6
+ * pre-configured {@link AudioBus} instances (`master` ← `music` + `sound`),
7
+ * a single shared {@link AudioListener} for spatial audio, and a registry
8
+ * of any extra busses the user constructs.
9
+ *
10
+ * Access the singleton via {@link getAudioManager} (or `app.audio`). The
11
+ * instance is constructed lazily on first access so client code that does
12
+ * not need audio pays no startup cost.
13
+ *
14
+ * Drives the per-frame `_tick()` on the listener and every spatial sound;
15
+ * propagates visibility-driven mute when {@link AudioManager.muteOnHidden}
16
+ * is enabled.
17
+ */
4
18
  class AudioManager {
5
19
  master;
6
20
  music;
@@ -19,6 +33,12 @@ class AudioManager {
19
33
  this._registered.set('music', this.music);
20
34
  this._registered.set('sound', this.sound);
21
35
  }
36
+ /**
37
+ * When `true`, the master bus is muted while `document.hidden` is true.
38
+ * Wired to {@link Application.onVisibilityChange} via
39
+ * {@link AudioManager._applyVisibility}; the application calls that
40
+ * hook automatically — set this flag to opt in to the behavior.
41
+ */
22
42
  get muteOnHidden() {
23
43
  return this._muteOnHidden;
24
44
  }
@@ -49,6 +69,11 @@ class AudioManager {
49
69
  this.master.muted = !visible;
50
70
  }
51
71
  }
72
+ /**
73
+ * Register a user-constructed {@link AudioBus} so it can be looked up by
74
+ * name via {@link AudioManager.getBus}. Throws if a bus with the same
75
+ * name is already registered.
76
+ */
52
77
  registerBus(bus) {
53
78
  if (this._registered.has(bus.name)) {
54
79
  throw new Error(`Audio bus "${bus.name}" is already registered.`);
@@ -56,6 +81,11 @@ class AudioManager {
56
81
  this._registered.set(bus.name, bus);
57
82
  return this;
58
83
  }
84
+ /**
85
+ * Unregister and {@link AudioBus.destroy} a previously registered bus.
86
+ * Throws if you attempt to unregister one of the three built-ins
87
+ * (`master`, `music`, `sound`). No-op if the bus is unknown.
88
+ */
59
89
  unregisterBus(bus) {
60
90
  if (bus === this.master || bus === this.music || bus === this.sound) {
61
91
  throw new Error(`Cannot unregister built-in bus "${bus.name}".`);
@@ -69,6 +99,7 @@ class AudioManager {
69
99
  bus.destroy();
70
100
  return this;
71
101
  }
102
+ /** Look up a bus by name. Throws if the name is not registered. */
72
103
  getBus(name) {
73
104
  const bus = this._registered.get(name);
74
105
  if (!bus) {
@@ -76,6 +107,7 @@ class AudioManager {
76
107
  }
77
108
  return bus;
78
109
  }
110
+ /** `true` when a bus with `name` has been registered. */
79
111
  hasBus(name) {
80
112
  return this._registered.has(name);
81
113
  }
@@ -91,6 +123,11 @@ class AudioManager {
91
123
  }
92
124
  // Module-level singleton (lazy)
93
125
  let _manager = null;
126
+ /**
127
+ * Lazy accessor for the singleton {@link AudioManager}. Constructs the
128
+ * instance on first call, returns the same instance for every subsequent
129
+ * call. Equivalent to `app.audio`.
130
+ */
94
131
  function getAudioManager() {
95
132
  if (_manager === null) {
96
133
  _manager = new AudioManager();
@@ -1 +1 @@
1
- {"version":3,"file":"AudioManager.js","sources":["../../../../src/audio/AudioManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioManager.js","sources":["../../../../src/audio/AudioManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -67,6 +67,27 @@ export interface BandEnergy {
67
67
  mid: number;
68
68
  high: number;
69
69
  }
70
+ /**
71
+ * Real-time tempo + beat tracker. Splits work between the audio-rendering
72
+ * thread (an AudioWorklet that runs onset detection, tempogram analysis,
73
+ * and parallel 3/4 and 4/4 posterior estimation) and the main thread (this
74
+ * class — receives beats, fires Signals, handles configuration and source
75
+ * routing).
76
+ *
77
+ * Accepts a wide range of {@link BeatDetectorSource}s — bus, individual
78
+ * sound/music, raw MediaStream, or any AudioNode — and exposes a Signal
79
+ * for each notable event:
80
+ * - {@link BeatDetector.onBeat} — every detected beat
81
+ * - {@link BeatDetector.onDownbeat} — first beat of each bar
82
+ * - {@link BeatDetector.onBarStart} — bar boundary
83
+ * - {@link BeatDetector.onTempoChange} — when the tracked BPM changes
84
+ * - {@link BeatDetector.onBeatPredicted} — look-ahead schedule notice
85
+ *
86
+ * Detection is delayed by `settlingMs` (default 1500 ms) after a new
87
+ * source is attached; this prevents spurious beats during the algorithm's
88
+ * warm-up. Time-signature detection (3/4 vs 4/4) is on by default; lock
89
+ * to 4/4 by setting `enableTimeSignatureDetection: false`.
90
+ */
70
91
  export declare class BeatDetector {
71
92
  readonly onBeat: Signal<[BeatInfo]>;
72
93
  readonly onTempoChange: Signal<[number, number]>;
@@ -653,6 +653,27 @@ registerProcessor('${workletName}', BeatDetectorProcessor);
653
653
  // ---------------------------------------------------------------------------
654
654
  // Main-thread BeatDetector class
655
655
  // ---------------------------------------------------------------------------
656
+ /**
657
+ * Real-time tempo + beat tracker. Splits work between the audio-rendering
658
+ * thread (an AudioWorklet that runs onset detection, tempogram analysis,
659
+ * and parallel 3/4 and 4/4 posterior estimation) and the main thread (this
660
+ * class — receives beats, fires Signals, handles configuration and source
661
+ * routing).
662
+ *
663
+ * Accepts a wide range of {@link BeatDetectorSource}s — bus, individual
664
+ * sound/music, raw MediaStream, or any AudioNode — and exposes a Signal
665
+ * for each notable event:
666
+ * - {@link BeatDetector.onBeat} — every detected beat
667
+ * - {@link BeatDetector.onDownbeat} — first beat of each bar
668
+ * - {@link BeatDetector.onBarStart} — bar boundary
669
+ * - {@link BeatDetector.onTempoChange} — when the tracked BPM changes
670
+ * - {@link BeatDetector.onBeatPredicted} — look-ahead schedule notice
671
+ *
672
+ * Detection is delayed by `settlingMs` (default 1500 ms) after a new
673
+ * source is attached; this prevents spurious beats during the algorithm's
674
+ * warm-up. Time-signature detection (3/4 vs 4/4) is on by default; lock
675
+ * to 4/4 by setting `enableTimeSignatureDetection: false`.
676
+ */
656
677
  class BeatDetector {
657
678
  // ---- Signals ----
658
679
  onBeat = new Signal();
@@ -1 +1 @@
1
- {"version":3,"file":"BeatDetector.js","sources":["../../../../src/audio/BeatDetector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BeatDetector.js","sources":["../../../../src/audio/BeatDetector.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
1
  import type { PlaybackOptions } from '@/core/types';
2
+ /**
3
+ * Common public interface implemented by every playable audio source —
4
+ * {@link Sound}, {@link Music}, {@link OscillatorSound}. Extracted so that
5
+ * code routing audio through generic helpers (fade managers, audio
6
+ * scheduling) can operate against the abstraction rather than the concrete
7
+ * subclass.
8
+ *
9
+ * Mutator methods are dual-API: each `setX(value)` setter has a paired
10
+ * regular property setter, so both `media.volume = 0.5` and
11
+ * `media.setVolume(0.5)` work — pick whichever style fits the call site.
12
+ */
2
13
  export interface Media {
3
14
  readonly duration: number;
4
15
  readonly progress: number;
@@ -1,6 +1,18 @@
1
1
  import type { PlaybackOptions } from '@/core/types';
2
2
  import { AbstractMedia } from '@/audio/AbstractMedia';
3
3
  import type { AudioBus } from '@/audio/AudioBus';
4
+ /**
5
+ * Streaming long-form audio backed by an `HTMLAudioElement`. Decoded
6
+ * lazily via the browser's media pipeline, so memory cost scales with
7
+ * decode-buffer size rather than total duration. Routes through the
8
+ * engine's `music` bus by default (overridable via the inherited
9
+ * `bus` setter).
10
+ *
11
+ * Use {@link Sound} for short, frequently-triggered clips that benefit
12
+ * from pre-decoded `AudioBuffer` storage and pooled overlapping
13
+ * playback. `Music` is the right choice for background tracks, voice
14
+ * lines, or anything else where a single source per track is enough.
15
+ */
4
16
  export declare class Music extends AbstractMedia {
5
17
  private readonly _audioElement;
6
18
  private _audioSetup;
@@ -3,6 +3,18 @@ import { AbstractMedia } from './AbstractMedia.js';
3
3
  import { isAudioContextReady, getAudioContext, onAudioContextReady } from './audio-context.js';
4
4
  import { getAudioManager } from './AudioManager.js';
5
5
 
6
+ /**
7
+ * Streaming long-form audio backed by an `HTMLAudioElement`. Decoded
8
+ * lazily via the browser's media pipeline, so memory cost scales with
9
+ * decode-buffer size rather than total duration. Routes through the
10
+ * engine's `music` bus by default (overridable via the inherited
11
+ * `bus` setter).
12
+ *
13
+ * Use {@link Sound} for short, frequently-triggered clips that benefit
14
+ * from pre-decoded `AudioBuffer` storage and pooled overlapping
15
+ * playback. `Music` is the right choice for background tracks, voice
16
+ * lines, or anything else where a single source per track is enough.
17
+ */
6
18
  class Music extends AbstractMedia {
7
19
  _audioElement;
8
20
  _audioSetup = null;
@@ -1 +1 @@
1
- {"version":3,"file":"Music.js","sources":["../../../../src/audio/Music.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAaM,MAAO,KAAM,SAAQ,aAAa,CAAA;AACnB,IAAA,aAAa;IACtB,WAAW,GAA2B,IAAI;IAElD,WAAA,CAAmB,YAA8B,EAAE,OAAkC,EAAA;QACjF,KAAK,CAAC,YAAY,CAAC;AAEnB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;QAEjC,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC9B;QAEA,IAAI,mBAAmB,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,CAAC;QACjD;aAAO;YACH,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC;QAC9D;IACJ;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;QAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAEjC,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;AACzB,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AAErB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,WAAW;YACnD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;QAC1F;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,OAAO,CAAC,IAAa,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI;QAClC;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,eAAe,CAAC,KAAa,EAAA;QAChC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;AAE1C,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,YAAY,EAAE;AACrC,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY;AACjC,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,YAAY;QAClD;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW;IACzC;AAEO,IAAA,OAAO,CAAC,WAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC;AAEzD,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,QAAQ,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AAEnB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,WAAW;gBACnD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;YAC1F;QACJ;AAEA,QAAA,OAAO,IAAI;IACf;AAEA,IAAA,IAAW,MAAM,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM;IACpC;IAEA,IAAW,MAAM,CAAC,MAAe,EAAA;QAC7B,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,KAAK,EAAE;QAChB;aAAO;YACH,IAAI,CAAC,IAAI,EAAE;QACf;IACJ;AAEA,IAAA,IAAW,cAAc,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,IAAI,IAAI;IAC7C;AAEO,IAAA,IAAI,CAAC,OAAkC,EAAA;QAC1C,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC9B;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC3B;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,KAAK,CAAC,OAAkC,EAAA;QAC3C,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAC9B;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;IAEmB,cAAc,GAAA;QAC7B,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEmB,WAAW,GAAA;AAC1B,QAAA,OAAO,eAAe,EAAE,CAAC,KAAK;IAClC;IAEmB,kBAAkB,GAAA;AACjC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE;QAC1C;IACJ;IAEmB,aAAa,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;YAC1C,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;YAChD;iBAAO;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC;YAChF;QACJ;IACJ;IAEgB,OAAO,GAAA;QACnB,KAAK,CAAC,OAAO,EAAE;AAEf,QAAA,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC;AAExC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE;AACxC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE;AACtC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QAC3B;IACJ;AAEQ,IAAA,qBAAqB,CAAC,YAA0B,EAAA;AACpD,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE;QAC1C,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;QAE3F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QAC1C,IAAI,SAAS,EAAE;AACX,YAAA,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QAC/B;aAAO;AACH,YAAA,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;QAC9C;QAEA,MAAM,UAAU,GAAG,YAAY,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5E,QAAA,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;QAE5B,IAAI,CAAC,WAAW,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC7D;AACH;;;;"}
1
+ {"version":3,"file":"Music.js","sources":["../../../../src/audio/Music.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}