@codexo/exojs 0.12.0 → 0.14.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 (759) hide show
  1. package/CHANGELOG.md +258 -6
  2. package/README.md +80 -63
  3. package/dist/esm/animation/Tween.js +1 -1
  4. package/dist/esm/animation/Tween.js.map +1 -1
  5. package/dist/esm/animation/TweenManager.d.ts +9 -5
  6. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  7. package/dist/esm/animation/TweenManager.js +14 -8
  8. package/dist/esm/animation/TweenManager.js.map +1 -1
  9. package/dist/esm/animation/index.d.ts +6 -4
  10. package/dist/esm/animation/index.d.ts.map +1 -1
  11. package/dist/esm/audio/AudioBus.d.ts +12 -12
  12. package/dist/esm/audio/AudioBus.js +29 -29
  13. package/dist/esm/audio/AudioEffect.d.ts +18 -0
  14. package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
  15. package/dist/esm/audio/AudioEffect.js +16 -0
  16. package/dist/esm/audio/AudioEffect.js.map +1 -0
  17. package/dist/esm/audio/AudioGenerator.d.ts +91 -0
  18. package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
  19. package/dist/esm/audio/AudioGenerator.js +165 -0
  20. package/dist/esm/audio/AudioGenerator.js.map +1 -0
  21. package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
  22. package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
  23. package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
  24. package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
  25. package/dist/esm/audio/AudioInput.d.ts +39 -0
  26. package/dist/esm/audio/AudioInput.d.ts.map +1 -0
  27. package/dist/esm/audio/AudioInput.js +53 -0
  28. package/dist/esm/audio/AudioInput.js.map +1 -0
  29. package/dist/esm/audio/AudioManager.d.ts +72 -34
  30. package/dist/esm/audio/AudioManager.d.ts.map +1 -1
  31. package/dist/esm/audio/AudioManager.js +97 -51
  32. package/dist/esm/audio/AudioManager.js.map +1 -1
  33. package/dist/esm/audio/AudioStream.d.ts +49 -0
  34. package/dist/esm/audio/AudioStream.d.ts.map +1 -0
  35. package/dist/esm/audio/AudioStream.js +109 -0
  36. package/dist/esm/audio/AudioStream.js.map +1 -0
  37. package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
  38. package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
  39. package/dist/esm/audio/AudioStreamVoice.js +137 -0
  40. package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
  41. package/dist/esm/audio/BaseVoice.d.ts +111 -0
  42. package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
  43. package/dist/esm/audio/BaseVoice.js +298 -0
  44. package/dist/esm/audio/BaseVoice.js.map +1 -0
  45. package/dist/esm/audio/BiquadEffect.d.ts +53 -0
  46. package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
  47. package/dist/esm/audio/BiquadEffect.js +110 -0
  48. package/dist/esm/audio/BiquadEffect.js.map +1 -0
  49. package/dist/esm/audio/InputVoice.d.ts +41 -0
  50. package/dist/esm/audio/InputVoice.d.ts.map +1 -0
  51. package/dist/esm/audio/InputVoice.js +85 -0
  52. package/dist/esm/audio/InputVoice.js.map +1 -0
  53. package/dist/esm/audio/NoopVoice.d.ts +29 -0
  54. package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
  55. package/dist/esm/audio/NoopVoice.js +52 -0
  56. package/dist/esm/audio/NoopVoice.js.map +1 -0
  57. package/dist/esm/audio/Playable.d.ts +135 -0
  58. package/dist/esm/audio/Playable.d.ts.map +1 -0
  59. package/dist/esm/audio/Sound.d.ts +64 -69
  60. package/dist/esm/audio/Sound.d.ts.map +1 -1
  61. package/dist/esm/audio/Sound.js +176 -377
  62. package/dist/esm/audio/Sound.js.map +1 -1
  63. package/dist/esm/audio/SoundVoice.d.ts +63 -0
  64. package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
  65. package/dist/esm/audio/SoundVoice.js +168 -0
  66. package/dist/esm/audio/SoundVoice.js.map +1 -0
  67. package/dist/esm/audio/{filters/WorkletFilter.d.ts → WorkletEffect.d.ts} +3 -3
  68. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
  69. package/dist/esm/audio/{filters/WorkletFilter.js → WorkletEffect.js} +6 -6
  70. package/dist/esm/audio/WorkletEffect.js.map +1 -0
  71. package/dist/esm/audio/audio-context.js +1 -1
  72. package/dist/esm/audio/audio-context.js.map +1 -1
  73. package/dist/esm/audio/crossFade.d.ts +22 -13
  74. package/dist/esm/audio/crossFade.d.ts.map +1 -1
  75. package/dist/esm/audio/crossFade.js +21 -13
  76. package/dist/esm/audio/crossFade.js.map +1 -1
  77. package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
  78. package/dist/esm/audio/filters/HighpassFilter.js +2 -2
  79. package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
  80. package/dist/esm/audio/filters/LowpassFilter.js +2 -2
  81. package/dist/esm/audio/filters/index.d.ts +0 -10
  82. package/dist/esm/audio/filters/index.d.ts.map +1 -1
  83. package/dist/esm/audio/index.d.ts +13 -15
  84. package/dist/esm/audio/index.d.ts.map +1 -1
  85. package/dist/esm/core/Application.d.ts +127 -10
  86. package/dist/esm/core/Application.d.ts.map +1 -1
  87. package/dist/esm/core/Application.js +226 -25
  88. package/dist/esm/core/Application.js.map +1 -1
  89. package/dist/esm/core/BuildInfo.js +2 -2
  90. package/dist/esm/core/Color.d.ts +6 -4
  91. package/dist/esm/core/Color.d.ts.map +1 -1
  92. package/dist/esm/core/Color.js +19 -15
  93. package/dist/esm/core/Color.js.map +1 -1
  94. package/dist/esm/core/DisposalScope.d.ts +50 -0
  95. package/dist/esm/core/DisposalScope.d.ts.map +1 -0
  96. package/dist/esm/core/DisposalScope.js +86 -0
  97. package/dist/esm/core/DisposalScope.js.map +1 -0
  98. package/dist/esm/core/Perf.d.ts +10 -22
  99. package/dist/esm/core/Perf.d.ts.map +1 -1
  100. package/dist/esm/core/Perf.js +15 -8
  101. package/dist/esm/core/Perf.js.map +1 -1
  102. package/dist/esm/core/Registry.d.ts +64 -0
  103. package/dist/esm/core/Registry.d.ts.map +1 -0
  104. package/dist/esm/core/Registry.js +79 -0
  105. package/dist/esm/core/Registry.js.map +1 -0
  106. package/dist/esm/core/Scene.d.ts +69 -21
  107. package/dist/esm/core/Scene.d.ts.map +1 -1
  108. package/dist/esm/core/Scene.js +109 -16
  109. package/dist/esm/core/Scene.js.map +1 -1
  110. package/dist/esm/core/SceneManager.d.ts +22 -60
  111. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  112. package/dist/esm/core/SceneManager.js +68 -153
  113. package/dist/esm/core/SceneManager.js.map +1 -1
  114. package/dist/esm/core/SceneNode.d.ts +43 -2
  115. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  116. package/dist/esm/core/SceneNode.js +101 -12
  117. package/dist/esm/core/SceneNode.js.map +1 -1
  118. package/dist/esm/core/Signal.js.map +1 -1
  119. package/dist/esm/core/Stage.d.ts +42 -0
  120. package/dist/esm/core/Stage.d.ts.map +1 -0
  121. package/dist/esm/core/System.d.ts +22 -0
  122. package/dist/esm/core/System.d.ts.map +1 -0
  123. package/dist/esm/core/SystemRegistry.d.ts +35 -0
  124. package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
  125. package/dist/esm/core/SystemRegistry.js +104 -0
  126. package/dist/esm/core/SystemRegistry.js.map +1 -0
  127. package/dist/esm/core/Time.d.ts +15 -0
  128. package/dist/esm/core/Time.d.ts.map +1 -1
  129. package/dist/esm/core/Time.js +25 -0
  130. package/dist/esm/core/Time.js.map +1 -1
  131. package/dist/esm/core/dev.d.ts +9 -4
  132. package/dist/esm/core/dev.d.ts.map +1 -1
  133. package/dist/esm/core/dev.js +5 -0
  134. package/dist/esm/core/dev.js.map +1 -1
  135. package/dist/esm/core/index.d.ts +26 -15
  136. package/dist/esm/core/index.d.ts.map +1 -1
  137. package/dist/esm/core/letterbox.d.ts +25 -0
  138. package/dist/esm/core/letterbox.d.ts.map +1 -0
  139. package/dist/esm/core/letterbox.js +26 -0
  140. package/dist/esm/core/letterbox.js.map +1 -0
  141. package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
  142. package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
  143. package/dist/esm/core/serialization/Prefab.d.ts +49 -0
  144. package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
  145. package/dist/esm/core/serialization/Prefab.js +61 -0
  146. package/dist/esm/core/serialization/Prefab.js.map +1 -0
  147. package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
  148. package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
  149. package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
  150. package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
  151. package/dist/esm/core/serialization/commonFields.d.ts +20 -0
  152. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
  153. package/dist/esm/core/serialization/commonFields.js +149 -0
  154. package/dist/esm/core/serialization/commonFields.js.map +1 -0
  155. package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
  156. package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
  157. package/dist/esm/core/serialization/coreSerializers.js +101 -0
  158. package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
  159. package/dist/esm/core/serialization/index.d.ts +6 -0
  160. package/dist/esm/core/serialization/index.d.ts.map +1 -0
  161. package/dist/esm/core/serialization/read.d.ts +65 -0
  162. package/dist/esm/core/serialization/read.d.ts.map +1 -0
  163. package/dist/esm/core/serialization/read.js +48 -0
  164. package/dist/esm/core/serialization/read.js.map +1 -0
  165. package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
  166. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
  167. package/dist/esm/core/serialization/renderingSerializers.js +311 -0
  168. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
  169. package/dist/esm/core/serialization/serialize.d.ts +56 -0
  170. package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
  171. package/dist/esm/core/serialization/serialize.js +144 -0
  172. package/dist/esm/core/serialization/serialize.js.map +1 -0
  173. package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
  174. package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
  175. package/dist/esm/core/serialization/serializerHelpers.js +161 -0
  176. package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
  177. package/dist/esm/core/serialization/types.d.ts +49 -0
  178. package/dist/esm/core/serialization/types.d.ts.map +1 -0
  179. package/dist/esm/core/serialization/types.js +9 -0
  180. package/dist/esm/core/serialization/types.js.map +1 -0
  181. package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
  182. package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
  183. package/dist/esm/core/serialization/uiSerializers.js +206 -0
  184. package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
  185. package/dist/esm/core/types.d.ts +1 -1
  186. package/dist/esm/core/types.d.ts.map +1 -1
  187. package/dist/esm/core/utils.d.ts +1 -16
  188. package/dist/esm/core/utils.d.ts.map +1 -1
  189. package/dist/esm/core/utils.js +2 -100
  190. package/dist/esm/core/utils.js.map +1 -1
  191. package/dist/esm/debug/PerformanceLayer.js +8 -9
  192. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  193. package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
  194. package/dist/esm/debug/PointerStackLayer.js +9 -6
  195. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  196. package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
  197. package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
  198. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  199. package/dist/esm/extensions/Extension.d.ts +78 -11
  200. package/dist/esm/extensions/Extension.d.ts.map +1 -1
  201. package/dist/esm/extensions/ExtensionRegistry.d.ts.map +1 -1
  202. package/dist/esm/extensions/ExtensionRegistry.js.map +1 -1
  203. package/dist/esm/extensions/materialize.d.ts +9 -1
  204. package/dist/esm/extensions/materialize.d.ts.map +1 -1
  205. package/dist/esm/extensions/materialize.js +17 -2
  206. package/dist/esm/extensions/materialize.js.map +1 -1
  207. package/dist/esm/extensions/snapshot.d.ts +14 -3
  208. package/dist/esm/extensions/snapshot.d.ts.map +1 -1
  209. package/dist/esm/extensions/snapshot.js +51 -14
  210. package/dist/esm/extensions/snapshot.js.map +1 -1
  211. package/dist/esm/index.d.ts +2 -1
  212. package/dist/esm/index.d.ts.map +1 -1
  213. package/dist/esm/index.js +37 -54
  214. package/dist/esm/index.js.map +1 -1
  215. package/dist/esm/input/FocusManager.d.ts +59 -0
  216. package/dist/esm/input/FocusManager.d.ts.map +1 -0
  217. package/dist/esm/input/FocusManager.js +175 -0
  218. package/dist/esm/input/FocusManager.js.map +1 -0
  219. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  220. package/dist/esm/input/Gamepad.js +8 -4
  221. package/dist/esm/input/Gamepad.js.map +1 -1
  222. package/dist/esm/input/GamepadAxis.js +2 -2
  223. package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
  224. package/dist/esm/input/GamepadDefinitions.js +6 -2
  225. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  226. package/dist/esm/input/GestureRecognizer.d.ts +1 -2
  227. package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
  228. package/dist/esm/input/GestureRecognizer.js +1 -3
  229. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  230. package/dist/esm/input/InputBinding.js +3 -3
  231. package/dist/esm/input/InputBinding.js.map +1 -1
  232. package/dist/esm/input/InputManager.d.ts +7 -2
  233. package/dist/esm/input/InputManager.d.ts.map +1 -1
  234. package/dist/esm/input/InputManager.js +35 -21
  235. package/dist/esm/input/InputManager.js.map +1 -1
  236. package/dist/esm/input/InteractionManager.d.ts +67 -2
  237. package/dist/esm/input/InteractionManager.d.ts.map +1 -1
  238. package/dist/esm/input/InteractionManager.js +165 -41
  239. package/dist/esm/input/InteractionManager.js.map +1 -1
  240. package/dist/esm/input/KeyEvent.d.ts +25 -0
  241. package/dist/esm/input/KeyEvent.d.ts.map +1 -0
  242. package/dist/esm/input/KeyEvent.js +32 -0
  243. package/dist/esm/input/KeyEvent.js.map +1 -0
  244. package/dist/esm/input/Pointer.d.ts +21 -4
  245. package/dist/esm/input/Pointer.d.ts.map +1 -1
  246. package/dist/esm/input/Pointer.js +54 -15
  247. package/dist/esm/input/Pointer.js.map +1 -1
  248. package/dist/esm/input/index.d.ts +3 -1
  249. package/dist/esm/input/index.d.ts.map +1 -1
  250. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  251. package/dist/esm/math/AbstractVector.js +7 -2
  252. package/dist/esm/math/AbstractVector.js.map +1 -1
  253. package/dist/esm/math/Circle.d.ts.map +1 -1
  254. package/dist/esm/math/Circle.js +5 -1
  255. package/dist/esm/math/Circle.js.map +1 -1
  256. package/dist/esm/math/Line.d.ts +1 -1
  257. package/dist/esm/math/Line.d.ts.map +1 -1
  258. package/dist/esm/math/Line.js +1 -1
  259. package/dist/esm/math/Line.js.map +1 -1
  260. package/dist/esm/math/Matrix.d.ts.map +1 -1
  261. package/dist/esm/math/Matrix.js +6 -1
  262. package/dist/esm/math/Matrix.js.map +1 -1
  263. package/dist/esm/math/ObservableVector.d.ts +26 -8
  264. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  265. package/dist/esm/math/ObservableVector.js +24 -16
  266. package/dist/esm/math/ObservableVector.js.map +1 -1
  267. package/dist/esm/math/Polygon.d.ts +5 -0
  268. package/dist/esm/math/Polygon.d.ts.map +1 -1
  269. package/dist/esm/math/Polygon.js +27 -3
  270. package/dist/esm/math/Polygon.js.map +1 -1
  271. package/dist/esm/math/Random.d.ts +9 -9
  272. package/dist/esm/math/Random.d.ts.map +1 -1
  273. package/dist/esm/math/Random.js +46 -46
  274. package/dist/esm/math/Random.js.map +1 -1
  275. package/dist/esm/math/Rectangle.d.ts +11 -4
  276. package/dist/esm/math/Rectangle.d.ts.map +1 -1
  277. package/dist/esm/math/Rectangle.js +12 -6
  278. package/dist/esm/math/Rectangle.js.map +1 -1
  279. package/dist/esm/math/Vector.d.ts +1 -1
  280. package/dist/esm/math/Vector.d.ts.map +1 -1
  281. package/dist/esm/math/Vector.js +1 -1
  282. package/dist/esm/math/Vector.js.map +1 -1
  283. package/dist/esm/math/collision-detection.d.ts +42 -0
  284. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  285. package/dist/esm/math/collision-detection.js +54 -4
  286. package/dist/esm/math/collision-detection.js.map +1 -1
  287. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  288. package/dist/esm/math/collision-primitives.js +4 -0
  289. package/dist/esm/math/collision-primitives.js.map +1 -1
  290. package/dist/esm/math/geometry.d.ts +26 -0
  291. package/dist/esm/math/geometry.d.ts.map +1 -1
  292. package/dist/esm/math/geometry.js +89 -2
  293. package/dist/esm/math/geometry.js.map +1 -1
  294. package/dist/esm/math/index.d.ts +7 -5
  295. package/dist/esm/math/index.d.ts.map +1 -1
  296. package/dist/esm/math/swept-collision.d.ts +13 -0
  297. package/dist/esm/math/swept-collision.d.ts.map +1 -1
  298. package/dist/esm/math/swept-collision.js +15 -1
  299. package/dist/esm/math/swept-collision.js.map +1 -1
  300. package/dist/esm/math/triangulate.d.ts.map +1 -1
  301. package/dist/esm/math/triangulate.js +9 -1
  302. package/dist/esm/math/triangulate.js.map +1 -1
  303. package/dist/esm/math/utils.d.ts +20 -0
  304. package/dist/esm/math/utils.d.ts.map +1 -1
  305. package/dist/esm/math/utils.js +18 -15
  306. package/dist/esm/math/utils.js.map +1 -1
  307. package/dist/esm/renderer-sdk.d.ts +2 -0
  308. package/dist/esm/renderer-sdk.d.ts.map +1 -1
  309. package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
  310. package/dist/esm/renderer-sdk.js.map +1 -0
  311. package/dist/esm/rendering/CallbackRenderPass.js +1 -1
  312. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  313. package/dist/esm/rendering/Container.d.ts +3 -0
  314. package/dist/esm/rendering/Container.d.ts.map +1 -1
  315. package/dist/esm/rendering/Container.js +28 -5
  316. package/dist/esm/rendering/Container.js.map +1 -1
  317. package/dist/esm/rendering/Drawable.d.ts +47 -0
  318. package/dist/esm/rendering/Drawable.d.ts.map +1 -1
  319. package/dist/esm/rendering/Drawable.js +88 -0
  320. package/dist/esm/rendering/Drawable.js.map +1 -1
  321. package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
  322. package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
  323. package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
  324. package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
  325. package/dist/esm/rendering/RenderBackend.d.ts +15 -1
  326. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  327. package/dist/esm/rendering/RenderBatch.d.ts +55 -0
  328. package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
  329. package/dist/esm/rendering/RenderBatch.js +107 -0
  330. package/dist/esm/rendering/RenderBatch.js.map +1 -0
  331. package/dist/esm/rendering/RenderNode.d.ts +50 -10
  332. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  333. package/dist/esm/rendering/RenderNode.js +113 -20
  334. package/dist/esm/rendering/RenderNode.js.map +1 -1
  335. package/dist/esm/rendering/RenderNodePass.js +2 -2
  336. package/dist/esm/rendering/RenderNodePass.js.map +1 -1
  337. package/dist/esm/rendering/RenderStats.d.ts +39 -0
  338. package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
  339. package/dist/esm/rendering/RenderStats.js +14 -0
  340. package/dist/esm/rendering/RenderStats.js.map +1 -1
  341. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
  342. package/dist/esm/rendering/RendererRegistry.js +20 -23
  343. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  344. package/dist/esm/rendering/RenderingContext.d.ts +88 -4
  345. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  346. package/dist/esm/rendering/RenderingContext.js +107 -5
  347. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  348. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  349. package/dist/esm/rendering/TransformBuffer.js +2 -0
  350. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  351. package/dist/esm/rendering/View.d.ts +47 -15
  352. package/dist/esm/rendering/View.d.ts.map +1 -1
  353. package/dist/esm/rendering/View.js +44 -27
  354. package/dist/esm/rendering/View.js.map +1 -1
  355. package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -1
  356. package/dist/esm/rendering/coreRendererBindings.js +22 -0
  357. package/dist/esm/rendering/coreRendererBindings.js.map +1 -1
  358. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  359. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -1
  360. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  361. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
  362. package/dist/esm/rendering/geometry/Geometry.js +4 -2
  363. package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
  364. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
  365. package/dist/esm/rendering/gradient/Gradient.js +7 -2
  366. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  367. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
  368. package/dist/esm/rendering/material/MaterialKey.js +2 -0
  369. package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
  370. package/dist/esm/rendering/material/ShaderSource.js +6 -0
  371. package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
  372. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
  373. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
  374. package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
  375. package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
  376. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
  377. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
  378. package/dist/esm/rendering/mesh/Mesh.js +40 -13
  379. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  380. package/dist/esm/rendering/pixelSnap.d.ts +219 -0
  381. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -0
  382. package/dist/esm/rendering/pixelSnap.js +187 -0
  383. package/dist/esm/rendering/pixelSnap.js.map +1 -0
  384. package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
  385. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
  386. package/dist/esm/rendering/plan/RenderCommand.js +23 -21
  387. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  388. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  389. package/dist/esm/rendering/plan/RenderEffectExecutor.js +1 -0
  390. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  391. package/dist/esm/rendering/plan/RenderInstruction.d.ts +7 -37
  392. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  393. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
  394. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  395. package/dist/esm/rendering/plan/RenderPlanBuilder.js +132 -46
  396. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  397. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
  398. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
  399. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
  400. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
  401. package/dist/esm/rendering/plan/RenderPlanPlayer.js +70 -13
  402. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  403. package/dist/esm/rendering/plan/RenderScope.d.ts +16 -10
  404. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  405. package/dist/esm/rendering/primitives/Graphics.d.ts +6 -0
  406. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  407. package/dist/esm/rendering/primitives/Graphics.js +17 -1
  408. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  409. package/dist/esm/rendering/{index.d.ts → public.d.ts} +13 -30
  410. package/dist/esm/rendering/public.d.ts.map +1 -0
  411. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
  412. package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
  413. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  414. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +11 -0
  415. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  416. package/dist/esm/rendering/sprite/AnimatedSprite.js +24 -2
  417. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  418. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts +69 -0
  419. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -0
  420. package/dist/esm/rendering/sprite/NineSliceSprite.js +206 -0
  421. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -0
  422. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts +120 -0
  423. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -0
  424. package/dist/esm/rendering/sprite/RepeatingSprite.js +277 -0
  425. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -0
  426. package/dist/esm/rendering/sprite/Sprite.d.ts +13 -0
  427. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  428. package/dist/esm/rendering/sprite/Sprite.js +53 -3
  429. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  430. package/dist/esm/rendering/sprite/nineSlice.d.ts +53 -0
  431. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -0
  432. package/dist/esm/rendering/sprite/nineSlice.js +334 -0
  433. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -0
  434. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts +57 -0
  435. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -0
  436. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +156 -0
  437. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -0
  438. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  439. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  440. package/dist/esm/rendering/text/BitmapText.js +4 -0
  441. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  442. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
  443. package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
  444. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
  445. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
  446. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
  447. package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
  448. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
  449. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
  450. package/dist/esm/rendering/text/GlyphSdf.js +5 -1
  451. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  452. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  453. package/dist/esm/rendering/text/HTMLText.js +1 -0
  454. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  455. package/dist/esm/rendering/text/Text.d.ts +17 -6
  456. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  457. package/dist/esm/rendering/text/Text.js +7 -12
  458. package/dist/esm/rendering/text/Text.js.map +1 -1
  459. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  460. package/dist/esm/rendering/text/TextLayout.js +4 -18
  461. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  462. package/dist/esm/rendering/texture/DataTexture.js +2 -2
  463. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  464. package/dist/esm/rendering/texture/Texture.d.ts +6 -0
  465. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
  466. package/dist/esm/rendering/texture/Texture.js +8 -0
  467. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  468. package/dist/esm/rendering/texture/TextureRegion.d.ts +100 -0
  469. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -0
  470. package/dist/esm/rendering/texture/TextureRegion.js +144 -0
  471. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -0
  472. package/dist/esm/rendering/texture/repeat.d.ts +96 -0
  473. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -0
  474. package/dist/esm/rendering/texture/repeat.js +158 -0
  475. package/dist/esm/rendering/texture/repeat.js.map +1 -0
  476. package/dist/esm/rendering/types.d.ts +11 -0
  477. package/dist/esm/rendering/types.d.ts.map +1 -1
  478. package/dist/esm/rendering/types.js +11 -0
  479. package/dist/esm/rendering/types.js.map +1 -1
  480. package/dist/esm/rendering/video/Video.d.ts +7 -3
  481. package/dist/esm/rendering/video/Video.d.ts.map +1 -1
  482. package/dist/esm/rendering/video/Video.js +7 -3
  483. package/dist/esm/rendering/video/Video.js.map +1 -1
  484. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
  485. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
  486. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  487. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +41 -2
  488. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  489. package/dist/esm/rendering/webgl2/WebGl2Backend.js +137 -8
  490. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  491. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
  492. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
  493. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
  494. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
  495. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
  496. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
  497. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  498. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts +32 -0
  499. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -0
  500. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +309 -0
  501. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -0
  502. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
  503. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
  504. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
  505. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  506. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts +49 -0
  507. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -0
  508. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +539 -0
  509. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -0
  510. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
  511. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
  512. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  513. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
  514. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  515. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
  516. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
  517. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
  518. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +9 -0
  519. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
  520. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +29 -4
  521. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  522. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
  523. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
  524. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
  525. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  526. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -4
  527. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  528. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +39 -3
  529. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  530. package/dist/esm/rendering/webgpu/WebGpuBackend.js +120 -12
  531. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  532. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  533. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +3 -0
  534. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  535. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +13 -0
  536. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  537. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +102 -24
  538. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  539. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +36 -0
  540. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -0
  541. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +363 -0
  542. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -0
  543. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +52 -0
  544. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -0
  545. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +566 -0
  546. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -0
  547. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +9 -0
  548. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  549. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +30 -6
  550. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  551. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  552. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +1 -0
  553. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  554. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  555. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +19 -7
  556. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  557. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -4
  558. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  559. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +26 -6
  560. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  561. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
  562. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
  563. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
  564. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
  565. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
  566. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
  567. package/dist/esm/resources/Asset.d.ts +1 -1
  568. package/dist/esm/resources/Asset.d.ts.map +1 -1
  569. package/dist/esm/resources/Asset.js +0 -2
  570. package/dist/esm/resources/Asset.js.map +1 -1
  571. package/dist/esm/resources/AssetContainer.d.ts +75 -0
  572. package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
  573. package/dist/esm/resources/AssetContainer.js +100 -0
  574. package/dist/esm/resources/AssetContainer.js.map +1 -0
  575. package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
  576. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
  577. package/dist/esm/resources/Assets.d.ts.map +1 -1
  578. package/dist/esm/resources/Assets.js +0 -1
  579. package/dist/esm/resources/Assets.js.map +1 -1
  580. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
  581. package/dist/esm/resources/FactoryRegistry.js +14 -23
  582. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  583. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
  584. package/dist/esm/resources/IndexedDbDatabase.js +8 -1
  585. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  586. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
  587. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
  588. package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
  589. package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
  590. package/dist/esm/resources/KeyValueStore.d.ts +31 -0
  591. package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
  592. package/dist/esm/resources/Loader.d.ts +78 -10
  593. package/dist/esm/resources/Loader.d.ts.map +1 -1
  594. package/dist/esm/resources/Loader.js +119 -15
  595. package/dist/esm/resources/Loader.js.map +1 -1
  596. package/dist/esm/resources/MemoryStore.d.ts +17 -0
  597. package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
  598. package/dist/esm/resources/MemoryStore.js +30 -0
  599. package/dist/esm/resources/MemoryStore.js.map +1 -0
  600. package/dist/esm/resources/WebStorageStore.d.ts +40 -0
  601. package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
  602. package/dist/esm/resources/WebStorageStore.js +84 -0
  603. package/dist/esm/resources/WebStorageStore.js.map +1 -0
  604. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  605. package/dist/esm/resources/coreAssetBindings.js +16 -5
  606. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  607. package/dist/esm/resources/factories/BmFontFactory.js +4 -4
  608. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
  609. package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
  610. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
  611. package/dist/esm/resources/factories/MusicFactory.js +7 -7
  612. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  613. package/dist/esm/resources/factories/SoundFactory.js +2 -2
  614. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  615. package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
  616. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
  617. package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
  618. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
  619. package/dist/esm/resources/index.d.ts +51 -34
  620. package/dist/esm/resources/index.d.ts.map +1 -1
  621. package/dist/esm/resources/utils.js +4 -4
  622. package/dist/esm/resources/utils.js.map +1 -1
  623. package/dist/esm/ui/Button.d.ts +54 -0
  624. package/dist/esm/ui/Button.d.ts.map +1 -0
  625. package/dist/esm/ui/Button.js +139 -0
  626. package/dist/esm/ui/Button.js.map +1 -0
  627. package/dist/esm/ui/Label.d.ts +17 -0
  628. package/dist/esm/ui/Label.d.ts.map +1 -0
  629. package/dist/esm/ui/Label.js +37 -0
  630. package/dist/esm/ui/Label.js.map +1 -0
  631. package/dist/esm/ui/Panel.d.ts +38 -0
  632. package/dist/esm/ui/Panel.d.ts.map +1 -0
  633. package/dist/esm/ui/Panel.js +61 -0
  634. package/dist/esm/ui/Panel.js.map +1 -0
  635. package/dist/esm/ui/ProgressBar.d.ts +37 -0
  636. package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
  637. package/dist/esm/ui/ProgressBar.js +76 -0
  638. package/dist/esm/ui/ProgressBar.js.map +1 -0
  639. package/dist/esm/ui/Stack.d.ts +34 -0
  640. package/dist/esm/ui/Stack.d.ts.map +1 -0
  641. package/dist/esm/ui/Stack.js +69 -0
  642. package/dist/esm/ui/Stack.js.map +1 -0
  643. package/dist/esm/ui/UIRoot.d.ts +31 -0
  644. package/dist/esm/ui/UIRoot.d.ts.map +1 -0
  645. package/dist/esm/ui/UIRoot.js +49 -0
  646. package/dist/esm/ui/UIRoot.js.map +1 -0
  647. package/dist/esm/ui/Widget.d.ts +45 -0
  648. package/dist/esm/ui/Widget.d.ts.map +1 -0
  649. package/dist/esm/ui/Widget.js +113 -0
  650. package/dist/esm/ui/Widget.js.map +1 -0
  651. package/dist/esm/ui/index.d.ts +13 -0
  652. package/dist/esm/ui/index.d.ts.map +1 -0
  653. package/dist/exo.debug.esm.js +1 -948
  654. package/dist/exo.debug.esm.js.map +1 -1
  655. package/dist/exo.esm.js +1 -37555
  656. package/dist/exo.esm.js.map +1 -1
  657. package/package.json +31 -13
  658. package/dist/esm/audio/AbstractMedia.d.ts +0 -75
  659. package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
  660. package/dist/esm/audio/AbstractMedia.js +0 -179
  661. package/dist/esm/audio/AbstractMedia.js.map +0 -1
  662. package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
  663. package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
  664. package/dist/esm/audio/AudioAnalyser.js +0 -473
  665. package/dist/esm/audio/AudioAnalyser.js.map +0 -1
  666. package/dist/esm/audio/AudioFilter.d.ts +0 -17
  667. package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
  668. package/dist/esm/audio/AudioFilter.js +0 -15
  669. package/dist/esm/audio/AudioFilter.js.map +0 -1
  670. package/dist/esm/audio/BeatDetector.d.ts +0 -207
  671. package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
  672. package/dist/esm/audio/BeatDetector.js +0 -424
  673. package/dist/esm/audio/BeatDetector.js.map +0 -1
  674. package/dist/esm/audio/Media.d.ts +0 -37
  675. package/dist/esm/audio/Media.d.ts.map +0 -1
  676. package/dist/esm/audio/Music.d.ts +0 -42
  677. package/dist/esm/audio/Music.d.ts.map +0 -1
  678. package/dist/esm/audio/Music.js +0 -164
  679. package/dist/esm/audio/Music.js.map +0 -1
  680. package/dist/esm/audio/OscillatorSound.d.ts +0 -100
  681. package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
  682. package/dist/esm/audio/OscillatorSound.js +0 -346
  683. package/dist/esm/audio/OscillatorSound.js.map +0 -1
  684. package/dist/esm/audio/dsp/fft.d.ts +0 -23
  685. package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
  686. package/dist/esm/audio/dsp/mel.d.ts +0 -44
  687. package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
  688. package/dist/esm/audio/dsp/mel.js +0 -70
  689. package/dist/esm/audio/dsp/mel.js.map +0 -1
  690. package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
  691. package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
  692. package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
  693. package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
  694. package/dist/esm/audio/filters/ChorusFilter.js +0 -155
  695. package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
  696. package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
  697. package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
  698. package/dist/esm/audio/filters/CompressorFilter.js +0 -123
  699. package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
  700. package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
  701. package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
  702. package/dist/esm/audio/filters/DelayFilter.js +0 -114
  703. package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
  704. package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
  705. package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
  706. package/dist/esm/audio/filters/DuckingFilter.js +0 -172
  707. package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
  708. package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
  709. package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
  710. package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
  711. package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
  712. package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
  713. package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
  714. package/dist/esm/audio/filters/GranularFilter.js +0 -107
  715. package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
  716. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
  717. package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
  718. package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
  719. package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
  720. package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
  721. package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
  722. package/dist/esm/audio/filters/ReverbFilter.js +0 -122
  723. package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
  724. package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
  725. package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
  726. package/dist/esm/audio/filters/VocoderFilter.js +0 -94
  727. package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
  728. package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
  729. package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
  730. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
  731. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
  732. package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
  733. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
  734. package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
  735. package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
  736. package/dist/esm/audio/worklets/granular.worklet.js +0 -89
  737. package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
  738. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
  739. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
  740. package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
  741. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
  742. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
  743. package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
  744. package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
  745. package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
  746. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
  747. package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
  748. package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
  749. package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
  750. package/dist/esm/rendering/index.d.ts.map +0 -1
  751. package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
  752. package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
  753. package/dist/esm/rendering.d.ts +0 -28
  754. package/dist/esm/rendering.d.ts.map +0 -1
  755. package/dist/esm/rendering.js.map +0 -1
  756. package/dist/esm/resources/JsonStore.d.ts +0 -19
  757. package/dist/esm/resources/JsonStore.d.ts.map +0 -1
  758. package/dist/esm/resources/JsonStore.js +0 -62
  759. package/dist/esm/resources/JsonStore.js.map +0 -1
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioGenerator.d.ts","sourceRoot":"","sources":["../../../src/audio/AudioGenerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzE,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC7C,2EAA2E;IACpE,SAAS,EAAE,MAAM,CAAC;IACzB,mCAAmC;IAC5B,IAAI,EAAE,cAAc,CAAC;IAC5B,qCAAqC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACtB,oDAAoD;IAC7C,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjC,mDAAmD;IAC5C,MAAM,EAAE,MAAM,CAAC;IACtB,uDAAuD;IAChD,KAAK,EAAE,OAAO,CAAC;IAEtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAoB;IACzC,2DAA2D;IACpD,QAAQ,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAEhC;IAED,IAAW,YAAY,IAAI,iBAAiB,CAE3C;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAE/C;gBAEkB,OAAO,GAAE,qBAA0B;IAatD,uFAAuF;IAChF,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKtC,8EAA8E;WAChE,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIvD;;;;;;;OAOG;IACI,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,KAAK;IA+CvE,6DAA6D;IACtD,OAAO,IAAI,IAAI;IAStB,8BAA8B;IACvB,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;CAiB5B"}
@@ -0,0 +1,165 @@
1
+ import { clamp } from '../math/utils.js';
2
+ import { isAudioContextReady, getAudioContext } from './audio-context.js';
3
+ import { AudioGeneratorVoice } from './AudioGeneratorVoice.js';
4
+ import { NoopVoice } from './NoopVoice.js';
5
+ import { SoundPoolStrategy } from './Sound.js';
6
+
7
+ /**
8
+ * Procedural tone generator — produces audio from an `OscillatorNode` without
9
+ * any decoded asset. Good for prototyping, game-jam SFX, retro bleeps, and
10
+ * synth-style tones.
11
+ *
12
+ * `AudioGenerator` is a **data descriptor**: it holds the current synth settings
13
+ * (`frequency`, `type`, `detune`, `envelope`) and default playback parameters.
14
+ * Each `AudioManager.play(generator, options)` snapshots those settings into a
15
+ * fresh {@link AudioGeneratorVoice} and returns it. For per-note playback, set
16
+ * `generator.frequency` (or use {@link AudioGenerator.setNote}) before playing:
17
+ *
18
+ * ```ts
19
+ * generator.setNote(69); // A4
20
+ * const voice = app.audio.play(generator);
21
+ * // ...later
22
+ * voice.frequency = 880; // retune the live voice
23
+ * voice.stop(); // triggers the envelope release, if any
24
+ * ```
25
+ *
26
+ * Routes through the manager's `sound` bus by default.
27
+ */
28
+ class AudioGenerator {
29
+ /** Current oscillator frequency in Hz. Snapshotted into each new voice. */
30
+ frequency;
31
+ /** Current oscillator waveform. */
32
+ type;
33
+ /** Current pitch detune in cents. */
34
+ detune;
35
+ /** Optional ADSR envelope applied to each voice. */
36
+ envelope;
37
+ /** Default volume for new voices. Range [0, 1]. */
38
+ volume;
39
+ /** Default muted flag (starts a voice at volume 0). */
40
+ muted;
41
+ _poolSize;
42
+ _poolStrategy;
43
+ /** Priority for the `LowestPriority` eviction strategy. */
44
+ priority;
45
+ _activeVoices = [];
46
+ get poolSize() {
47
+ return this._poolSize;
48
+ }
49
+ set poolSize(value) {
50
+ this._poolSize = Math.max(1, Math.floor(value));
51
+ }
52
+ get poolStrategy() {
53
+ return this._poolStrategy;
54
+ }
55
+ set poolStrategy(value) {
56
+ this._poolStrategy = value;
57
+ }
58
+ constructor(options = {}) {
59
+ this.frequency = options.frequency ?? 440;
60
+ this.type = options.type ?? 'sine';
61
+ this.detune = options.detune ?? 0;
62
+ this.envelope = options.envelope ?? null;
63
+ this.volume = clamp(options.volume ?? 1, 0, 1);
64
+ this.muted = options.muted ?? false;
65
+ this._poolSize = Math.max(1, Math.floor(options.poolSize ?? 8));
66
+ this._poolStrategy = options.poolStrategy ?? SoundPoolStrategy.FirstInFirstOut;
67
+ this.priority = options.priority ?? 0;
68
+ }
69
+ /** Set {@link AudioGenerator.frequency} from a MIDI note number (69 = A4 = 440 Hz). */
70
+ setNote(midiNote) {
71
+ this.frequency = AudioGenerator.midiToFrequency(midiNote);
72
+ return this;
73
+ }
74
+ /** Frequency in Hz for a MIDI note number, without mutating the generator. */
75
+ static midiToFrequency(midiNote) {
76
+ return 440 * Math.pow(2, (midiNote - 69) / 12);
77
+ }
78
+ /**
79
+ * Implements {@link Playable}. Called by {@link AudioManager.play}.
80
+ *
81
+ * Snapshots the current synth settings into a new {@link AudioGeneratorVoice}.
82
+ * Returns an already-ended {@link NoopVoice} when the `AudioContext` is still
83
+ * locked by the autoplay policy — oscillators are ephemeral and cannot be
84
+ * deferred.
85
+ */
86
+ _createVoice(manager, options) {
87
+ const bus = options.bus ?? manager.sound;
88
+ if (!isAudioContextReady()) {
89
+ return new NoopVoice(bus);
90
+ }
91
+ this._pruneEndedVoices();
92
+ if (this._activeVoices.length >= this._poolSize) {
93
+ const victimIndex = this._pickEvictionVictim();
94
+ const victim = this._activeVoices[victimIndex];
95
+ if (victim) {
96
+ this._activeVoices.splice(victimIndex, 1);
97
+ victim.voice.stop();
98
+ }
99
+ }
100
+ const audioContext = getAudioContext();
101
+ const output = audioContext.createGain();
102
+ const detune = options.detune ?? this.detune;
103
+ const volume = clamp(options.muted ? 0 : (options.volume ?? (this.muted ? 0 : this.volume)), 0, 1);
104
+ const voice = new AudioGeneratorVoice({
105
+ audioContext,
106
+ output,
107
+ bus,
108
+ manager,
109
+ volume,
110
+ frequency: this.frequency,
111
+ type: this.type,
112
+ detune,
113
+ envelope: this.envelope,
114
+ });
115
+ const pooled = { voice, startedAt: audioContext.currentTime };
116
+ voice.onEnd.add(() => {
117
+ const index = this._activeVoices.indexOf(pooled);
118
+ if (index !== -1) {
119
+ this._activeVoices.splice(index, 1);
120
+ }
121
+ });
122
+ this._activeVoices.push(pooled);
123
+ return voice;
124
+ }
125
+ /** Stop every currently active voice from this generator. */
126
+ stopAll() {
127
+ const voices = [...this._activeVoices];
128
+ this._activeVoices.length = 0;
129
+ for (const pooled of voices) {
130
+ pooled.voice.stop();
131
+ }
132
+ return this;
133
+ }
134
+ /** Stop all active voices. */
135
+ destroy() {
136
+ this.stopAll();
137
+ }
138
+ _pruneEndedVoices() {
139
+ for (let i = this._activeVoices.length - 1; i >= 0; i--) {
140
+ if (this._activeVoices[i]?.voice.ended === true) {
141
+ this._activeVoices.splice(i, 1);
142
+ }
143
+ }
144
+ }
145
+ _pickEvictionVictim() {
146
+ if (this._poolStrategy === SoundPoolStrategy.LeastRecentlyUsed) {
147
+ // Oscillators are open-ended, so "closest to end" degenerates to oldest.
148
+ let oldest = 0;
149
+ let oldestTime = Infinity;
150
+ for (let i = 0; i < this._activeVoices.length; i++) {
151
+ const pooled = this._activeVoices[i];
152
+ if (pooled !== undefined && pooled.startedAt < oldestTime) {
153
+ oldestTime = pooled.startedAt;
154
+ oldest = i;
155
+ }
156
+ }
157
+ return oldest;
158
+ }
159
+ // FirstInFirstOut and LowestPriority (shared priority) → oldest.
160
+ return 0;
161
+ }
162
+ }
163
+
164
+ export { AudioGenerator };
165
+ //# sourceMappingURL=AudioGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioGenerator.js","sources":["../../../../src/audio/AudioGenerator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { OscillatorType } from './AudioGenerator';
2
+ import { BaseVoice, type BaseVoiceInit } from './BaseVoice';
3
+ import type { Envelope } from './Envelope';
4
+ import type { RatePitched } from './Playable';
5
+ /** Construction parameters for {@link AudioGeneratorVoice}. */
6
+ export interface AudioGeneratorVoiceInit extends BaseVoiceInit {
7
+ frequency: number;
8
+ type: OscillatorType;
9
+ detune: number;
10
+ envelope: Envelope | null;
11
+ }
12
+ /**
13
+ * Active playback handle for one {@link AudioGenerator} play call, backed by an
14
+ * `OscillatorNode` plus a per-voice envelope gain. Each `AudioManager.play`
15
+ * creates an independent voice.
16
+ *
17
+ * Exposes the generator parameters (`frequency`, `type`), mixes in
18
+ * {@link RatePitched} (`detune` is real; `playbackRate` is stored but inert — an
19
+ * oscillator has no playback rate, retune via `frequency`/`detune`), and (via
20
+ * {@link BaseVoice}) {@link Spatializable}.
21
+ *
22
+ * Graph: `oscillator → envelopeGain → [panner] → output(volume) → bus`. The
23
+ * envelope shapes the ADSR; the output gain carries the overall volume.
24
+ *
25
+ * @internal
26
+ */
27
+ export declare class AudioGeneratorVoice extends BaseVoice implements RatePitched {
28
+ private readonly _oscillator;
29
+ private readonly _envelopeGain;
30
+ private readonly _envelope;
31
+ private _frequency;
32
+ private _type;
33
+ private _detune;
34
+ private _playbackRate;
35
+ constructor(init: AudioGeneratorVoiceInit);
36
+ get frequency(): number;
37
+ set frequency(value: number);
38
+ get type(): OscillatorType;
39
+ set type(value: OscillatorType);
40
+ /**
41
+ * Stored but inert — an `OscillatorNode` has no playback rate. Retune via
42
+ * {@link AudioGeneratorVoice.frequency} or {@link AudioGeneratorVoice.detune}.
43
+ */
44
+ get playbackRate(): number;
45
+ set playbackRate(value: number);
46
+ get detune(): number;
47
+ set detune(value: number);
48
+ stop(fadeMs?: number): void;
49
+ protected _routeThroughPanner(panner: PannerNode): void;
50
+ protected _teardownSource(): void;
51
+ }
52
+ //# sourceMappingURL=AudioGeneratorVoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioGeneratorVoice.d.ts","sourceRoot":"","sources":["../../../src/audio/AudioGeneratorVoice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,+DAA+D;AAC/D,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,SAAQ,SAAU,YAAW,WAAW;IACvE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAK;gBAEP,IAAI,EAAE,uBAAuB;IAmChD,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,CAAC,KAAK,EAAE,MAAM,EAKjC;IAED,IAAW,IAAI,IAAI,cAAc,CAEhC;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,cAAc,EAKpC;IAMD;;;OAGG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAEpC;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAK9B;IAMe,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;cA4BxB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;cAM7C,eAAe,IAAI,IAAI;CAU3C"}