@codexo/exojs 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (822) hide show
  1. package/CHANGELOG.md +265 -6
  2. package/README.md +82 -67
  3. package/dist/esm/animation/Tween.d.ts.map +1 -1
  4. package/dist/esm/animation/Tween.js +1 -2
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +50 -7
  7. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +68 -10
  9. package/dist/esm/animation/TweenManager.js.map +1 -1
  10. package/dist/esm/animation/TweenSequencer.d.ts +139 -0
  11. package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
  12. package/dist/esm/animation/TweenSequencer.js +305 -0
  13. package/dist/esm/animation/TweenSequencer.js.map +1 -0
  14. package/dist/esm/animation/index.d.ts +7 -4
  15. package/dist/esm/animation/index.d.ts.map +1 -1
  16. package/dist/esm/audio/AudioBus.d.ts +12 -12
  17. package/dist/esm/audio/AudioBus.js +29 -29
  18. package/dist/esm/audio/AudioEffect.d.ts +18 -0
  19. package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
  20. package/dist/esm/audio/AudioEffect.js +16 -0
  21. package/dist/esm/audio/AudioEffect.js.map +1 -0
  22. package/dist/esm/audio/AudioGenerator.d.ts +91 -0
  23. package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
  24. package/dist/esm/audio/AudioGenerator.js +165 -0
  25. package/dist/esm/audio/AudioGenerator.js.map +1 -0
  26. package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
  27. package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
  28. package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
  29. package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
  30. package/dist/esm/audio/AudioInput.d.ts +39 -0
  31. package/dist/esm/audio/AudioInput.d.ts.map +1 -0
  32. package/dist/esm/audio/AudioInput.js +53 -0
  33. package/dist/esm/audio/AudioInput.js.map +1 -0
  34. package/dist/esm/audio/AudioManager.d.ts +72 -34
  35. package/dist/esm/audio/AudioManager.d.ts.map +1 -1
  36. package/dist/esm/audio/AudioManager.js +97 -51
  37. package/dist/esm/audio/AudioManager.js.map +1 -1
  38. package/dist/esm/audio/AudioStream.d.ts +49 -0
  39. package/dist/esm/audio/AudioStream.d.ts.map +1 -0
  40. package/dist/esm/audio/AudioStream.js +109 -0
  41. package/dist/esm/audio/AudioStream.js.map +1 -0
  42. package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
  43. package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
  44. package/dist/esm/audio/AudioStreamVoice.js +137 -0
  45. package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
  46. package/dist/esm/audio/BaseVoice.d.ts +111 -0
  47. package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
  48. package/dist/esm/audio/BaseVoice.js +298 -0
  49. package/dist/esm/audio/BaseVoice.js.map +1 -0
  50. package/dist/esm/audio/BiquadEffect.d.ts +53 -0
  51. package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
  52. package/dist/esm/audio/BiquadEffect.js +110 -0
  53. package/dist/esm/audio/BiquadEffect.js.map +1 -0
  54. package/dist/esm/audio/InputVoice.d.ts +41 -0
  55. package/dist/esm/audio/InputVoice.d.ts.map +1 -0
  56. package/dist/esm/audio/InputVoice.js +85 -0
  57. package/dist/esm/audio/InputVoice.js.map +1 -0
  58. package/dist/esm/audio/NoopVoice.d.ts +29 -0
  59. package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
  60. package/dist/esm/audio/NoopVoice.js +52 -0
  61. package/dist/esm/audio/NoopVoice.js.map +1 -0
  62. package/dist/esm/audio/Playable.d.ts +135 -0
  63. package/dist/esm/audio/Playable.d.ts.map +1 -0
  64. package/dist/esm/audio/Sound.d.ts +64 -69
  65. package/dist/esm/audio/Sound.d.ts.map +1 -1
  66. package/dist/esm/audio/Sound.js +176 -377
  67. package/dist/esm/audio/Sound.js.map +1 -1
  68. package/dist/esm/audio/SoundVoice.d.ts +63 -0
  69. package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
  70. package/dist/esm/audio/SoundVoice.js +168 -0
  71. package/dist/esm/audio/SoundVoice.js.map +1 -0
  72. package/dist/esm/audio/WorkletEffect.d.ts +68 -0
  73. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
  74. package/dist/esm/audio/WorkletEffect.js +177 -0
  75. package/dist/esm/audio/WorkletEffect.js.map +1 -0
  76. package/dist/esm/audio/audio-context.js +1 -1
  77. package/dist/esm/audio/audio-context.js.map +1 -1
  78. package/dist/esm/audio/crossFade.d.ts +22 -13
  79. package/dist/esm/audio/crossFade.d.ts.map +1 -1
  80. package/dist/esm/audio/crossFade.js +21 -13
  81. package/dist/esm/audio/crossFade.js.map +1 -1
  82. package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
  83. package/dist/esm/audio/filters/HighpassFilter.js +2 -2
  84. package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
  85. package/dist/esm/audio/filters/LowpassFilter.js +2 -2
  86. package/dist/esm/audio/filters/index.d.ts +0 -10
  87. package/dist/esm/audio/filters/index.d.ts.map +1 -1
  88. package/dist/esm/audio/index.d.ts +13 -15
  89. package/dist/esm/audio/index.d.ts.map +1 -1
  90. package/dist/esm/core/Application.d.ts +169 -14
  91. package/dist/esm/core/Application.d.ts.map +1 -1
  92. package/dist/esm/core/Application.js +306 -31
  93. package/dist/esm/core/Application.js.map +1 -1
  94. package/dist/esm/core/BuildInfo.js +2 -2
  95. package/dist/esm/core/Codec.d.ts +41 -0
  96. package/dist/esm/core/Codec.d.ts.map +1 -0
  97. package/dist/esm/core/Codec.js +79 -0
  98. package/dist/esm/core/Codec.js.map +1 -0
  99. package/dist/esm/core/Color.d.ts +6 -4
  100. package/dist/esm/core/Color.d.ts.map +1 -1
  101. package/dist/esm/core/Color.js +19 -15
  102. package/dist/esm/core/Color.js.map +1 -1
  103. package/dist/esm/core/DisposalScope.d.ts +50 -0
  104. package/dist/esm/core/DisposalScope.d.ts.map +1 -0
  105. package/dist/esm/core/DisposalScope.js +86 -0
  106. package/dist/esm/core/DisposalScope.js.map +1 -0
  107. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  108. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  109. package/dist/esm/core/FixedTimestep.js +62 -0
  110. package/dist/esm/core/FixedTimestep.js.map +1 -0
  111. package/dist/esm/core/Perf.d.ts +10 -22
  112. package/dist/esm/core/Perf.d.ts.map +1 -1
  113. package/dist/esm/core/Perf.js +15 -8
  114. package/dist/esm/core/Perf.js.map +1 -1
  115. package/dist/esm/core/Registry.d.ts +64 -0
  116. package/dist/esm/core/Registry.d.ts.map +1 -0
  117. package/dist/esm/core/Registry.js +79 -0
  118. package/dist/esm/core/Registry.js.map +1 -0
  119. package/dist/esm/core/Scene.d.ts +83 -21
  120. package/dist/esm/core/Scene.d.ts.map +1 -1
  121. package/dist/esm/core/Scene.js +127 -16
  122. package/dist/esm/core/Scene.js.map +1 -1
  123. package/dist/esm/core/SceneManager.d.ts +28 -59
  124. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  125. package/dist/esm/core/SceneManager.js +86 -155
  126. package/dist/esm/core/SceneManager.js.map +1 -1
  127. package/dist/esm/core/SceneNode.d.ts +78 -7
  128. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  129. package/dist/esm/core/SceneNode.js +162 -21
  130. package/dist/esm/core/SceneNode.js.map +1 -1
  131. package/dist/esm/core/Signal.js.map +1 -1
  132. package/dist/esm/core/Stage.d.ts +49 -0
  133. package/dist/esm/core/Stage.d.ts.map +1 -0
  134. package/dist/esm/core/System.d.ts +22 -0
  135. package/dist/esm/core/System.d.ts.map +1 -0
  136. package/dist/esm/core/SystemRegistry.d.ts +40 -0
  137. package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
  138. package/dist/esm/core/SystemRegistry.js +114 -0
  139. package/dist/esm/core/SystemRegistry.js.map +1 -0
  140. package/dist/esm/core/Time.d.ts +15 -0
  141. package/dist/esm/core/Time.d.ts.map +1 -1
  142. package/dist/esm/core/Time.js +25 -0
  143. package/dist/esm/core/Time.js.map +1 -1
  144. package/dist/esm/core/dev.d.ts +9 -4
  145. package/dist/esm/core/dev.d.ts.map +1 -1
  146. package/dist/esm/core/dev.js +5 -0
  147. package/dist/esm/core/dev.js.map +1 -1
  148. package/dist/esm/core/index.d.ts +30 -15
  149. package/dist/esm/core/index.d.ts.map +1 -1
  150. package/dist/esm/core/letterbox.d.ts +25 -0
  151. package/dist/esm/core/letterbox.d.ts.map +1 -0
  152. package/dist/esm/core/letterbox.js +26 -0
  153. package/dist/esm/core/letterbox.js.map +1 -0
  154. package/dist/esm/core/logging.d.ts +34 -0
  155. package/dist/esm/core/logging.d.ts.map +1 -0
  156. package/dist/esm/core/logging.js +59 -0
  157. package/dist/esm/core/logging.js.map +1 -0
  158. package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
  159. package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
  160. package/dist/esm/core/serialization/Prefab.d.ts +49 -0
  161. package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
  162. package/dist/esm/core/serialization/Prefab.js +61 -0
  163. package/dist/esm/core/serialization/Prefab.js.map +1 -0
  164. package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
  165. package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
  166. package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
  167. package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
  168. package/dist/esm/core/serialization/commonFields.d.ts +20 -0
  169. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
  170. package/dist/esm/core/serialization/commonFields.js +155 -0
  171. package/dist/esm/core/serialization/commonFields.js.map +1 -0
  172. package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
  173. package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
  174. package/dist/esm/core/serialization/coreSerializers.js +101 -0
  175. package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
  176. package/dist/esm/core/serialization/index.d.ts +6 -0
  177. package/dist/esm/core/serialization/index.d.ts.map +1 -0
  178. package/dist/esm/core/serialization/read.d.ts +65 -0
  179. package/dist/esm/core/serialization/read.d.ts.map +1 -0
  180. package/dist/esm/core/serialization/read.js +48 -0
  181. package/dist/esm/core/serialization/read.js.map +1 -0
  182. package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
  183. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
  184. package/dist/esm/core/serialization/renderingSerializers.js +320 -0
  185. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
  186. package/dist/esm/core/serialization/serialize.d.ts +56 -0
  187. package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
  188. package/dist/esm/core/serialization/serialize.js +144 -0
  189. package/dist/esm/core/serialization/serialize.js.map +1 -0
  190. package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
  191. package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
  192. package/dist/esm/core/serialization/serializerHelpers.js +161 -0
  193. package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
  194. package/dist/esm/core/serialization/types.d.ts +49 -0
  195. package/dist/esm/core/serialization/types.d.ts.map +1 -0
  196. package/dist/esm/core/serialization/types.js +9 -0
  197. package/dist/esm/core/serialization/types.js.map +1 -0
  198. package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
  199. package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
  200. package/dist/esm/core/serialization/uiSerializers.js +206 -0
  201. package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
  202. package/dist/esm/core/types.d.ts +1 -1
  203. package/dist/esm/core/types.d.ts.map +1 -1
  204. package/dist/esm/core/utils.d.ts +1 -16
  205. package/dist/esm/core/utils.d.ts.map +1 -1
  206. package/dist/esm/core/utils.js +2 -100
  207. package/dist/esm/core/utils.js.map +1 -1
  208. package/dist/esm/debug/PerformanceLayer.js +8 -9
  209. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  210. package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
  211. package/dist/esm/debug/PointerStackLayer.js +9 -6
  212. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  213. package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
  214. package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
  215. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  216. package/dist/esm/extensions/Extension.d.ts +39 -4
  217. package/dist/esm/extensions/Extension.d.ts.map +1 -1
  218. package/dist/esm/extensions/materialize.d.ts +9 -1
  219. package/dist/esm/extensions/materialize.d.ts.map +1 -1
  220. package/dist/esm/extensions/materialize.js +17 -2
  221. package/dist/esm/extensions/materialize.js.map +1 -1
  222. package/dist/esm/extensions/snapshot.d.ts +2 -1
  223. package/dist/esm/extensions/snapshot.d.ts.map +1 -1
  224. package/dist/esm/extensions/snapshot.js +8 -0
  225. package/dist/esm/extensions/snapshot.js.map +1 -1
  226. package/dist/esm/index.d.ts +2 -1
  227. package/dist/esm/index.d.ts.map +1 -1
  228. package/dist/esm/index.js +41 -61
  229. package/dist/esm/index.js.map +1 -1
  230. package/dist/esm/input/FocusManager.d.ts +59 -0
  231. package/dist/esm/input/FocusManager.d.ts.map +1 -0
  232. package/dist/esm/input/FocusManager.js +175 -0
  233. package/dist/esm/input/FocusManager.js.map +1 -0
  234. package/dist/esm/input/Gamepad.d.ts +10 -0
  235. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  236. package/dist/esm/input/Gamepad.js +20 -4
  237. package/dist/esm/input/Gamepad.js.map +1 -1
  238. package/dist/esm/input/GamepadAxis.js +2 -2
  239. package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
  240. package/dist/esm/input/GamepadDefinitions.js +6 -2
  241. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  242. package/dist/esm/input/GestureRecognizer.d.ts +1 -2
  243. package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
  244. package/dist/esm/input/GestureRecognizer.js +1 -3
  245. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  246. package/dist/esm/input/InputBinding.js +3 -3
  247. package/dist/esm/input/InputBinding.js.map +1 -1
  248. package/dist/esm/input/InputManager.d.ts +7 -2
  249. package/dist/esm/input/InputManager.d.ts.map +1 -1
  250. package/dist/esm/input/InputManager.js +40 -21
  251. package/dist/esm/input/InputManager.js.map +1 -1
  252. package/dist/esm/input/InteractionManager.d.ts +67 -2
  253. package/dist/esm/input/InteractionManager.d.ts.map +1 -1
  254. package/dist/esm/input/InteractionManager.js +165 -41
  255. package/dist/esm/input/InteractionManager.js.map +1 -1
  256. package/dist/esm/input/KeyEvent.d.ts +25 -0
  257. package/dist/esm/input/KeyEvent.d.ts.map +1 -0
  258. package/dist/esm/input/KeyEvent.js +32 -0
  259. package/dist/esm/input/KeyEvent.js.map +1 -0
  260. package/dist/esm/input/Pointer.d.ts +21 -4
  261. package/dist/esm/input/Pointer.d.ts.map +1 -1
  262. package/dist/esm/input/Pointer.js +54 -15
  263. package/dist/esm/input/Pointer.js.map +1 -1
  264. package/dist/esm/input/index.d.ts +3 -1
  265. package/dist/esm/input/index.d.ts.map +1 -1
  266. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  267. package/dist/esm/math/AbstractVector.js +7 -2
  268. package/dist/esm/math/AbstractVector.js.map +1 -1
  269. package/dist/esm/math/Circle.d.ts.map +1 -1
  270. package/dist/esm/math/Circle.js +5 -1
  271. package/dist/esm/math/Circle.js.map +1 -1
  272. package/dist/esm/math/Line.d.ts +1 -1
  273. package/dist/esm/math/Line.d.ts.map +1 -1
  274. package/dist/esm/math/Line.js +1 -1
  275. package/dist/esm/math/Line.js.map +1 -1
  276. package/dist/esm/math/Matrix.d.ts.map +1 -1
  277. package/dist/esm/math/Matrix.js +6 -1
  278. package/dist/esm/math/Matrix.js.map +1 -1
  279. package/dist/esm/math/ObservableVector.d.ts +26 -8
  280. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  281. package/dist/esm/math/ObservableVector.js +24 -16
  282. package/dist/esm/math/ObservableVector.js.map +1 -1
  283. package/dist/esm/math/Polygon.d.ts +5 -0
  284. package/dist/esm/math/Polygon.d.ts.map +1 -1
  285. package/dist/esm/math/Polygon.js +27 -3
  286. package/dist/esm/math/Polygon.js.map +1 -1
  287. package/dist/esm/math/Random.d.ts +9 -9
  288. package/dist/esm/math/Random.d.ts.map +1 -1
  289. package/dist/esm/math/Random.js +46 -46
  290. package/dist/esm/math/Random.js.map +1 -1
  291. package/dist/esm/math/Rectangle.d.ts +11 -4
  292. package/dist/esm/math/Rectangle.d.ts.map +1 -1
  293. package/dist/esm/math/Rectangle.js +12 -6
  294. package/dist/esm/math/Rectangle.js.map +1 -1
  295. package/dist/esm/math/Vector.d.ts +1 -1
  296. package/dist/esm/math/Vector.d.ts.map +1 -1
  297. package/dist/esm/math/Vector.js +1 -1
  298. package/dist/esm/math/Vector.js.map +1 -1
  299. package/dist/esm/math/collision-detection.d.ts +42 -0
  300. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  301. package/dist/esm/math/collision-detection.js +54 -4
  302. package/dist/esm/math/collision-detection.js.map +1 -1
  303. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  304. package/dist/esm/math/collision-primitives.js +4 -0
  305. package/dist/esm/math/collision-primitives.js.map +1 -1
  306. package/dist/esm/math/geometry.d.ts +26 -0
  307. package/dist/esm/math/geometry.d.ts.map +1 -1
  308. package/dist/esm/math/geometry.js +89 -2
  309. package/dist/esm/math/geometry.js.map +1 -1
  310. package/dist/esm/math/index.d.ts +7 -5
  311. package/dist/esm/math/index.d.ts.map +1 -1
  312. package/dist/esm/math/swept-collision.d.ts +13 -0
  313. package/dist/esm/math/swept-collision.d.ts.map +1 -1
  314. package/dist/esm/math/swept-collision.js +15 -1
  315. package/dist/esm/math/swept-collision.js.map +1 -1
  316. package/dist/esm/math/triangulate.d.ts.map +1 -1
  317. package/dist/esm/math/triangulate.js +9 -1
  318. package/dist/esm/math/triangulate.js.map +1 -1
  319. package/dist/esm/math/utils.d.ts +20 -0
  320. package/dist/esm/math/utils.d.ts.map +1 -1
  321. package/dist/esm/math/utils.js +18 -15
  322. package/dist/esm/math/utils.js.map +1 -1
  323. package/dist/esm/renderer-sdk.d.ts +2 -0
  324. package/dist/esm/renderer-sdk.d.ts.map +1 -1
  325. package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
  326. package/dist/esm/renderer-sdk.js.map +1 -0
  327. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  328. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  329. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  330. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  331. package/dist/esm/rendering/CallbackRenderPass.js +17 -12
  332. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  333. package/dist/esm/rendering/Container.d.ts +3 -0
  334. package/dist/esm/rendering/Container.d.ts.map +1 -1
  335. package/dist/esm/rendering/Container.js +28 -5
  336. package/dist/esm/rendering/Container.js.map +1 -1
  337. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  338. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  339. package/dist/esm/rendering/Drawable.d.ts +24 -0
  340. package/dist/esm/rendering/Drawable.d.ts.map +1 -1
  341. package/dist/esm/rendering/Drawable.js +54 -0
  342. package/dist/esm/rendering/Drawable.js.map +1 -1
  343. package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
  344. package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
  345. package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
  346. package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
  347. package/dist/esm/rendering/PassContext.d.ts +42 -0
  348. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  349. package/dist/esm/rendering/PassContext.js +48 -0
  350. package/dist/esm/rendering/PassContext.js.map +1 -0
  351. package/dist/esm/rendering/RenderBackend.d.ts +29 -1
  352. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  353. package/dist/esm/rendering/RenderBatch.d.ts +55 -0
  354. package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
  355. package/dist/esm/rendering/RenderBatch.js +107 -0
  356. package/dist/esm/rendering/RenderBatch.js.map +1 -0
  357. package/dist/esm/rendering/RenderNode.d.ts +50 -10
  358. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  359. package/dist/esm/rendering/RenderNode.js +115 -22
  360. package/dist/esm/rendering/RenderNode.js.map +1 -1
  361. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  362. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  363. package/dist/esm/rendering/RenderNodePass.js +2 -2
  364. package/dist/esm/rendering/RenderNodePass.js.map +1 -1
  365. package/dist/esm/rendering/RenderStats.d.ts +39 -0
  366. package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
  367. package/dist/esm/rendering/RenderStats.js +14 -0
  368. package/dist/esm/rendering/RenderStats.js.map +1 -1
  369. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
  370. package/dist/esm/rendering/RendererRegistry.js +20 -23
  371. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  372. package/dist/esm/rendering/RenderingContext.d.ts +132 -17
  373. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  374. package/dist/esm/rendering/RenderingContext.js +228 -28
  375. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  376. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  377. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  378. package/dist/esm/rendering/TransformBuffer.js +60 -0
  379. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  380. package/dist/esm/rendering/View.d.ts +85 -15
  381. package/dist/esm/rendering/View.d.ts.map +1 -1
  382. package/dist/esm/rendering/View.js +81 -27
  383. package/dist/esm/rendering/View.js.map +1 -1
  384. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  385. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +10 -1
  386. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  387. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
  388. package/dist/esm/rendering/geometry/Geometry.js +4 -2
  389. package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
  390. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
  391. package/dist/esm/rendering/gradient/Gradient.js +7 -2
  392. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  393. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
  394. package/dist/esm/rendering/material/MaterialKey.js +2 -0
  395. package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
  396. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  397. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  398. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  399. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  400. package/dist/esm/rendering/material/ShaderSource.js +6 -0
  401. package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
  402. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  403. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  404. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  405. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  406. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
  407. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
  408. package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
  409. package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
  410. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
  411. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
  412. package/dist/esm/rendering/mesh/Mesh.js +40 -13
  413. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  414. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -1
  415. package/dist/esm/rendering/pixelSnap.js +1 -0
  416. package/dist/esm/rendering/pixelSnap.js.map +1 -1
  417. package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
  418. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
  419. package/dist/esm/rendering/plan/RenderCommand.js +23 -21
  420. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  421. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  422. package/dist/esm/rendering/plan/RenderEffectExecutor.js +8 -2
  423. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  424. package/dist/esm/rendering/plan/RenderInstruction.d.ts +12 -39
  425. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  426. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
  427. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  428. package/dist/esm/rendering/plan/RenderPlanBuilder.js +154 -50
  429. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  430. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
  431. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
  432. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
  433. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
  434. package/dist/esm/rendering/plan/RenderPlanPlayer.js +54 -17
  435. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  436. package/dist/esm/rendering/plan/RenderScope.d.ts +23 -10
  437. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  438. package/dist/esm/rendering/primitives/Graphics.d.ts +16 -1
  439. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  440. package/dist/esm/rendering/primitives/Graphics.js +46 -9
  441. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  442. package/dist/esm/rendering/{index.d.ts → public.d.ts} +9 -39
  443. package/dist/esm/rendering/public.d.ts.map +1 -0
  444. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
  445. package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
  446. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  447. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +60 -12
  448. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  449. package/dist/esm/rendering/sprite/AnimatedSprite.js +142 -30
  450. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  451. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -1
  452. package/dist/esm/rendering/sprite/NineSliceSprite.js +10 -11
  453. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -1
  454. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -1
  455. package/dist/esm/rendering/sprite/RepeatingSprite.js +1 -3
  456. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -1
  457. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  458. package/dist/esm/rendering/sprite/Sprite.js +30 -3
  459. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  460. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -1
  461. package/dist/esm/rendering/sprite/nineSlice.js +12 -18
  462. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -1
  463. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -1
  464. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +2 -2
  465. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -1
  466. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  467. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  468. package/dist/esm/rendering/text/BitmapText.js +6 -0
  469. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  470. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
  471. package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
  472. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
  473. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
  474. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
  475. package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
  476. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
  477. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
  478. package/dist/esm/rendering/text/GlyphSdf.js +5 -1
  479. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  480. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  481. package/dist/esm/rendering/text/HTMLText.js +3 -2
  482. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  483. package/dist/esm/rendering/text/Text.d.ts +17 -6
  484. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  485. package/dist/esm/rendering/text/Text.js +9 -12
  486. package/dist/esm/rendering/text/Text.js.map +1 -1
  487. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  488. package/dist/esm/rendering/text/TextLayout.js +4 -18
  489. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  490. package/dist/esm/rendering/texture/DataTexture.js +2 -2
  491. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  492. package/dist/esm/rendering/texture/Texture.d.ts +6 -0
  493. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
  494. package/dist/esm/rendering/texture/Texture.js +8 -0
  495. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  496. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -1
  497. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -1
  498. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -1
  499. package/dist/esm/rendering/texture/repeat.js +2 -2
  500. package/dist/esm/rendering/texture/repeat.js.map +1 -1
  501. package/dist/esm/rendering/types.d.ts +37 -2
  502. package/dist/esm/rendering/types.d.ts.map +1 -1
  503. package/dist/esm/rendering/types.js +37 -2
  504. package/dist/esm/rendering/types.js.map +1 -1
  505. package/dist/esm/rendering/video/Video.d.ts +7 -3
  506. package/dist/esm/rendering/video/Video.d.ts.map +1 -1
  507. package/dist/esm/rendering/video/Video.js +7 -3
  508. package/dist/esm/rendering/video/Video.js.map +1 -1
  509. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
  510. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
  511. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  512. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  513. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  514. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  515. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  516. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +55 -3
  517. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  518. package/dist/esm/rendering/webgl2/WebGl2Backend.js +209 -61
  519. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  520. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
  521. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
  522. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
  523. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
  524. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
  525. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
  526. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  527. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -1
  528. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +2 -1
  529. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -1
  530. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
  531. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
  532. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
  533. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  534. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -1
  535. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +15 -11
  536. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -1
  537. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
  538. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
  539. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  540. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
  541. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  542. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
  543. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
  544. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
  545. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
  546. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +7 -2
  547. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  548. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
  549. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
  550. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
  551. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  552. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +60 -15
  553. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  554. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  555. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  556. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  557. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  558. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  559. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  560. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  561. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  562. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  563. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +45 -2
  564. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  565. package/dist/esm/rendering/webgpu/WebGpuBackend.js +247 -69
  566. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  567. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  568. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -26
  569. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  570. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  571. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  572. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  573. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  574. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +17 -0
  575. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  576. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +105 -25
  577. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  578. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  579. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  580. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +8 -2
  581. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  582. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  583. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  584. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  585. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  586. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  587. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  588. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +23 -10
  589. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  590. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  591. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  592. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +10 -5
  593. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  594. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  595. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  596. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +3 -1
  597. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  598. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  599. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  600. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +22 -9
  601. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  602. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -3
  603. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  604. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +50 -6
  605. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  606. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
  607. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
  608. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
  609. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
  610. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
  611. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
  612. package/dist/esm/resources/Asset.d.ts +1 -1
  613. package/dist/esm/resources/Asset.d.ts.map +1 -1
  614. package/dist/esm/resources/Asset.js +0 -2
  615. package/dist/esm/resources/Asset.js.map +1 -1
  616. package/dist/esm/resources/AssetContainer.d.ts +75 -0
  617. package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
  618. package/dist/esm/resources/AssetContainer.js +100 -0
  619. package/dist/esm/resources/AssetContainer.js.map +1 -0
  620. package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
  621. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
  622. package/dist/esm/resources/Assets.d.ts.map +1 -1
  623. package/dist/esm/resources/Assets.js +0 -1
  624. package/dist/esm/resources/Assets.js.map +1 -1
  625. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
  626. package/dist/esm/resources/FactoryRegistry.js +14 -23
  627. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  628. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
  629. package/dist/esm/resources/IndexedDbDatabase.js +8 -1
  630. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  631. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
  632. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
  633. package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
  634. package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
  635. package/dist/esm/resources/KeyValueStore.d.ts +31 -0
  636. package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
  637. package/dist/esm/resources/Loader.d.ts +55 -2
  638. package/dist/esm/resources/Loader.d.ts.map +1 -1
  639. package/dist/esm/resources/Loader.js +159 -14
  640. package/dist/esm/resources/Loader.js.map +1 -1
  641. package/dist/esm/resources/MemoryStore.d.ts +17 -0
  642. package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
  643. package/dist/esm/resources/MemoryStore.js +30 -0
  644. package/dist/esm/resources/MemoryStore.js.map +1 -0
  645. package/dist/esm/resources/WebStorageStore.d.ts +40 -0
  646. package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
  647. package/dist/esm/resources/WebStorageStore.js +84 -0
  648. package/dist/esm/resources/WebStorageStore.js.map +1 -0
  649. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  650. package/dist/esm/resources/coreAssetBindings.js +16 -5
  651. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  652. package/dist/esm/resources/factories/BmFontFactory.js +4 -4
  653. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
  654. package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
  655. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
  656. package/dist/esm/resources/factories/MusicFactory.js +7 -7
  657. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  658. package/dist/esm/resources/factories/SoundFactory.js +2 -2
  659. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  660. package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
  661. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
  662. package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
  663. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
  664. package/dist/esm/resources/index.d.ts +51 -34
  665. package/dist/esm/resources/index.d.ts.map +1 -1
  666. package/dist/esm/resources/utils.js +4 -4
  667. package/dist/esm/resources/utils.js.map +1 -1
  668. package/dist/esm/ui/Button.d.ts +54 -0
  669. package/dist/esm/ui/Button.d.ts.map +1 -0
  670. package/dist/esm/ui/Button.js +139 -0
  671. package/dist/esm/ui/Button.js.map +1 -0
  672. package/dist/esm/ui/Label.d.ts +17 -0
  673. package/dist/esm/ui/Label.d.ts.map +1 -0
  674. package/dist/esm/ui/Label.js +37 -0
  675. package/dist/esm/ui/Label.js.map +1 -0
  676. package/dist/esm/ui/Panel.d.ts +38 -0
  677. package/dist/esm/ui/Panel.d.ts.map +1 -0
  678. package/dist/esm/ui/Panel.js +61 -0
  679. package/dist/esm/ui/Panel.js.map +1 -0
  680. package/dist/esm/ui/ProgressBar.d.ts +37 -0
  681. package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
  682. package/dist/esm/ui/ProgressBar.js +76 -0
  683. package/dist/esm/ui/ProgressBar.js.map +1 -0
  684. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  685. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  686. package/dist/esm/ui/ScrollContainer.js +99 -0
  687. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  688. package/dist/esm/ui/Stack.d.ts +34 -0
  689. package/dist/esm/ui/Stack.d.ts.map +1 -0
  690. package/dist/esm/ui/Stack.js +69 -0
  691. package/dist/esm/ui/Stack.js.map +1 -0
  692. package/dist/esm/ui/Tooltip.d.ts +67 -0
  693. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  694. package/dist/esm/ui/Tooltip.js +133 -0
  695. package/dist/esm/ui/Tooltip.js.map +1 -0
  696. package/dist/esm/ui/UIRoot.d.ts +31 -0
  697. package/dist/esm/ui/UIRoot.d.ts.map +1 -0
  698. package/dist/esm/ui/UIRoot.js +49 -0
  699. package/dist/esm/ui/UIRoot.js.map +1 -0
  700. package/dist/esm/ui/Widget.d.ts +45 -0
  701. package/dist/esm/ui/Widget.d.ts.map +1 -0
  702. package/dist/esm/ui/Widget.js +113 -0
  703. package/dist/esm/ui/Widget.js.map +1 -0
  704. package/dist/esm/ui/index.d.ts +17 -0
  705. package/dist/esm/ui/index.d.ts.map +1 -0
  706. package/dist/exo.debug.esm.js +1 -948
  707. package/dist/exo.debug.esm.js.map +1 -1
  708. package/dist/exo.esm.js +1 -40945
  709. package/dist/exo.esm.js.map +1 -1
  710. package/dist/exo.iife.js +45202 -0
  711. package/dist/exo.iife.js.map +1 -0
  712. package/dist/exo.iife.min.js +2 -0
  713. package/dist/exo.iife.min.js.map +1 -0
  714. package/package.json +37 -14
  715. package/dist/esm/audio/AbstractMedia.d.ts +0 -75
  716. package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
  717. package/dist/esm/audio/AbstractMedia.js +0 -179
  718. package/dist/esm/audio/AbstractMedia.js.map +0 -1
  719. package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
  720. package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
  721. package/dist/esm/audio/AudioAnalyser.js +0 -473
  722. package/dist/esm/audio/AudioAnalyser.js.map +0 -1
  723. package/dist/esm/audio/AudioFilter.d.ts +0 -17
  724. package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
  725. package/dist/esm/audio/AudioFilter.js +0 -15
  726. package/dist/esm/audio/AudioFilter.js.map +0 -1
  727. package/dist/esm/audio/BeatDetector.d.ts +0 -207
  728. package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
  729. package/dist/esm/audio/BeatDetector.js +0 -424
  730. package/dist/esm/audio/BeatDetector.js.map +0 -1
  731. package/dist/esm/audio/Media.d.ts +0 -37
  732. package/dist/esm/audio/Media.d.ts.map +0 -1
  733. package/dist/esm/audio/Music.d.ts +0 -42
  734. package/dist/esm/audio/Music.d.ts.map +0 -1
  735. package/dist/esm/audio/Music.js +0 -164
  736. package/dist/esm/audio/Music.js.map +0 -1
  737. package/dist/esm/audio/OscillatorSound.d.ts +0 -100
  738. package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
  739. package/dist/esm/audio/OscillatorSound.js +0 -346
  740. package/dist/esm/audio/OscillatorSound.js.map +0 -1
  741. package/dist/esm/audio/dsp/fft.d.ts +0 -23
  742. package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
  743. package/dist/esm/audio/dsp/mel.d.ts +0 -44
  744. package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
  745. package/dist/esm/audio/dsp/mel.js +0 -70
  746. package/dist/esm/audio/dsp/mel.js.map +0 -1
  747. package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
  748. package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
  749. package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
  750. package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
  751. package/dist/esm/audio/filters/ChorusFilter.js +0 -155
  752. package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
  753. package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
  754. package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
  755. package/dist/esm/audio/filters/CompressorFilter.js +0 -123
  756. package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
  757. package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
  758. package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
  759. package/dist/esm/audio/filters/DelayFilter.js +0 -114
  760. package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
  761. package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
  762. package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
  763. package/dist/esm/audio/filters/DuckingFilter.js +0 -172
  764. package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
  765. package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
  766. package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
  767. package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
  768. package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
  769. package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
  770. package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
  771. package/dist/esm/audio/filters/GranularFilter.js +0 -107
  772. package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
  773. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
  774. package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
  775. package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
  776. package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
  777. package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
  778. package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
  779. package/dist/esm/audio/filters/ReverbFilter.js +0 -122
  780. package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
  781. package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
  782. package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
  783. package/dist/esm/audio/filters/VocoderFilter.js +0 -94
  784. package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
  785. package/dist/esm/audio/filters/WorkletFilter.d.ts +0 -54
  786. package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
  787. package/dist/esm/audio/filters/WorkletFilter.js +0 -110
  788. package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
  789. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
  790. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
  791. package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
  792. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
  793. package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
  794. package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
  795. package/dist/esm/audio/worklets/granular.worklet.js +0 -89
  796. package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
  797. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
  798. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
  799. package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
  800. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
  801. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
  802. package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
  803. package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
  804. package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
  805. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
  806. package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
  807. package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
  808. package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
  809. package/dist/esm/rendering/Camera.d.ts +0 -34
  810. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  811. package/dist/esm/rendering/Camera.js +0 -38
  812. package/dist/esm/rendering/Camera.js.map +0 -1
  813. package/dist/esm/rendering/index.d.ts.map +0 -1
  814. package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
  815. package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
  816. package/dist/esm/rendering.d.ts +0 -29
  817. package/dist/esm/rendering.d.ts.map +0 -1
  818. package/dist/esm/rendering.js.map +0 -1
  819. package/dist/esm/resources/JsonStore.d.ts +0 -19
  820. package/dist/esm/resources/JsonStore.d.ts.map +0 -1
  821. package/dist/esm/resources/JsonStore.js +0 -62
  822. package/dist/esm/resources/JsonStore.js.map +0 -1
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Per-backend GPU resource accountant (Slice 2g — Resource-Accounting).
3
+ *
4
+ * The GPU exposes no way to query VRAM usage (neither WebGL2 nor WebGPU report
5
+ * it — a deliberate security boundary), so the engine keeps its own running
6
+ * tally by booking every allocation (`+`) and every free (`−`) at the points
7
+ * where the backend creates or destroys a GPU texture / buffer. The same
8
+ * bookkeeping runs against the Node fake-context, so it is fully deterministic
9
+ * and CI-testable.
10
+ *
11
+ * The accountant owns the authoritative running total ({@link liveBytes}) and
12
+ * mirrors it into {@link RenderStats.gpuMemoryBytes}. Unlike the per-frame
13
+ * counters, that total is **not** zeroed by {@link resetRenderStats} — live
14
+ * resources outlive frames. The per-frame upload / download accumulators are
15
+ * written straight into the stats object and reset each tick.
16
+ *
17
+ * One accountant per backend instance (never module-global) so that multiple
18
+ * concurrent {@link Application}s keep independent tallies.
19
+ *
20
+ * @internal
21
+ */
22
+ class GpuResourceAccountant {
23
+ _stats;
24
+ _liveBytes = 0;
25
+ constructor(stats) {
26
+ this._stats = stats;
27
+ this._stats.gpuMemoryBytes = 0;
28
+ }
29
+ /** Current running total of live GPU resource bytes (textures + buffers). */
30
+ get liveBytes() {
31
+ return this._liveBytes;
32
+ }
33
+ /**
34
+ * Record an allocation of `bytes` GPU memory (texture storage or buffer).
35
+ * Pass a non-negative value; the running total and the mirrored
36
+ * `stats.gpuMemoryBytes` both increase.
37
+ */
38
+ allocate(bytes) {
39
+ if (bytes <= 0) {
40
+ return;
41
+ }
42
+ this._liveBytes += bytes;
43
+ this._stats.gpuMemoryBytes = this._liveBytes;
44
+ }
45
+ /**
46
+ * Record a free of `bytes` GPU memory. Clamped at zero so a double-free or a
47
+ * missed allocation can never drive the tally negative. To avoid transient
48
+ * spikes on resize, book the free **before** the matching re-allocation.
49
+ */
50
+ free(bytes) {
51
+ if (bytes <= 0) {
52
+ return;
53
+ }
54
+ this._liveBytes = Math.max(0, this._liveBytes - bytes);
55
+ this._stats.gpuMemoryBytes = this._liveBytes;
56
+ }
57
+ /**
58
+ * Re-book a resource whose byte size changed in place (e.g. a texture resize):
59
+ * frees the previous size and allocates the next, never dipping below zero.
60
+ * Returns the new size so callers can stash it for the next free.
61
+ */
62
+ reallocate(previousBytes, nextBytes) {
63
+ this.free(previousBytes);
64
+ this.allocate(nextBytes);
65
+ return nextBytes;
66
+ }
67
+ /** Record `bytes` of content-texture pixel data uploaded this frame (CPU → GPU). */
68
+ recordTextureUpload(bytes) {
69
+ if (bytes <= 0) {
70
+ return;
71
+ }
72
+ this._stats.textureUploadBytes += bytes;
73
+ }
74
+ /** Record `bytes` of buffer data uploaded this frame (CPU → GPU). */
75
+ recordBufferUpload(bytes) {
76
+ if (bytes <= 0) {
77
+ return;
78
+ }
79
+ this._stats.bufferUploadBytes += bytes;
80
+ }
81
+ /** Record a GPU → CPU readback of `bytes` this frame (e.g. `mapAsync`, `readPixels`). */
82
+ recordDownload(bytes) {
83
+ if (bytes <= 0) {
84
+ return;
85
+ }
86
+ this._stats.downloadBytes += bytes;
87
+ this._stats.downloadCount++;
88
+ }
89
+ }
90
+ /**
91
+ * Estimated bytes for a 2D texture of `width × height` at `bytesPerPixel`,
92
+ * including the mip chain when `mipLevelCount > 1`. A full mip chain adds
93
+ * roughly ¹⁄₃ over the base level; this sums the exact per-level footprint
94
+ * (each level a quarter of the previous, floored at 1×1).
95
+ *
96
+ * @internal
97
+ */
98
+ const estimateTextureBytes = (width, height, bytesPerPixel, mipLevelCount = 1) => {
99
+ const baseWidth = Math.max(1, Math.floor(width));
100
+ const baseHeight = Math.max(1, Math.floor(height));
101
+ const levels = Math.max(1, Math.floor(mipLevelCount));
102
+ let total = 0;
103
+ let levelWidth = baseWidth;
104
+ let levelHeight = baseHeight;
105
+ for (let level = 0; level < levels; level++) {
106
+ total += levelWidth * levelHeight * bytesPerPixel;
107
+ if (levelWidth === 1 && levelHeight === 1) {
108
+ break;
109
+ }
110
+ levelWidth = Math.max(1, levelWidth >> 1);
111
+ levelHeight = Math.max(1, levelHeight >> 1);
112
+ }
113
+ return total;
114
+ };
115
+ /** Bytes per pixel for the {@link DataTexture} formats (shared by both backends). @internal */
116
+ const dataTextureBytesPerPixel = (format) => {
117
+ switch (format) {
118
+ case 'r8':
119
+ return 1;
120
+ case 'r32f':
121
+ return 4;
122
+ case 'rgba8':
123
+ return 4;
124
+ case 'rgba32f':
125
+ return 16;
126
+ }
127
+ };
128
+
129
+ export { GpuResourceAccountant, dataTextureBytesPerPixel, estimateTextureBytes };
130
+ //# sourceMappingURL=GpuResourceAccountant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GpuResourceAccountant.js","sources":["../../../../src/rendering/GpuResourceAccountant.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { Color } from '#core/Color';
2
+ import type { Matrix } from '#math/Matrix';
3
+ import type { Geometry } from '#rendering/geometry/Geometry';
4
+ import type { DrawContext, RenderToOptions } from './DrawContext';
5
+ import type { RenderBackend } from './RenderBackend';
6
+ import type { RenderBatch } from './RenderBatch';
7
+ import type { DrawBatchOptions, DrawGeometryOptions, RenderingContext, RenderOptions } from './RenderingContext';
8
+ import type { RenderNode } from './RenderNode';
9
+ import type { RenderTarget } from './RenderTarget';
10
+ import type { View } from './View';
11
+ /**
12
+ * Pass-scoped {@link DrawContext}: the active render target and view for a
13
+ * {@link CallbackRenderPass} callback. `clear`/`render`/`renderTo` route through
14
+ * the owning {@link RenderingContext} (and its pass coordinator), so they act on
15
+ * THIS pass's target and never reset the active view or leak onto another
16
+ * target. Default view for `render`/`draw*` is the pass view — not the world
17
+ * view — so a callback inside an off-screen redirect renders correctly without
18
+ * passing `{ view }` explicitly.
19
+ *
20
+ * Use {@link backend} only for raw draws or GPU state; switching target / view /
21
+ * clear through it bypasses the coordinator (the leak this type prevents).
22
+ * @advanced
23
+ */
24
+ export declare class PassContext implements DrawContext {
25
+ private readonly _context;
26
+ /** The target this pass draws into (read-only). */
27
+ readonly target: RenderTarget;
28
+ /** The view this pass renders with (read-only). */
29
+ readonly view: View;
30
+ constructor(_context: RenderingContext,
31
+ /** The target this pass draws into (read-only). */
32
+ target: RenderTarget,
33
+ /** The view this pass renders with (read-only). */
34
+ view: View);
35
+ get backend(): RenderBackend;
36
+ clear(color: Color): void;
37
+ render(node: RenderNode, options?: RenderOptions): void;
38
+ renderTo(node: RenderNode, options: RenderToOptions): void;
39
+ drawGeometry(geometry: Geometry, transform: Matrix, options?: DrawGeometryOptions): void;
40
+ drawBatch(batch: RenderBatch, options?: DrawBatchOptions): void;
41
+ }
42
+ //# sourceMappingURL=PassContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PassContext.d.ts","sourceRoot":"","sources":["../../../src/rendering/PassContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,YAAW,WAAW;IAE3C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,mDAAmD;aACnC,MAAM,EAAE,YAAY;IACpC,mDAAmD;aACnC,IAAI,EAAE,IAAI;gBAJT,QAAQ,EAAE,gBAAgB;IAC3C,mDAAmD;IACnC,MAAM,EAAE,YAAY;IACpC,mDAAmD;IACnC,IAAI,EAAE,IAAI;IAG5B,IAAW,OAAO,IAAI,aAAa,CAElC;IAEM,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAIzB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAIvD,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAI1D,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAIxF,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;CAGvE"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Pass-scoped {@link DrawContext}: the active render target and view for a
3
+ * {@link CallbackRenderPass} callback. `clear`/`render`/`renderTo` route through
4
+ * the owning {@link RenderingContext} (and its pass coordinator), so they act on
5
+ * THIS pass's target and never reset the active view or leak onto another
6
+ * target. Default view for `render`/`draw*` is the pass view — not the world
7
+ * view — so a callback inside an off-screen redirect renders correctly without
8
+ * passing `{ view }` explicitly.
9
+ *
10
+ * Use {@link backend} only for raw draws or GPU state; switching target / view /
11
+ * clear through it bypasses the coordinator (the leak this type prevents).
12
+ * @advanced
13
+ */
14
+ class PassContext {
15
+ _context;
16
+ target;
17
+ view;
18
+ constructor(_context,
19
+ /** The target this pass draws into (read-only). */
20
+ target,
21
+ /** The view this pass renders with (read-only). */
22
+ view) {
23
+ this._context = _context;
24
+ this.target = target;
25
+ this.view = view;
26
+ }
27
+ get backend() {
28
+ return this._context.backend;
29
+ }
30
+ clear(color) {
31
+ this._context.clear(color);
32
+ }
33
+ render(node, options) {
34
+ this._context.render(node, { view: options?.view ?? this.view });
35
+ }
36
+ renderTo(node, options) {
37
+ this._context.renderTo(node, options);
38
+ }
39
+ drawGeometry(geometry, transform, options) {
40
+ this._context.drawGeometry(geometry, transform, { ...options, view: options?.view ?? this.view });
41
+ }
42
+ drawBatch(batch, options) {
43
+ this._context.drawBatch(batch, { ...options, view: options?.view ?? this.view });
44
+ }
45
+ }
46
+
47
+ export { PassContext };
48
+ //# sourceMappingURL=PassContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PassContext.js","sources":["../../../../src/rendering/PassContext.ts"],"sourcesContent":[null],"names":[],"mappings":"AAYA;;;;;;;;;;;;AAYG;MACU,WAAW,CAAA;AAEH,IAAA,QAAA;AAED,IAAA,MAAA;AAEA,IAAA,IAAA;AALlB,IAAA,WAAA,CACmB,QAA0B;;IAE3B,MAAoB;;IAEpB,IAAU,EAAA;QAJT,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAET,IAAA,CAAA,MAAM,GAAN,MAAM;QAEN,IAAA,CAAA,IAAI,GAAJ,IAAI;IACnB;AAEH,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;IAC9B;AAEO,IAAA,KAAK,CAAC,KAAY,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;IAC5B;IAEO,MAAM,CAAC,IAAgB,EAAE,OAAuB,EAAA;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAClE;IAEO,QAAQ,CAAC,IAAgB,EAAE,OAAwB,EAAA;QACxD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvC;AAEO,IAAA,YAAY,CAAC,QAAkB,EAAE,SAAiB,EAAE,OAA6B,EAAA;QACtF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACnG;IAEO,SAAS,CAAC,KAAkB,EAAE,OAA0B,EAAA;QAC7D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAClF;AACD;;;;"}
@@ -2,6 +2,7 @@ import type { Color } from '#core/Color';
2
2
  import type { Matrix } from '#math/Matrix';
