@codexo/exojs 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (822) hide show
  1. package/CHANGELOG.md +265 -6
  2. package/README.md +82 -67
  3. package/dist/esm/animation/Tween.d.ts.map +1 -1
  4. package/dist/esm/animation/Tween.js +1 -2
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +50 -7
  7. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +68 -10
  9. package/dist/esm/animation/TweenManager.js.map +1 -1
  10. package/dist/esm/animation/TweenSequencer.d.ts +139 -0
  11. package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
  12. package/dist/esm/animation/TweenSequencer.js +305 -0
  13. package/dist/esm/animation/TweenSequencer.js.map +1 -0
  14. package/dist/esm/animation/index.d.ts +7 -4
  15. package/dist/esm/animation/index.d.ts.map +1 -1
  16. package/dist/esm/audio/AudioBus.d.ts +12 -12
  17. package/dist/esm/audio/AudioBus.js +29 -29
  18. package/dist/esm/audio/AudioEffect.d.ts +18 -0
  19. package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
  20. package/dist/esm/audio/AudioEffect.js +16 -0
  21. package/dist/esm/audio/AudioEffect.js.map +1 -0
  22. package/dist/esm/audio/AudioGenerator.d.ts +91 -0
  23. package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
  24. package/dist/esm/audio/AudioGenerator.js +165 -0
  25. package/dist/esm/audio/AudioGenerator.js.map +1 -0
  26. package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
  27. package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
  28. package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
  29. package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
  30. package/dist/esm/audio/AudioInput.d.ts +39 -0
  31. package/dist/esm/audio/AudioInput.d.ts.map +1 -0
  32. package/dist/esm/audio/AudioInput.js +53 -0
  33. package/dist/esm/audio/AudioInput.js.map +1 -0
  34. package/dist/esm/audio/AudioManager.d.ts +72 -34
  35. package/dist/esm/audio/AudioManager.d.ts.map +1 -1
  36. package/dist/esm/audio/AudioManager.js +97 -51
  37. package/dist/esm/audio/AudioManager.js.map +1 -1
  38. package/dist/esm/audio/AudioStream.d.ts +49 -0
  39. package/dist/esm/audio/AudioStream.d.ts.map +1 -0
  40. package/dist/esm/audio/AudioStream.js +109 -0
  41. package/dist/esm/audio/AudioStream.js.map +1 -0
  42. package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
  43. package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
  44. package/dist/esm/audio/AudioStreamVoice.js +137 -0
  45. package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
  46. package/dist/esm/audio/BaseVoice.d.ts +111 -0
  47. package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
  48. package/dist/esm/audio/BaseVoice.js +298 -0
  49. package/dist/esm/audio/BaseVoice.js.map +1 -0
  50. package/dist/esm/audio/BiquadEffect.d.ts +53 -0
  51. package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
  52. package/dist/esm/audio/BiquadEffect.js +110 -0
  53. package/dist/esm/audio/BiquadEffect.js.map +1 -0
  54. package/dist/esm/audio/InputVoice.d.ts +41 -0
  55. package/dist/esm/audio/InputVoice.d.ts.map +1 -0
  56. package/dist/esm/audio/InputVoice.js +85 -0
  57. package/dist/esm/audio/InputVoice.js.map +1 -0
  58. package/dist/esm/audio/NoopVoice.d.ts +29 -0
  59. package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
  60. package/dist/esm/audio/NoopVoice.js +52 -0
  61. package/dist/esm/audio/NoopVoice.js.map +1 -0
  62. package/dist/esm/audio/Playable.d.ts +135 -0
  63. package/dist/esm/audio/Playable.d.ts.map +1 -0
  64. package/dist/esm/audio/Sound.d.ts +64 -69
  65. package/dist/esm/audio/Sound.d.ts.map +1 -1
  66. package/dist/esm/audio/Sound.js +176 -377
  67. package/dist/esm/audio/Sound.js.map +1 -1
  68. package/dist/esm/audio/SoundVoice.d.ts +63 -0
  69. package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
  70. package/dist/esm/audio/SoundVoice.js +168 -0
  71. package/dist/esm/audio/SoundVoice.js.map +1 -0
  72. package/dist/esm/audio/WorkletEffect.d.ts +68 -0
  73. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
  74. package/dist/esm/audio/WorkletEffect.js +177 -0
  75. package/dist/esm/audio/WorkletEffect.js.map +1 -0
  76. package/dist/esm/audio/audio-context.js +1 -1
  77. package/dist/esm/audio/audio-context.js.map +1 -1
  78. package/dist/esm/audio/crossFade.d.ts +22 -13
  79. package/dist/esm/audio/crossFade.d.ts.map +1 -1
  80. package/dist/esm/audio/crossFade.js +21 -13
  81. package/dist/esm/audio/crossFade.js.map +1 -1
  82. package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
  83. package/dist/esm/audio/filters/HighpassFilter.js +2 -2
  84. package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
  85. package/dist/esm/audio/filters/LowpassFilter.js +2 -2
  86. package/dist/esm/audio/filters/index.d.ts +0 -10
  87. package/dist/esm/audio/filters/index.d.ts.map +1 -1
  88. package/dist/esm/audio/index.d.ts +13 -15
  89. package/dist/esm/audio/index.d.ts.map +1 -1
  90. package/dist/esm/core/Application.d.ts +169 -14
  91. package/dist/esm/core/Application.d.ts.map +1 -1
  92. package/dist/esm/core/Application.js +306 -31
  93. package/dist/esm/core/Application.js.map +1 -1
  94. package/dist/esm/core/BuildInfo.js +2 -2
  95. package/dist/esm/core/Codec.d.ts +41 -0
  96. package/dist/esm/core/Codec.d.ts.map +1 -0
  97. package/dist/esm/core/Codec.js +79 -0
  98. package/dist/esm/core/Codec.js.map +1 -0
  99. package/dist/esm/core/Color.d.ts +6 -4
  100. package/dist/esm/core/Color.d.ts.map +1 -1
  101. package/dist/esm/core/Color.js +19 -15
  102. package/dist/esm/core/Color.js.map +1 -1
  103. package/dist/esm/core/DisposalScope.d.ts +50 -0
  104. package/dist/esm/core/DisposalScope.d.ts.map +1 -0
  105. package/dist/esm/core/DisposalScope.js +86 -0
  106. package/dist/esm/core/DisposalScope.js.map +1 -0
  107. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  108. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  109. package/dist/esm/core/FixedTimestep.js +62 -0
  110. package/dist/esm/core/FixedTimestep.js.map +1 -0
  111. package/dist/esm/core/Perf.d.ts +10 -22
  112. package/dist/esm/core/Perf.d.ts.map +1 -1
  113. package/dist/esm/core/Perf.js +15 -8
  114. package/dist/esm/core/Perf.js.map +1 -1
  115. package/dist/esm/core/Registry.d.ts +64 -0
  116. package/dist/esm/core/Registry.d.ts.map +1 -0
  117. package/dist/esm/core/Registry.js +79 -0
  118. package/dist/esm/core/Registry.js.map +1 -0
  119. package/dist/esm/core/Scene.d.ts +83 -21
  120. package/dist/esm/core/Scene.d.ts.map +1 -1
  121. package/dist/esm/core/Scene.js +127 -16
  122. package/dist/esm/core/Scene.js.map +1 -1
  123. package/dist/esm/core/SceneManager.d.ts +28 -59
  124. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  125. package/dist/esm/core/SceneManager.js +86 -155
  126. package/dist/esm/core/SceneManager.js.map +1 -1
  127. package/dist/esm/core/SceneNode.d.ts +78 -7
  128. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  129. package/dist/esm/core/SceneNode.js +162 -21
  130. package/dist/esm/core/SceneNode.js.map +1 -1
  131. package/dist/esm/core/Signal.js.map +1 -1
  132. package/dist/esm/core/Stage.d.ts +49 -0
  133. package/dist/esm/core/Stage.d.ts.map +1 -0
  134. package/dist/esm/core/System.d.ts +22 -0
  135. package/dist/esm/core/System.d.ts.map +1 -0
  136. package/dist/esm/core/SystemRegistry.d.ts +40 -0
  137. package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
  138. package/dist/esm/core/SystemRegistry.js +114 -0
  139. package/dist/esm/core/SystemRegistry.js.map +1 -0
  140. package/dist/esm/core/Time.d.ts +15 -0
  141. package/dist/esm/core/Time.d.ts.map +1 -1
  142. package/dist/esm/core/Time.js +25 -0
  143. package/dist/esm/core/Time.js.map +1 -1
  144. package/dist/esm/core/dev.d.ts +9 -4
  145. package/dist/esm/core/dev.d.ts.map +1 -1
  146. package/dist/esm/core/dev.js +5 -0
  147. package/dist/esm/core/dev.js.map +1 -1
  148. package/dist/esm/core/index.d.ts +30 -15
  149. package/dist/esm/core/index.d.ts.map +1 -1
  150. package/dist/esm/core/letterbox.d.ts +25 -0
  151. package/dist/esm/core/letterbox.d.ts.map +1 -0
  152. package/dist/esm/core/letterbox.js +26 -0
  153. package/dist/esm/core/letterbox.js.map +1 -0
  154. package/dist/esm/core/logging.d.ts +34 -0
  155. package/dist/esm/core/logging.d.ts.map +1 -0
  156. package/dist/esm/core/logging.js +59 -0
  157. package/dist/esm/core/logging.js.map +1 -0
  158. package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
  159. package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
  160. package/dist/esm/core/serialization/Prefab.d.ts +49 -0
  161. package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
  162. package/dist/esm/core/serialization/Prefab.js +61 -0
  163. package/dist/esm/core/serialization/Prefab.js.map +1 -0
  164. package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
  165. package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
  166. package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
  167. package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
  168. package/dist/esm/core/serialization/commonFields.d.ts +20 -0
  169. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
  170. package/dist/esm/core/serialization/commonFields.js +155 -0
  171. package/dist/esm/core/serialization/commonFields.js.map +1 -0
  172. package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
  173. package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
  174. package/dist/esm/core/serialization/coreSerializers.js +101 -0
  175. package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
  176. package/dist/esm/core/serialization/index.d.ts +6 -0
  177. package/dist/esm/core/serialization/index.d.ts.map +1 -0
  178. package/dist/esm/core/serialization/read.d.ts +65 -0
  179. package/dist/esm/core/serialization/read.d.ts.map +1 -0
  180. package/dist/esm/core/serialization/read.js +48 -0
  181. package/dist/esm/core/serialization/read.js.map +1 -0
  182. package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
  183. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
  184. package/dist/esm/core/serialization/renderingSerializers.js +320 -0
  185. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
  186. package/dist/esm/core/serialization/serialize.d.ts +56 -0
  187. package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
  188. package/dist/esm/core/serialization/serialize.js +144 -0
  189. package/dist/esm/core/serialization/serialize.js.map +1 -0
  190. package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
  191. package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
  192. package/dist/esm/core/serialization/serializerHelpers.js +161 -0
  193. package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
  194. package/dist/esm/core/serialization/types.d.ts +49 -0
  195. package/dist/esm/core/serialization/types.d.ts.map +1 -0
  196. package/dist/esm/core/serialization/types.js +9 -0
  197. package/dist/esm/core/serialization/types.js.map +1 -0
  198. package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
  199. package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
  200. package/dist/esm/core/serialization/uiSerializers.js +206 -0
  201. package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
  202. package/dist/esm/core/types.d.ts +1 -1
  203. package/dist/esm/core/types.d.ts.map +1 -1
  204. package/dist/esm/core/utils.d.ts +1 -16
  205. package/dist/esm/core/utils.d.ts.map +1 -1
  206. package/dist/esm/core/utils.js +2 -100
  207. package/dist/esm/core/utils.js.map +1 -1
  208. package/dist/esm/debug/PerformanceLayer.js +8 -9
  209. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  210. package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
  211. package/dist/esm/debug/PointerStackLayer.js +9 -6
  212. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  213. package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
  214. package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
  215. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  216. package/dist/esm/extensions/Extension.d.ts +39 -4
  217. package/dist/esm/extensions/Extension.d.ts.map +1 -1
  218. package/dist/esm/extensions/materialize.d.ts +9 -1
  219. package/dist/esm/extensions/materialize.d.ts.map +1 -1
  220. package/dist/esm/extensions/materialize.js +17 -2
  221. package/dist/esm/extensions/materialize.js.map +1 -1
  222. package/dist/esm/extensions/snapshot.d.ts +2 -1
  223. package/dist/esm/extensions/snapshot.d.ts.map +1 -1
  224. package/dist/esm/extensions/snapshot.js +8 -0
  225. package/dist/esm/extensions/snapshot.js.map +1 -1
  226. package/dist/esm/index.d.ts +2 -1
  227. package/dist/esm/index.d.ts.map +1 -1
  228. package/dist/esm/index.js +41 -61
  229. package/dist/esm/index.js.map +1 -1
  230. package/dist/esm/input/FocusManager.d.ts +59 -0
  231. package/dist/esm/input/FocusManager.d.ts.map +1 -0
  232. package/dist/esm/input/FocusManager.js +175 -0
  233. package/dist/esm/input/FocusManager.js.map +1 -0
  234. package/dist/esm/input/Gamepad.d.ts +10 -0
  235. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  236. package/dist/esm/input/Gamepad.js +20 -4
  237. package/dist/esm/input/Gamepad.js.map +1 -1
  238. package/dist/esm/input/GamepadAxis.js +2 -2
  239. package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
  240. package/dist/esm/input/GamepadDefinitions.js +6 -2
  241. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  242. package/dist/esm/input/GestureRecognizer.d.ts +1 -2
  243. package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
  244. package/dist/esm/input/GestureRecognizer.js +1 -3
  245. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  246. package/dist/esm/input/InputBinding.js +3 -3
  247. package/dist/esm/input/InputBinding.js.map +1 -1
  248. package/dist/esm/input/InputManager.d.ts +7 -2
  249. package/dist/esm/input/InputManager.d.ts.map +1 -1
  250. package/dist/esm/input/InputManager.js +40 -21
  251. package/dist/esm/input/InputManager.js.map +1 -1
  252. package/dist/esm/input/InteractionManager.d.ts +67 -2
  253. package/dist/esm/input/InteractionManager.d.ts.map +1 -1
  254. package/dist/esm/input/InteractionManager.js +165 -41
  255. package/dist/esm/input/InteractionManager.js.map +1 -1
  256. package/dist/esm/input/KeyEvent.d.ts +25 -0
  257. package/dist/esm/input/KeyEvent.d.ts.map +1 -0
  258. package/dist/esm/input/KeyEvent.js +32 -0
  259. package/dist/esm/input/KeyEvent.js.map +1 -0
  260. package/dist/esm/input/Pointer.d.ts +21 -4
  261. package/dist/esm/input/Pointer.d.ts.map +1 -1
  262. package/dist/esm/input/Pointer.js +54 -15
  263. package/dist/esm/input/Pointer.js.map +1 -1
  264. package/dist/esm/input/index.d.ts +3 -1
  265. package/dist/esm/input/index.d.ts.map +1 -1
  266. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  267. package/dist/esm/math/AbstractVector.js +7 -2
  268. package/dist/esm/math/AbstractVector.js.map +1 -1
  269. package/dist/esm/math/Circle.d.ts.map +1 -1
  270. package/dist/esm/math/Circle.js +5 -1
  271. package/dist/esm/math/Circle.js.map +1 -1
  272. package/dist/esm/math/Line.d.ts +1 -1
  273. package/dist/esm/math/Line.d.ts.map +1 -1
  274. package/dist/esm/math/Line.js +1 -1
  275. package/dist/esm/math/Line.js.map +1 -1
  276. package/dist/esm/math/Matrix.d.ts.map +1 -1
  277. package/dist/esm/math/Matrix.js +6 -1
  278. package/dist/esm/math/Matrix.js.map +1 -1
  279. package/dist/esm/math/ObservableVector.d.ts +26 -8
  280. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  281. package/dist/esm/math/ObservableVector.js +24 -16
  282. package/dist/esm/math/ObservableVector.js.map +1 -1
  283. package/dist/esm/math/Polygon.d.ts +5 -0
  284. package/dist/esm/math/Polygon.d.ts.map +1 -1
  285. package/dist/esm/math/Polygon.js +27 -3
  286. package/dist/esm/math/Polygon.js.map +1 -1
  287. package/dist/esm/math/Random.d.ts +9 -9
  288. package/dist/esm/math/Random.d.ts.map +1 -1
  289. package/dist/esm/math/Random.js +46 -46
  290. package/dist/esm/math/Random.js.map +1 -1
  291. package/dist/esm/math/Rectangle.d.ts +11 -4
  292. package/dist/esm/math/Rectangle.d.ts.map +1 -1
  293. package/dist/esm/math/Rectangle.js +12 -6
  294. package/dist/esm/math/Rectangle.js.map +1 -1
  295. package/dist/esm/math/Vector.d.ts +1 -1
  296. package/dist/esm/math/Vector.d.ts.map +1 -1
  297. package/dist/esm/math/Vector.js +1 -1
  298. package/dist/esm/math/Vector.js.map +1 -1
  299. package/dist/esm/math/collision-detection.d.ts +42 -0
  300. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  301. package/dist/esm/math/collision-detection.js +54 -4
  302. package/dist/esm/math/collision-detection.js.map +1 -1
  303. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  304. package/dist/esm/math/collision-primitives.js +4 -0
  305. package/dist/esm/math/collision-primitives.js.map +1 -1
  306. package/dist/esm/math/geometry.d.ts +26 -0
  307. package/dist/esm/math/geometry.d.ts.map +1 -1
  308. package/dist/esm/math/geometry.js +89 -2
  309. package/dist/esm/math/geometry.js.map +1 -1
  310. package/dist/esm/math/index.d.ts +7 -5
  311. package/dist/esm/math/index.d.ts.map +1 -1
  312. package/dist/esm/math/swept-collision.d.ts +13 -0
  313. package/dist/esm/math/swept-collision.d.ts.map +1 -1
  314. package/dist/esm/math/swept-collision.js +15 -1
  315. package/dist/esm/math/swept-collision.js.map +1 -1
  316. package/dist/esm/math/triangulate.d.ts.map +1 -1
  317. package/dist/esm/math/triangulate.js +9 -1
  318. package/dist/esm/math/triangulate.js.map +1 -1
  319. package/dist/esm/math/utils.d.ts +20 -0
  320. package/dist/esm/math/utils.d.ts.map +1 -1
  321. package/dist/esm/math/utils.js +18 -15
  322. package/dist/esm/math/utils.js.map +1 -1
  323. package/dist/esm/renderer-sdk.d.ts +2 -0
  324. package/dist/esm/renderer-sdk.d.ts.map +1 -1
  325. package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
  326. package/dist/esm/renderer-sdk.js.map +1 -0
  327. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  328. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  329. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  330. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  331. package/dist/esm/rendering/CallbackRenderPass.js +17 -12
  332. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  333. package/dist/esm/rendering/Container.d.ts +3 -0
  334. package/dist/esm/rendering/Container.d.ts.map +1 -1
  335. package/dist/esm/rendering/Container.js +28 -5
  336. package/dist/esm/rendering/Container.js.map +1 -1
  337. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  338. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  339. package/dist/esm/rendering/Drawable.d.ts +24 -0
  340. package/dist/esm/rendering/Drawable.d.ts.map +1 -1
  341. package/dist/esm/rendering/Drawable.js +54 -0
  342. package/dist/esm/rendering/Drawable.js.map +1 -1
  343. package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
  344. package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
  345. package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
  346. package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
  347. package/dist/esm/rendering/PassContext.d.ts +42 -0
  348. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  349. package/dist/esm/rendering/PassContext.js +48 -0
  350. package/dist/esm/rendering/PassContext.js.map +1 -0
  351. package/dist/esm/rendering/RenderBackend.d.ts +29 -1
  352. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  353. package/dist/esm/rendering/RenderBatch.d.ts +55 -0
  354. package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
  355. package/dist/esm/rendering/RenderBatch.js +107 -0
  356. package/dist/esm/rendering/RenderBatch.js.map +1 -0
  357. package/dist/esm/rendering/RenderNode.d.ts +50 -10
  358. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  359. package/dist/esm/rendering/RenderNode.js +115 -22
  360. package/dist/esm/rendering/RenderNode.js.map +1 -1
  361. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  362. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  363. package/dist/esm/rendering/RenderNodePass.js +2 -2
  364. package/dist/esm/rendering/RenderNodePass.js.map +1 -1
  365. package/dist/esm/rendering/RenderStats.d.ts +39 -0
  366. package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
  367. package/dist/esm/rendering/RenderStats.js +14 -0
  368. package/dist/esm/rendering/RenderStats.js.map +1 -1
  369. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
  370. package/dist/esm/rendering/RendererRegistry.js +20 -23
  371. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  372. package/dist/esm/rendering/RenderingContext.d.ts +132 -17
  373. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  374. package/dist/esm/rendering/RenderingContext.js +228 -28
  375. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  376. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  377. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  378. package/dist/esm/rendering/TransformBuffer.js +60 -0
  379. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  380. package/dist/esm/rendering/View.d.ts +85 -15
  381. package/dist/esm/rendering/View.d.ts.map +1 -1
  382. package/dist/esm/rendering/View.js +81 -27
  383. package/dist/esm/rendering/View.js.map +1 -1
  384. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  385. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +10 -1
  386. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  387. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
  388. package/dist/esm/rendering/geometry/Geometry.js +4 -2
  389. package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
  390. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
  391. package/dist/esm/rendering/gradient/Gradient.js +7 -2
  392. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  393. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
  394. package/dist/esm/rendering/material/MaterialKey.js +2 -0
  395. package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
  396. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  397. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  398. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  399. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  400. package/dist/esm/rendering/material/ShaderSource.js +6 -0
  401. package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
  402. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  403. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  404. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  405. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  406. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
  407. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
  408. package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
  409. package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
  410. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
  411. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
  412. package/dist/esm/rendering/mesh/Mesh.js +40 -13
  413. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  414. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -1
  415. package/dist/esm/rendering/pixelSnap.js +1 -0
  416. package/dist/esm/rendering/pixelSnap.js.map +1 -1
  417. package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
  418. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
  419. package/dist/esm/rendering/plan/RenderCommand.js +23 -21
  420. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  421. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  422. package/dist/esm/rendering/plan/RenderEffectExecutor.js +8 -2
  423. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  424. package/dist/esm/rendering/plan/RenderInstruction.d.ts +12 -39
  425. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  426. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
  427. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  428. package/dist/esm/rendering/plan/RenderPlanBuilder.js +154 -50
  429. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  430. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
  431. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
  432. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
  433. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
  434. package/dist/esm/rendering/plan/RenderPlanPlayer.js +54 -17
  435. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  436. package/dist/esm/rendering/plan/RenderScope.d.ts +23 -10
  437. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  438. package/dist/esm/rendering/primitives/Graphics.d.ts +16 -1
  439. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  440. package/dist/esm/rendering/primitives/Graphics.js +46 -9
  441. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  442. package/dist/esm/rendering/{index.d.ts → public.d.ts} +9 -39
  443. package/dist/esm/rendering/public.d.ts.map +1 -0
  444. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
  445. package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
  446. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  447. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +60 -12
  448. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  449. package/dist/esm/rendering/sprite/AnimatedSprite.js +142 -30
  450. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  451. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -1
  452. package/dist/esm/rendering/sprite/NineSliceSprite.js +10 -11
  453. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -1
  454. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -1
  455. package/dist/esm/rendering/sprite/RepeatingSprite.js +1 -3
  456. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -1
  457. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  458. package/dist/esm/rendering/sprite/Sprite.js +30 -3
  459. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  460. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -1
  461. package/dist/esm/rendering/sprite/nineSlice.js +12 -18
  462. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -1
  463. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -1
  464. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +2 -2
  465. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -1
  466. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  467. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  468. package/dist/esm/rendering/text/BitmapText.js +6 -0
  469. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  470. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
  471. package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
  472. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
  473. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
  474. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
  475. package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
  476. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
  477. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
  478. package/dist/esm/rendering/text/GlyphSdf.js +5 -1
  479. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  480. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  481. package/dist/esm/rendering/text/HTMLText.js +3 -2
  482. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  483. package/dist/esm/rendering/text/Text.d.ts +17 -6
  484. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  485. package/dist/esm/rendering/text/Text.js +9 -12
  486. package/dist/esm/rendering/text/Text.js.map +1 -1
  487. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  488. package/dist/esm/rendering/text/TextLayout.js +4 -18
  489. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  490. package/dist/esm/rendering/texture/DataTexture.js +2 -2
  491. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  492. package/dist/esm/rendering/texture/Texture.d.ts +6 -0
  493. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
  494. package/dist/esm/rendering/texture/Texture.js +8 -0
  495. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  496. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -1
  497. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -1
  498. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -1
  499. package/dist/esm/rendering/texture/repeat.js +2 -2
  500. package/dist/esm/rendering/texture/repeat.js.map +1 -1
  501. package/dist/esm/rendering/types.d.ts +37 -2
  502. package/dist/esm/rendering/types.d.ts.map +1 -1
  503. package/dist/esm/rendering/types.js +37 -2
  504. package/dist/esm/rendering/types.js.map +1 -1
  505. package/dist/esm/rendering/video/Video.d.ts +7 -3
  506. package/dist/esm/rendering/video/Video.d.ts.map +1 -1
  507. package/dist/esm/rendering/video/Video.js +7 -3
  508. package/dist/esm/rendering/video/Video.js.map +1 -1
  509. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
  510. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
  511. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  512. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  513. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  514. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  515. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  516. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +55 -3
  517. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  518. package/dist/esm/rendering/webgl2/WebGl2Backend.js +209 -61
  519. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  520. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
  521. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
  522. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
  523. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
  524. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
  525. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
  526. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  527. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -1
  528. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +2 -1
  529. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -1
  530. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
  531. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
  532. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
  533. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  534. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -1
  535. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +15 -11
  536. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -1
  537. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
  538. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
  539. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  540. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
  541. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  542. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
  543. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
  544. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
  545. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
  546. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +7 -2
  547. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  548. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
  549. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
  550. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
  551. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  552. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +60 -15
  553. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  554. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  555. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  556. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  557. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  558. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  559. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  560. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  561. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  562. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  563. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +45 -2
  564. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  565. package/dist/esm/rendering/webgpu/WebGpuBackend.js +247 -69
  566. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  567. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  568. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -26
  569. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  570. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  571. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  572. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  573. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  574. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +17 -0
  575. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  576. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +105 -25
  577. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  578. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  579. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  580. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +8 -2
  581. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  582. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  583. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  584. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  585. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  586. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  587. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  588. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +23 -10
  589. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  590. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  591. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  592. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +10 -5
  593. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  594. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  595. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  596. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +3 -1
  597. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  598. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  599. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  600. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +22 -9
  601. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  602. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -3
  603. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  604. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +50 -6
  605. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  606. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
  607. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
  608. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
  609. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
  610. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
  611. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
  612. package/dist/esm/resources/Asset.d.ts +1 -1
  613. package/dist/esm/resources/Asset.d.ts.map +1 -1
  614. package/dist/esm/resources/Asset.js +0 -2
  615. package/dist/esm/resources/Asset.js.map +1 -1
  616. package/dist/esm/resources/AssetContainer.d.ts +75 -0
  617. package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
  618. package/dist/esm/resources/AssetContainer.js +100 -0
  619. package/dist/esm/resources/AssetContainer.js.map +1 -0
  620. package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
  621. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
  622. package/dist/esm/resources/Assets.d.ts.map +1 -1
  623. package/dist/esm/resources/Assets.js +0 -1
  624. package/dist/esm/resources/Assets.js.map +1 -1
  625. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
  626. package/dist/esm/resources/FactoryRegistry.js +14 -23
  627. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  628. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
  629. package/dist/esm/resources/IndexedDbDatabase.js +8 -1
  630. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  631. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
  632. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
  633. package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
  634. package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
  635. package/dist/esm/resources/KeyValueStore.d.ts +31 -0
  636. package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
  637. package/dist/esm/resources/Loader.d.ts +55 -2
  638. package/dist/esm/resources/Loader.d.ts.map +1 -1
  639. package/dist/esm/resources/Loader.js +159 -14
  640. package/dist/esm/resources/Loader.js.map +1 -1
  641. package/dist/esm/resources/MemoryStore.d.ts +17 -0
  642. package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
  643. package/dist/esm/resources/MemoryStore.js +30 -0
  644. package/dist/esm/resources/MemoryStore.js.map +1 -0
  645. package/dist/esm/resources/WebStorageStore.d.ts +40 -0
  646. package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
  647. package/dist/esm/resources/WebStorageStore.js +84 -0
  648. package/dist/esm/resources/WebStorageStore.js.map +1 -0
  649. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  650. package/dist/esm/resources/coreAssetBindings.js +16 -5
  651. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  652. package/dist/esm/resources/factories/BmFontFactory.js +4 -4
  653. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
  654. package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
  655. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
  656. package/dist/esm/resources/factories/MusicFactory.js +7 -7
  657. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  658. package/dist/esm/resources/factories/SoundFactory.js +2 -2
  659. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  660. package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
  661. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
  662. package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
  663. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
  664. package/dist/esm/resources/index.d.ts +51 -34
  665. package/dist/esm/resources/index.d.ts.map +1 -1
  666. package/dist/esm/resources/utils.js +4 -4
  667. package/dist/esm/resources/utils.js.map +1 -1
  668. package/dist/esm/ui/Button.d.ts +54 -0
  669. package/dist/esm/ui/Button.d.ts.map +1 -0
  670. package/dist/esm/ui/Button.js +139 -0
  671. package/dist/esm/ui/Button.js.map +1 -0
  672. package/dist/esm/ui/Label.d.ts +17 -0
  673. package/dist/esm/ui/Label.d.ts.map +1 -0
  674. package/dist/esm/ui/Label.js +37 -0
  675. package/dist/esm/ui/Label.js.map +1 -0
  676. package/dist/esm/ui/Panel.d.ts +38 -0
  677. package/dist/esm/ui/Panel.d.ts.map +1 -0
  678. package/dist/esm/ui/Panel.js +61 -0
  679. package/dist/esm/ui/Panel.js.map +1 -0
  680. package/dist/esm/ui/ProgressBar.d.ts +37 -0
  681. package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
  682. package/dist/esm/ui/ProgressBar.js +76 -0
  683. package/dist/esm/ui/ProgressBar.js.map +1 -0
  684. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  685. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  686. package/dist/esm/ui/ScrollContainer.js +99 -0
  687. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  688. package/dist/esm/ui/Stack.d.ts +34 -0
  689. package/dist/esm/ui/Stack.d.ts.map +1 -0
  690. package/dist/esm/ui/Stack.js +69 -0
  691. package/dist/esm/ui/Stack.js.map +1 -0
  692. package/dist/esm/ui/Tooltip.d.ts +67 -0
  693. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  694. package/dist/esm/ui/Tooltip.js +133 -0
  695. package/dist/esm/ui/Tooltip.js.map +1 -0
  696. package/dist/esm/ui/UIRoot.d.ts +31 -0
  697. package/dist/esm/ui/UIRoot.d.ts.map +1 -0
  698. package/dist/esm/ui/UIRoot.js +49 -0
  699. package/dist/esm/ui/UIRoot.js.map +1 -0
  700. package/dist/esm/ui/Widget.d.ts +45 -0
  701. package/dist/esm/ui/Widget.d.ts.map +1 -0
  702. package/dist/esm/ui/Widget.js +113 -0
  703. package/dist/esm/ui/Widget.js.map +1 -0
  704. package/dist/esm/ui/index.d.ts +17 -0
  705. package/dist/esm/ui/index.d.ts.map +1 -0
  706. package/dist/exo.debug.esm.js +1 -948
  707. package/dist/exo.debug.esm.js.map +1 -1
  708. package/dist/exo.esm.js +1 -40945
  709. package/dist/exo.esm.js.map +1 -1
  710. package/dist/exo.iife.js +45202 -0
  711. package/dist/exo.iife.js.map +1 -0
  712. package/dist/exo.iife.min.js +2 -0
  713. package/dist/exo.iife.min.js.map +1 -0
  714. package/package.json +37 -14
  715. package/dist/esm/audio/AbstractMedia.d.ts +0 -75
  716. package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
  717. package/dist/esm/audio/AbstractMedia.js +0 -179
  718. package/dist/esm/audio/AbstractMedia.js.map +0 -1
  719. package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
  720. package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
  721. package/dist/esm/audio/AudioAnalyser.js +0 -473
  722. package/dist/esm/audio/AudioAnalyser.js.map +0 -1
  723. package/dist/esm/audio/AudioFilter.d.ts +0 -17
  724. package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
  725. package/dist/esm/audio/AudioFilter.js +0 -15
  726. package/dist/esm/audio/AudioFilter.js.map +0 -1
  727. package/dist/esm/audio/BeatDetector.d.ts +0 -207
  728. package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
  729. package/dist/esm/audio/BeatDetector.js +0 -424
  730. package/dist/esm/audio/BeatDetector.js.map +0 -1
  731. package/dist/esm/audio/Media.d.ts +0 -37
  732. package/dist/esm/audio/Media.d.ts.map +0 -1
  733. package/dist/esm/audio/Music.d.ts +0 -42
  734. package/dist/esm/audio/Music.d.ts.map +0 -1
  735. package/dist/esm/audio/Music.js +0 -164
  736. package/dist/esm/audio/Music.js.map +0 -1
  737. package/dist/esm/audio/OscillatorSound.d.ts +0 -100
  738. package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
  739. package/dist/esm/audio/OscillatorSound.js +0 -346
  740. package/dist/esm/audio/OscillatorSound.js.map +0 -1
  741. package/dist/esm/audio/dsp/fft.d.ts +0 -23
  742. package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
  743. package/dist/esm/audio/dsp/mel.d.ts +0 -44
  744. package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
  745. package/dist/esm/audio/dsp/mel.js +0 -70
  746. package/dist/esm/audio/dsp/mel.js.map +0 -1
  747. package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
  748. package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
  749. package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
  750. package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
  751. package/dist/esm/audio/filters/ChorusFilter.js +0 -155
  752. package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
  753. package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
  754. package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
  755. package/dist/esm/audio/filters/CompressorFilter.js +0 -123
  756. package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
  757. package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
  758. package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
  759. package/dist/esm/audio/filters/DelayFilter.js +0 -114
  760. package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
  761. package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
  762. package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
  763. package/dist/esm/audio/filters/DuckingFilter.js +0 -172
  764. package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
  765. package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
  766. package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
  767. package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
  768. package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
  769. package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
  770. package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
  771. package/dist/esm/audio/filters/GranularFilter.js +0 -107
  772. package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
  773. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
  774. package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
  775. package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
  776. package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
  777. package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
  778. package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
  779. package/dist/esm/audio/filters/ReverbFilter.js +0 -122
  780. package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
  781. package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
  782. package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
  783. package/dist/esm/audio/filters/VocoderFilter.js +0 -94
  784. package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
  785. package/dist/esm/audio/filters/WorkletFilter.d.ts +0 -54
  786. package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
  787. package/dist/esm/audio/filters/WorkletFilter.js +0 -110
  788. package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
  789. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
  790. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
  791. package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
  792. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
  793. package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
  794. package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
  795. package/dist/esm/audio/worklets/granular.worklet.js +0 -89
  796. package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
  797. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
  798. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
  799. package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
  800. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
  801. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
  802. package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
  803. package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
  804. package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
  805. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
  806. package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
  807. package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
  808. package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
  809. package/dist/esm/rendering/Camera.d.ts +0 -34
  810. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  811. package/dist/esm/rendering/Camera.js +0 -38
  812. package/dist/esm/rendering/Camera.js.map +0 -1
  813. package/dist/esm/rendering/index.d.ts.map +0 -1
  814. package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
  815. package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
  816. package/dist/esm/rendering.d.ts +0 -29
  817. package/dist/esm/rendering.d.ts.map +0 -1
  818. package/dist/esm/rendering.js.map +0 -1
  819. package/dist/esm/resources/JsonStore.d.ts +0 -19
  820. package/dist/esm/resources/JsonStore.d.ts.map +0 -1
  821. package/dist/esm/resources/JsonStore.js +0 -62
  822. package/dist/esm/resources/JsonStore.js.map +0 -1
