@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
package/CHANGELOG.md CHANGED
@@ -4,13 +4,272 @@ All notable changes to ExoJS are documented in this file.
4
4
 
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased]
7
+ ## [0.15.0] - 2026-07-02
8
+
9
+ The rendering-views and audio-effects release. Core's render surface is
10
+ reworked around `View` (folding in `Camera`), a scoped `PassContext` that
11
+ stops pass callbacks from leaking state across targets, and multi-view
12
+ viewport parity between WebGL2 and WebGPU (split-screen, picture-in-picture,
13
+ minimaps). `@codexo/exojs-audio-fx` gains ten new insert effects and a
14
+ flagship-hardened `BeatDetector` (correct tempo tracking across 50–300 BPM,
15
+ 92–99% recall, 1–4 ms beat offsets). `@codexo/exojs-ldtk`, `-aseprite`, and
16
+ `-tiled` reach format completeness (multi-world LDtk, Aseprite frame
17
+ direction/repeat/slices, structured Tiled/LDtk property values). This is a
18
+ pre-1.0 release and includes intentional breaking changes; see **Changed**
19
+ and **Removed**.
8
20
 
9
- Release notes are curated at release time, not per pull request. When a version
10
- is cut, this section is renamed to `## [x.y.z] - YYYY-MM-DD` and filled from the
11
- merged pull requests and commits since the previous tag (each with its commit /
12
- PR link); `pnpm release:notes` then renders that section into the published
13
- GitHub release with a `PREVIOUS_TAG...CURRENT_TAG` compare link.
21
+ ### Added
22
+
23
+ - **View API.** `View.from(options)` (`center`/`size`/`viewport`/`rotation`/
24
+ `zoom`) and a fluent `View.setViewport(x, y, w, h)` using SFML-style
25
+ normalized (0..1) viewport rectangles, enabling split-screen,
26
+ picture-in-picture, and minimap compositions (#217).
27
+ - **Scoped pass context.** `DrawContext` and `PassContext` give a pass
28
+ callback a read-only `target`/`view` and route `clear`/`render`/`renderTo`/
29
+ `draw*` through the owning `RenderingContext`, so a callback can no longer
30
+ reset the active view or leak draws onto another target (#217).
31
+ - **`@codexo/exojs-audio-fx` — ten new insert effects.** Native:
32
+ `DistortionEffect`, `PhaserEffect`, `FlangerEffect`, `TremoloEffect`
33
+ (auto-pan), `PingPongDelayEffect`, `LimiterEffect`, `AutoWahEffect`,
34
+ `RingModulatorEffect`, `ConvolutionEffect` (real impulse-response
35
+ convolution via `ConvolverNode`). Worklet: `BitCrusherEffect`. Each follows
36
+ the dry/wet-gain, bypass-until-ready, ramped-setter template (#219, #221).
37
+ - **`WorkletEffect` dry/wet gain-staging primitive.** Dry/wet fan-out and a
38
+ `wet` getter/setter move into the `WorkletEffect` base class, plus
39
+ dry-latency compensation (a dry-path `DelayNode` time-aligned to each
40
+ worklet's algorithmic latency); `PitchShiftEffect`, `GranularEffect`, and
41
+ `VocoderEffect` migrate to emit pure wet through the shared base (#220).
42
+ - **`PitchShiftEffect` SOLA algorithm** replacing the previous approach, with
43
+ acoustic-contract tests across the worklet effects (#218).
44
+ - **`BeatDetector` flagship hardening.** Octave-error fix (mean-subtracted
45
+ ACF, log-Gaussian metric prior, subdivision-aware super-harmonic penalty,
46
+ and 3:2/2:3 hysteresis), adaptive onset detection, a bounded PLL phase
47
+ tracker, dual fast/stable tempo windows, and provisional/locked beat
48
+ states. Correct tempo across 50–300 BPM (previously locked to a
49
+ sub-harmonic above ~90 BPM), recall 92–99% (previously 11–42%), beat
50
+ offsets 1–4 ms. A seeded synthetic testbench and committed golden baseline
51
+ make the detector objectively measurable (#221).
52
+ - **`AnimatedSprite.repeat`** — finite N-cycle playback (`-1` loops
53
+ indefinitely, `1` plays once, `N` plays exactly N cycles), replacing
54
+ `loop: boolean`. Aseprite `direction` (pingpong/reverse) frame expansion,
55
+ `slices` exposure, per-frame `frameDurations` (hold-frame timing), and
56
+ `frameOffsets` (trim/`spriteSourceSize` anchoring) (#222).
57
+ - **LDtk format completeness.** External `.ldtkl` level resolution, IntGrid
58
+ value exposure, level `fieldInstances`, entity pivot correction, and
59
+ multi-world support (`worlds[]` flattened with an `ldtkWorldIid` tag,
60
+ single-world docs unaffected) (#222).
61
+ - **Structured `TilePropertyValue` variants** (Point/EntityRef/Tile) for LDtk
62
+ fields and Tiled `object`/`class`-typed custom properties, previously
63
+ dropped or left untagged (#222).
64
+ - **`WheelJoint` suspension-travel limit** (`enableLimit`/`lowerTranslation`/
65
+ `upperTranslation`), matching `PrismaticJoint`'s existing limit (#224).
66
+ - **React `useSignal` hook** bridges an engine `Signal` into React via
67
+ `useSyncExternalStore`; `ExoCanvas`/`useExoApplication` gain an `onError`
68
+ counterpart to `onReady`, wired to `Application.onError` (#224).
69
+ - **WebGPU CI lane** now runs against Mesa lavapipe (a real Vulkan software
70
+ rasterizer) as a required, blocking check, with real GPU-side pixel
71
+ readback and a WGSL compile-coverage test mirroring the existing GLSL one
72
+ (#222).
73
+
74
+ ### Changed
75
+
76
+ - **BREAKING — `Camera` folded into `View`.** The `Camera` class is removed;
77
+ `RenderingContext.camera` becomes `RenderingContext.view` (the `view` alias
78
+ is gone). `screenView` is unchanged (#217).
79
+ - **BREAKING — `CallbackRenderPass` callbacks receive a `PassContext`**
80
+ instead of the raw `RenderingContext`. The previous allocating `renderTo`
81
+ is renamed `capture()`; a new caller-owned `renderTo` (accepting `target`,
82
+ `view`, and `clear`) and coordinator-routed `context.clear(color)` are
83
+ added (#217).
84
+ - **Graphics fill is now opt-in.** `drawRectangle`/`drawCircle`/etc. no
85
+ longer build a hidden opaque-black fill mesh by default — outline-only
86
+ shapes stop silently painting a fill (#217).
87
+ - **Multi-view viewport parity.** WebGL2 partial top-left viewports
88
+ (split-screen/picture-in-picture/minimap) no longer land at the wrong edge
89
+ (GL's viewport origin is bottom-left); WebGPU's pass coordinator now
90
+ applies the active view's viewport to match. Any view used in a render
91
+ ticks its follow/shake automatically next frame — `trackView`/`untrackView`
92
+ are now only an escape hatch (#217).
93
+ - **Raw `console.*` calls routed through the DEV-gated logger.**
94
+ `Tween`/`Application`/`SceneManager`/`HTMLText` warnings and errors go
95
+ through `logger`/`warnOnce` instead of `console.*`, so they no longer ship
96
+ in production builds (#216).
97
+ - **`LimiterEffect.ratio`/`.knee`** are now configurable, matching sibling
98
+ `CompressorEffect` (defaults unchanged) (#224).
99
+ - **German (`de/`) locale pages** render the real English content directly
100
+ instead of a "translation coming soon" stub (#224).
101
+
102
+ ### Removed
103
+
104
+ - **BREAKING — `PhysicsWorldOptions.interpolation` and
105
+ `BindingOptions.drive: 'node-to-body'`** — both were documented as
106
+ "reserved, no effect yet" and referenced nowhere (#224).
107
+
108
+ ### Fixed
109
+
110
+ - **WebGL2 text rendering.** `WebGl2TextRenderer` bypassed the backend's
111
+ texture-unit cache when binding its node-data texture; when text rendered
112
+ first in a frame the atlas bound to the wrong unit and every glyph went
113
+ transparent (#215).
114
+ - **Gamepad input froze after connect.** `InputManager.updateGamepads` never
115
+ re-read `navigator.getGamepads()` for already-connected pads; button/axis
116
+ state is now polled fresh every frame (#215).
117
+ - **WebGPU shader filters rendered a black screen** (`crt-scanlines`,
118
+ `chromatic-aberration`) when the canvas' preferred texture format differed
119
+ from the filter's offscreen `rgba8unorm` output — `WebGpuShaderFilter`
120
+ cached its pipeline against whichever format was bound at first use instead
121
+ of its own output texture's format (#226).
122
+ - Audio-fx ducking logged a spurious `setTargetAtTime` out-of-range warning
123
+ every frame; its attack/release params are `[0,1]` smoothing coefficients,
124
+ not times (#215).
125
+ - Several playground examples (svg-drawable, trail-feedback,
126
+ tiled-physics-actor) fixed: a 0×0 rasterized SVG texture, a render-target
127
+ feedback loop, and a broken relative import in the playground's import map
128
+ (#215).
129
+
130
+ ### Docs
131
+
132
+ - Audio effects guide extended with all ten effects added in #218–#221;
133
+ README quickstart switched to the `load()` lifecycle hook (#223).
134
+ - Guide coverage catch-up: the full 18-mode W3C blend suite, `Tooltip`/
135
+ `ScrollContainer` widgets, loader progress signals and `Logger`, live
136
+ `sizingMode`/`clearColor`, `cullArea`, `fixedUpdate`/`frameAlpha`, and the
137
+ IIFE/CDN bundle path (#225).
138
+
139
+ ## [0.14.0] - 2026-06-26
140
+
141
+ The architecture and hardening release. Two new packages —
142
+ `@codexo/exojs-physics` (a native 2D physics world with a TGS-Soft solver) and
143
+ `@codexo/exojs-audio-fx` (the audio effect suite, extracted from core) — join the
144
+ lockstep set. Core gains a UI layer, scene-graph serialization with prefabs,
145
+ immediate-mode rendering, an ordered System scheduler, and a multi-instance-safe
146
+ foundation. The type system reaches its strictest configuration
147
+ (`noUncheckedIndexedAccess` + `exactOptionalPropertyTypes` across all packages,
148
+ zero `as any`, zero `ts-ignore`). Save-slot persistence moves to a new
149
+ `KeyValueStore` surface with three swappable backends. This is a pre-1.0 release
150
+ and includes intentional breaking changes; see **Changed** and **Removed**.
151
+
152
+ ### Added
153
+
154
+ - **`@codexo/exojs-physics` — native 2D physics.** Circles, boxes, capsules, and
155
+ convex polygons; static, kinematic, and dynamic bodies; SAP broadphase; manifold
156
+ narrow-phase; warm-started TGS-Soft solver (sub-stepped soft-constraint, 2×2
157
+ block normal LCP) stable to 20+ box stacks. Contact graph, collision events,
158
+ spatial queries, scene-graph binding, and a `/debug` draw subpath. Allocation
159
+ measured and halved per step (V8 heap-sampler verified); the dynamics surface
160
+ (`velocity`, `applyForce`/`Torque`/`Impulse`) is fully public (#131, #140, #141,
161
+ #142, #143, #155, #156, #177, #180, #181).
162
+ - **`@codexo/exojs-audio-fx` — audio effect package.** Extracted from core: the
163
+ `*Effect` suite, `AudioAnalyser`, `BeatDetector`, worklets, and DSP helpers.
164
+ Core keeps the audio engine and effect base classes (#133).
165
+ - **UI core.** `scene.ui` with a `Widget`/`Label`/`Panel`/`Button`/`ProgressBar`
166
+ set, row/column/stack layout and anchoring, a `FocusManager` with keyboard
167
+ navigation, and `app.focus` (#138).
168
+ - **Scene-graph serialization.** `SerializationRegistry`, `NodeSerializer`, and
169
+ `Prefab` with `Scene.serialize`/`deserialize`; serializers for containers,
170
+ sprites, text, meshes, graphics, nine-slice/repeating sprites, animated sprites,
171
+ bitmap text, video, and UI widgets. Tilemap nodes serialize through an extension
172
+ binding. Pair with a `KeyValueStore` for save-slot persistence (#144, #145, #146,
173
+ #147, #148).
174
+ - **`KeyValueStore` interface + three backends.** `WebStorageStore` wraps
175
+ `localStorage`/`sessionStorage` with JSON serialization. `IndexedDbKeyValueStore`
176
+ stores values via structured clone — `Blob`s and `ArrayBuffer`s round-trip
177
+ natively. `MemoryStore` is an in-process `Map` for tests and ephemeral state.
178
+ All three share one `async` interface; swapping backends is a one-line change
179
+ (#178).
180
+ - **Binary asset containers.** `Loader.loadContainer(url)` fetches a single
181
+ archive, injects each entry directly into the cache, and triggers `onLoaded`
182
+ callbacks — one HTTP request in place of N individual asset fetches. A
183
+ `build-container` script bundles assets at build time (#179).
184
+ - **Immediate-mode rendering.** `RenderingContext.drawGeometry` for one-off
185
+ geometry and `RenderBatch` + `drawBatch` for instanced draws collapsing to a
186
+ single draw call (#150, #151, #159).
187
+ - **System scheduler.** `app.systems` and `scene.systems` run the core managers
188
+ as ordered systems with deterministic tick bands (#134).
189
+ - **Design-space coordinates.** Automatic DPR handling, letterbox sizing, and
190
+ `canvas`-mount / `sizingMode` options on `Application` (#130).
191
+ - **Typed tilemap object layers.** Object layers and queries converted from Tiled
192
+ object groups, plus an `ObjectKind` `as const` schema and a generic
193
+ `ObjectLayer<S>` with `byType`/`byKind`/`where` (#132, #157).
194
+ - **GPU resource accounting in `RenderStats`.** `gpuMemoryBytes` tracks an
195
+ accumulated VRAM estimate; `textureUploadBytes` and `bufferUploadBytes` count
196
+ bytes transferred each frame (#173).
197
+ - **Combined Tiled + physics examples** with an `ObjectLayer`→collider bridge
198
+ (#160), a rebuilt example catalog on a shared runtime helper kit, and a live
199
+ hero example with an expandable playground preview.
200
+
201
+ ### Changed
202
+
203
+ - **Audio re-architecture.** `Sound`/`AudioStream`/`AudioGenerator` descriptors
204
+ with a voice capability matrix; the audio singleton is gone and `AudioFilter`
205
+ becomes `AudioEffect`. Playback defers until the autoplay gesture unlocks
206
+ audio (#133).
207
+ - **Multi-instance foundation.** `Destroyable`/`DisposalScope` for deterministic
208
+ teardown; `Interaction`, `Audio`, `Random`, and the serializer registry are
209
+ app-owned rather than process singletons; `ObservableVector` sheds per-node
210
+ closures (#133, #134, #154).
211
+ - **BREAKING — API hygiene.** Value-type footgun fixes (`Matrix.getInverse`,
212
+ `Color.toRgba`, honest `Rectangle` types), curated barrels, and namespaced
213
+ utilities (`MathUtils`, `MeshBuilder`, `Sweep`, `Collision`, …) (#135).
214
+ - **BREAKING — `Random` engine.** Mersenne Twister replaced with xoshiro128\*\*
215
+ and SplitMix32 seeding; the `iteration` getter is removed (#137).
216
+ - **BREAKING — physics body construction.** `new PhysicsBody({ colliders })` +
217
+ `world.add`/`world.attach` replace `createBody`/`createStaticCollider` (#156).
218
+ - **BREAKING — physics solver config.** `velocityIterations`/`positionIterations`
219
+ replaced by `subStepCount` (default 4), `contactHertz` (default 30), and
220
+ `dampingRatio` (default 10) for the TGS-Soft solver (#181).
221
+ - **BREAKING — rendering barrel.** Backend renderer internals move behind the
222
+ `@codexo/exojs/renderer-sdk` subpath; the root barrel is curated (#153).
223
+ - **BREAKING — `Text` constructor.** The multi-argument overload is removed in
224
+ favour of `new Text(text, options?)` (#165).
225
+ - **BREAKING — `System.update` signature.** All system `update` methods now
226
+ receive `(delta: Time)` (#164).
227
+ - **BREAKING — `SerializationRegistry` is app-owned.** Access through
228
+ `app.serializers`; the process-singleton accessor is removed (#164).
229
+ - **BREAKING — `noUncheckedIndexedAccess` + `exactOptionalPropertyTypes`
230
+ enabled.** Both flags are now `true` across all packages. Code that indexed
231
+ arrays without narrowing will need guards or non-null assertions (#171).
232
+ - **Render-plan performance.** `DrawCommand`, `MaterialKey`, and `ScopeEntry`
233
+ objects are pooled; static 1,000-sprite scenes shed ~55 % of per-frame
234
+ allocation. `RenderPlanOptimizer` overlap grouping goes O(n²) → O(n) via a
235
+ `Map`-based index — 10,000-sprite / 8-texture scenes optimize in ~2.3 ms vs
236
+ ~14 ms (~6×), grouping bit-identical (#173, #175).
237
+ - **Production bundle size.** A `terser` `pure_funcs` pass strips dev-assert
238
+ calls from production builds; `exo.esm.js` shrinks from 1.66 MB to 625 KB
239
+ (#172).
240
+ - **Strict lint and type rules.** `noUnusedLocals`/`noUnusedParameters` enforced;
241
+ `@vitest/eslint-plugin` flags non-awaited promise assertions and focused tests;
242
+ explicit barrel re-exports replace wildcards throughout (#163, #166, #167, #168).
243
+ - **Site islands migrated from Lit to React** (#149); a shared `Registry<K,V>`
244
+ primitive backs constructor-keyed dispatch (#136).
245
+
246
+ ### Removed
247
+
248
+ - **BREAKING — scene stack.** `SceneStackMode`, `SceneParticipation`,
249
+ `pushScene`, and `popScene` are removed in favor of one active scene with
250
+ `setScene`, fade transitions, and `scene.paused` (#139).
251
+
252
+ ### Fixed
253
+
254
+ - Physics contact pair keys no longer collide past 65,536 body IDs (#155).
255
+ - New and mutated textures upload correctly after their first bind, and pointer
256
+ coordinates map to backing-store pixels when the canvas is scaled (#130).
257
+ - Deserialization validates the data boundary on entry — malformed or absent
258
+ fields no longer reach node constructors. `NineSliceSprite.slices` absent no
259
+ longer throws; non-object children in a serialized scene are silently skipped
260
+ (#177).
261
+
262
+ ### Docs
263
+
264
+ - Text API guide corrected: stale property names removed, property table
265
+ rewritten, mutation-sync behaviour documented (#183).
266
+ - Storage and serialization guides written for the `KeyValueStore` surface (#183).
267
+ - `SceneManager` API page documents the single-scene, no-stack model (#183).
268
+ - Physics solver operating envelope characterised — mass-ratio ceiling (100:1) and
269
+ no-CCD disclaimer added to class docs, backed by `SG-MR3` and `SG-X5`
270
+ regression tests (#184).
271
+ - ADR on shared geometry with separate collision detection (#158) and an
272
+ immediate-mode rendering guide (#159).
14
273
 
15
274
  ## [0.13.0] - 2026-06-13
16
275
 
package/README.md CHANGED
@@ -1,42 +1,67 @@
1
1
  # ExoJS
2
2
 
3
- ExoJS is a TypeScript-first 2D runtime for games and interactive apps, built around explicit scenes, practical rendering features, and predictable runtime behavior.
3
+ A TypeScript-first 2D engine for games and interactive apps. Explicit scene graph, WebGPU/WebGL2 rendering, native physics, spatial audio, and a strict type system — measured and verified, not just claimed.
4
4
 
5
5
  **[Guide](https://exoridus.github.io/ExoJS/en/guide/)** · **[API Reference](https://exoridus.github.io/ExoJS/en/api/)** · **[Playground](https://exoridus.github.io/ExoJS/en/playground/)**
6
6
 
7
- ## Project status
7
+ > **Pre-1.0.** The public API is under active design — minor versions may include breaking changes. Pin exact versions in downstream projects. `1.0.0` marks the first stable API contract.
8
8
 
9
- ExoJS is **pre-1.0**. The public API is still under active design — scene graph, rendering pipeline, and resource lifecycle boundaries may change between minor versions. Pin exact versions in downstream experiments. `1.0.0` will mark the first stable API contract.
9
+ ## Packages
10
+
11
+ | Package | Description |
12
+ | ------------------------- | ------------------------------------------------------------------ |
13
+ | `@codexo/exojs` | Core runtime — scene graph, rendering, audio, UI, serialization |
14
+ | `@codexo/exojs-physics` | Native 2D physics — shapes, constraints, TGS-Soft solver |
15
+ | `@codexo/exojs-particles` | GPU-driven particles (WebGPU compute) with CPU fallback |
16
+ | `@codexo/exojs-tilemap` | Format-independent tilemap runtime and object layers |
17
+ | `@codexo/exojs-tiled` | Tiled JSON adapter and scene-graph conversion |
18
+ | `@codexo/exojs-audio-fx` | Audio effects — biquad filters, analyser, beat detection, worklets |
10
19
 
11
20
  ## Features
12
21
 
13
- - `Application`, `Scene`, and scene-manager lifecycle
14
- - Scene stacking (`overlay` / `modal` / `opaque`) with input routing and fade transitions
15
- - Typed `Loader` with manifest/bundle workflow (`defineAssetManifest`, `registerManifest`, `loadBundle`)
16
- - Drawables: `Sprite`, `AnimatedSprite`, `Graphics`, `ParticleSystem`, `Text`, `Video`
17
- - WebGPU-first rendering with automatic WebGL2 fallback
18
- - GPU-driven particles (WebGPU compute) with a CPU fallback for WebGL2
19
- - Rendering composition primitives (`RenderTexture`, `RenderPipeline`, filter chains, visual masks, cache-as-bitmap)
20
- - Linear and radial gradients for `Graphics` fills and strokes (`fillStyle` / `strokeStyle`)
21
- - View/camera helpers (`follow`, bounds clamp, shake, zoom)
22
- - Audio with sprites, spatial panning, and frequency/waveform analysis
23
- - Render stats (`submittedNodes`, `culledNodes`, `drawCalls`, `batches`, `renderPasses`, ...) and a benchmark harness
22
+ **Rendering**
24
23
 
25
- ## Roadmap
24
+ - WebGPU-first with automatic WebGL2 fallback; force either backend with one option
25
+ - Drawables: `Sprite`, `AnimatedSprite`, `NineSliceSprite`, `RepeatingSprite`, `Graphics`, `Text` (SDF), `BitmapText`, `Video`
26
+ - Rendering composition: `RenderTexture`, `RenderPipeline`, filter chains, visual masks, cache-as-bitmap
27
+ - Immediate-mode rendering: one-off `drawGeometry` and instanced `RenderBatch` collapsing to a single draw call
28
+ - Linear and radial gradients, pixel snapping, view/camera helpers (`follow`, shake, zoom, bounds clamp)
29
+ - Render stats with GPU memory accounting (`gpuMemoryBytes`, texture/buffer upload bytes)
26
30
 
27
- Directional work on the way to the `1.0.0` API freeze. Priorities and ordering may change — nothing here is a release commitment.
31
+ **Scene & UI**
28
32
 
29
- - Save/load persistence helper
30
- - Screen-level post-processing stack (bloom, CRT, vignette, chromatic aberration)
31
- - Path following with Bézier and Catmull-Rom splines
32
- - Simple 2D lighting and shadows
33
- - Tilemap / tileset support (Tiled JSON)
34
- - Additional scene transitions (slide, crossfade) plus custom transition effects
35
- - UI widget layer (button, label, panel, slider) with keyboard and gamepad navigation
36
- - Localization primitive
37
- - Opt-in `Signal` registry for dev tooling, tree-shakeable in production
38
- - Live documentation, guides, and playground site
39
- - Final pre-1.0 API audit and stabilization pass
33
+ - `Application`, `Scene`, `SceneManager` — one active scene with `setScene`, fade transitions, and `scene.paused`
34
+ - `scene.ui` — screen-fixed widget layer with `Label`, `Panel`, `Button`, `ProgressBar`, `Stack`, anchoring, and a `FocusManager` with keyboard and gamepad navigation
35
+
36
+ **Physics** (`@codexo/exojs-physics`)
37
+
38
+ - Circles, boxes, capsules, and convex polygons; static, kinematic, and dynamic bodies
39
+ - SAP broadphase, manifold narrow-phase, warm-started TGS-Soft solver (sub-stepped, stable to 20+ box stacks)
40
+ - Contact graph, collision events, spatial queries; allocation-free per step (V8-sampler verified)
41
+ - Scene-graph binding and a `/debug` draw subpath
42
+
43
+ **Audio**
44
+
45
+ - Voice capability matrix across `Sound`, `AudioStream`, and `AudioGenerator`
46
+ - Spatial panning, audio sprites, frequency and waveform analysis
47
+ - `@codexo/exojs-audio-fx`: `BiquadEffect`, `AudioAnalyser`, `BeatDetector`, worklets, and DSP helpers
48
+
49
+ **Assets & Storage**
50
+
51
+ - Typed `Loader` with manifest/bundle workflow (`defineAssetManifest`, `loadBundle`)
52
+ - Binary asset containers (`loader.loadContainer`) for bundled distribution
53
+ - Key-value persistence: `WebStorageStore` (localStorage/sessionStorage), `IndexedDbKeyValueStore` (structured-clone, binary-safe), `MemoryStore` (tests/ephemeral)
54
+
55
+ **Serialization**
56
+
57
+ - `Scene.serialize` / `deserialize` captures scene structure — nodes, drawables, UI, tilemap
58
+ - `SerializationRegistry` and `Prefab` for templates; pairs with any `KeyValueStore` for save-slot persistence
59
+
60
+ **Architecture**
61
+
62
+ - `noUncheckedIndexedAccess` + `exactOptionalPropertyTypes` across the full codebase — zero `as any`, zero `ts-ignore`
63
+ - Ordered `SystemRegistry` (`app.systems`, `scene.systems`) with deterministic tick bands
64
+ - Deterministic disposal via `Destroyable` / `DisposalScope`; all managers are app-owned, not process singletons
40
65
 
41
66
  ## Getting Started
42
67
 
@@ -68,20 +93,25 @@ npm run dev
68
93
  npm install @codexo/exojs
69
94
  ```
70
95
 
71
- ExoJS publishes an ESM-first package shape. Use `import` syntax with modern bundlers/runtime tooling.
72
- CommonJS `require()` usage is not part of the supported contract for this pre-1.0 line.
96
+ ExoJS is ESM-only. Use `import` syntax with a modern bundler or runtime.
97
+ Optional packages install independently add only what your project needs:
98
+
99
+ ```bash
100
+ npm install @codexo/exojs-physics
101
+ npm install @codexo/exojs-particles
102
+ npm install @codexo/exojs-tilemap @codexo/exojs-tiled
103
+ npm install @codexo/exojs-audio-fx
104
+ ```
73
105
 
74
106
  ## Quickstart
75
107
 
76
108
  ```ts
77
- import { Application, Scene, Graphics, Color, type RenderingContext, type Time } from '@codexo/exojs';
109
+ import { Application, Scene, Graphics, Color, Loader, type RenderingContext, type Time } from '@codexo/exojs';
78
110
 
79
111
  class HelloScene extends Scene {
80
112
  private readonly box = new Graphics();
81
113
 
82
- public constructor() {
83
- super();
84
-
114
+ public override init(loader: Loader): void {
85
115
  this.box.fillColor = Color.white;
86
116
  this.box.drawRectangle(-32, -32, 64, 64);
87
117
  this.box.setPosition(400, 300);
@@ -99,47 +129,41 @@ class HelloScene extends Scene {
99
129
  }
100
130
  }
101
131
 
102
- const canvas = document.querySelector('canvas');
103
-
104
- if (!canvas) {
105
- throw new Error('Missing <canvas> element.');
106
- }
107
-
108
132
  const app = new Application({
109
- canvas: {
110
- element: canvas,
111
- width: 800,
112
- height: 600,
113
- },
133
+ canvas: { element: document.querySelector('canvas')!, width: 800, height: 600 },
114
134
  clearColor: Color.cornflowerBlue,
115
135
  });
116
136
 
117
137
  await app.start(new HelloScene());
118
138
  ```
119
139
 
120
- ## Next Steps
140
+ See the [Guide](https://exoridus.github.io/ExoJS/en/guide/) for physics, audio, UI, and more, or browse the [live examples](https://exoridus.github.io/ExoJS/).
121
141
 
122
- - In-repo examples: [examples/README.md](examples/README.md)
142
+ ## Roadmap
123
143
 
124
- ## WebGPU and WebGL2
144
+ Directional work toward the `1.0.0` API freeze. Priorities may shift — nothing here is a release commitment.
125
145
 
126
- `Application` defaults to backend auto-selection:
146
+ - Physics joints, sleeping, and CCD (ragdolls, vehicles, ropes, fast projectiles)
147
+ - W3C blend mode suite — multiply, screen, overlay, and the full non-separable set
148
+ - Additional scene transitions (slide, crossfade, custom)
149
+ - Screen-level post-processing (bloom, CRT, vignette, chromatic aberration)
150
+ - Path following with Bézier and Catmull-Rom splines
151
+ - Tween sequencer and coroutine helpers
152
+ - Aseprite and LDtk first-party adapters
153
+ - CDN/IIFE bundle for script-tag usage
154
+ - Localization primitive
155
+ - Final pre-1.0 API audit and stabilization pass
127
156
 
128
- - prefers WebGPU when available
129
- - falls back to WebGL2 if WebGPU is unavailable or initialization fails
157
+ ## WebGPU and WebGL2
130
158
 
131
- You can force backend selection when needed:
159
+ `Application` auto-selects the best available backend. Force one when needed:
132
160
 
133
161
  ```ts
134
162
  new Application({ backend: { type: 'webgpu' } });
135
163
  new Application({ backend: { type: 'webgl2' } });
136
- new Application({ backend: { type: 'auto' } });
164
+ new Application({ backend: { type: 'auto' } }); // default
137
165
  ```
138
166
 
139
- ## Examples
140
-
141
- The runnable live site (Astro + Lit + Monaco preview) lives in [`examples/`](examples/README.md) and is deployed as the repository's GitHub Pages site at <https://exoridus.github.io/ExoJS/>.
142
-
143
167
  ## Development
144
168
 
145
169
  ```bash
@@ -151,16 +175,9 @@ pnpm build
151
175
  pnpm verify:package
152
176
  ```
153
177
 
154
- Package-internal imports use Node `package.json#imports` subpath imports: `./X` for the
155
- same directory, `#dir/X` for any other path in the same package, and the public bare
156
- specifier (`@codexo/exojs`) across packages. See [CONTRIBUTING.md](./CONTRIBUTING.md)
157
- for the full import policy, per-package commands, and the shared `@codexo/exojs-config`
158
- tooling. Building the library requires TypeScript 6.
178
+ Package-internal imports use Node `package.json#imports` subpath imports: `./X` for the same directory, `#dir/X` for any other path in the same package, and the public bare specifier (`@codexo/exojs`) across packages. See [CONTRIBUTING.md](./CONTRIBUTING.md) for the full import policy, per-package commands, and the shared `@codexo/exojs-config` tooling. Building the library requires TypeScript 6.
159
179
 
160
- ### Workspace Commands
161
-
162
- This repository uses pnpm workspaces (`site/` is a workspace package).
163
- Use root-level commands as the source of truth:
180
+ This repository uses pnpm workspaces (`site/` is a workspace package). Use root-level commands as the source of truth — avoid running `pnpm install` inside `site/` directly:
164
181
 
165
182
  ```bash
166
183
  pnpm bootstrap
@@ -168,8 +185,6 @@ pnpm site:build
168
185
  pnpm site:build:api
169
186
  ```
170
187
 
171
- Avoid running `pnpm install` inside `site/` directly to prevent lockfile drift.
172
-
173
188
  ## Links
174
189
 
175
190
  - Repository: <https://github.com/Exoridus/ExoJS>
@@ -1 +1 @@
1
- {"version":3,"file":"Tween.d.ts","sourceRoot":"","sources":["../../../src/animation/Tween.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,KAAK,WAAW,CAAC,CAAC,IAAI;KACnB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK;CAC/D,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAI;IAC5B,OAAO,CAAC,MAAM,CAA+B;IAE7C,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAA+B;IAE9C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,aAAa,CAAK;IAE1B;;;OAGG;IACH,OAAO,CAAC,YAAY,CAAK;IACzB,iEAAiE;IACjE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,6DAA6D;IAC7D,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,SAAS,CAAuC;IAExD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAA6B;IAE7C,8DAA8D;IAC9D,OAAO,CAAC,WAAW,CAAS;gBAET,MAAM,EAAE,CAAC;IAI5B,IAAW,MAAM,IAAI,CAAC,CAErB;IAED,IAAW,KAAK,IAAI,UAAU,CAE7B;IAED;;;;;;OAMG;IACH,IAAW,QAAQ,IAAI,MAAM,CAM5B;IAED;;;;;;;;OAQG;IACI,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQtF,yEAAyE;IAClE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMnC,2EAA2E;IACpE,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAMnD;;;;;;;;;;;;;;OAcG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC;;;OAGG;IACI,IAAI,CAAC,OAAO,UAAO,GAAG,IAAI;IAMjC;;;;OAIG;IACI,OAAO,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMtD;;;OAGG;IACI,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAMpD;;;;OAIG;IACI,UAAU,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMzD;;;;;OAKG;IACI,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAMvD;;;;;;;;OAQG;IACI,KAAK,IAAI,IAAI;IAapB,gEAAgE;IACzD,KAAK,IAAI,IAAI;IAQpB,oDAAoD;IAC7C,MAAM,IAAI,IAAI;IAQrB;;;;OAIG;IACI,IAAI,IAAI,IAAI;IASnB;;;;;OAKG;IACI,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK;IAMhC;;;;OAIG;IACI,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIlD;;;OAGG;IACI,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAoEzC,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,SAAS;CAYlB"}
1
+ {"version":3,"file":"Tween.d.ts","sourceRoot":"","sources":["../../../src/animation/Tween.ts"],"names":[],"mappings":"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"}
@@ -299,7 +299,6 @@ class Tween {
299
299
  for (const key of keys) {
300
300
  const val = this._target[key];
301
301
  if (typeof val !== 'number') {
302
- console.warn(`Tween: property "${String(key)}" is not a number on target ` + `(got ${typeof val}). It will be skipped.`);
303
302
  continue;
304
303
  }
305
304
  snap[String(key)] = val;
@@ -317,7 +316,7 @@ class Tween {
317
316
  for (const key of keys) {
318
317
  const start = this._startValues[key];
319
318
  const end = properties[key];
320
- if (end === undefined)
319
+ if (start === undefined || end === undefined)
321
320
  continue;
322
321
  this._target[key] = start + (end - start) * easedT;
323
322
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tween.js","sources":["../../../../src/animation/Tween.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tween.js","sources":["../../../../src/animation/Tween.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;MACU,KAAK,CAAA;AACC,IAAA,OAAO;AAChB,IAAA,MAAM,GAAe,UAAU,CAAC,IAAI;IAEpC,WAAW,GAA4C,EAAE;IACzD,YAAY,GAAkC,IAAI;IAClD,SAAS,GAAG,CAAC;IACb,MAAM,GAAG,CAAC;AACV,IAAA,OAAO,GAAmB,IAAI,CAAC,MAAM;IAErC,QAAQ,GAAG,CAAC;IACZ,aAAa,GAAG,CAAC;AAEzB;;;AAGG;IACK,YAAY,GAAG,CAAC;;IAEhB,YAAY,GAAG,CAAC;IAChB,KAAK,GAAG,KAAK;;IAEb,UAAU,GAAW,CAAC;IAEtB,QAAQ,GAAkC,IAAI;IAC9C,SAAS,GAA+B,IAAI;IAC5C,WAAW,GAAkC,IAAI;IACjD,SAAS,GAAkC,IAAI;IAE/C,QAAQ,GAAiB,IAAI;IAC7B,QAAQ,GAAwB,IAAI;;IAGpC,WAAW,GAAG,KAAK;AAE3B,IAAA,WAAA,CAAmB,MAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;IACvB;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC;AAClC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACxD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI;AAEjD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACxB;AAEA;;;;;;;;AAQG;IACI,EAAE,CAAC,UAAmD,EAAE,QAAgB,EAAA;AAC7E,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,UAAU,EAAE;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAExB,QAAA,OAAO,IAAI;IACb;;AAGO,IAAA,KAAK,CAAC,OAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO;AAErB,QAAA,OAAO,IAAI;IACb;;AAGO,IAAA,MAAM,CAAC,cAA8B,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,cAAc;AAE7B,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;;;;;;;;;AAcG;AACI,IAAA,MAAM,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAEzB,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO;AAEpB,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACI,IAAA,OAAO,CAAC,QAAgC,EAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAExB,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;AACI,IAAA,QAAQ,CAAC,QAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AAEzB,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACI,IAAA,UAAU,CAAC,QAAgC,EAAA;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ;AAE3B,QAAA,OAAO,IAAI;IACb;AAEA;;;;;AAKG;AACI,IAAA,QAAQ,CAAC,QAAgC,EAAA;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AAEzB,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;;;AAQG;IACI,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;AACrC,QAAA,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC;AAExB,QAAA,OAAO,IAAI;IACb;;IAGO,KAAK,GAAA;QACV,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;QACjC;AAEA,QAAA,OAAO,IAAI;IACb;;IAGO,MAAM,GAAA;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;QACjC;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,IAAI,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;AAC1E,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO;AAChC,YAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;QAC7B;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;;AAKG;AACI,IAAA,KAAK,CAAC,IAAW,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AAEpB,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACI,IAAA,cAAc,CAAC,OAAqB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;IACzB;AAEA;;;AAGG;AACI,IAAA,MAAM,CAAC,YAAoB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;YAAE;;QAGvC,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,aAAa,IAAI,YAAY;AAElC,YAAA,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM;gBAAE;;YAGtC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM;AACjD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM;YAChC,YAAY,GAAG,QAAQ;QACzB;;AAGA,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC,mBAAmB,EAAE;QAC5B;;AAGA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,YAAA,IAAI,CAAC,QAAQ,IAAI;QACnB;AAEA,QAAA,IAAI,CAAC,QAAQ,IAAI,YAAY;;QAG7B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;QAChC;;QAGA,IAAI,CAAC,cAAc,EAAE;QAErB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;;AAEnC,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC;YAExE,IAAI,cAAc,EAAE;;AAElB,gBAAA,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE;oBAC5B,IAAI,CAAC,YAAY,EAAE;gBACrB;AAEA,gBAAA,IAAI,CAAC,SAAS,IAAI;;AAGlB,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;gBAClD;;gBAGA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;gBAC/C,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;AAGrE,gBAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;oBAChB,IAAI,CAAC,cAAc,EAAE;gBACvB;YACF;iBAAO;;gBAEL,IAAI,CAAC,SAAS,EAAE;YAClB;QACF;IACF;IAEQ,mBAAmB,GAAA;QACzB,MAAM,IAAI,GAA2B,EAAE;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAmB;AAE5D,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAE7B,YAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBAK3B;YACF;YAEA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;QACzB;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;IAC1B;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;YAAE;AAEhC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACnF,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAA8C;AAEtE,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AACpC,YAAA,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;AAC3B,YAAA,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;gBAAE;AAC7C,YAAA,IAAI,CAAC,OAAmC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,MAAM;QACjF;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAC1B;IAEQ,SAAS,GAAA;;AAEf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;QAC9B,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ;AACjC,QAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,IAAI;;AAGpB,QAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;IACxB;AACD;;;;"}