3
3
  import type { Rectangle } from '#math/Rectangle';
4
4
  import type { Geometry } from '#rendering/geometry/Geometry';
5
+ import type { Mesh } from '#rendering/mesh/Mesh';
5
6
  import type { RenderTexture } from '#rendering/texture/RenderTexture';
6
7
  import type { Texture } from '#rendering/texture/Texture';
7
8
  import type { BackendRenderPass } from './BackendRenderPass';
@@ -28,10 +29,16 @@ import type { View } from './View';
28
29
  */
29
30
  export interface RenderBackend {
30
31
  readonly backendType: RenderBackendType;
31
- readonly rendererRegistry: RendererRegistry<any>;
32
+ readonly rendererRegistry: RendererRegistry<RenderBackend>;
32
33
  readonly view: View;
33
34
  readonly renderTarget: RenderTarget;
34
35
  readonly stats: RenderStats;
36
+ /**
37
+ * The colour the canvas root target is cleared to each frame. Mutable in
38
+ * place (`backend.clearColor.copy(...)`) — the new value takes effect on the
39
+ * next frame. Both backends initialise it from `app.options.clearColor`.
40
+ */
41
+ readonly clearColor: Color;
35
42
  initialize(): Promise<this>;
36
43
  resetStats(): this;
37
44
  clear(color?: Color): this;
@@ -74,7 +81,28 @@ export interface RenderBackend {
74
81
  * non-Rectangle `MaskSource` paths on `RenderNode.mask`.
75
82
  */
76
83
  composeWithAlphaMask(content: RenderTexture, mask: Texture | RenderTexture, x: number, y: number, width: number, height: number, blendMode: BlendModes): this;
84
+ /**
85
+ * Composite `source` over the active render target under an advanced
86
+ * (backdrop-aware) blend mode. Captures the target's `[x, y, width, height]`
87
+ * region, runs the W3C blend formula in a shader, and draws the result back
88
+ * with normal premultiplied source-over. Used internally by the render-effect
89
+ * executor for modes where {@link isAdvancedBlendMode} is `true`.
90
+ */
91
+ composeWithBackdropBlend(source: RenderTexture, x: number, y: number, width: number, height: number, mode: BlendModes): this;
77
92
  draw(drawable: Drawable): this;
93
+ /**
94
+ * Submit an explicit instanced batch: draw `mesh`'s geometry once with `count`
95
+ * per-instance `(transform, tint)` pairs, written into fresh shared transform
96
+ * slots, as a single instanced draw call. `mesh` carries the geometry,
97
+ * material, texture and blend mode; its own transform and tint are ignored.
98
+ * Only the first `count` entries of `transforms` / `tints` are read.
99
+ *
100
+ * Used internally by {@link RenderingContext.drawBatch}. The geometry must use
101
+ * the `triangle-list` topology and the standard mesh attribute layout; a
102
+ * supplied material must be instancing-compatible (default mesh material, or a
103
+ * custom shader declaring `a_nodeIndex` + `u_transforms`).
104
+ */
105
+ drawInstanced(mesh: Mesh, transforms: readonly Matrix[], tints: readonly Color[], count: number): this;
78
106
  execute(pass: BackendRenderPass): this;
79
107
  flush(): this;
80
108
  destroy(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderBackend.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAExC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAE5B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,UAAU,IAAI,IAAI,CAAC;IACnB,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IAEnD;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAEzC;;OAEG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB;;;;;;;;;OASG;IACH,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1D;;;OAGG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IACnE,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAEnD;;;;;;OAMG;IACH,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAE9J,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACvC,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"RenderBackend.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderBackend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { Color } from '#core/Color';
2
+ import { Matrix } from '#math/Matrix';
3
+ import type { Geometry } from '#rendering/geometry/Geometry';
4
+ import type { MeshMaterial } from '#rendering/material/MeshMaterial';
5
+ /**
6
+ * Explicit instanced draw submission: **one** {@link Geometry} + {@link MeshMaterial}
7
+ * drawn **once** with **N** per-instance `(transform, tint)` pairs — the general
8
+ * form of the engine's mesh-instancing model, surfaced for data-driven rendering
9
+ * (thousands of tiles, bullets, grass blades, procedural items as a single draw).
10
+ *
11
+ * Build it up with {@link add}, hand it to {@link RenderingContext.drawBatch},
12
+ * and {@link clear} it to reuse the same instance across frames without
13
+ * reallocating — the per-instance transform/tint storage grows on demand and is
14
+ * retained across `clear()`, so a steady-state batch allocates nothing.
15
+ *
16
+ * Each {@link add} **copies** the transform and tint into internal storage, so
17
+ * the caller may mutate or reuse the passed `Matrix`/`Color` immediately
18
+ * afterwards without affecting the batch.
19
+ *
20
+ * This is the explicit instanced submission path — distinct from the internal
21
+ * automatic sprite batcher: every instance shares the one geometry and material,
22
+ * and the whole batch is a single instanced draw call.
23
+ * @stable
24
+ */
25
+ export declare class RenderBatch {
26
+ /** The geometry every instance in this batch draws. */
27
+ readonly geometry: Geometry;
28
+ /** The shared mesh material, or `null` for the default mesh material. */
29
+ readonly material: MeshMaterial | null;
30
+ private readonly _transforms;
31
+ private readonly _tints;
32
+ private _count;
33
+ constructor(geometry: Geometry, material?: MeshMaterial | null);
34
+ /** Number of instances currently in the batch. */
35
+ get count(): number;
36
+ /**
37
+ * Append one instance. `transform` is the instance's world matrix (taken as
38
+ * the raw `a,b,c,d,tx,ty`), `tint` modulates the geometry's vertex colors
39
+ * (defaults to white). Both are copied into the batch.
40
+ */
41
+ add(transform: Matrix, tint?: Color | null): this;
42
+ /** Reset to zero instances for reuse, retaining the pooled storage. */
43
+ clear(): this;
44
+ /**
45
+ * Release the pooled per-instance storage. After this the batch must not be
46
+ * reused. The {@link geometry} and {@link material} are owned by the caller and
47
+ * are not destroyed.
48
+ */
49
+ destroy(): void;
50
+ /** Pooled per-instance transforms; only the first {@link count} are valid. @internal */
51
+ get _instanceTransforms(): readonly Matrix[];
52
+ /** Pooled per-instance tints; only the first {@link count} are valid. @internal */
53
+ get _instanceTints(): readonly Color[];
54
+ }
55
+ //# sourceMappingURL=RenderBatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderBatch.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderBatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,WAAW;IACtB,uDAAuD;IACvD,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,yEAAyE;IACzE,SAAgB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAI9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,MAAM,CAAK;gBAEA,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAE,YAAY,GAAG,IAAW;IAmB3E,kDAAkD;IAClD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;;;OAIG;IACI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,IAAW,GAAG,IAAI;IAwB9D,uEAAuE;IAChE,KAAK,IAAI,IAAI;IAMpB;;;;OAIG;IACI,OAAO,IAAI,IAAI;IActB,wFAAwF;IACxF,IAAW,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAElD;IAED,mFAAmF;IACnF,IAAW,cAAc,IAAI,SAAS,KAAK,EAAE,CAE5C;CACF"}
@@ -0,0 +1,107 @@
1
+ import { Color } from '../core/Color.js';
2
+ import { Matrix } from '../math/Matrix.js';
3
+
4
+ /**
5
+ * Explicit instanced draw submission: **one** {@link Geometry} + {@link MeshMaterial}
6
+ * drawn **once** with **N** per-instance `(transform, tint)` pairs — the general
7
+ * form of the engine's mesh-instancing model, surfaced for data-driven rendering
8
+ * (thousands of tiles, bullets, grass blades, procedural items as a single draw).
9
+ *
10
+ * Build it up with {@link add}, hand it to {@link RenderingContext.drawBatch},
11
+ * and {@link clear} it to reuse the same instance across frames without
12
+ * reallocating — the per-instance transform/tint storage grows on demand and is
13
+ * retained across `clear()`, so a steady-state batch allocates nothing.
14
+ *
15
+ * Each {@link add} **copies** the transform and tint into internal storage, so
16
+ * the caller may mutate or reuse the passed `Matrix`/`Color` immediately
17
+ * afterwards without affecting the batch.
18
+ *
19
+ * This is the explicit instanced submission path — distinct from the internal
20
+ * automatic sprite batcher: every instance shares the one geometry and material,
21
+ * and the whole batch is a single instanced draw call.
22
+ * @stable
23
+ */
24
+ class RenderBatch {
25
+ /** The geometry every instance in this batch draws. */
26
+ geometry;
27
+ /** The shared mesh material, or `null` for the default mesh material. */
28
+ material;
29
+ // Per-instance storage grows with `add` and is reused after `clear` — only the
30
+ // logical `_count` resets, the pooled Matrix/Color instances are kept.
31
+ _transforms = [];
32
+ _tints = [];
33
+ _count = 0;
34
+ constructor(geometry, material = null) {
35
+ // The batch uploads its geometry to the GPU once and caches it by identity,
36
+ // so the geometry must be static (the default). dynamic/stream geometry has
37
+ // no persistent GPU buffer and is rejected.
38
+ if (geometry.usage !== 'static') {
39
+ throw new Error(`RenderBatch requires geometry with usage='static' (got '${geometry.usage}').`);
40
+ }
41
+ // v1 renders batches with the default mesh material; a custom material is not
42
+ // yet supported on the instanced path. The parameter is accepted (and stored)
43
+ // for the forthcoming custom-material batch support.
44
+ if (material !== null && material.target !== 'mesh') {
45
+ throw new Error(`RenderBatch material must target 'mesh' (got '${String(material.target)}').`);
46
+ }
47
+ this.geometry = geometry;
48
+ this.material = material;
49
+ }
50
+ /** Number of instances currently in the batch. */
51
+ get count() {
52
+ return this._count;
53
+ }
54
+ /**
55
+ * Append one instance. `transform` is the instance's world matrix (taken as
56
+ * the raw `a,b,c,d,tx,ty`), `tint` modulates the geometry's vertex colors
57
+ * (defaults to white). Both are copied into the batch.
58
+ */
59
+ add(transform, tint = null) {
60
+ let matrix = this._transforms[this._count];
61
+ if (matrix === undefined) {
62
+ matrix = new Matrix();
63
+ this._transforms[this._count] = matrix;
64
+ }
65
+ matrix.copy(transform);
66
+ let color = this._tints[this._count];
67
+ if (color === undefined) {
68
+ color = new Color();
69
+ this._tints[this._count] = color;
70
+ }
71
+ color.copy(tint ?? Color.white);
72
+ this._count++;
73
+ return this;
74
+ }
75
+ /** Reset to zero instances for reuse, retaining the pooled storage. */
76
+ clear() {
77
+ this._count = 0;
78
+ return this;
79
+ }
80
+ /**
81
+ * Release the pooled per-instance storage. After this the batch must not be
82
+ * reused. The {@link geometry} and {@link material} are owned by the caller and
83
+ * are not destroyed.
84
+ */
85
+ destroy() {
86
+ for (const matrix of this._transforms) {
87
+ matrix.destroy();
88
+ }
89
+ for (const color of this._tints) {
90
+ color.destroy();
91
+ }
92
+ this._transforms.length = 0;
93
+ this._tints.length = 0;
94
+ this._count = 0;
95
+ }
96
+ /** Pooled per-instance transforms; only the first {@link count} are valid. @internal */
97
+ get _instanceTransforms() {
98
+ return this._transforms;
99
+ }
100
+ /** Pooled per-instance tints; only the first {@link count} are valid. @internal */
101
+ get _instanceTints() {
102
+ return this._tints;
103
+ }
104
+ }
105
+
106
+ export { RenderBatch };
107
+ //# sourceMappingURL=RenderBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderBatch.js","sources":["../../../../src/rendering/RenderBatch.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAKA;;;;;;;;;;;;;;;;;;;AAmBG;MACU,WAAW,CAAA;;AAEN,IAAA,QAAQ;;AAGR,IAAA,QAAQ;;;IAIP,WAAW,GAAa,EAAE;IAC1B,MAAM,GAAY,EAAE;IAC7B,MAAM,GAAG,CAAC;IAElB,WAAA,CAAmB,QAAkB,EAAE,QAAA,GAAgC,IAAI,EAAA;;;;AAIzE,QAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,CAAA,wDAAA,EAA2D,QAAQ,CAAC,KAAK,CAAA,GAAA,CAAK,CAAC;QACjG;;;;QAKA,IAAI,QAAQ,KAAK,IAAI,IAAK,QAAQ,CAAC,MAAiB,KAAK,MAAM,EAAE;AAC/D,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,8CAAA,EAAiD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,GAAA,CAAK,CAAC;QAChG;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;;AAGA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;;AAIG;AACI,IAAA,GAAG,CAAC,SAAiB,EAAE,IAAA,GAAqB,IAAI,EAAA;QACrD,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;AAE1C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,GAAG,IAAI,MAAM,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM;QACxC;AAEA,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAEtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAEpC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,KAAK,GAAG,IAAI,KAAK,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK;QAClC;QAEA,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;QAE/B,IAAI,CAAC,MAAM,EAAE;AAEb,QAAA,OAAO,IAAI;IACb;;IAGO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AAEf,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,OAAO,GAAA;AACZ,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;YACrC,MAAM,CAAC,OAAO,EAAE;QAClB;AAEA,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,KAAK,CAAC,OAAO,EAAE;QACjB;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;IACjB;;AAGA,IAAA,IAAW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,WAAW;IACzB;;AAGA,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;;;"}
@@ -1,7 +1,8 @@
1
1
  import { Color } from '#core/Color';
2
2
  import { SceneNode } from '#core/SceneNode';
3
3
  import { Signal } from '#core/Signal';
4
- import type { InteractionEvent } from '#input/InteractionEvent';
4
+ import type { InteractionEvent, InteractionEventType } from '#input/InteractionEvent';
5
+ import type { KeyEvent } from '#input/KeyEvent';
5
6
  import { Rectangle } from '#math/Rectangle';
6
7
  import type { Filter } from '#rendering/filters/Filter';
7
8
  import type { Geometry } from '#rendering/geometry/Geometry';
@@ -117,18 +118,57 @@ export declare abstract class RenderNode extends SceneNode {
117
118
  * @default null
118
119
  */
119
120
  clipShape: Rectangle | Geometry | null;
120
- readonly onPointerDown: Signal<[InteractionEvent]>;
121
- readonly onPointerUp: Signal<[InteractionEvent]>;
122
- readonly onPointerMove: Signal<[InteractionEvent]>;
123
- readonly onPointerOver: Signal<[InteractionEvent]>;
124
- readonly onPointerOut: Signal<[InteractionEvent]>;
125
- readonly onPointerTap: Signal<[InteractionEvent]>;
121
+ private _signals;
122
+ get onPointerDown(): Signal<[InteractionEvent]>;
123
+ get onPointerUp(): Signal<[InteractionEvent]>;
124
+ get onPointerMove(): Signal<[InteractionEvent]>;
125
+ get onPointerOver(): Signal<[InteractionEvent]>;
126
+ get onPointerOut(): Signal<[InteractionEvent]>;
127
+ get onPointerTap(): Signal<[InteractionEvent]>;
126
128
  /** Fired once when a drag gesture begins on this node. Does not bubble. */
127
- readonly onDragStart: Signal<[InteractionEvent]>;
129
+ get onDragStart(): Signal<[InteractionEvent]>;
128
130
  /** Fired on every pointer-move while this node is being dragged. Does not bubble. */
129
- readonly onDrag: Signal<[InteractionEvent]>;
131
+ get onDrag(): Signal<[InteractionEvent]>;
130
132
  /** Fired when the drag gesture ends (pointer-up or cancel). Does not bubble. */
131
- readonly onDragEnd: Signal<[InteractionEvent]>;
133
+ get onDragEnd(): Signal<[InteractionEvent]>;
134
+ private _interactionSignal;
135
+ /** @internal — the signal for `type`, or `null` if never materialized (used by the dispatch peek). */
136
+ _peekInteractionSignal(type: InteractionEventType): Signal<[InteractionEvent]> | null;
137
+ /**
138
+ * When `true`, this node can receive keyboard focus — via {@link focus},
139
+ * Tab traversal, or `app.focus.focus(node)` — and is delivered key events
140
+ * through {@link onKeyDown} / {@link onKeyUp} while focused.
141
+ *
142
+ * @default false
143
+ */
144
+ focusable: boolean;
145
+ /**
146
+ * Tab-traversal order among focusable nodes in the same focus scope. Lower
147
+ * values are visited first; equal values keep document (tree) order.
148
+ *
149
+ * @default 0
150
+ */
151
+ tabIndex: number;
152
+ private _onFocus;
153
+ private _onBlur;
154
+ private _onKeyDown;
155
+ private _onKeyUp;
156
+ /** Fired when this node gains keyboard focus. */
157
+ get onFocus(): Signal<[RenderNode]>;
158
+ /** Fired when this node loses keyboard focus. */
159
+ get onBlur(): Signal<[RenderNode]>;
160
+ /** Fired for each key pressed while this node holds focus. */
161
+ get onKeyDown(): Signal<[KeyEvent]>;
162
+ /** Fired for each key released while this node holds focus. */
163
+ get onKeyUp(): Signal<[KeyEvent]>;
164
+ /** @internal — the focus/blur signal if materialized, else `null` (dispatch peek). */
165
+ _peekFocusSignal(type: 'focus' | 'blur'): Signal<[RenderNode]> | null;
166
+ /** @internal — the keydown/keyup signal if materialized, else `null` (dispatch peek). */
167
+ _peekKeySignal(type: 'keydown' | 'keyup'): Signal<[KeyEvent]> | null;
168
+ /** Request keyboard focus for this node through its owning focus service. */
169
+ focus(): this;
170
+ /** Release keyboard focus from this node if it currently holds it. */
171
+ blur(): this;
132
172
  private readonly _filters;
133
173
  private readonly _cacheBounds;
134
174
  private _cacheSprite;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderNode.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOrC,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;CACjB;AAKD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,IAAI,CAAC;AAEjF;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,UAAW,SAAQ,SAAS;IAChD,OAAO,CAAC,MAAM,CAAC,cAAc,CAA6C;IAE1E,OAAO,CAAC,YAAY,CAAS;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,WAAW,CAAC,KAAK,EAAE,OAAO,EAOpC;IAED;;;;;;;OAOG;IACI,SAAS,UAAS;IAEzB;;;;;;;;;;OAUG;IACI,iBAAiB,UAAS;IAEjC;;;;;;;;;;;;;;;;;OAiBG;IACI,IAAI,UAAS;IAEpB;;;;;;OAMG;IACI,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAQ;IAErD,SAAgB,aAAa,6BAAoC;IACjE,SAAgB,WAAW,6BAAoC;IAC/D,SAAgB,aAAa,6BAAoC;IACjE,SAAgB,aAAa,6BAAoC;IACjE,SAAgB,YAAY,6BAAoC;IAChE,SAAgB,YAAY,6BAAoC;IAEhE,2EAA2E;IAC3E,SAAgB,WAAW,6BAAoC;IAC/D,qFAAqF;IACrF,SAAgB,MAAM,6BAAoC;IAC1D,gFAAgF;IAChF,SAAgB,SAAS,6BAAoC;IAE7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,aAAa,CAA8B;IAEnD,IAAW,OAAO,IAAI,SAAS,MAAM,EAAE,CAEtC;IAED,IAAW,OAAO,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAI5C;IAED;;;;;;;OAOG;IACH,IAAW,IAAI,IAAI,UAAU,CAE5B;IAED,IAAW,IAAI,CAAC,IAAI,EAAE,UAAU,EAS/B;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAM3C,gBAAgB;IACT,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAc/D,gBAAgB;IACT,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAI9D,gBAAgB;IACT,wBAAwB,IAAI,OAAO;IAI1C,gBAAgB;IAChB,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAI5D,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAW,aAAa,CAAC,aAAa,EAAE,OAAO,EAS9C;IAEM,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;WAW3B,wBAAwB,CAAC,OAAO,EAAE,CAAC,MAAM,oBAAoB,CAAC,GAAG,IAAI,GAAG,IAAI;IAInF,YAAY,IAAI,IAAI;IASpB,eAAe,IAAI,IAAI;IAM9B,gBAAgB;IACT,4BAA4B,IAAI,OAAO;IAI9C,gBAAgB;IACT,wBAAwB,IAAI,UAAU;IAI7C,gBAAgB;IACT,qBAAqB,IAAI,SAAS,MAAM,EAAE;IAIjD,gBAAgB;IACT,uBAAuB,IAAI,UAAU;IAI5C,gBAAgB;IACT,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxG,gBAAgB;IACT,0BAA0B,IAAI,aAAa,GAAG,IAAI;IAIzD,gBAAgB;IACT,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAIlF,gBAAgB;IACT,4BAA4B,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3H,gBAAgB;IACT,0BAA0B,CAC/B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,IAAI,GACxB,IAAI;IAIP,gBAAgB;IACT,sBAAsB,CAC3B,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,GACpB,IAAI;IAIS,OAAO,IAAI,IAAI;IA8B/B,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe;CAWxB"}
1
+ {"version":3,"file":"RenderNode.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderNode.ts"],"names":[],"mappings":"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"}