@@ -0,0 +1,305 @@
1
+ import { TweenState } from './types.js';
2
+
3
+ /**
4
+ * Lifecycle states of a {@link TweenSequencer}. Mirrors {@link TweenState}
5
+ * semantics: starts `Idle`, becomes `Active` on {@link TweenSequencer.start},
6
+ * and ends in `Complete` (all stages exhausted) or `Stopped` (cancelled via
7
+ * {@link TweenSequencer.stop}). `Paused` is reachable from `Active` only.
8
+ */
9
+ var TweenSequencerState;
10
+ (function (TweenSequencerState) {
11
+ TweenSequencerState["Idle"] = "idle";
12
+ TweenSequencerState["Active"] = "active";
13
+ TweenSequencerState["Paused"] = "paused";
14
+ TweenSequencerState["Complete"] = "complete";
15
+ TweenSequencerState["Stopped"] = "stopped";
16
+ })(TweenSequencerState || (TweenSequencerState = {}));
17
+ /**
18
+ * Composes multiple {@link Tween} instances into a multi-stage animation.
19
+ *
20
+ * Each stage added via {@link TweenSequencer.then} plays after the previous
21
+ * one finishes. Within a single stage, multiple tweens run simultaneously
22
+ * (parallel); the stage advances when **all** of them complete.
23
+ *
24
+ * Delay stages inserted via {@link TweenSequencer.wait} create a timed pause
25
+ * between stages without needing a dummy tween.
26
+ *
27
+ * The sequencer integrates with {@link TweenManager} via
28
+ * {@link TweenManager.addTicker} so it is driven automatically each frame.
29
+ * It can also be used stand-alone by calling {@link TweenSequencer.update}
30
+ * manually — in that mode the sequencer also advances its child tweens.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * app.tweens.createSequencer()
35
+ * .then(fadeIn)
36
+ * .wait(0.5)
37
+ * .then([moveLeft, scaleUp])
38
+ * .then(fadeOut)
39
+ * .onComplete(() => console.log('done!'))
40
+ * .start();
41
+ * ```
42
+ * @stable
43
+ */
44
+ class TweenSequencer {
45
+ _stages = [];
46
+ _state = TweenSequencerState.Idle;
47
+ _manager;
48
+ /** Index into `_stages` for the current pass (0-based). */
49
+ _currentStageIndex = 0;
50
+ /** 1 = forward through stages, -1 = reversed (yoyo pass). */
51
+ _direction = 1;
52
+ /** Remaining repeat cycles. -1 = infinite. */
53
+ _repeatCount = 0;
54
+ /** The value configured by {@link TweenSequencer.repeat}. Preserved for restart. */
55
+ _repeatTotal = 0;
56
+ _yoyo = false;
57
+ /** Accumulated seconds within the current delay stage. */
58
+ _delayElapsed = 0;
59
+ _onStartCb = null;
60
+ _onCompleteCb = null;
61
+ _startFired = false;
62
+ constructor(manager) {
63
+ this._manager = manager ?? null;
64
+ }
65
+ // ── State ────────────────────────────────────────────────────────────────
66
+ /** Current lifecycle state of the sequencer. */
67
+ get state() {
68
+ return this._state;
69
+ }
70
+ /**
71
+ * Playback progress in 0..1, advancing in discrete steps as each stage
72
+ * completes. Equals `1` when the entire sequence has finished.
73
+ */
74
+ get progress() {
75
+ const n = this._stages.length;
76
+ if (n === 0)
77
+ return 1;
78
+ return Math.min(this._currentStageIndex / n, 1);
79
+ }
80
+ // ── Builder ──────────────────────────────────────────────────────────────
81
+ /**
82
+ * Append a stage to the sequence.
83
+ *
84
+ * - **Single tween**: the stage plays that tween, then advances.
85
+ * - **Array of tweens**: all start simultaneously; the stage advances when
86
+ * every tween in the array has completed.
87
+ */
88
+ then(tween) {
89
+ const tweens = Array.isArray(tween) ? tween : [tween];
90
+ this._stages.push({ type: 'tweens', tweens });
91
+ return this;
92
+ }
93
+ /** Insert a fixed pause of `seconds` between stages. */
94
+ wait(seconds) {
95
+ this._stages.push({ type: 'delay', seconds });
96
+ return this;
97
+ }
98
+ /**
99
+ * Number of additional repeat cycles. -1 = infinite. Default 0 (plays once).
100
+ *
101
+ * `repeat(2)` plays the full sequence three times total (initial pass + 2
102
+ * repeats).
103
+ */
104
+ repeat(count) {
105
+ this._repeatTotal = count;
106
+ return this;
107
+ }
108
+ /**
109
+ * Reverse stage order on each repeat cycle. Only meaningful when combined
110
+ * with {@link TweenSequencer.repeat}.
111
+ */
112
+ yoyo(enabled = true) {
113
+ this._yoyo = enabled;
114
+ return this;
115
+ }
116
+ /**
117
+ * Register a callback fired once on the first {@link TweenSequencer.update}
118
+ * call after {@link TweenSequencer.start}.
119
+ */
120
+ onStart(cb) {
121
+ this._onStartCb = cb;
122
+ return this;
123
+ }
124
+ /**
125
+ * Register a callback fired when the sequence finishes naturally (all stages
126
+ * and repeat cycles exhausted). Does NOT fire when stopped via
127
+ * {@link TweenSequencer.stop}.
128
+ */
129
+ onComplete(cb) {
130
+ this._onCompleteCb = cb;
131
+ return this;
132
+ }
133
+ // ── Control ──────────────────────────────────────────────────────────────
134
+ /**
135
+ * Start (or restart) the sequence from stage 0. Resets all internal state
136
+ * and re-registers with the manager if one is attached.
137
+ */
138
+ start() {
139
+ this._state = TweenSequencerState.Active;
140
+ this._currentStageIndex = 0;
141
+ this._direction = 1;
142
+ this._repeatCount = this._repeatTotal;
143
+ this._startFired = false;
144
+ this._manager?.addTicker(this);
145
+ this._startCurrentStage();
146
+ return this;
147
+ }
148
+ /**
149
+ * Pause the sequence. Tweens in the current stage are also paused. The
150
+ * elapsed timer in delay stages is frozen.
151
+ */
152
+ pause() {
153
+ if (this._state === TweenSequencerState.Active) {
154
+ this._state = TweenSequencerState.Paused;
155
+ this._pauseCurrentStageTweens();
156
+ }
157
+ return this;
158
+ }
159
+ /** Resume a paused sequence (and its current-stage tweens) from where they left off. */
160
+ resume() {
161
+ if (this._state === TweenSequencerState.Paused) {
162
+ this._state = TweenSequencerState.Active;
163
+ this._resumeCurrentStageTweens();
164
+ }
165
+ return this;
166
+ }
167
+ /**
168
+ * Stop the sequence without finishing. Active tweens are stopped.
169
+ * {@link TweenSequencer.onComplete} does NOT fire. The sequencer is removed
170
+ * from its manager if one is assigned.
171
+ */
172
+ stop() {
173
+ if (this._state === TweenSequencerState.Active || this._state === TweenSequencerState.Paused) {
174
+ this._state = TweenSequencerState.Stopped;
175
+ this._stopCurrentStageTweens();
176
+ this._manager?.removeTicker(this);
177
+ }
178
+ return this;
179
+ }
180
+ // ── Ticker ───────────────────────────────────────────────────────────────
181
+ /**
182
+ * Advance the sequencer by `deltaSeconds`. Called automatically by the
183
+ * attached {@link TweenManager} each frame. When used stand-alone (no
184
+ * manager), call this manually and child tweens will also be advanced.
185
+ */
186
+ update(deltaSeconds) {
187
+ if (this._state !== TweenSequencerState.Active)
188
+ return;
189
+ if (!this._startFired) {
190
+ this._startFired = true;
191
+ this._onStartCb?.();
192
+ }
193
+ if (this._stages.length === 0) {
194
+ this._finish();
195
+ return;
196
+ }
197
+ const stageIndex = this._getActualStageIndex();
198
+ const stage = this._stages[stageIndex];
199
+ if (stage === undefined)
200
+ return;
201
+ if (stage.type === 'delay') {
202
+ this._delayElapsed += deltaSeconds;
203
+ if (this._delayElapsed >= stage.seconds) {
204
+ this._advanceStage();
205
+ }
206
+ }
207
+ else {
208
+ // In stand-alone mode (no manager), the sequencer ticks tweens itself.
209
+ if (this._manager === null) {
210
+ for (const tween of stage.tweens) {
211
+ if (tween.state === TweenState.Active) {
212
+ tween.update(deltaSeconds);
213
+ }
214
+ }
215
+ }
216
+ // Advance as soon as every tween in this stage has settled.
217
+ const allDone = stage.tweens.every(t => t.state === TweenState.Complete || t.state === TweenState.Stopped);
218
+ if (allDone) {
219
+ this._advanceStage();
220
+ }
221
+ }
222
+ }
223
+ // ── Private helpers ──────────────────────────────────────────────────────
224
+ /**
225
+ * Map the logical `_currentStageIndex` to the real index in `_stages`,
226
+ * accounting for yoyo reversal.
227
+ */
228
+ _getActualStageIndex() {
229
+ if (this._direction === 1)
230
+ return this._currentStageIndex;
231
+ return this._stages.length - 1 - this._currentStageIndex;
232
+ }
233
+ _startCurrentStage() {
234
+ const stageIndex = this._getActualStageIndex();
235
+ const stage = this._stages[stageIndex];
236
+ if (stage === undefined)
237
+ return;
238
+ this._delayElapsed = 0;
239
+ if (stage.type === 'tweens') {
240
+ for (const tween of stage.tweens) {
241
+ if (this._manager !== null) {
242
+ // Register with manager so the manager ticks it each frame.
243
+ this._manager.add(tween);
244
+ }
245
+ tween.start();
246
+ }
247
+ }
248
+ // Delay stages need only the elapsed counter reset (done above).
249
+ }
250
+ _advanceStage() {
251
+ this._currentStageIndex++;
252
+ if (this._currentStageIndex >= this._stages.length) {
253
+ // All stages in this pass are done.
254
+ const hasMoreRepeats = this._repeatCount === -1 || this._repeatCount > 0;
255
+ if (hasMoreRepeats) {
256
+ if (this._repeatCount !== -1) {
257
+ this._repeatCount--;
258
+ }
259
+ if (this._yoyo) {
260
+ this._direction = this._direction === 1 ? -1 : 1;
261
+ }
262
+ this._currentStageIndex = 0;
263
+ this._startCurrentStage();
264
+ }
265
+ else {
266
+ this._finish();
267
+ }
268
+ }
269
+ else {
270
+ this._startCurrentStage();
271
+ }
272
+ }
273
+ _finish() {
274
+ this._state = TweenSequencerState.Complete;
275
+ this._manager?.removeTicker(this);
276
+ this._onCompleteCb?.();
277
+ }
278
+ _getCurrentStageTweens() {
279
+ if (this._stages.length === 0)
280
+ return [];
281
+ const stageIndex = this._getActualStageIndex();
282
+ const stage = this._stages[stageIndex];
283
+ if (stage?.type === 'tweens')
284
+ return stage.tweens;
285
+ return [];
286
+ }
287
+ _pauseCurrentStageTweens() {
288
+ for (const tween of this._getCurrentStageTweens()) {
289
+ tween.pause();
290
+ }
291
+ }
292
+ _resumeCurrentStageTweens() {
293
+ for (const tween of this._getCurrentStageTweens()) {
294
+ tween.resume();
295
+ }
296
+ }
297
+ _stopCurrentStageTweens() {
298
+ for (const tween of this._getCurrentStageTweens()) {
299
+ tween.stop();
300
+ }
301
+ }
302
+ }
303
+
304
+ export { TweenSequencer, TweenSequencerState };
305
+ //# sourceMappingURL=TweenSequencer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TweenSequencer.js","sources":["../../../../src/animation/TweenSequencer.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAgBA;;;;;AAKG;IACS;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EANW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;AAQ/B;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;MACU,cAAc,CAAA;IACR,OAAO,GAAY,EAAE;AAC9B,IAAA,MAAM,GAAwB,mBAAmB,CAAC,IAAI;AAC7C,IAAA,QAAQ;;IAGjB,kBAAkB,GAAG,CAAC;;IAGtB,UAAU,GAAW,CAAC;;IAGtB,YAAY,GAAG,CAAC;;IAEhB,YAAY,GAAG,CAAC;IAChB,KAAK,GAAG,KAAK;;IAGb,aAAa,GAAG,CAAC;IAEjB,UAAU,GAAwB,IAAI;IACtC,aAAa,GAAwB,IAAI;IACzC,WAAW,GAAG,KAAK;AAE3B,IAAA,WAAA,CAAmB,OAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,IAAI;IACjC;;;AAKA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;AAGG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;QAC7B,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC;AACrB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD;;AAIA;;;;;;AAMG;AACI,IAAA,IAAI,CAAC,KAAsB,EAAA;AAChC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AACrD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC7C,QAAA,OAAO,IAAI;IACb;;AAGO,IAAA,IAAI,CAAC,OAAe,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC7C,QAAA,OAAO,IAAI;IACb;AAEA;;;;;AAKG;AACI,IAAA,MAAM,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AACpB,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;AACI,IAAA,OAAO,CAAC,EAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACI,IAAA,UAAU,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACvB,QAAA,OAAO,IAAI;IACb;;AAIA;;;AAGG;IACI,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;AACxC,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;AACrC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,KAAK,GAAA;QACV,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,EAAE;AAC9C,YAAA,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;YACxC,IAAI,CAAC,wBAAwB,EAAE;QACjC;AACA,QAAA,OAAO,IAAI;IACb;;IAGO,MAAM,GAAA;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,EAAE;AAC9C,YAAA,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM;YACxC,IAAI,CAAC,yBAAyB,EAAE;QAClC;AACA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,IAAI,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,EAAE;AAC5F,YAAA,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,OAAO;YACzC,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC;QACnC;AACA,QAAA,OAAO,IAAI;IACb;;AAIA;;;;AAIG;AACI,IAAA,MAAM,CAAC,YAAoB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM;YAAE;AAEhD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,YAAA,IAAI,CAAC,UAAU,IAAI;QACrB;QAEA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,OAAO,EAAE;YACd;QACF;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS;YAAE;AAEzB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,IAAI,YAAY;YAClC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,EAAE;gBACvC,IAAI,CAAC,aAAa,EAAE;YACtB;QACF;aAAO;;AAEL,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC1B,gBAAA,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;oBAChC,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,EAAE;AACrC,wBAAA,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC5B;gBACF;YACF;;AAGA,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO,CAAC;YAE1G,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,aAAa,EAAE;YACtB;QACF;IACF;;AAIA;;;AAGG;IACK,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,kBAAkB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB;IAC1D;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS;YAAE;AAEzB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AAEtB,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC3B,YAAA,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AAChC,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;;AAE1B,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1B;gBACA,KAAK,CAAC,KAAK,EAAE;YACf;QACF;;IAEF;IAEQ,aAAa,GAAA;QACnB,IAAI,CAAC,kBAAkB,EAAE;QAEzB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;;AAElD,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC;YAExE,IAAI,cAAc,EAAE;AAClB,gBAAA,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE;oBAC5B,IAAI,CAAC,YAAY,EAAE;gBACrB;AAEA,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;gBAClD;AAEA,gBAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC;gBAC3B,IAAI,CAAC,kBAAkB,EAAE;YAC3B;iBAAO;gBACL,IAAI,CAAC,OAAO,EAAE;YAChB;QACF;aAAO;YACL,IAAI,CAAC,kBAAkB,EAAE;QAC3B;IACF;IAEQ,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,QAAQ;AAC1C,QAAA,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,IAAI;IACxB;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,EAAE;AACxC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACtC,QAAA,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,MAAM;AACjD,QAAA,OAAO,EAAE;IACX;IAEQ,wBAAwB,GAAA;QAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;YACjD,KAAK,CAAC,KAAK,EAAE;QACf;IACF;IAEQ,yBAAyB,GAAA;QAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;YACjD,KAAK,CAAC,MAAM,EAAE;QAChB;IACF;IAEQ,uBAAuB,GAAA;QAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;YACjD,KAAK,CAAC,IAAI,EAAE;QACd;IACF;AACD;;;;"}
@@ -1,5 +1,8 @@
1
- export * from './Easing';
2
- export * from './Tween';
3
- export * from './TweenManager';
4
- export * from './types';
1
+ export type { EasingFunction } from './Easing';
2
+ export { Ease } from './Easing';
3
+ export { Tween } from './Tween';
4
+ export { TweenManager } from './TweenManager';
5
+ export { TweenSequencer, TweenSequencerState } from './TweenSequencer';
6
+ export type { TweenLifecycleCallback, TweenUpdateCallback } from './types';
7
+ export { TweenState } from './types';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/animation/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/animation/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -1,15 +1,15 @@
1
- import type { AudioFilter } from './AudioFilter';
1
+ import type { AudioEffect } from './AudioEffect';
2
2
  /** Construction options for {@link AudioBus}. */
