@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
@@ -3,12 +3,13 @@ import { CollisionType } from '#math/Collision';
3
3
  import { Flags } from '#math/Flags';
4
4
  import { Interval } from '#math/Interval';
5
5
  import { Matrix } from '#math/Matrix';
6
- import { ObservableVector } from '#math/ObservableVector';
6
+ import { ObservableVector, type ObservableVectorOwner } from '#math/ObservableVector';
7
7
  import { Rectangle } from '#math/Rectangle';
8
- import type { Vector } from '#math/Vector';
8
+ import { Vector } from '#math/Vector';
9
9
  import type { Container } from '#rendering/Container';
10
10
  import type { View } from '#rendering/View';
11
11
  import { Bounds } from './Bounds';
12
+ import type { Stage } from './Stage';
12
13
  declare enum SceneNodeTransformFlags {
13
14
  None = 0,
14
15
  Translation = 1,
@@ -34,10 +35,10 @@ declare enum SceneNodeTransformFlags {
34
35
  * for this node and every {@link Container} ancestor up the parent chain.
35
36
  * The caches rebuild lazily on the next read.
36
37
  *
37
- * The fast-path `isAlignedBox` getter reports `true` when the rotation is a
38
- * multiple of 90° and both skew components are zero; in that case the
39
- * (cheaper) AABB-based collision test is used instead of the rotated/skewed
40
- * quad SAT path.
38
+ * Collision and hit-testing take the cheaper AABB path when the node's *world*
39
+ * box is axis-aligned (its own and any inherited rotation compose to a multiple
40
+ * of 90° with no skew) and the oriented-quad SAT path otherwise. The public
41
+ * `isAlignedBox` getter reports that predicate for this node's own rotation only.
41
42
  *
42
43
  * `_invalidate*` methods are exported as `public` for friend-class access
43
44
  * from {@link Container} and {@link InteractionManager}; treat them as
@@ -46,7 +47,7 @@ declare enum SceneNodeTransformFlags {
46
47
  * Subclasses: {@link Container} (carries children), {@link RenderNode}
47
48
  * (carries draw payloads).
48
49
  */
49
- export declare class SceneNode implements Collidable {
50
+ export declare class SceneNode implements Collidable, ObservableVectorOwner {
50
51
  readonly collisionType: CollisionType;
51
52
  readonly flags: Flags<SceneNodeTransformFlags>;
52
53
  protected _bounds: Bounds;
@@ -59,6 +60,8 @@ export declare class SceneNode implements Collidable {
59
60
  protected _skewY: number;
60
61
  protected _sin: number;
61
62
  protected _cos: number;
63
+ /** Per-Application service bundle, propagated on attach. @internal */
64
+ protected _stage: Stage | null;
62
65
  private _visible;
63
66
  private _globalTransform;
64
67
  private _localBounds;
@@ -66,6 +69,17 @@ export declare class SceneNode implements Collidable {
66
69
  private _parentNode;
67
70
  private _zIndex;
68
71
  private _cullable;
72
+ private _cullArea;
73
+ /** Lazily-built oriented bounding box (the local bounds under the global transform) for rotated-node SAT. */
74
+ private _orientedBounds;
75
+ /**
76
+ * Optional human-readable identity for this node. Defaults to `null`.
77
+ *
78
+ * Purely a label the engine never interprets: useful for debugging,
79
+ * find-by-name lookups, prefab references, and as a stable key when merging
80
+ * serialized state back onto an existing tree. Not required to be unique.
81
+ */
82
+ name: string | null;
69
83
  get position(): ObservableVector;
70
84
  set position(position: ObservableVector);
71
85
  get x(): number;
@@ -93,8 +107,19 @@ export declare class SceneNode implements Collidable {
93
107
  set visible(visible: boolean);
94
108
  get zIndex(): number;
95
109
  set zIndex(zIndex: number);
110
+ /**
111
+ * When `false`, this node is never culled by the viewport check and is
112
+ * always considered in-view. Defaults to `true`.
113
+ */
96
114
  get cullable(): boolean;
97
115
  set cullable(cullable: boolean);
116
+ /**
117
+ * Custom rectangle used for viewport cull intersection test.
118
+ * When set, replaces the default node bounds in cull checks.
119
+ * Set to `null` to restore default bounds-based culling.
120
+ */
121
+ get cullArea(): Rectangle | null;
122
+ set cullArea(rect: Rectangle | null);
98
123
  /**
99
124
  * Horizontal skew angle in degrees. Shears the node along the X axis
100
125
  * (positive values lean the top edge right). Combines correctly with
@@ -127,11 +152,57 @@ export declare class SceneNode implements Collidable {
127
152
  getGlobalTransform(): Matrix;
128
153
  getNormals(): Vector[];
129
154
  project(axis: Vector, result?: Interval): Interval;
155
+ /**
156
+ * The node's oriented bounding box: the four local-bounds corners under the
157
+ * global transform, as a {@link Polygon}. Used by the SAT collision path so a
158
+ * rotated node tests its true oriented axes instead of the loose AABB. Built
159
+ * lazily and refreshed in place; only ever reached for non-axis-aligned nodes.
160
+ */
161
+ private _orientedBoundsPolygon;
162
+ /**
163
+ * Whether the node's *world* box is axis-aligned — its own and every inherited
164
+ * rotation/skew compose to a transform that maps axes to axes (a multiple of
165
+ * 90°, no shear). When true the AABB equals the oriented box, so the cheaper
166
+ * AABB collision/hit-test path is exact; otherwise the oriented-quad SAT path
167
+ * is used. Unlike {@link isAlignedBox} (this node's own rotation only), this
168
+ * accounts for a rotated ancestor.
169
+ */
170
+ private _isWorldAligned;
130
171
  intersectsWith(target: Collidable): boolean;
131
172
  collidesWith(target: Collidable): CollisionResponse | null;
173
+ /**
174
+ * Hit-test the world-space point `(x, y)` against this node.
175
+ *
176
+ * For world-axis-aligned nodes (own and inherited rotation a multiple of 90°
177
+ * and no skew) the AABB equals the oriented box, so the cheap
178
+ * {@link getBounds} test is exact. For rotated or skewed nodes the point is
179
+ * mapped back into local space with the inverse of the global transform and
180
+ * tested against the untransformed {@link getLocalBounds} — i.e. a true
181
+ * oriented-box test. This is the exact inverse of the forward map that
182
+ * {@link getBounds} and the renderer use to place the node's corners, so
183
+ * picking matches the rendered quad instead of over-reporting hits in the
184
+ * empty AABB corners of a rotated node.
185
+ */
132
186
  contains(x: number, y: number): boolean;
133
187
  inView(view: View): boolean;
134
188
  destroy(): void;
189
+ /**
190
+ * Set this node's owning {@link Stage} (the per-Application service bundle).
191
+ * Set when the node is attached to an active scene tree and cleared on
192
+ * detach. {@link Container} overrides this to propagate to its children.
193
+ * @internal
194
+ */
195
+ _setStage(stage: Stage | null): void;
196
+ /** @internal — the owning {@link Stage}, or `null` when this node is detached. */
197
+ _getStage(): Stage | null;
198
+ /**
199
+ * Routes a change from one of this node's reactive {@link ObservableVector}
200
+ * components (position/scale/origin/anchor) to the matching dirty path. The
201
+ * vectors carry only a numeric channel, so this single handler replaces the
202
+ * four bound closures they used to allocate per node.
203
+ * @internal
204
+ */
205
+ _onObservableChange(channel: number): void;
135
206
  /** Mark own + all descendants' GlobalTransform + Bounds dirty. */
136
207
  _invalidateSubtreeTransform(): void;
137
208
  /** Hook for Container to override. Default: no-op (leaf node has no children). */
@@ -1 +1 @@
1
- {"version":3,"file":"SceneNode.d.ts","sourceRoot":"","sources":["../../../src/core/SceneNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SceneNode.d.ts","sourceRoot":"","sources":["../../../src/core/SceneNode.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { getActiveInteractionManager } from '../input/internal/interactionManagerRegistry.js';
2
1
  import { CollisionType } from '../math/Collision.js';
3
2
  import { intersectionPointRect, intersectionLineRect, intersectionRectEllipse, intersectionRectCircle, intersectionSat, getCollisionSat } from '../math/collision-detection.js';
4
3
  import { Flags } from '../math/Flags.js';
5
4
  import { Interval } from '../math/Interval.js';
6
5
  import { Matrix } from '../math/Matrix.js';
7
6
  import { ObservableVector } from '../math/ObservableVector.js';
7
+ import { Polygon } from '../math/Polygon.js';
8
8
  import { Rectangle } from '../math/Rectangle.js';
9
9
  import { degreesToRadians, trimRotation } from '../math/utils.js';
10
+ import { Vector } from '../math/Vector.js';
10
11
  import { Bounds } from './Bounds.js';
11
12
 
12
13
  // Internal: dirty-flag bits used by SceneNode's transform cache.
@@ -26,6 +27,18 @@ var SceneNodeTransformFlags;
26
27
  SceneNodeTransformFlags[SceneNodeTransformFlags["GlobalTransform"] = 256] = "GlobalTransform";
27
28
  SceneNodeTransformFlags[SceneNodeTransformFlags["BoundsRect"] = 512] = "BoundsRect";
28
29
  })(SceneNodeTransformFlags || (SceneNodeTransformFlags = {}));
30
+ // Internal: which reactive vector fired a change, so the single
31
+ // `_onObservableChange` handler can route to the right dirty path without each
32
+ // vector carrying a bound closure (4 fewer allocations per node).
33
+ var SceneNodeVectorChannel;
34
+ (function (SceneNodeVectorChannel) {
35
+ SceneNodeVectorChannel[SceneNodeVectorChannel["Position"] = 0] = "Position";
36
+ SceneNodeVectorChannel[SceneNodeVectorChannel["Scale"] = 1] = "Scale";
37
+ SceneNodeVectorChannel[SceneNodeVectorChannel["Origin"] = 2] = "Origin";
38
+ SceneNodeVectorChannel[SceneNodeVectorChannel["Anchor"] = 3] = "Anchor";
39
+ })(SceneNodeVectorChannel || (SceneNodeVectorChannel = {}));
40
+ /** Shared scratch for the four oriented corners — written then copied into a node's polygon (single-threaded). */
41
+ const orientedCorners = [new Vector(), new Vector(), new Vector(), new Vector()];
29
42
  /**
30
43
  * Transform-bearing leaf in the scene-graph hierarchy. Carries position,
31
44
  * rotation, scale, skew, origin, and a 2-component {@link Vector} `anchor`
@@ -39,10 +52,10 @@ var SceneNodeTransformFlags;
39
52
  * for this node and every {@link Container} ancestor up the parent chain.
40
53
  * The caches rebuild lazily on the next read.
41
54
  *
42
- * The fast-path `isAlignedBox` getter reports `true` when the rotation is a
43
- * multiple of 90° and both skew components are zero; in that case the
44
- * (cheaper) AABB-based collision test is used instead of the rotated/skewed
45
- * quad SAT path.
55
+ * Collision and hit-testing take the cheaper AABB path when the node's *world*
56
+ * box is axis-aligned (its own and any inherited rotation compose to a multiple
57
+ * of 90° with no skew) and the oriented-quad SAT path otherwise. The public
58
+ * `isAlignedBox` getter reports that predicate for this node's own rotation only.
46
59
  *
47
60
  * `_invalidate*` methods are exported as `public` for friend-class access
48
61
  * from {@link Container} and {@link InteractionManager}; treat them as
@@ -56,21 +69,34 @@ class SceneNode {
56
69
  flags = new Flags(SceneNodeTransformFlags.Transform | SceneNodeTransformFlags.GlobalTransform | SceneNodeTransformFlags.BoundsRect);
57
70
  _bounds = new Bounds();
58
71
  _transform = new Matrix();
59
- _position = new ObservableVector(this._setPositionDirty.bind(this), 0, 0);
60
- _scale = new ObservableVector(this._setScalingDirty.bind(this), 1, 1);
61
- _origin = new ObservableVector(this._setOriginDirty.bind(this), 0, 0);
72
+ _position = new ObservableVector(this, SceneNodeVectorChannel.Position, 0, 0);
73
+ _scale = new ObservableVector(this, SceneNodeVectorChannel.Scale, 1, 1);
74
+ _origin = new ObservableVector(this, SceneNodeVectorChannel.Origin, 0, 0);
62
75
  _rotation = 0;
63
76
  _skewX = 0;
64
77
  _skewY = 0;
65
78
  _sin = 0;
66
79
  _cos = 1;
80
+ /** Per-Application service bundle, propagated on attach. @internal */
81
+ _stage = null;
67
82
  _visible = true;
68
83
  _globalTransform = new Matrix();
69
84
  _localBounds = new Rectangle();
70
- _anchor = new ObservableVector(this._updateOrigin.bind(this), 0, 0);
85
+ _anchor = new ObservableVector(this, SceneNodeVectorChannel.Anchor, 0, 0);
71
86
  _parentNode = null;
72
87
  _zIndex = 0;
73
88
  _cullable = true;
89
+ _cullArea = null;
90
+ /** Lazily-built oriented bounding box (the local bounds under the global transform) for rotated-node SAT. */
91
+ _orientedBounds = null;
92
+ /**
93
+ * Optional human-readable identity for this node. Defaults to `null`.
94
+ *
95
+ * Purely a label the engine never interprets: useful for debugging,
96
+ * find-by-name lookups, prefab references, and as a stable key when merging
97
+ * serialized state back onto an existing tree. Not required to be unique.
98
+ */
99
+ name = null;
74
100
  get position() {
75
101
  return this._position;
76
102
  }
@@ -140,12 +166,27 @@ class SceneNode {
140
166
  this._zIndex = zIndex;
141
167
  }
142
168
  }
169
+ /**
170
+ * When `false`, this node is never culled by the viewport check and is
171
+ * always considered in-view. Defaults to `true`.
172
+ */
143
173
  get cullable() {
144
174
  return this._cullable;
145
175
  }
146
176
  set cullable(cullable) {
147
177
  this._cullable = cullable;
148
178
  }
179
+ /**
180
+ * Custom rectangle used for viewport cull intersection test.
181
+ * When set, replaces the default node bounds in cull checks.
182
+ * Set to `null` to restore default bounds-based culling.
183
+ */
184
+ get cullArea() {
185
+ return this._cullArea;
186
+ }
187
+ set cullArea(rect) {
188
+ this._cullArea = rect;
189
+ }
149
190
  /**
150
191
  * Horizontal skew angle in degrees. Shears the node along the X axis
151
192
  * (positive values lean the top edge right). Combines correctly with
@@ -285,13 +326,41 @@ class SceneNode {
285
326
  return this._globalTransform;
286
327
  }
287
328
  getNormals() {
288
- return this.getBounds().getNormals();
329
+ return this._isWorldAligned() ? this.getBounds().getNormals() : this._orientedBoundsPolygon().getNormals();
289
330
  }
290
331
  project(axis, result = new Interval()) {
291
- return this.getBounds().project(axis, result);
332
+ return this._isWorldAligned() ? this.getBounds().project(axis, result) : this._orientedBoundsPolygon().project(axis, result);
333
+ }
334
+ /**
335
+ * The node's oriented bounding box: the four local-bounds corners under the
336
+ * global transform, as a {@link Polygon}. Used by the SAT collision path so a
337
+ * rotated node tests its true oriented axes instead of the loose AABB. Built
338
+ * lazily and refreshed in place; only ever reached for non-axis-aligned nodes.
339
+ */
340
+ _orientedBoundsPolygon() {
341
+ const bounds = this.getLocalBounds();
342
+ const matrix = this.getGlobalTransform();
343
+ orientedCorners[0].set(bounds.left, bounds.top).transform(matrix);
344
+ orientedCorners[1].set(bounds.right, bounds.top).transform(matrix);
345
+ orientedCorners[2].set(bounds.right, bounds.bottom).transform(matrix);
346
+ orientedCorners[3].set(bounds.left, bounds.bottom).transform(matrix);
347
+ return (this._orientedBounds ??= new Polygon()).setPoints(orientedCorners);
348
+ }
349
+ /**
350
+ * Whether the node's *world* box is axis-aligned — its own and every inherited
351
+ * rotation/skew compose to a transform that maps axes to axes (a multiple of
352
+ * 90°, no shear). When true the AABB equals the oriented box, so the cheaper
353
+ * AABB collision/hit-test path is exact; otherwise the oriented-quad SAT path
354
+ * is used. Unlike {@link isAlignedBox} (this node's own rotation only), this
355
+ * accounts for a rotated ancestor.
356
+ */
357
+ _isWorldAligned() {
358
+ const matrix = this.getGlobalTransform();
359
+ const epsilon = 1e-9;
360
+ return (Math.abs(matrix.b) < epsilon && Math.abs(matrix.c) < epsilon) || (Math.abs(matrix.a) < epsilon && Math.abs(matrix.d) < epsilon);
292
361
  }
293
362
  intersectsWith(target) {
294
- if (this.isAlignedBox) {
363
+ if (this._isWorldAligned()) {
295
364
  return this.getBounds().intersectsWith(target);
296
365
  }
297
366
  switch (target.collisionType) {
@@ -314,7 +383,7 @@ class SceneNode {
314
383
  }
315
384
  }
316
385
  collidesWith(target) {
317
- if (this.isAlignedBox) {
386
+ if (this._isWorldAligned()) {
318
387
  return this.getBounds().collidesWith(target);
319
388
  }
320
389
  switch (target.collisionType) {
@@ -330,14 +399,43 @@ class SceneNode {
330
399
  return null;
331
400
  }
332
401
  }
402
+ /**
403
+ * Hit-test the world-space point `(x, y)` against this node.
404
+ *
405
+ * For world-axis-aligned nodes (own and inherited rotation a multiple of 90°
406
+ * and no skew) the AABB equals the oriented box, so the cheap
407
+ * {@link getBounds} test is exact. For rotated or skewed nodes the point is
408
+ * mapped back into local space with the inverse of the global transform and
409
+ * tested against the untransformed {@link getLocalBounds} — i.e. a true
410
+ * oriented-box test. This is the exact inverse of the forward map that
411
+ * {@link getBounds} and the renderer use to place the node's corners, so
412
+ * picking matches the rendered quad instead of over-reporting hits in the
413
+ * empty AABB corners of a rotated node.
414
+ */
333
415
  contains(x, y) {
334
- return this.getBounds().contains(x, y);
416
+ if (this._isWorldAligned()) {
417
+ return this.getBounds().contains(x, y);
418
+ }
419
+ const matrix = this.getGlobalTransform();
420
+ const determinant = matrix.a * matrix.d - matrix.b * matrix.c;
421
+ if (determinant === 0) {
422
+ return false;
423
+ }
424
+ // Inverse of the forward map `world = [[a, b], [c, d]] · local + (x, y)`
425
+ // (AbstractVector.transform — the same map getBounds()/Sprite vertices use).
426
+ // Recovers the local-space coordinate, then tests the untransformed bounds.
427
+ const deltaX = x - matrix.x;
428
+ const deltaY = y - matrix.y;
429
+ const localX = (matrix.d * deltaX - matrix.b * deltaY) / determinant;
430
+ const localY = (matrix.a * deltaY - matrix.c * deltaX) / determinant;
431
+ return this.getLocalBounds().contains(localX, localY);
335
432
  }
336
433
  inView(view) {
337
434
  if (!this._cullable) {
338
435
  return true;
339
436
  }
340
- return view.getBounds().intersectsWith(this.getBounds());
437
+ const bounds = this._cullArea ?? this.getBounds();
438
+ return view.getBounds().intersectsWith(bounds);
341
439
  }
342
440
  destroy() {
343
441
  this._transform.destroy();
@@ -349,6 +447,43 @@ class SceneNode {
349
447
  this._localBounds.destroy();
350
448
  this._bounds.destroy();
351
449
  this._anchor.destroy();
450
+ this._orientedBounds?.destroy();
451
+ }
452
+ /**
453
+ * Set this node's owning {@link Stage} (the per-Application service bundle).
454
+ * Set when the node is attached to an active scene tree and cleared on
455
+ * detach. {@link Container} overrides this to propagate to its children.
456
+ * @internal
457
+ */
458
+ _setStage(stage) {
459
+ this._stage = stage;
460
+ }
461
+ /** @internal — the owning {@link Stage}, or `null` when this node is detached. */
462
+ _getStage() {
463
+ return this._stage;
464
+ }
465
+ /**
466
+ * Routes a change from one of this node's reactive {@link ObservableVector}
467
+ * components (position/scale/origin/anchor) to the matching dirty path. The
468
+ * vectors carry only a numeric channel, so this single handler replaces the
469
+ * four bound closures they used to allocate per node.
470
+ * @internal
471
+ */
472
+ _onObservableChange(channel) {
473
+ switch (channel) {
474
+ case SceneNodeVectorChannel.Position:
475
+ this._setPositionDirty();
476
+ break;
477
+ case SceneNodeVectorChannel.Scale:
478
+ this._setScalingDirty();
479
+ break;
480
+ case SceneNodeVectorChannel.Origin:
481
+ this._setOriginDirty();
482
+ break;
483
+ case SceneNodeVectorChannel.Anchor:
484
+ this._updateOrigin();
485
+ break;
486
+ }
352
487
  }
353
488
  /** Mark own + all descendants' GlobalTransform + Bounds dirty. */
354
489
  _invalidateSubtreeTransform() {
@@ -361,13 +496,19 @@ class SceneNode {
361
496
  }
362
497
  /** Mark own Bounds dirty AND propagate up to Container ancestors' Bounds. */
363
498
  _invalidateBoundsCascade() {
499
+ // Mark own bounds + notify interaction for THIS node unconditionally —
500
+ // the manager filters to tracked interactive nodes so this call is O(1)
501
+ // for the common case (non-interactive node — fast Set.has miss).
364
502
  this.flags.push(SceneNodeTransformFlags.BoundsRect);
365
- // Notify the InteractionManager so it can mark the quadtree entry stale.
366
- // The manager filters to only tracked interactive nodes so this call is
367
- // O(1) for the common case (non-interactive node fast Set.has miss).
368
- getActiveInteractionManager()?._notifyBoundsInvalidated(this);
369
- if (this._parentNode) {
370
- this._parentNode._invalidateBoundsCascade();
503
+ this._stage?.interaction._notifyBoundsInvalidated(this);
504
+ // Walk up, but stop at the first ancestor already flagged dirty: if a parent
505
+ // is already BoundsRect-dirty, its whole ancestor chain was already cascaded,
506
+ // so re-walking it is redundant work.
507
+ let ancestor = this._parentNode;
508
+ while (ancestor !== null && !ancestor.flags.has(SceneNodeTransformFlags.BoundsRect)) {
509
+ ancestor.flags.push(SceneNodeTransformFlags.BoundsRect);
510
+ ancestor._stage?.interaction._notifyBoundsInvalidated(ancestor);
511
+ ancestor = ancestor.parent;
371
512
  }
372
513
  }
373
514
  _setPositionDirty() {
@@ -1 +1 @@
1
- {"version":3,"file":"SceneNode.js","sources":["../../../../src/core/SceneNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SceneNode.js","sources":["../../../../src/core/SceneNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Signal.js","sources":["../../../../src/core/Signal.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Signal.js","sources":["../../../../src/core/Signal.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { RenderNode } from '#rendering/RenderNode';
2
+ import type { Application } from './Application';
3
+ /**
4
+ * Friend-class hooks a scene node uses to notify its owning interaction service
5
+ * of lifecycle and bounds changes. Implemented by `InteractionManager`. Kept on
6
+ * the {@link Stage} so a node never needs a direct reference to the manager.
7
+ */
8
+ export interface InteractionHooks {
9
+ _notifyNodeAdded(node: RenderNode): void;
10
+ _notifyNodeRemoved(node: RenderNode): void;
11
+ _notifyInteractiveChanged(node: RenderNode, becameInteractive: boolean): void;
12
+ _notifyBoundsInvalidated(node: RenderNode): void;
13
+ }
14
+ /**
15
+ * Friend-class hooks a scene node uses to reach its owning keyboard-focus
16
+ * service. Implemented by `FocusManager`. Kept on the {@link Stage} so a node
17
+ * never needs a direct reference to the manager.
18
+ */
19
+ export interface FocusHooks {
20
+ /** The node that currently holds keyboard focus, or `null`. */
21
+ readonly focused: RenderNode | null;
22
+ /** Move keyboard focus to `node` (a no-op when `node.focusable` is `false`). */
23
+ focus(node: RenderNode): void;
24
+ /** Clear focus, or only clear it when `node` currently holds it. */
25
+ blur(node?: RenderNode): void;
26
+ /** @internal — drop focus when a focused node (or an ancestor) leaves the tree. */
27
+ _notifyNodeRemoved(node: RenderNode): void;
28
+ }
29
+ /**
30
+ * Per-Application service bundle that scene nodes reach through their owning
31
+ * tree — set on attach via `SceneNode._setStage` and cleared on detach.
32
+ *
33
+ * Replaces the former process-global active-manager singleton: each Application
34
+ * owns its own stage, so multiple Applications coexist on one page without
35
+ * cross-talk (a node always routes to *its* app's services). The interface is
36
+ * intentionally a bundle so additional app-scoped services (UI/focus, …) can be
37
+ * added without rewiring node ownership.
38
+ */
39
+ export interface Stage {
40
+ readonly interaction: InteractionHooks;
41
+ readonly focus: FocusHooks;
42
+ /**
43
+ * The owning {@link Application}. Present in all production stages created by
44
+ * {@link InteractionManager}; may be absent in lightweight test stubs (hence
45
+ * optional). Widgets that need input access should use `this._stage?.app`.
46
+ */
47
+ readonly app?: Application;
48
+ }
49
+ //# sourceMappingURL=Stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../../src/core/Stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACzC,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3C,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9E,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CAClD;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,gFAAgF;IAChF,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,oEAAoE;IACpE,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,mFAAmF;IACnF,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5C;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;CAC5B"}
@@ -0,0 +1,22 @@
1
+ import type { Time } from './Time';
2
+ import type { Destroyable } from './types';
3
+ /**
4
+ * A per-frame unit of simulation owned by a {@link Scene} (for example a
5
+ * physics world). Added via `scene.systems.add(...)`, ticked once per frame
6
+ * after the scene's `update()` and before its `draw()`, and destroyed with the
7
+ * scene. A system owns its own timestep policy — it receives the frame delta
8
+ * and decides how to integrate (fixed-step, variable, etc.).
9
+ *
10
+ * Extends {@link Destroyable} so a system fits the ownership model uniformly:
11
+ * the scene's registry destroys its systems when the scene is destroyed.
12
+ */
13
+ export interface System extends Destroyable {
14
+ /** Advance the system by the frame `delta`. */
15
+ update(delta: Time): void;
16
+ /**
17
+ * Tick order within the scene (ascending; default `0`). Systems sharing an
18
+ * order tick in insertion order. Read when the registry next sorts.
19
+ */
20
+ readonly order?: number;
21
+ }
22
+ //# sourceMappingURL=System.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"System.d.ts","sourceRoot":"","sources":["../../../src/core/System.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,WAAW,MAAO,SAAQ,WAAW;IACzC,+CAA+C;IAC/C,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB"}