3
3
  export interface AudioBusOptions {
4
4
  parent?: AudioBus | null;
5
5
  volume?: number;
6
6
  muted?: boolean;
7
7
  pan?: number;
8
- filters?: readonly AudioFilter[];
8
+ effects?: readonly AudioEffect[];
9
9
  }
10
10
  /**
11
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
12
+ * owns three Web Audio nodes (input gain, optional effect chain, stereo
13
13
  * pan, output gain) and routes its output into its parent's input — the
14
14
  * root bus connects to the destination.
15
15
  *
@@ -20,8 +20,8 @@ export interface AudioBusOptions {
20
20
  *
21
21
  * Volume is in 0..2 (1 = unity), pan is -1..1, mute is a boolean override.
22
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.
23
+ * over the output gain. Effect changes via {@link AudioBus.addEffect} /
24
+ * {@link AudioBus.removeEffect} rebuild the chain in place.
25
25
  *
26
26
  * Setup is deferred until the global `AudioContext` is unlocked
27
27
  * (browser autoplay policy); operations that need live nodes are no-ops
@@ -33,7 +33,7 @@ export declare class AudioBus {
33
33
  private _volume;
34
34
  private _muted;
35
35
  private _pan;
36
- private readonly _filters;
36
+ private readonly _effects;
37
37
  private _setup;
38
38
  private _scheduledStopId;
39
39
  private readonly _onAudioContextReady;
@@ -47,13 +47,13 @@ export declare class AudioBus {
47
47
  set pan(value: number);
48
48
  get inputNode(): GainNode | null;
49
49
  /**
50
- * Append a filter to the end of the chain (before the pan stage). The
50
+ * Append a effect to the end of the chain (before the pan stage). The
51
51
  * chain is rebuilt in place; existing audio routes through the new
52
- * filter on the next frame.
52
+ * effect on the next frame.
53
53
  */
54
- addFilter(filter: AudioFilter): this;
55
- /** Remove `filter` from the chain. No-op if not present. Caller still owns + must `destroy()` it. */
56
- removeFilter(filter: AudioFilter): this;
54
+ addEffect(effect: AudioEffect): this;
55
+ /** Remove `effect` from the chain. No-op if not present. Caller still owns + must `destroy()` it. */
56
+ removeEffect(effect: AudioEffect): this;
57
57
  /**
58
58
  * Linearly ramp the output gain from 0 to the current volume over
59
59
  * `durationMs`. Cancels any in-flight ramps on the same gain node.
@@ -77,7 +77,7 @@ export declare class AudioBus {
77
77
  private _connectUpstream;
78
78
  /** Subscribe to the moment this bus's audio nodes are ready. Internal use. */
79
79
  onceSetup(callback: () => void): void;
80
- private _rebuildFilterChain;
80
+ private _rebuildEffectChain;
81
81
  private _applyVolume;
82
82
  private _clearScheduledStop;
83
83
  }
@@ -3,7 +3,7 @@ import { onAudioContextReady, isAudioContextReady, getAudioContext } from './aud
3
3
 
4
4
  /**
5
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
6
+ * owns three Web Audio nodes (input gain, optional effect chain, stereo
7
7
  * pan, output gain) and routes its output into its parent's input — the
8
8
  * root bus connects to the destination.
9
9
  *
@@ -14,8 +14,8 @@ import { onAudioContextReady, isAudioContextReady, getAudioContext } from './aud
14
14
  *
15
15
  * Volume is in 0..2 (1 = unity), pan is -1..1, mute is a boolean override.
16
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.
17
+ * over the output gain. Effect changes via {@link AudioBus.addEffect} /
18
+ * {@link AudioBus.removeEffect} rebuild the chain in place.
19
19
  *
20
20
  * Setup is deferred until the global `AudioContext` is unlocked
21
21
  * (browser autoplay policy); operations that need live nodes are no-ops
@@ -27,7 +27,7 @@ class AudioBus {
27
27
  _volume;
28
28
  _muted;
29
29
  _pan;
30
- _filters = [];
30
+ _effects = [];
31
31
  _setup = null;
32
32
  _scheduledStopId = null;
33
33
  _onAudioContextReady = (ctx) => {
@@ -43,8 +43,8 @@ class AudioBus {
43
43
  this._volume = clamp(options.volume ?? 1, 0, 2);
44
44
  this._muted = options.muted ?? false;
45
45
  this._pan = clamp(options.pan ?? 0, -1, 1);
46
- if (options.filters) {
47
- this._filters.push(...options.filters);
46
+ if (options.effects) {
47
+ this._effects.push(...options.effects);
48
48
  }
49
49
  if (isAudioContextReady()) {
50
50
  this._setupAudio(getAudioContext());
@@ -91,21 +91,21 @@ class AudioBus {
91
91
  return this._setup?.inputNode ?? null;
92
92
  }
93
93
  /**
94
- * Append a filter to the end of the chain (before the pan stage). The
94
+ * Append a effect to the end of the chain (before the pan stage). The
95
95
  * chain is rebuilt in place; existing audio routes through the new
96
- * filter on the next frame.
96
+ * effect on the next frame.
97
97
  */
98
- addFilter(filter) {
99
- this._filters.push(filter);
100
- this._rebuildFilterChain();
98
+ addEffect(effect) {
99
+ this._effects.push(effect);
100
+ this._rebuildEffectChain();
101
101
  return this;
102
102
  }
103
- /** Remove `filter` from the chain. No-op if not present. Caller still owns + must `destroy()` it. */
104
- removeFilter(filter) {
105
- const index = this._filters.indexOf(filter);
103
+ /** Remove `effect` from the chain. No-op if not present. Caller still owns + must `destroy()` it. */
104
+ removeEffect(effect) {
105
+ const index = this._effects.indexOf(effect);
106
106
  if (index !== -1) {
107
- this._filters.splice(index, 1);
108
- this._rebuildFilterChain();
107
+ this._effects.splice(index, 1);
108
+ this._rebuildEffectChain();
109
109
  }
110
110
  return this;
111
111
  }
@@ -156,10 +156,10 @@ class AudioBus {
156
156
  destroy() {
157
157
  onAudioContextReady.remove(this._onAudioContextReady);
158
158
  this._clearScheduledStop();
159
- for (const filter of this._filters) {
160
- filter.destroy();
159
+ for (const effect of this._effects) {
160
+ effect.destroy();
161
161
  }
162
- this._filters.length = 0;
162
+ this._effects.length = 0;
163
163
  if (this._setup) {
164
164
  this._setup.inputNode.disconnect();
165
165
  this._setup.outputNode.disconnect();
@@ -179,11 +179,11 @@ class AudioBus {
179
179
  const inputNode = audioContext.createGain();
180
180
  const panNode = audioContext.createStereoPanner();
181
181
  const outputNode = audioContext.createGain();
182
- // Internal chain: input → [filters...] → pan → output
182
+ // Internal chain: input → [effects...] → pan → output
183
183
  outputNode.gain.setTargetAtTime(this._muted ? 0 : this._volume, audioContext.currentTime, 0.01);
184
184
  panNode.pan.setTargetAtTime(this._pan, audioContext.currentTime, 0.01);
185
185
  this._setup = { audioContext, inputNode, outputNode, panNode };
186
- this._rebuildFilterChain();
186
+ this._rebuildEffectChain();
187
187
  this._connectUpstream();
188
188
  }
189
189
  _connectUpstream() {
@@ -221,22 +221,22 @@ class AudioBus {
221
221
  });
222
222
  }
223
223
  }
224
- _rebuildFilterChain() {
224
+ _rebuildEffectChain() {
225
225
  if (!this._setup)
226
226
  return;
227
227
  const { inputNode, panNode } = this._setup;
228
228
  // Disconnect current chain
229
229
  inputNode.disconnect();
230
- for (const filter of this._filters) {
231
- filter.inputNode.disconnect();
232
- filter.outputNode.disconnect();
230
+ for (const effect of this._effects) {
231
+ effect.inputNode.disconnect();
232
+ effect.outputNode.disconnect();
233
233
  }
234
234
  panNode.disconnect();
235
- // Rebuild: input → filter[0].input → filter[0].output → filter[1].input → ... → pan → output
235
+ // Rebuild: input → effect[0].input → effect[0].output → effect[1].input → ... → pan → output
236
236
  let prev = inputNode;
237
- for (const filter of this._filters) {
238
- prev.connect(filter.inputNode);
239
- prev = filter.outputNode;
237
+ for (const effect of this._effects) {
238
+ prev.connect(effect.inputNode);
239
+ prev = effect.outputNode;
240
240
  }
241
241
  prev.connect(panNode);
242
242
  panNode.connect(this._setup.outputNode);
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Abstract base for all insertable audio effects in ExoJS. Each effect exposes
3
+ * stable {@link inputNode} and {@link outputNode} AudioNodes that an
4
+ * {@link AudioBus} or {@link Voice} connects into the Web Audio graph. Async
5
+ * effects (e.g., worklet-based) expose a {@link ready} promise that resolves
6
+ * once the effect is fully initialized.
7
+ */
8
+ export declare abstract class AudioEffect {
9
+ /** The node where audio enters this effect. */
10
+ abstract get inputNode(): AudioNode;
11
+ /** The node where audio exits this effect. */
12
+ abstract get outputNode(): AudioNode;
13
+ /** Resolves when the effect is fully initialized. Defaults to immediately-resolved for sync effects. */
14
+ get ready(): Promise<void>;
15
+ /** Disconnects all audio nodes and releases resources. Must be called when the effect is no longer needed. */
16
+ abstract destroy(): void;
17
+ }
18
+ //# sourceMappingURL=AudioEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioEffect.d.ts","sourceRoot":"","sources":["../../../src/audio/AudioEffect.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,8BAAsB,WAAW;IAC/B,+CAA+C;IAC/C,aAAoB,SAAS,IAAI,SAAS,CAAC;IAC3C,8CAA8C;IAC9C,aAAoB,UAAU,IAAI,SAAS,CAAC;IAC5C,wGAAwG;IACxG,IAAW,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhC;IACD,8GAA8G;aAC9F,OAAO,IAAI,IAAI;CAChC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Abstract base for all insertable audio effects in ExoJS. Each effect exposes
3
+ * stable {@link inputNode} and {@link outputNode} AudioNodes that an
4
+ * {@link AudioBus} or {@link Voice} connects into the Web Audio graph. Async
5
+ * effects (e.g., worklet-based) expose a {@link ready} promise that resolves
6
+ * once the effect is fully initialized.
7
+ */
8
+ class AudioEffect {
9
+ /** Resolves when the effect is fully initialized. Defaults to immediately-resolved for sync effects. */
10
+ get ready() {
11
+ return Promise.resolve();
12
+ }
13
+ }
14
+
15
+ export { AudioEffect };
16
+ //# sourceMappingURL=AudioEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioEffect.js","sources":["../../../../src/audio/AudioEffect.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;AAMG;MACmB,WAAW,CAAA;;AAM/B,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;IAC1B;AAGD;;;;"}
@@ -0,0 +1,91 @@
1
+ import type { AudioManager } from './AudioManager';
2
+ import type { Envelope } from './Envelope';
3
+ import type { Playable, PlayOptions, Voice } from './Playable';
4
+ import { SoundPoolStrategy } from './Sound';
5
+ export type OscillatorType = 'sine' | 'square' | 'sawtooth' | 'triangle';
6
+ /** Construction options for {@link AudioGenerator}. */
7
+ export interface AudioGeneratorOptions {
8
+ /** Oscillator frequency in Hz. Default 440 (A4). */
9
+ frequency?: number;
10
+ /** Oscillator waveform. Default `'sine'`. */
11
+ type?: OscillatorType;
12
+ /** Pitch detune in cents. Default 0. */
13
+ detune?: number;
14
+ /** Optional ADSR envelope. Default `null` (no envelope). */
15
+ envelope?: Envelope | null;
16
+ /** Default volume applied to new voices. Range [0, 1]. Default 1. */
17
+ volume?: number;
18
+ /** Default muted flag (starts a voice at volume 0). Default false. */
19
+ muted?: boolean;
20
+ /** Maximum concurrent voices. Default 8. */
21
+ poolSize?: number;
22
+ /** Eviction strategy when the pool is full. Default `FirstInFirstOut`. */
23
+ poolStrategy?: SoundPoolStrategy;
24
+ /** Priority for the `LowestPriority` strategy. Default 0. */
25
+ priority?: number;
26
+ }
27
+ /**
28
+ * Procedural tone generator — produces audio from an `OscillatorNode` without
29
+ * any decoded asset. Good for prototyping, game-jam SFX, retro bleeps, and
30
+ * synth-style tones.
31
+ *
32
+ * `AudioGenerator` is a **data descriptor**: it holds the current synth settings
33
+ * (`frequency`, `type`, `detune`, `envelope`) and default playback parameters.
34
+ * Each `AudioManager.play(generator, options)` snapshots those settings into a
35
+ * fresh {@link AudioGeneratorVoice} and returns it. For per-note playback, set
36
+ * `generator.frequency` (or use {@link AudioGenerator.setNote}) before playing:
37
+ *
38
+ * ```ts
39
+ * generator.setNote(69); // A4
40
+ * const voice = app.audio.play(generator);
41
+ * // ...later
42
+ * voice.frequency = 880; // retune the live voice
43
+ * voice.stop(); // triggers the envelope release, if any
44
+ * ```
45
+ *
46
+ * Routes through the manager's `sound` bus by default.
47
+ */
48
+ export declare class AudioGenerator implements Playable {
49
+ /** Current oscillator frequency in Hz. Snapshotted into each new voice. */
50
+ frequency: number;
51
+ /** Current oscillator waveform. */
52
+ type: OscillatorType;
53
+ /** Current pitch detune in cents. */
54
+ detune: number;
55
+ /** Optional ADSR envelope applied to each voice. */
56
+ envelope: Envelope | null;
57
+ /** Default volume for new voices. Range [0, 1]. */
58
+ volume: number;
59
+ /** Default muted flag (starts a voice at volume 0). */
60
+ muted: boolean;
61
+ private _poolSize;
62
+ private _poolStrategy;
63
+ /** Priority for the `LowestPriority` eviction strategy. */
64
+ priority: number;
65
+ private readonly _activeVoices;
66
+ get poolSize(): number;
67
+ set poolSize(value: number);
68
+ get poolStrategy(): SoundPoolStrategy;
69
+ set poolStrategy(value: SoundPoolStrategy);
70
+ constructor(options?: AudioGeneratorOptions);
71
+ /** Set {@link AudioGenerator.frequency} from a MIDI note number (69 = A4 = 440 Hz). */
72
+ setNote(midiNote: number): this;
73
+ /** Frequency in Hz for a MIDI note number, without mutating the generator. */
74
+ static midiToFrequency(midiNote: number): number;
75
+ /**
76
+ * Implements {@link Playable}. Called by {@link AudioManager.play}.
77
+ *
78
+ * Snapshots the current synth settings into a new {@link AudioGeneratorVoice}.
79
+ * Returns an already-ended {@link NoopVoice} when the `AudioContext` is still
80
+ * locked by the autoplay policy — oscillators are ephemeral and cannot be
81
+ * deferred.
82
+ */
83
+ _createVoice(manager: AudioManager, options: PlayOptions): Voice;
84
+ /** Stop every currently active voice from this generator. */
85
+ stopAll(): this;
86
+ /** Stop all active voices. */
87
+ destroy(): void;
88
+ private _pruneEndedVoices;
89
+ private _pickEvictionVictim;
90
+ }
91
+ //# sourceMappingURL=AudioGenerator.d.ts.map