@codexo/exojs 0.11.0 → 0.12.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 (778) hide show
  1. package/CHANGELOG.md +182 -0
  2. package/LICENSE +21 -0
  3. package/README.md +59 -23
  4. package/dist/esm/animation/Easing.d.ts +1 -0
  5. package/dist/esm/animation/Easing.d.ts.map +1 -0
  6. package/dist/esm/animation/Tween.d.ts +1 -0
  7. package/dist/esm/animation/Tween.d.ts.map +1 -0
  8. package/dist/esm/animation/TweenManager.d.ts +1 -0
  9. package/dist/esm/animation/TweenManager.d.ts.map +1 -0
  10. package/dist/esm/animation/index.d.ts +1 -0
  11. package/dist/esm/animation/index.d.ts.map +1 -0
  12. package/dist/esm/animation/types.d.ts +1 -0
  13. package/dist/esm/animation/types.d.ts.map +1 -0
  14. package/dist/esm/audio/AbstractMedia.d.ts +5 -4
  15. package/dist/esm/audio/AbstractMedia.d.ts.map +1 -0
  16. package/dist/esm/audio/AbstractMedia.js.map +1 -1
  17. package/dist/esm/audio/AudioAnalyser.d.ts +4 -3
  18. package/dist/esm/audio/AudioAnalyser.d.ts.map +1 -0
  19. package/dist/esm/audio/AudioAnalyser.js +1 -1
  20. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  21. package/dist/esm/audio/AudioBus.d.ts +1 -0
  22. package/dist/esm/audio/AudioBus.d.ts.map +1 -0
  23. package/dist/esm/audio/AudioFilter.d.ts +1 -0
  24. package/dist/esm/audio/AudioFilter.d.ts.map +1 -0
  25. package/dist/esm/audio/AudioListener.d.ts +4 -3
  26. package/dist/esm/audio/AudioListener.d.ts.map +1 -0
  27. package/dist/esm/audio/AudioManager.d.ts +1 -0
  28. package/dist/esm/audio/AudioManager.d.ts.map +1 -0
  29. package/dist/esm/audio/BeatDetector.d.ts +5 -4
  30. package/dist/esm/audio/BeatDetector.d.ts.map +1 -0
  31. package/dist/esm/audio/BeatDetector.js +1 -1
  32. package/dist/esm/audio/BeatDetector.js.map +1 -1
  33. package/dist/esm/audio/Envelope.d.ts +1 -0
  34. package/dist/esm/audio/Envelope.d.ts.map +1 -0
  35. package/dist/esm/audio/Media.d.ts +2 -1
  36. package/dist/esm/audio/Media.d.ts.map +1 -0
  37. package/dist/esm/audio/Music.d.ts +4 -3
  38. package/dist/esm/audio/Music.d.ts.map +1 -0
  39. package/dist/esm/audio/Music.js +1 -1
  40. package/dist/esm/audio/Music.js.map +1 -1
  41. package/dist/esm/audio/OscillatorSound.d.ts +2 -1
  42. package/dist/esm/audio/OscillatorSound.d.ts.map +1 -0
  43. package/dist/esm/audio/Sound.d.ts +5 -4
  44. package/dist/esm/audio/Sound.d.ts.map +1 -0
  45. package/dist/esm/audio/Sound.js +2 -2
  46. package/dist/esm/audio/Sound.js.map +1 -1
  47. package/dist/esm/audio/audio-context.d.ts +2 -1
  48. package/dist/esm/audio/audio-context.d.ts.map +1 -0
  49. package/dist/esm/audio/crossFade.d.ts +1 -0
  50. package/dist/esm/audio/crossFade.d.ts.map +1 -0
  51. package/dist/esm/audio/dsp/fft.d.ts +1 -0
  52. package/dist/esm/audio/dsp/fft.d.ts.map +1 -0
  53. package/dist/esm/audio/dsp/mel.d.ts +1 -0
  54. package/dist/esm/audio/dsp/mel.d.ts.map +1 -0
  55. package/dist/esm/audio/dsp/tempogram.d.ts +1 -0
  56. package/dist/esm/audio/dsp/tempogram.d.ts.map +1 -0
  57. package/dist/esm/audio/filters/ChorusFilter.d.ts +2 -1
  58. package/dist/esm/audio/filters/ChorusFilter.d.ts.map +1 -0
  59. package/dist/esm/audio/filters/CompressorFilter.d.ts +2 -1
  60. package/dist/esm/audio/filters/CompressorFilter.d.ts.map +1 -0
  61. package/dist/esm/audio/filters/DelayFilter.d.ts +2 -1
  62. package/dist/esm/audio/filters/DelayFilter.d.ts.map +1 -0
  63. package/dist/esm/audio/filters/DuckingFilter.d.ts +2 -1
  64. package/dist/esm/audio/filters/DuckingFilter.d.ts.map +1 -0
  65. package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
  66. package/dist/esm/audio/filters/EqualizerFilter.d.ts +2 -1
  67. package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +1 -0
  68. package/dist/esm/audio/filters/GranularFilter.d.ts +1 -0
  69. package/dist/esm/audio/filters/GranularFilter.d.ts.map +1 -0
  70. package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
  71. package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -1
  72. package/dist/esm/audio/filters/HighpassFilter.d.ts.map +1 -0
  73. package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -1
  74. package/dist/esm/audio/filters/LowpassFilter.d.ts.map +1 -0
  75. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +1 -0
  76. package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +1 -0
  77. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
  78. package/dist/esm/audio/filters/ReverbFilter.d.ts +2 -1
  79. package/dist/esm/audio/filters/ReverbFilter.d.ts.map +1 -0
  80. package/dist/esm/audio/filters/VocoderFilter.d.ts +2 -1
  81. package/dist/esm/audio/filters/VocoderFilter.d.ts.map +1 -0
  82. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
  83. package/dist/esm/audio/filters/WorkletFilter.d.ts +2 -1
  84. package/dist/esm/audio/filters/WorkletFilter.d.ts.map +1 -0
  85. package/dist/esm/audio/filters/index.d.ts +1 -0
  86. package/dist/esm/audio/filters/index.d.ts.map +1 -0
  87. package/dist/esm/audio/index.d.ts +2 -1
  88. package/dist/esm/audio/index.d.ts.map +1 -0
  89. package/dist/esm/audio/worklet/registerWorklet.d.ts +1 -0
  90. package/dist/esm/audio/worklet/registerWorklet.d.ts.map +1 -0
  91. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +1 -0
  92. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +1 -0
  93. package/dist/esm/audio/worklets/granular.worklet.d.ts +1 -0
  94. package/dist/esm/audio/worklets/granular.worklet.d.ts.map +1 -0
  95. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +1 -0
  96. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +1 -0
  97. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +1 -0
  98. package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +1 -0
  99. package/dist/esm/core/Application.d.ts +24 -14
  100. package/dist/esm/core/Application.d.ts.map +1 -0
  101. package/dist/esm/core/Application.js +50 -5
  102. package/dist/esm/core/Application.js.map +1 -1
  103. package/dist/esm/core/Bounds.d.ts +3 -2
  104. package/dist/esm/core/Bounds.d.ts.map +1 -0
  105. package/dist/esm/core/BuildInfo.d.ts +16 -0
  106. package/dist/esm/core/BuildInfo.d.ts.map +1 -0
  107. package/dist/esm/core/BuildInfo.js +8 -0
  108. package/dist/esm/core/BuildInfo.js.map +1 -0
  109. package/dist/esm/core/Clock.d.ts +1 -0
  110. package/dist/esm/core/Clock.d.ts.map +1 -0
  111. package/dist/esm/core/Clock.js +1 -1
  112. package/dist/esm/core/Clock.js.map +1 -1
  113. package/dist/esm/core/Color.d.ts +2 -1
  114. package/dist/esm/core/Color.d.ts.map +1 -0
  115. package/dist/esm/core/Color.js.map +1 -1
  116. package/dist/esm/core/Perf.d.ts +1 -0
  117. package/dist/esm/core/Perf.d.ts.map +1 -0
  118. package/dist/esm/core/Scene.d.ts +7 -6
  119. package/dist/esm/core/Scene.d.ts.map +1 -0
  120. package/dist/esm/core/SceneManager.d.ts +1 -0
  121. package/dist/esm/core/SceneManager.d.ts.map +1 -0
  122. package/dist/esm/core/SceneNode.d.ts +11 -10
  123. package/dist/esm/core/SceneNode.d.ts.map +1 -0
  124. package/dist/esm/core/Signal.d.ts +1 -0
  125. package/dist/esm/core/Signal.d.ts.map +1 -0
  126. package/dist/esm/core/Time.d.ts +2 -1
  127. package/dist/esm/core/Time.d.ts.map +1 -0
  128. package/dist/esm/core/Timer.d.ts +2 -1
  129. package/dist/esm/core/Timer.d.ts.map +1 -0
  130. package/dist/esm/core/Timer.js +1 -1
  131. package/dist/esm/core/Timer.js.map +1 -1
  132. package/dist/esm/core/capabilities.d.ts +1 -0
  133. package/dist/esm/core/capabilities.d.ts.map +1 -0
  134. package/dist/esm/core/dev.d.ts +1 -0
  135. package/dist/esm/core/dev.d.ts.map +1 -0
  136. package/dist/esm/core/dev.js +31 -10
  137. package/dist/esm/core/dev.js.map +1 -1
  138. package/dist/esm/core/index.d.ts +2 -0
  139. package/dist/esm/core/index.d.ts.map +1 -0
  140. package/dist/esm/core/types.d.ts +2 -1
  141. package/dist/esm/core/types.d.ts.map +1 -0
  142. package/dist/esm/core/utils.d.ts +4 -3
  143. package/dist/esm/core/utils.d.ts.map +1 -0
  144. package/dist/esm/core/utils.js +1 -1
  145. package/dist/esm/core/utils.js.map +1 -1
  146. package/dist/esm/debug/BoundingBoxesLayer.d.ts +4 -3
  147. package/dist/esm/debug/BoundingBoxesLayer.d.ts.map +1 -0
  148. package/dist/esm/debug/DebugLayer.d.ts +4 -3
  149. package/dist/esm/debug/DebugLayer.d.ts.map +1 -0
  150. package/dist/esm/debug/DebugOverlay.d.ts +2 -1
  151. package/dist/esm/debug/DebugOverlay.d.ts.map +1 -0
  152. package/dist/esm/debug/HitTestLayer.d.ts +4 -3
  153. package/dist/esm/debug/HitTestLayer.d.ts.map +1 -0
  154. package/dist/esm/debug/PerformanceLayer.d.ts +4 -3
  155. package/dist/esm/debug/PerformanceLayer.d.ts.map +1 -0
  156. package/dist/esm/debug/PointerStackLayer.d.ts +4 -3
  157. package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -0
  158. package/dist/esm/debug/RenderPassInspectorLayer.d.ts +33 -4
  159. package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -0
  160. package/dist/esm/debug/RenderPassInspectorLayer.js +41 -0
  161. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  162. package/dist/esm/debug/index.d.ts +2 -1
  163. package/dist/esm/debug/index.d.ts.map +1 -0
  164. package/dist/esm/extensions/Extension.d.ts +70 -0
  165. package/dist/esm/extensions/Extension.d.ts.map +1 -0
  166. package/dist/esm/extensions/ExtensionRegistry.d.ts +35 -0
  167. package/dist/esm/extensions/ExtensionRegistry.d.ts.map +1 -0
  168. package/dist/esm/extensions/ExtensionRegistry.js +63 -0
  169. package/dist/esm/extensions/ExtensionRegistry.js.map +1 -0
  170. package/dist/esm/extensions/index.d.ts +3 -0
  171. package/dist/esm/extensions/index.d.ts.map +1 -0
  172. package/dist/esm/extensions/index.js +2 -0
  173. package/dist/esm/extensions/index.js.map +1 -0
  174. package/dist/esm/extensions/materialize.d.ts +16 -0
  175. package/dist/esm/extensions/materialize.d.ts.map +1 -0
  176. package/dist/esm/extensions/materialize.js +61 -0
  177. package/dist/esm/extensions/materialize.js.map +1 -0
  178. package/dist/esm/extensions/snapshot.d.ts +16 -0
  179. package/dist/esm/extensions/snapshot.d.ts.map +1 -0
  180. package/dist/esm/extensions/snapshot.js +49 -0
  181. package/dist/esm/extensions/snapshot.js.map +1 -0
  182. package/dist/esm/extensions/testing.d.ts +7 -0
  183. package/dist/esm/extensions/testing.d.ts.map +1 -0
  184. package/dist/esm/index.d.ts +9 -8
  185. package/dist/esm/index.d.ts.map +1 -0
  186. package/dist/esm/index.js +21 -50
  187. package/dist/esm/index.js.map +1 -1
  188. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +1 -0
  189. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts.map +1 -0
  190. package/dist/esm/input/GameCubeGamepadMapping.d.ts +1 -0
  191. package/dist/esm/input/GameCubeGamepadMapping.d.ts.map +1 -0
  192. package/dist/esm/input/Gamepad.d.ts +2 -1
  193. package/dist/esm/input/Gamepad.d.ts.map +1 -0
  194. package/dist/esm/input/Gamepad.js +1 -1
  195. package/dist/esm/input/GamepadAxis.d.ts +1 -0
  196. package/dist/esm/input/GamepadAxis.d.ts.map +1 -0
  197. package/dist/esm/input/GamepadAxis.js +1 -1
  198. package/dist/esm/input/GamepadAxis.js.map +1 -1
  199. package/dist/esm/input/GamepadButton.d.ts +1 -0
  200. package/dist/esm/input/GamepadButton.d.ts.map +1 -0
  201. package/dist/esm/input/GamepadButton.js +1 -1
  202. package/dist/esm/input/GamepadButton.js.map +1 -1
  203. package/dist/esm/input/GamepadDefinitions.d.ts +1 -0
  204. package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -0
  205. package/dist/esm/input/GamepadMapping.d.ts +1 -0
  206. package/dist/esm/input/GamepadMapping.d.ts.map +1 -0
  207. package/dist/esm/input/GamepadPromptLayouts.d.ts +1 -0
  208. package/dist/esm/input/GamepadPromptLayouts.d.ts.map +1 -0
  209. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +1 -0
  210. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts.map +1 -0
  211. package/dist/esm/input/GestureRecognizer.d.ts +3 -2
  212. package/dist/esm/input/GestureRecognizer.d.ts.map +1 -0
  213. package/dist/esm/input/InputBinding.d.ts +3 -2
  214. package/dist/esm/input/InputBinding.d.ts.map +1 -0
  215. package/dist/esm/input/InputManager.d.ts +4 -3
  216. package/dist/esm/input/InputManager.d.ts.map +1 -0
  217. package/dist/esm/input/InputManager.js +1 -1
  218. package/dist/esm/input/InteractionEvent.d.ts +2 -1
  219. package/dist/esm/input/InteractionEvent.d.ts.map +1 -0
  220. package/dist/esm/input/InteractionManager.d.ts +4 -3
  221. package/dist/esm/input/InteractionManager.d.ts.map +1 -0
  222. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +1 -0
  223. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts.map +1 -0
  224. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +1 -0
  225. package/dist/esm/input/JoyConRightGamepadMapping.d.ts.map +1 -0
  226. package/dist/esm/input/PlayStationGamepadMapping.d.ts +1 -0
  227. package/dist/esm/input/PlayStationGamepadMapping.d.ts.map +1 -0
  228. package/dist/esm/input/Pointer.d.ts +4 -3
  229. package/dist/esm/input/Pointer.d.ts.map +1 -0
  230. package/dist/esm/input/Pointer.js +1 -1
  231. package/dist/esm/input/Pointer.js.map +1 -1
  232. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +1 -0
  233. package/dist/esm/input/SteamControllerGamepadMapping.d.ts.map +1 -0
  234. package/dist/esm/input/SteamDeckGamepadMapping.d.ts +1 -0
  235. package/dist/esm/input/SteamDeckGamepadMapping.d.ts.map +1 -0
  236. package/dist/esm/input/SwitchProGamepadMapping.d.ts +1 -0
  237. package/dist/esm/input/SwitchProGamepadMapping.d.ts.map +1 -0
  238. package/dist/esm/input/XboxGamepadMapping.d.ts +1 -0
  239. package/dist/esm/input/XboxGamepadMapping.d.ts.map +1 -0
  240. package/dist/esm/input/index.d.ts +1 -0
  241. package/dist/esm/input/index.d.ts.map +1 -0
  242. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +2 -1
  243. package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +1 -0
  244. package/dist/esm/input/types.d.ts +1 -0
  245. package/dist/esm/input/types.d.ts.map +1 -0
  246. package/dist/esm/math/AbstractVector.d.ts +2 -1
  247. package/dist/esm/math/AbstractVector.d.ts.map +1 -0
  248. package/dist/esm/math/Circle.d.ts +7 -6
  249. package/dist/esm/math/Circle.d.ts.map +1 -0
  250. package/dist/esm/math/Circle.js.map +1 -1
  251. package/dist/esm/math/CircleLike.d.ts +1 -0
  252. package/dist/esm/math/CircleLike.d.ts.map +1 -0
  253. package/dist/esm/math/Collision.d.ts +3 -2
  254. package/dist/esm/math/Collision.d.ts.map +1 -0
  255. package/dist/esm/math/Ellipse.d.ts +7 -6
  256. package/dist/esm/math/Ellipse.d.ts.map +1 -0
  257. package/dist/esm/math/Ellipse.js.map +1 -1
  258. package/dist/esm/math/EllipseLike.d.ts +1 -0
  259. package/dist/esm/math/EllipseLike.d.ts.map +1 -0
  260. package/dist/esm/math/Flags.d.ts +2 -1
  261. package/dist/esm/math/Flags.d.ts.map +1 -0
  262. package/dist/esm/math/Interval.d.ts +2 -1
  263. package/dist/esm/math/Interval.d.ts.map +1 -0
  264. package/dist/esm/math/Line.d.ts +7 -6
  265. package/dist/esm/math/Line.d.ts.map +1 -0
  266. package/dist/esm/math/Line.js.map +1 -1
  267. package/dist/esm/math/LineLike.d.ts +1 -0
  268. package/dist/esm/math/LineLike.d.ts.map +1 -0
  269. package/dist/esm/math/Matrix.d.ts +2 -1
  270. package/dist/esm/math/Matrix.d.ts.map +1 -0
  271. package/dist/esm/math/Matrix.js.map +1 -1
  272. package/dist/esm/math/ObservableSize.d.ts +1 -0
  273. package/dist/esm/math/ObservableSize.d.ts.map +1 -0
  274. package/dist/esm/math/ObservableVector.d.ts +2 -1
  275. package/dist/esm/math/ObservableVector.d.ts.map +1 -0
  276. package/dist/esm/math/PointLike.d.ts +1 -0
  277. package/dist/esm/math/PointLike.d.ts.map +1 -0
  278. package/dist/esm/math/PolarVector.d.ts +2 -1
  279. package/dist/esm/math/PolarVector.d.ts.map +1 -0
  280. package/dist/esm/math/Polygon.d.ts +7 -6
  281. package/dist/esm/math/Polygon.d.ts.map +1 -0
  282. package/dist/esm/math/Polygon.js.map +1 -1
  283. package/dist/esm/math/PolygonLike.d.ts +2 -1
  284. package/dist/esm/math/PolygonLike.d.ts.map +1 -0
  285. package/dist/esm/math/Quadtree.d.ts +1 -0
  286. package/dist/esm/math/Quadtree.d.ts.map +1 -0
  287. package/dist/esm/math/Random.d.ts +1 -0
  288. package/dist/esm/math/Random.d.ts.map +1 -0
  289. package/dist/esm/math/Rectangle.d.ts +8 -7
  290. package/dist/esm/math/Rectangle.d.ts.map +1 -0
  291. package/dist/esm/math/Rectangle.js.map +1 -1
  292. package/dist/esm/math/RectangleLike.d.ts +1 -0
  293. package/dist/esm/math/RectangleLike.d.ts.map +1 -0
  294. package/dist/esm/math/Segment.d.ts +3 -2
  295. package/dist/esm/math/Segment.d.ts.map +1 -0
  296. package/dist/esm/math/Segment.js.map +1 -1
  297. package/dist/esm/math/ShapeLike.d.ts +3 -2
  298. package/dist/esm/math/ShapeLike.d.ts.map +1 -0
  299. package/dist/esm/math/Size.d.ts +2 -1
  300. package/dist/esm/math/Size.d.ts.map +1 -0
  301. package/dist/esm/math/Vector.d.ts +6 -5
  302. package/dist/esm/math/Vector.d.ts.map +1 -0
  303. package/dist/esm/math/Vector.js +1 -1
  304. package/dist/esm/math/collision-detection.d.ts +8 -7
  305. package/dist/esm/math/collision-detection.d.ts.map +1 -0
  306. package/dist/esm/math/collision-detection.js +1 -1
  307. package/dist/esm/math/collision-detection.js.map +1 -1
  308. package/dist/esm/math/collision-primitives.d.ts +3 -2
  309. package/dist/esm/math/collision-primitives.d.ts.map +1 -0
  310. package/dist/esm/math/geometry.d.ts +1 -0
  311. package/dist/esm/math/geometry.d.ts.map +1 -0
  312. package/dist/esm/math/index.d.ts +1 -0
  313. package/dist/esm/math/index.d.ts.map +1 -0
  314. package/dist/esm/math/swept-collision.d.ts +1 -0
  315. package/dist/esm/math/swept-collision.d.ts.map +1 -0
  316. package/dist/esm/math/triangulate.d.ts +1 -0
  317. package/dist/esm/math/triangulate.d.ts.map +1 -0
  318. package/dist/esm/math/utils.d.ts +2 -1
  319. package/dist/esm/math/utils.d.ts.map +1 -0
  320. package/dist/esm/renderer-sdk.d.ts +27 -0
  321. package/dist/esm/renderer-sdk.d.ts.map +1 -0
  322. package/dist/esm/rendering/BackendRenderPass.d.ts +17 -0
  323. package/dist/esm/rendering/BackendRenderPass.d.ts.map +1 -0
  324. package/dist/esm/rendering/BackendTargetPass.d.ts +38 -0
  325. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -0
  326. package/dist/esm/rendering/{RenderTargetPass.js → BackendTargetPass.js} +12 -7
  327. package/dist/esm/rendering/BackendTargetPass.js.map +1 -0
  328. package/dist/esm/rendering/CallbackRenderPass.d.ts +38 -14
  329. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -0
  330. package/dist/esm/rendering/CallbackRenderPass.js +61 -13
  331. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  332. package/dist/esm/rendering/Camera.d.ts +3 -2
  333. package/dist/esm/rendering/Camera.d.ts.map +1 -0
  334. package/dist/esm/rendering/Camera.js.map +1 -1
  335. package/dist/esm/rendering/Container.d.ts +2 -1
  336. package/dist/esm/rendering/Container.d.ts.map +1 -0
  337. package/dist/esm/rendering/Drawable.d.ts +4 -3
  338. package/dist/esm/rendering/Drawable.d.ts.map +1 -0
  339. package/dist/esm/rendering/Drawable.js +1 -1
  340. package/dist/esm/rendering/RenderBackend.d.ts +13 -10
  341. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -0
  342. package/dist/esm/rendering/RenderBackendType.d.ts +1 -0
  343. package/dist/esm/rendering/RenderBackendType.d.ts.map +1 -0
  344. package/dist/esm/rendering/RenderNode.d.ts +13 -12
  345. package/dist/esm/rendering/RenderNode.d.ts.map +1 -0
  346. package/dist/esm/rendering/RenderNode.js +2 -2
  347. package/dist/esm/rendering/RenderNode.js.map +1 -1
  348. package/dist/esm/rendering/RenderNodePass.d.ts +38 -0
  349. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -0
  350. package/dist/esm/rendering/RenderNodePass.js +48 -0
  351. package/dist/esm/rendering/RenderNodePass.js.map +1 -0
  352. package/dist/esm/rendering/RenderPass.d.ts +53 -8
  353. package/dist/esm/rendering/RenderPass.d.ts.map +1 -0
  354. package/dist/esm/rendering/RenderPass.js +48 -0
  355. package/dist/esm/rendering/RenderPass.js.map +1 -0
  356. package/dist/esm/rendering/RenderPipeline.d.ts +61 -0
  357. package/dist/esm/rendering/RenderPipeline.d.ts.map +1 -0
  358. package/dist/esm/rendering/RenderPipeline.js +177 -0
  359. package/dist/esm/rendering/RenderPipeline.js.map +1 -0
  360. package/dist/esm/rendering/RenderStats.d.ts +1 -0
  361. package/dist/esm/rendering/RenderStats.d.ts.map +1 -0
  362. package/dist/esm/rendering/RenderTarget.d.ts +4 -3
  363. package/dist/esm/rendering/RenderTarget.d.ts.map +1 -0
  364. package/dist/esm/rendering/Renderer.d.ts +1 -0
  365. package/dist/esm/rendering/Renderer.d.ts.map +1 -0
  366. package/dist/esm/rendering/RendererRegistry.d.ts +13 -2
  367. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -0
  368. package/dist/esm/rendering/RendererRegistry.js +60 -7
  369. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  370. package/dist/esm/rendering/RenderingContext.d.ts +7 -6
  371. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -0
  372. package/dist/esm/rendering/RenderingContext.js +5 -5
  373. package/dist/esm/rendering/TransformBuffer.d.ts +3 -2
  374. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -0
  375. package/dist/esm/rendering/View.d.ts +7 -6
  376. package/dist/esm/rendering/View.d.ts.map +1 -0
  377. package/dist/esm/rendering/coreRendererBindings.d.ts +10 -0
  378. package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -0
  379. package/dist/esm/rendering/coreRendererBindings.js +51 -0
  380. package/dist/esm/rendering/coreRendererBindings.js.map +1 -0
  381. package/dist/esm/rendering/filters/BlurFilter.d.ts +3 -2
  382. package/dist/esm/rendering/filters/BlurFilter.d.ts.map +1 -0
  383. package/dist/esm/rendering/filters/BlurFilter.js +2 -2
  384. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  385. package/dist/esm/rendering/filters/ColorFilter.d.ts +4 -3
  386. package/dist/esm/rendering/filters/ColorFilter.d.ts.map +1 -0
  387. package/dist/esm/rendering/filters/ColorFilter.js +2 -2
  388. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  389. package/dist/esm/rendering/filters/Filter.d.ts +3 -2
  390. package/dist/esm/rendering/filters/Filter.d.ts.map +1 -0
  391. package/dist/esm/rendering/filters/LutFilter.d.ts +4 -3
  392. package/dist/esm/rendering/filters/LutFilter.d.ts.map +1 -0
  393. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +4 -3
  394. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts.map +1 -0
  395. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +2 -2
  396. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  397. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +3 -2
  398. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -0
  399. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -3
  400. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  401. package/dist/esm/rendering/geometry/Geometry.d.ts +2 -1
  402. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -0
  403. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +1 -0
  404. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts.map +1 -0
  405. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +1 -0
  406. package/dist/esm/rendering/geometry/QuadGeometry.d.ts.map +1 -0
  407. package/dist/esm/rendering/gradient/Gradient.d.ts +5 -4
  408. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -0
  409. package/dist/esm/rendering/gradient/LinearGradient.d.ts +1 -0
  410. package/dist/esm/rendering/gradient/LinearGradient.d.ts.map +1 -0
  411. package/dist/esm/rendering/gradient/RadialGradient.d.ts +1 -0
  412. package/dist/esm/rendering/gradient/RadialGradient.d.ts.map +1 -0
  413. package/dist/esm/rendering/index.d.ts +87 -84
  414. package/dist/esm/rendering/index.d.ts.map +1 -0
  415. package/dist/esm/rendering/material/Material.d.ts +5 -4
  416. package/dist/esm/rendering/material/Material.d.ts.map +1 -0
  417. package/dist/esm/rendering/material/MaterialKey.d.ts +5 -4
  418. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -0
  419. package/dist/esm/rendering/material/MeshMaterial.d.ts +1 -0
  420. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -0
  421. package/dist/esm/rendering/material/ShaderSource.d.ts +1 -0
  422. package/dist/esm/rendering/material/ShaderSource.d.ts.map +1 -0
  423. package/dist/esm/rendering/material/SpriteMaterial.d.ts +1 -0
  424. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -0
  425. package/dist/esm/rendering/mesh/Mesh.d.ts +6 -5
  426. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -0
  427. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +8 -7
  428. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts.map +1 -0
  429. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +4 -3
  430. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts.map +1 -0
  431. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -1
  432. package/dist/esm/rendering/plan/RenderCommand.d.ts +4 -3
  433. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -0
  434. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +2 -1
  435. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -0
  436. package/dist/esm/rendering/plan/RenderInstruction.d.ts +1 -0
  437. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -0
  438. package/dist/esm/rendering/plan/RenderPlan.d.ts +4 -3
  439. package/dist/esm/rendering/plan/RenderPlan.d.ts.map +1 -0
  440. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +5 -4
  441. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -0
  442. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +1 -0
  443. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -0
  444. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +2 -1
  445. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -0
  446. package/dist/esm/rendering/plan/RenderScope.d.ts +6 -5
  447. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -0
  448. package/dist/esm/rendering/plan/playRenderTree.d.ts +3 -2
  449. package/dist/esm/rendering/plan/playRenderTree.d.ts.map +1 -0
  450. package/dist/esm/rendering/primitives/Graphics.d.ts +7 -6
  451. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -0
  452. package/dist/esm/rendering/shader/Shader.d.ts +1 -0
  453. package/dist/esm/rendering/shader/Shader.d.ts.map +1 -0
  454. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +1 -0
  455. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -0
  456. package/dist/esm/rendering/shader/ShaderUniform.d.ts +2 -1
  457. package/dist/esm/rendering/shader/ShaderUniform.d.ts.map +1 -0
  458. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts +1 -0
  459. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts.map +1 -0
  460. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +6 -5
  461. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -0
  462. package/dist/esm/rendering/sprite/Sprite.d.ts +8 -7
  463. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -0
  464. package/dist/esm/rendering/sprite/Spritesheet.d.ts +3 -2
  465. package/dist/esm/rendering/sprite/Spritesheet.d.ts.map +1 -0
  466. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +1 -0
  467. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts.map +1 -0
  468. package/dist/esm/rendering/text/AbstractText.d.ts +2 -1
  469. package/dist/esm/rendering/text/AbstractText.d.ts.map +1 -0
  470. package/dist/esm/rendering/text/BitmapText.d.ts +2 -1
  471. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -0
  472. package/dist/esm/rendering/text/BitmapText.js +1 -4
  473. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  474. package/dist/esm/rendering/text/BmFont.d.ts +2 -1
  475. package/dist/esm/rendering/text/BmFont.d.ts.map +1 -0
  476. package/dist/esm/rendering/text/GlyphAtlas.d.ts +3 -2
  477. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -0
  478. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +1 -0
  479. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -0
  480. package/dist/esm/rendering/text/GlyphSdf.d.ts +1 -0
  481. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -0
  482. package/dist/esm/rendering/text/GlyphSdf.js +7 -0
  483. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  484. package/dist/esm/rendering/text/HTMLText.d.ts +2 -1
  485. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -0
  486. package/dist/esm/rendering/text/LayoutOptions.d.ts +1 -0
  487. package/dist/esm/rendering/text/LayoutOptions.d.ts.map +1 -0
  488. package/dist/esm/rendering/text/Text.d.ts +1 -0
  489. package/dist/esm/rendering/text/Text.d.ts.map +1 -0
  490. package/dist/esm/rendering/text/TextLayout.d.ts +1 -0
  491. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -0
  492. package/dist/esm/rendering/text/TextStyle.d.ts +3 -2
  493. package/dist/esm/rendering/text/TextStyle.d.ts.map +1 -0
  494. package/dist/esm/rendering/text/types.d.ts +1 -0
  495. package/dist/esm/rendering/text/types.d.ts.map +1 -0
  496. package/dist/esm/rendering/texture/DataTexture.d.ts +3 -2
  497. package/dist/esm/rendering/texture/DataTexture.d.ts.map +1 -0
  498. package/dist/esm/rendering/texture/DataTexture.js +1 -1
  499. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  500. package/dist/esm/rendering/texture/RenderTexture.d.ts +4 -3
  501. package/dist/esm/rendering/texture/RenderTexture.d.ts.map +1 -0
  502. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  503. package/dist/esm/rendering/texture/Sampler.d.ts +2 -1
  504. package/dist/esm/rendering/texture/Sampler.d.ts.map +1 -0
  505. package/dist/esm/rendering/texture/Texture.d.ts +4 -3
  506. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -0
  507. package/dist/esm/rendering/types.d.ts +1 -0
  508. package/dist/esm/rendering/types.d.ts.map +1 -0
  509. package/dist/esm/rendering/utils.d.ts +1 -0
  510. package/dist/esm/rendering/utils.d.ts.map +1 -0
  511. package/dist/esm/rendering/video/Video.d.ts +8 -7
  512. package/dist/esm/rendering/video/Video.d.ts.map +1 -0
  513. package/dist/esm/rendering/video/Video.js.map +1 -1
  514. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -6
  515. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -0
  516. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +1 -1
  517. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +4 -3
  518. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts.map +1 -0
  519. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
  520. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +22 -21
  521. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -0
  522. package/dist/esm/rendering/webgl2/WebGl2Backend.js +3 -17
  523. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  524. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +4 -3
  525. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -0
  526. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +1 -1
  527. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +2 -1
  528. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -0
  529. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +10 -9
  530. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts.map +1 -0
  531. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +1 -1
  532. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -1
  533. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +3 -2
  534. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -0
  535. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts +2 -1
  536. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -0
  537. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  538. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts +1 -0
  539. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts.map +1 -0
  540. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts +2 -1
  541. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -0
  542. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +1 -1
  543. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +2 -1
  544. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -0
  545. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +1 -1
  546. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +3 -2
  547. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -0
  548. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +1 -1
  549. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +3 -2
  550. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -0
  551. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +3 -3
  552. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +3 -2
  553. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts.map +1 -0
  554. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +4 -3
  555. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts.map +1 -0
  556. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
  557. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +21 -20
  558. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -0
  559. package/dist/esm/rendering/webgpu/WebGpuBackend.js +2 -15
  560. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  561. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts +2 -1
  562. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -0
  563. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +4 -3
  564. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -0
  565. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -3
  566. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -0
  567. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +10 -9
  568. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -0
  569. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +4 -3
  570. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -0
  571. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +4 -3
  572. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -0
  573. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  574. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +1 -0
  575. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts.map +1 -0
  576. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +3 -2
  577. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -0
  578. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +2 -2
  579. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +4 -3
  580. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -0
  581. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +1 -0
  582. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts.map +1 -0
  583. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +1 -0
  584. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -0
  585. package/dist/esm/rendering/webgpu/compute/index.d.ts +1 -0
  586. package/dist/esm/rendering/webgpu/compute/index.d.ts.map +1 -0
  587. package/dist/esm/rendering.d.ts +28 -0
  588. package/dist/esm/rendering.d.ts.map +1 -0
  589. package/dist/esm/rendering.js +22 -0
  590. package/dist/esm/rendering.js.map +1 -0
  591. package/dist/esm/resources/AbstractAssetFactory.d.ts +1 -0
  592. package/dist/esm/resources/AbstractAssetFactory.d.ts.map +1 -0
  593. package/dist/esm/resources/Asset.d.ts +1 -0
  594. package/dist/esm/resources/Asset.d.ts.map +1 -0
  595. package/dist/esm/resources/AssetDefinitions.d.ts +9 -8
  596. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -0
  597. package/dist/esm/resources/AssetFactory.d.ts +1 -0
  598. package/dist/esm/resources/AssetFactory.d.ts.map +1 -0
  599. package/dist/esm/resources/AssetManifest.d.ts +1 -0
  600. package/dist/esm/resources/AssetManifest.d.ts.map +1 -0
  601. package/dist/esm/resources/Assets.d.ts +1 -0
  602. package/dist/esm/resources/Assets.d.ts.map +1 -0
  603. package/dist/esm/resources/CacheFirstStrategy.d.ts +1 -0
  604. package/dist/esm/resources/CacheFirstStrategy.d.ts.map +1 -0
  605. package/dist/esm/resources/CacheStore.d.ts +1 -0
  606. package/dist/esm/resources/CacheStore.d.ts.map +1 -0
  607. package/dist/esm/resources/CacheStrategy.d.ts +1 -0
  608. package/dist/esm/resources/CacheStrategy.d.ts.map +1 -0
  609. package/dist/esm/resources/Database.d.ts +1 -0
  610. package/dist/esm/resources/Database.d.ts.map +1 -0
  611. package/dist/esm/resources/FactoryRegistry.d.ts +1 -0
  612. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -0
  613. package/dist/esm/resources/IndexedDbDatabase.d.ts +2 -1
  614. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -0
  615. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  616. package/dist/esm/resources/IndexedDbStore.d.ts +1 -0
  617. package/dist/esm/resources/IndexedDbStore.d.ts.map +1 -0
  618. package/dist/esm/resources/JsonStore.d.ts +1 -0
  619. package/dist/esm/resources/JsonStore.d.ts.map +1 -0
  620. package/dist/esm/resources/Loader.d.ts +34 -4
  621. package/dist/esm/resources/Loader.d.ts.map +1 -0
  622. package/dist/esm/resources/Loader.js +106 -69
  623. package/dist/esm/resources/Loader.js.map +1 -1
  624. package/dist/esm/resources/LoadingQueue.d.ts +2 -1
  625. package/dist/esm/resources/LoadingQueue.d.ts.map +1 -0
  626. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +1 -0
  627. package/dist/esm/resources/NetworkOnlyStrategy.d.ts.map +1 -0
  628. package/dist/esm/resources/coreAssetBindings.d.ts +8 -0
  629. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -0
  630. package/dist/esm/resources/coreAssetBindings.js +151 -0
  631. package/dist/esm/resources/coreAssetBindings.js.map +1 -0
  632. package/dist/esm/resources/factories/BinaryFactory.d.ts +2 -1
  633. package/dist/esm/resources/factories/BinaryFactory.d.ts.map +1 -0
  634. package/dist/esm/resources/factories/BmFontFactory.d.ts +5 -4
  635. package/dist/esm/resources/factories/BmFontFactory.d.ts.map +1 -0
  636. package/dist/esm/resources/factories/CsvFactory.d.ts +2 -1
  637. package/dist/esm/resources/factories/CsvFactory.d.ts.map +1 -0
  638. package/dist/esm/resources/factories/FontFactory.d.ts +2 -1
  639. package/dist/esm/resources/factories/FontFactory.d.ts.map +1 -0
  640. package/dist/esm/resources/factories/ImageFactory.d.ts +2 -1
  641. package/dist/esm/resources/factories/ImageFactory.d.ts.map +1 -0
  642. package/dist/esm/resources/factories/JsonFactory.d.ts +2 -1
  643. package/dist/esm/resources/factories/JsonFactory.d.ts.map +1 -0
  644. package/dist/esm/resources/factories/MusicFactory.d.ts +4 -3
  645. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -0
  646. package/dist/esm/resources/factories/SoundFactory.d.ts +4 -3
  647. package/dist/esm/resources/factories/SoundFactory.d.ts.map +1 -0
  648. package/dist/esm/resources/factories/SubtitleFactory.d.ts +2 -1
  649. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -0
  650. package/dist/esm/resources/factories/SvgFactory.d.ts +2 -1
  651. package/dist/esm/resources/factories/SvgFactory.d.ts.map +1 -0
  652. package/dist/esm/resources/factories/TextFactory.d.ts +2 -1
  653. package/dist/esm/resources/factories/TextFactory.d.ts.map +1 -0
  654. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -3
  655. package/dist/esm/resources/factories/TextureFactory.d.ts.map +1 -0
  656. package/dist/esm/resources/factories/VideoFactory.d.ts +5 -4
  657. package/dist/esm/resources/factories/VideoFactory.d.ts.map +1 -0
  658. package/dist/esm/resources/factories/WasmFactory.d.ts +2 -1
  659. package/dist/esm/resources/factories/WasmFactory.d.ts.map +1 -0
  660. package/dist/esm/resources/factories/XmlFactory.d.ts +2 -1
  661. package/dist/esm/resources/factories/XmlFactory.d.ts.map +1 -0
  662. package/dist/esm/resources/index.d.ts +16 -15
  663. package/dist/esm/resources/index.d.ts.map +1 -0
  664. package/dist/esm/resources/tokens.d.ts +1 -0
  665. package/dist/esm/resources/tokens.d.ts.map +1 -0
  666. package/dist/esm/resources/utils.d.ts +1 -0
  667. package/dist/esm/resources/utils.d.ts.map +1 -0
  668. package/dist/exo.debug.esm.js +949 -0
  669. package/dist/exo.debug.esm.js.map +1 -0
  670. package/dist/exo.esm.js +7796 -10451
  671. package/dist/exo.esm.js.map +1 -1
  672. package/package.json +85 -57
  673. package/dist/esm/particles/ParticleSystem.d.ts +0 -212
  674. package/dist/esm/particles/ParticleSystem.js +0 -573
  675. package/dist/esm/particles/ParticleSystem.js.map +0 -1
  676. package/dist/esm/particles/distributions/BoxArea.d.ts +0 -17
  677. package/dist/esm/particles/distributions/BoxArea.js +0 -48
  678. package/dist/esm/particles/distributions/BoxArea.js.map +0 -1
  679. package/dist/esm/particles/distributions/CircleArea.d.ts +0 -19
  680. package/dist/esm/particles/distributions/CircleArea.js +0 -33
  681. package/dist/esm/particles/distributions/CircleArea.js.map +0 -1
  682. package/dist/esm/particles/distributions/ColorGradient.d.ts +0 -40
  683. package/dist/esm/particles/distributions/ColorGradient.js +0 -72
  684. package/dist/esm/particles/distributions/ColorGradient.js.map +0 -1
  685. package/dist/esm/particles/distributions/ConeDirection.d.ts +0 -28
  686. package/dist/esm/particles/distributions/ConeDirection.js +0 -44
  687. package/dist/esm/particles/distributions/ConeDirection.js.map +0 -1
  688. package/dist/esm/particles/distributions/Constant.d.ts +0 -17
  689. package/dist/esm/particles/distributions/Constant.js +0 -35
  690. package/dist/esm/particles/distributions/Constant.js.map +0 -1
  691. package/dist/esm/particles/distributions/Curve.d.ts +0 -30
  692. package/dist/esm/particles/distributions/Curve.js +0 -53
  693. package/dist/esm/particles/distributions/Curve.js.map +0 -1
  694. package/dist/esm/particles/distributions/Distribution.d.ts +0 -45
  695. package/dist/esm/particles/distributions/LineSegment.d.ts +0 -15
  696. package/dist/esm/particles/distributions/LineSegment.js +0 -27
  697. package/dist/esm/particles/distributions/LineSegment.js.map +0 -1
  698. package/dist/esm/particles/distributions/Range.d.ts +0 -12
  699. package/dist/esm/particles/distributions/Range.js +0 -19
  700. package/dist/esm/particles/distributions/Range.js.map +0 -1
  701. package/dist/esm/particles/distributions/VectorRange.d.ts +0 -20
  702. package/dist/esm/particles/distributions/VectorRange.js +0 -31
  703. package/dist/esm/particles/distributions/VectorRange.js.map +0 -1
  704. package/dist/esm/particles/distributions/index.d.ts +0 -12
  705. package/dist/esm/particles/gpu/ParticleGpuState.d.ts +0 -57
  706. package/dist/esm/particles/gpu/ParticleGpuState.js +0 -535
  707. package/dist/esm/particles/gpu/ParticleGpuState.js.map +0 -1
  708. package/dist/esm/particles/index.d.ts +0 -4
  709. package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +0 -24
  710. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +0 -64
  711. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +0 -1
  712. package/dist/esm/particles/modules/ApplyForce.d.ts +0 -20
  713. package/dist/esm/particles/modules/ApplyForce.js +0 -48
  714. package/dist/esm/particles/modules/ApplyForce.js.map +0 -1
  715. package/dist/esm/particles/modules/AttractToPoint.d.ts +0 -27
  716. package/dist/esm/particles/modules/AttractToPoint.js +0 -73
  717. package/dist/esm/particles/modules/AttractToPoint.js.map +0 -1
  718. package/dist/esm/particles/modules/BurstSpawn.d.ts +0 -53
  719. package/dist/esm/particles/modules/BurstSpawn.js +0 -94
  720. package/dist/esm/particles/modules/BurstSpawn.js.map +0 -1
  721. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +0 -22
  722. package/dist/esm/particles/modules/ColorOverLifetime.js +0 -65
  723. package/dist/esm/particles/modules/ColorOverLifetime.js.map +0 -1
  724. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +0 -27
  725. package/dist/esm/particles/modules/ColorOverSpeed.js +0 -86
  726. package/dist/esm/particles/modules/ColorOverSpeed.js.map +0 -1
  727. package/dist/esm/particles/modules/DeathModule.d.ts +0 -24
  728. package/dist/esm/particles/modules/DeathModule.js +0 -25
  729. package/dist/esm/particles/modules/DeathModule.js.map +0 -1
  730. package/dist/esm/particles/modules/Drag.d.ts +0 -20
  731. package/dist/esm/particles/modules/Drag.js +0 -43
  732. package/dist/esm/particles/modules/Drag.js.map +0 -1
  733. package/dist/esm/particles/modules/OrbitalForce.d.ts +0 -28
  734. package/dist/esm/particles/modules/OrbitalForce.js +0 -65
  735. package/dist/esm/particles/modules/OrbitalForce.js.map +0 -1
  736. package/dist/esm/particles/modules/RateSpawn.d.ts +0 -41
  737. package/dist/esm/particles/modules/RateSpawn.js +0 -76
  738. package/dist/esm/particles/modules/RateSpawn.js.map +0 -1
  739. package/dist/esm/particles/modules/RepelFromPoint.d.ts +0 -24
  740. package/dist/esm/particles/modules/RepelFromPoint.js +0 -76
  741. package/dist/esm/particles/modules/RepelFromPoint.js.map +0 -1
  742. package/dist/esm/particles/modules/RotateOverLifetime.d.ts +0 -20
  743. package/dist/esm/particles/modules/RotateOverLifetime.js +0 -41
  744. package/dist/esm/particles/modules/RotateOverLifetime.js.map +0 -1
  745. package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +0 -26
  746. package/dist/esm/particles/modules/ScaleOverLifetime.js +0 -59
  747. package/dist/esm/particles/modules/ScaleOverLifetime.js.map +0 -1
  748. package/dist/esm/particles/modules/SpawnModule.d.ts +0 -30
  749. package/dist/esm/particles/modules/SpawnModule.js +0 -31
  750. package/dist/esm/particles/modules/SpawnModule.js.map +0 -1
  751. package/dist/esm/particles/modules/SpawnOnDeath.d.ts +0 -24
  752. package/dist/esm/particles/modules/SpawnOnDeath.js +0 -47
  753. package/dist/esm/particles/modules/SpawnOnDeath.js.map +0 -1
  754. package/dist/esm/particles/modules/Turbulence.d.ts +0 -30
  755. package/dist/esm/particles/modules/Turbulence.js +0 -122
  756. package/dist/esm/particles/modules/Turbulence.js.map +0 -1
  757. package/dist/esm/particles/modules/UpdateModule.d.ts +0 -95
  758. package/dist/esm/particles/modules/UpdateModule.js +0 -66
  759. package/dist/esm/particles/modules/UpdateModule.js.map +0 -1
  760. package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +0 -30
  761. package/dist/esm/particles/modules/VelocityOverLifetime.js +0 -84
  762. package/dist/esm/particles/modules/VelocityOverLifetime.js.map +0 -1
  763. package/dist/esm/particles/modules/WgslContribution.d.ts +0 -81
  764. package/dist/esm/particles/modules/WgslContribution.js +0 -34
  765. package/dist/esm/particles/modules/WgslContribution.js.map +0 -1
  766. package/dist/esm/particles/modules/index.d.ts +0 -22
  767. package/dist/esm/rendering/RenderTargetPass.d.ts +0 -29
  768. package/dist/esm/rendering/RenderTargetPass.js.map +0 -1
  769. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +0 -45
  770. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +0 -330
  771. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +0 -1
  772. package/dist/esm/rendering/webgl2/glsl/particle.frag.js +0 -4
  773. package/dist/esm/rendering/webgl2/glsl/particle.frag.js.map +0 -1
  774. package/dist/esm/rendering/webgl2/glsl/particle.vert.js +0 -4
  775. package/dist/esm/rendering/webgl2/glsl/particle.vert.js.map +0 -1
  776. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +0 -48
  777. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +0 -556
  778. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +0 -1
@@ -0,0 +1,61 @@
1
+ import type { RenderingContext } from './RenderingContext';
2
+ import { RenderPass, type RenderPassOptions } from './RenderPass';
3
+ /**
4
+ * An ordered list of {@link RenderPass} steps, played once per frame against a {@link RenderingContext}.
5
+ *
6
+ * A `RenderPipeline` is **itself a `RenderPass`**, so pipelines nest freely and a disabled pipeline skips its
7
+ * whole subtree. It **owns** the passes added to it (exclusive ownership — a pass belongs to at most one
8
+ * pipeline): {@link resize} and {@link destroy} cascade to them. It never owns scene nodes or caller
9
+ * RenderTextures. Adding a pass that would create a direct or indirect cycle throws at add time.
10
+ * @advanced
11
+ */
12
+ export declare class RenderPipeline extends RenderPass {
13
+ private readonly _passes;
14
+ private _executing;
15
+ private _destroyed;
16
+ constructor(options?: RenderPassOptions);
17
+ /** Number of registered passes (enabled and disabled). */
18
+ get size(): number;
19
+ /**
20
+ * Append a pass and take exclusive ownership of it. Throws if the pass already belongs to any pipeline, if
21
+ * adding it would create a direct/indirect cycle, during `execute`, or after `destroy`.
22
+ */
23
+ addPass(pass: RenderPass): this;
24
+ /** Insert a pass at `index` (clamped to `[0, size]`). Same ownership / cycle / execute / destroy throws as {@link addPass}. */
25
+ insertPass(pass: RenderPass, index: number): this;
26
+ /** Remove a pass by identity and release its ownership. Returns `false` if absent. Does not destroy it. */
27
+ removePass(pass: RenderPass): boolean;
28
+ /** Remove all passes and release their ownership. Does not destroy them. The pipeline stays usable. */
29
+ clear(): this;
30
+ /** Whether `pass` is registered in this pipeline. */
31
+ hasPass(pass: RenderPass): boolean;
32
+ /** Index of `pass` in play order, or `-1` if absent. */
33
+ indexOf(pass: RenderPass): number;
34
+ /** The pass at `index` in play order, or `undefined` if out of range. */
35
+ at(index: number): RenderPass | undefined;
36
+ /** Iterate registered passes in play order. */
37
+ [Symbol.iterator](): IterableIterator<RenderPass>;
38
+ /**
39
+ * Play every enabled pass in order against `context`. No-op if `this.enabled === false` (a pipeline is itself a
40
+ * directly-executable pass, so disabling it skips its whole subtree). Not re-entrant. Throws after `destroy`.
41
+ */
42
+ execute(context: RenderingContext): void;
43
+ /** Cascade `resize(width, height)` to every pass (enabled and disabled). */
44
+ resize(width: number, height: number): void;
45
+ /**
46
+ * Cascade `destroy()` to every pass, release their ownership, then clear the list. Idempotent. Throws during
47
+ * `execute` (before any teardown begins).
48
+ *
49
+ * Best-effort teardown: the pipeline is marked destroyed and detached from its passes up front, so it always
50
+ * ends in a single, consistent destroyed-and-empty state — every child gets a `destroy()` attempt and has its
51
+ * owner slot released even if an earlier child throws. If one or more children throw, the first error is
52
+ * re-thrown after the cascade completes.
53
+ */
54
+ destroy(): void;
55
+ private _admit;
56
+ /** Whether `target` is reachable from this pipeline (this === target, or a nested pipeline reaches it). */
57
+ private _reaches;
58
+ private _assertLive;
59
+ private _assertNotExecuting;
60
+ }
61
+ //# sourceMappingURL=RenderPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderPipeline.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAER,OAAO,CAAC,EAAE,iBAAiB;IAI9C,0DAA0D;IAC1D,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQtC,+HAA+H;IACxH,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASxD,2GAA2G;IACpG,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAgB5C,uGAAuG;IAChG,KAAK,IAAI,IAAI;IAapB,qDAAqD;IAC9C,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIzC,wDAAwD;IACjD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAIxC,yEAAyE;IAClE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIhD,+CAA+C;IACxC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC;IAIxD;;;OAGG;IACa,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAwBxD,4EAA4E;IAC5D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3D;;;;;;;;OAQG;IACa,OAAO,IAAI,IAAI;IA8B/B,OAAO,CAAC,MAAM;IAad,2GAA2G;IAC3G,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,mBAAmB;CAK5B"}
@@ -0,0 +1,177 @@
1
+ import { RenderPass } from './RenderPass.js';
2
+
3
+ /**
4
+ * An ordered list of {@link RenderPass} steps, played once per frame against a {@link RenderingContext}.
5
+ *
6
+ * A `RenderPipeline` is **itself a `RenderPass`**, so pipelines nest freely and a disabled pipeline skips its
7
+ * whole subtree. It **owns** the passes added to it (exclusive ownership — a pass belongs to at most one
8
+ * pipeline): {@link resize} and {@link destroy} cascade to them. It never owns scene nodes or caller
9
+ * RenderTextures. Adding a pass that would create a direct or indirect cycle throws at add time.
10
+ * @advanced
11
+ */
12
+ class RenderPipeline extends RenderPass {
13
+ _passes = [];
14
+ _executing = false;
15
+ _destroyed = false;
16
+ constructor(options) {
17
+ super(options);
18
+ }
19
+ /** Number of registered passes (enabled and disabled). */
20
+ get size() {
21
+ return this._passes.length;
22
+ }
23
+ /**
24
+ * Append a pass and take exclusive ownership of it. Throws if the pass already belongs to any pipeline, if
25
+ * adding it would create a direct/indirect cycle, during `execute`, or after `destroy`.
26
+ */
27
+ addPass(pass) {
28
+ this._admit(pass);
29
+ this._passes.push(pass);
30
+ pass._pipelineOwner = this;
31
+ return this;
32
+ }
33
+ /** Insert a pass at `index` (clamped to `[0, size]`). Same ownership / cycle / execute / destroy throws as {@link addPass}. */
34
+ insertPass(pass, index) {
35
+ this._admit(pass);
36
+ const at = Math.max(0, Math.min(index, this._passes.length));
37
+ this._passes.splice(at, 0, pass);
38
+ pass._pipelineOwner = this;
39
+ return this;
40
+ }
41
+ /** Remove a pass by identity and release its ownership. Returns `false` if absent. Does not destroy it. */
42
+ removePass(pass) {
43
+ this._assertLive();
44
+ this._assertNotExecuting();
45
+ const index = this._passes.indexOf(pass);
46
+ if (index === -1) {
47
+ return false;
48
+ }
49
+ this._passes.splice(index, 1);
50
+ pass._pipelineOwner = null;
51
+ return true;
52
+ }
53
+ /** Remove all passes and release their ownership. Does not destroy them. The pipeline stays usable. */
54
+ clear() {
55
+ this._assertLive();
56
+ this._assertNotExecuting();
57
+ for (const pass of this._passes) {
58
+ pass._pipelineOwner = null;
59
+ }
60
+ this._passes.length = 0;
61
+ return this;
62
+ }
63
+ /** Whether `pass` is registered in this pipeline. */
64
+ hasPass(pass) {
65
+ return pass._pipelineOwner === this;
66
+ }
67
+ /** Index of `pass` in play order, or `-1` if absent. */
68
+ indexOf(pass) {
69
+ return this._passes.indexOf(pass);
70
+ }
71
+ /** The pass at `index` in play order, or `undefined` if out of range. */
72
+ at(index) {
73
+ return this._passes[index];
74
+ }
75
+ /** Iterate registered passes in play order. */
76
+ [Symbol.iterator]() {
77
+ return this._passes[Symbol.iterator]();
78
+ }
79
+ /**
80
+ * Play every enabled pass in order against `context`. No-op if `this.enabled === false` (a pipeline is itself a
81
+ * directly-executable pass, so disabling it skips its whole subtree). Not re-entrant. Throws after `destroy`.
82
+ */
83
+ execute(context) {
84
+ if (!this.enabled) {
85
+ return;
86
+ }
87
+ this._assertLive();
88
+ if (this._executing) {
89
+ throw new Error('RenderPipeline.execute is not re-entrant.');
90
+ }
91
+ this._executing = true;
92
+ try {
93
+ for (const pass of this._passes) {
94
+ if (pass.enabled) {
95
+ pass.execute(context);
96
+ }
97
+ }
98
+ }
99
+ finally {
100
+ this._executing = false;
101
+ }
102
+ }
103
+ /** Cascade `resize(width, height)` to every pass (enabled and disabled). */
104
+ resize(width, height) {
105
+ for (const pass of this._passes) {
106
+ pass.resize(width, height);
107
+ }
108
+ }
109
+ /**
110
+ * Cascade `destroy()` to every pass, release their ownership, then clear the list. Idempotent. Throws during
111
+ * `execute` (before any teardown begins).
112
+ *
113
+ * Best-effort teardown: the pipeline is marked destroyed and detached from its passes up front, so it always
114
+ * ends in a single, consistent destroyed-and-empty state — every child gets a `destroy()` attempt and has its
115
+ * owner slot released even if an earlier child throws. If one or more children throw, the first error is
116
+ * re-thrown after the cascade completes.
117
+ */
118
+ destroy() {
119
+ if (this._destroyed) {
120
+ return;
121
+ }
122
+ this._assertNotExecuting();
123
+ // Mark destroyed and snapshot-detach the children first, so the pipeline ends in a consistent
124
+ // destroyed-and-empty state regardless of whether a child's destroy() throws.
125
+ this._destroyed = true;
126
+ const passes = this._passes.splice(0, this._passes.length);
127
+ const errors = [];
128
+ for (const pass of passes) {
129
+ // Release ownership before destroying, so a throwing child never stays attached to this pipeline.
130
+ pass._pipelineOwner = null;
131
+ try {
132
+ pass.destroy();
133
+ }
134
+ catch (error) {
135
+ errors.push(error);
136
+ }
137
+ }
138
+ if (errors.length > 0) {
139
+ throw errors[0];
140
+ }
141
+ }
142
+ _admit(pass) {
143
+ this._assertLive();
144
+ this._assertNotExecuting();
145
+ if (pass._pipelineOwner !== null) {
146
+ throw new Error('RenderPass already belongs to a RenderPipeline; remove it from its current pipeline first.');
147
+ }
148
+ if (pass instanceof RenderPipeline && pass._reaches(this)) {
149
+ throw new Error('RenderPipeline cannot contain itself, directly or indirectly (cycle).');
150
+ }
151
+ }
152
+ /** Whether `target` is reachable from this pipeline (this === target, or a nested pipeline reaches it). */
153
+ _reaches(target) {
154
+ if (this === target) {
155
+ return true;
156
+ }
157
+ for (const pass of this._passes) {
158
+ if (pass instanceof RenderPipeline && pass._reaches(target)) {
159
+ return true;
160
+ }
161
+ }
162
+ return false;
163
+ }
164
+ _assertLive() {
165
+ if (this._destroyed) {
166
+ throw new Error('RenderPipeline has been destroyed and can no longer be used.');
167
+ }
168
+ }
169
+ _assertNotExecuting() {
170
+ if (this._executing) {
171
+ throw new Error('RenderPipeline cannot be mutated while it is executing.');
172
+ }
173
+ }
174
+ }
175
+
176
+ export { RenderPipeline };
177
+ //# sourceMappingURL=RenderPipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderPipeline.js","sources":["../../../../src/rendering/RenderPipeline.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -38,3 +38,4 @@ export declare const createRenderStats: () => RenderStats;
38
38
  * Call once at the start of each render tick before recording new data.
39
39
  */
40
40
  export declare const resetRenderStats: (stats: RenderStats) => RenderStats;
41
+ //# sourceMappingURL=RenderStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderStats.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderStats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAO,WAUnC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,KAAG,WAYrD,CAAC"}
@@ -1,6 +1,6 @@
1
- import { Rectangle } from '@/math/Rectangle';
2
- import { Size } from '@/math/Size';
3
- import { Vector } from '@/math/Vector';
1
+ import { Rectangle } from '#math/Rectangle';
2
+ import { Size } from '#math/Size';
3
+ import { Vector } from '#math/Vector';
4
4
  import { View } from './View';
5
5
  /**
6
6
  * Renderable destination — either the on-screen canvas (the `root`
@@ -62,3 +62,4 @@ export declare class RenderTarget {
62
62
  destroy(): void;
63
63
  protected _touch(): void;
64
64
  }
65
+ //# sourceMappingURL=RenderTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderTarget.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB;;;;;;;;;;;OAWG;IACI,YAAY,UAAS;IAE5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0C;IAC5E,OAAO,CAAC,QAAQ,CAAK;IACrB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;IACtB,SAAS,CAAC,SAAS,EAAE,SAAS,CAAmB;IACjD,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;gBAEH,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,UAAQ;IAO9D,IAAW,IAAI,IAAI,IAAI,CAEtB;IAED,IAAW,IAAI,CAAC,IAAI,EAAE,IAAI,EAEzB;IAED,IAAW,IAAI,IAAI,IAAI,CAEtB;IAED,IAAW,IAAI,CAAC,IAAI,EAAE,IAAI,EAEzB;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAE/B;IAED,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED;;;;;OAKG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMrD,wEAAwE;IACjE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMjD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAWhC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS3C,WAAW,CAAC,IAAI,GAAE,IAAiB,GAAG,SAAS;IAM/C,cAAc,IAAI,IAAI;IAMtB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,MAAM;IAOhE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,MAAM;IAOhE,OAAO,IAAI,IAAI;IAgBtB,SAAS,CAAC,MAAM,IAAI,IAAI;CAGzB"}
@@ -28,3 +28,4 @@ export interface Renderer<Runtime extends RenderBackend = RenderBackend, Target
28
28
  * Supports both concrete and abstract drawable classes.
29
29
  */
30
30
  export type DrawableConstructor<Target extends Drawable = Drawable> = abstract new (...args: never[]) => Target;
31
+ //# sourceMappingURL=Renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/rendering/Renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,QAAQ,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,EAAE,MAAM,SAAS,QAAQ,GAAG,QAAQ;IACzG,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAExC,sEAAsE;IACtE,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,uDAAuD;IACvD,UAAU,IAAI,IAAI,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gDAAgD;IAChD,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC"}
@@ -17,6 +17,7 @@ import type { DrawableConstructor, Renderer } from './Renderer';
17
17
  */
18
18
  export declare class RendererRegistry<Runtime extends RenderBackend> {
19
19
  private readonly _renderers;
20
+ private readonly _resolved;
20
21
  private _backend;
21
22
  /**
22
23
  * Register a renderer for a specific drawable type.
@@ -28,6 +29,13 @@ export declare class RendererRegistry<Runtime extends RenderBackend> {
28
29
  * @throws Error if a renderer is already registered for this drawable type.
29
30
  */
30
31
  registerRenderer<Target extends Drawable>(drawableType: DrawableConstructor<Target>, renderer: Renderer<Runtime, Target>): void;
32
+ /**
33
+ * Atomically bind all `targets` to `renderer`.
34
+ * Validates every target before mutating any map entry.
35
+ * Clears the resolution cache exactly once after all entries are written.
36
+ * @internal
37
+ */
38
+ bindRenderer(targets: readonly DrawableConstructor[], renderer: Renderer<Runtime>): void;
31
39
  /**
32
40
  * Iterate all registered renderers. Used by managers to dispatch
33
41
  * lifecycle hooks (e.g. WebGPU pipeline pre-warmup) to whichever
@@ -36,8 +44,8 @@ export declare class RendererRegistry<Runtime extends RenderBackend> {
36
44
  renderers(): Iterable<Renderer<Runtime>>;
37
45
  /**
38
46
  * Find the renderer responsible for `drawable`.
39
- * Walks the prototype chain so subclasses inherit their parent's renderer
40
- * without requiring an explicit registration.
47
+ * Uses a first-resolution cache after warm-up, a single Map.get.
48
+ * Falls back to prototype-chain walk on cache miss.
41
49
  *
42
50
  * @throws Error if no renderer is found for the drawable's type.
43
51
  */
@@ -52,6 +60,9 @@ export declare class RendererRegistry<Runtime extends RenderBackend> {
52
60
  disconnect(): void;
53
61
  /**
54
62
  * Disconnect all registered renderers and clear the registry.
63
+ * Deduplicates across multi-target bindings so each shared renderer
64
+ * instance is disconnected and destroyed exactly once.
55
65
  */
56
66
  destroy(): void;
57
67
  }
68
+ //# sourceMappingURL=RendererRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RendererRegistry.d.ts","sourceRoot":"","sources":["../../../src/rendering/RendererRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB,CAAC,OAAO,SAAS,aAAa;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqD;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqD;IAC/E,OAAO,CAAC,QAAQ,CAAwB;IAExC;;;;;;;;OAQG;IACI,gBAAgB,CAAC,MAAM,SAAS,QAAQ,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAetI;;;;;OAKG;IACI,YAAY,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI;IAqC/F;;;;OAIG;IACI,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAI/C;;;;;;OAMG;IACI,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;IAkCrD;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQtC;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;;OAIG;IACI,OAAO,IAAI,IAAI;CAkBvB"}
@@ -14,6 +14,7 @@
14
14
  */
15
15
  class RendererRegistry {
16
16
  _renderers = new Map();
17
+ _resolved = new Map();
17
18
  _backend = null;
18
19
  /**
19
20
  * Register a renderer for a specific drawable type.
@@ -31,6 +32,42 @@ class RendererRegistry {
31
32
  // Widen TDrawable to Drawable for storage. Safe because the map key
32
33
  // guarantees the correct drawable type is always paired at lookup.
33
34
  this._renderers.set(drawableType, renderer);
35
+ this._resolved.clear();
36
+ if (this._backend !== null) {
37
+ renderer.connect(this._backend);
38
+ }
39
+ }
40
+ /**
41
+ * Atomically bind all `targets` to `renderer`.
42
+ * Validates every target before mutating any map entry.
43
+ * Clears the resolution cache exactly once after all entries are written.
44
+ * @internal
45
+ */
46
+ bindRenderer(targets, renderer) {
47
+ if (targets.length === 0) {
48
+ throw new Error('A RendererBinding must declare at least one target.');
49
+ }
50
+ // Validate: no duplicate targets within this call
51
+ const seen = new Set();
52
+ for (const target of targets) {
53
+ if (seen.has(target)) {
54
+ throw new Error(`A RendererBinding declares the same target ${target.name} more than once.`);
55
+ }
56
+ seen.add(target);
57
+ }
58
+ // Validate: no target already registered — throw before any mutation
59
+ for (const target of targets) {
60
+ if (this._renderers.has(target)) {
61
+ throw new Error(`A renderer is already registered for ${target.name}.`);
62
+ }
63
+ }
64
+ // All validation passed — atomically install all mappings
65
+ for (const target of targets) {
66
+ this._renderers.set(target, renderer);
67
+ }
68
+ // Invalidate resolution cache once
69
+ this._resolved.clear();
70
+ // Connect renderer if already connected
34
71
  if (this._backend !== null) {
35
72
  renderer.connect(this._backend);
36
73
  }
@@ -45,13 +82,18 @@ class RendererRegistry {
45
82
  }
46
83
  /**
47
84
  * Find the renderer responsible for `drawable`.
48
- * Walks the prototype chain so subclasses inherit their parent's renderer
49
- * without requiring an explicit registration.
85
+ * Uses a first-resolution cache after warm-up, a single Map.get.
86
+ * Falls back to prototype-chain walk on cache miss.
50
87
  *
51
88
  * @throws Error if no renderer is found for the drawable's type.
52
89
  */
53
90
  resolve(drawable) {
54
- let constructor = drawable.constructor;
91
+ const ctor = drawable.constructor;
92
+ const cached = this._resolved.get(ctor);
93
+ if (cached !== undefined) {
94
+ return cached;
95
+ }
96
+ let constructor = ctor;
55
97
  let renderer;
56
98
  while (constructor !== null && !renderer) {
57
99
  renderer = this._renderers.get(constructor);
@@ -61,8 +103,11 @@ class RendererRegistry {
61
103
  }
62
104
  }
63
105
  if (!renderer) {
64
- throw new Error(`No renderer registered for ${drawable.constructor.name}. ` + 'Register one with registry.registerRenderer() before the first draw call.');
106
+ throw new Error(`No renderer registered for ${drawable.constructor.name}. ` +
107
+ 'If it comes from an ExoJS extension, import that package before creating the Application, ' +
108
+ 'or pass the extension via ApplicationOptions.extensions.');
65
109
  }
110
+ this._resolved.set(ctor, renderer);
66
111
  return renderer;
67
112
  }
68
113
  /**
@@ -85,15 +130,23 @@ class RendererRegistry {
85
130
  }
86
131
  /**
87
132
  * Disconnect all registered renderers and clear the registry.
133
+ * Deduplicates across multi-target bindings so each shared renderer
134
+ * instance is disconnected and destroyed exactly once.
88
135
  */
89
136
  destroy() {
90
- this.disconnect();
137
+ const seen = new Set();
91
138
  for (const renderer of this._renderers.values()) {
92
- if ('destroy' in renderer && typeof renderer.destroy === 'function') {
93
- renderer.destroy();
139
+ if (!seen.has(renderer)) {
140
+ seen.add(renderer);
141
+ renderer.disconnect();
142
+ if ('destroy' in renderer && typeof renderer.destroy === 'function') {
143
+ renderer.destroy();
144
+ }
94
145
  }
95
146
  }
96
147
  this._renderers.clear();
148
+ this._resolved.clear();
149
+ this._backend = null;
97
150
  }
98
151
  }
99
152
 
@@ -1 +1 @@
1
- {"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;;;;;;;;AAaG;MACU,gBAAgB,CAAA;AACV,IAAA,UAAU,GAAG,IAAI,GAAG,EAA0C;IACvE,QAAQ,GAAmB,IAAI;AAEvC;;;;;;;;AAQG;IACI,gBAAgB,CAA0B,YAAyC,EAAE,QAAmC,EAAA;QAC7H,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,CAAA,qCAAA,EAAwC,YAAY,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;QAC/E;;;QAIA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC;AAE3C,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACzB,YAAA,QAA8B,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxD;IACF;AAEA;;;;AAIG;IACI,SAAS,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IACjC;AAEA;;;;;;AAMG;AACI,IAAA,OAAO,CAAC,QAAkB,EAAA;AAC/B,QAAA,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAyC;AACpE,QAAA,IAAI,QAAuC;AAE3C,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE3C,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAiD;AAE9G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAC9C;QACF;QAEA,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,2BAAA,EAA8B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,EAAA,CAAI,GAAG,2EAA2E,CAC1I;QACH;AAEA,QAAA,OAAO,QAAQ;IACjB;AAEA;;AAEG;AACI,IAAA,OAAO,CAAC,OAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QAEvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;AAC/C,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B;IACF;AAEA;;AAEG;IACI,UAAU,GAAA;QACf,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC/C,QAAQ,CAAC,UAAU,EAAE;QACvB;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;AAEA;;AAEG;IACI,OAAO,GAAA;QACZ,IAAI,CAAC,UAAU,EAAE;QAEjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC/C,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE;gBAClE,QAAoD,CAAC,OAAO,EAAE;YACjE;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IACzB;AACD;;;;"}
1
+ {"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import type { Color } from '@/core/Color';
2
- import { type RenderBackend } from '@/rendering/RenderBackend';
3
- import { type RenderNode } from '@/rendering/RenderNode';
4
- import { type RenderStats } from '@/rendering/RenderStats';
5
- import { RenderTexture } from '@/rendering/texture/RenderTexture';
6
- import { View } from '@/rendering/View';
1
+ import type { Color } from '#core/Color';
2
+ import { RenderTexture } from '#rendering/texture/RenderTexture';
7
3
  import { Camera } from './Camera';
4
+ import { type RenderBackend } from './RenderBackend';
5
+ import { type RenderNode } from './RenderNode';
6
+ import { type RenderStats } from './RenderStats';
7
+ import { View } from './View';
8
8
  export interface RenderToOptions {
9
9
  width: number;
10
10
  height: number;
@@ -85,3 +85,4 @@ export declare class RenderingContext {
85
85
  */
86
86
  get backend(): RenderBackend;
87
87
  }
88
+ //# sourceMappingURL=RenderingContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderingContext.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderingContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,4FAA4F;IAC5F,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;gBAEhB,OAAO,EAAE,aAAa;IAezC;;;;OAIG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAQ/B;IAED;;;;;;;OAOG;IACH,IAAW,UAAU,IAAI,IAAI,CAE5B;IAED,qEAAqE;IACrE,IAAW,IAAI,IAAI,IAAI,CAEtB;IAED;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC;;;OAGG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAMlD;;;;;;OAMG;IACI,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI;IAOlE;;;;;;;;OAQG;IACI,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,GAAG,aAAa;IA2C1E,iEAAiE;IACjE,IAAW,KAAK,IAAI,WAAW,CAE9B;IAED;;;;OAIG;IACH,IAAW,OAAO,IAAI,aAAa,CAElC;CACF"}
@@ -1,16 +1,16 @@
1
+ import { StencilAttachmentMode } from './pass/RenderPassDescriptor.js';
2
+ import { playRenderTree } from './plan/playRenderTree.js';
3
+ import { RenderTexture } from './texture/RenderTexture.js';
4
+ import { Camera } from './Camera.js';
1
5
  import '../core/Color.js';
2
6
  import '../core/SceneNode.js';
3
- import '../core/Time.js';
4
7
  import '../math/Size.js';
8
+ import '../core/Time.js';
5
9
  import '../math/Rectangle.js';
6
- import { playRenderTree } from './plan/playRenderTree.js';
7
10
  import './plan/RenderCommand.js';
8
11
  import './plan/RenderScope.js';
9
- import { StencilAttachmentMode } from './pass/RenderPassDescriptor.js';
10
- import { RenderTexture } from './texture/RenderTexture.js';
11
12
  import './types.js';
12
13
  import { View } from './View.js';
13
- import { Camera } from './Camera.js';
14
14
 
15
15
  /**
16
16
  * Owns rendering orchestration: builds, optimizes and plays the internal
@@ -1,5 +1,5 @@
1
- import type { Color } from '@/core/Color';
2
- import type { Matrix } from '@/math/Matrix';
1
+ import type { Color } from '#core/Color';
2
+ import type { Matrix } from '#math/Matrix';
3
3
  /** @internal */
4
4
  export interface TransformBufferFrameSnapshot {
5
5
  readonly count: number;
@@ -80,3 +80,4 @@ export declare class TransformBuffer {
80
80
  private _hashFloat;
81
81
  private _mix;
82
82
  }
83
+ //# sourceMappingURL=TransformBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransformBuffer.d.ts","sourceRoot":"","sources":["../../../src/rendering/TransformBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,gBAAgB;AAChB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAmE;IAChF,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,oBAAoB,CAAK;IAEjC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;;;;OAKG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;;;;OAKG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAED;;;;;OAKG;IACH,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,IAAI,IAAI,YAAY,CAE9B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAEM,KAAK,CAAC,aAAa,SAAI,GAAG,IAAI;IAe9B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM;IAQ5C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI;IAsChE;;;;;OAKG;IACI,kBAAkB,IAAI,IAAI;IAMjC;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOvC,cAAc,CAAC,QAAQ,SAAI,GAAG,4BAA4B;IAmBjE,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,IAAI;CAGb"}
@@ -1,9 +1,9 @@
1
- import { SceneNode } from '@/core/SceneNode';
2
- import { Matrix } from '@/math/Matrix';
3
- import { ObservableSize } from '@/math/ObservableSize';
4
- import { ObservableVector } from '@/math/ObservableVector';
5
- import type { PointLike } from '@/math/PointLike';
6
- import { Rectangle } from '@/math/Rectangle';
1
+ import { SceneNode } from '#core/SceneNode';
2
+ import { Matrix } from '#math/Matrix';
3
+ import { ObservableSize } from '#math/ObservableSize';
4
+ import { ObservableVector } from '#math/ObservableVector';
5
+ import type { PointLike } from '#math/PointLike';
6
+ import { Rectangle } from '#math/Rectangle';
7
7
  /**
8
8
  * Dirty-flag bits for lazy {@link View} transform and bounds recalculation.
9
9
  * @internal
@@ -190,3 +190,4 @@ export declare class View {
190
190
  private _applyBoundsConstraint;
191
191
  private _updateShake;
192
192
  }
193
+ //# sourceMappingURL=View.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/rendering/View.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { RenderingApplicationOptions } from '#core/Application';
2
+ import type { RendererBinding } from '#extensions/Extension';
3
+ /**
4
+ * Build the core renderer binding array for a given rendering options config.
5
+ * Text and BitmapText share one binding (same renderer class).
6
+ * Particles are in @codexo/exojs-particles, not in Core.
7
+ * @internal
8
+ */
9
+ export declare function buildCoreRendererBindings(options: RenderingApplicationOptions): RendererBinding[];
10
+ //# sourceMappingURL=coreRendererBindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreRendererBindings.d.ts","sourceRoot":"","sources":["../../../src/rendering/coreRendererBindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAe7D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,2BAA2B,GAAG,eAAe,EAAE,CAiCjG"}
@@ -0,0 +1,51 @@
1
+ import { Mesh } from './mesh/Mesh.js';
2
+ import { Sprite } from './sprite/Sprite.js';
3
+ import { BitmapText } from './text/BitmapText.js';
4
+ import { Text } from './text/Text.js';
5
+ import { WebGl2MeshRenderer } from './webgl2/WebGl2MeshRenderer.js';
6
+ import { WebGl2SpriteRenderer } from './webgl2/WebGl2SpriteRenderer.js';
7
+ import { WebGl2TextRenderer } from './webgl2/WebGl2TextRenderer.js';
8
+ import { WebGpuMeshRenderer } from './webgpu/WebGpuMeshRenderer.js';
9
+ import { WebGpuSpriteRenderer } from './webgpu/WebGpuSpriteRenderer.js';
10
+ import { WebGpuTextRenderer } from './webgpu/WebGpuTextRenderer.js';
11
+ import { RenderBackendType } from './RenderBackendType.js';
12
+
13
+ /**
14
+ * Build the core renderer binding array for a given rendering options config.
15
+ * Text and BitmapText share one binding (same renderer class).
16
+ * Particles are in @codexo/exojs-particles, not in Core.
17
+ * @internal
18
+ */
19
+ function buildCoreRendererBindings(options) {
20
+ const spriteRendererBatchSize = options.spriteRendererBatchSize ?? 4096;
21
+ const spriteRenderers = {
22
+ [RenderBackendType.WebGl2]: () => new WebGl2SpriteRenderer(spriteRendererBatchSize),
23
+ [RenderBackendType.WebGpu]: () => new WebGpuSpriteRenderer(),
24
+ };
25
+ const meshRenderers = {
26
+ [RenderBackendType.WebGl2]: () => new WebGl2MeshRenderer(),
27
+ [RenderBackendType.WebGpu]: () => new WebGpuMeshRenderer(),
28
+ };
29
+ const textRenderers = {
30
+ [RenderBackendType.WebGl2]: () => new WebGl2TextRenderer(),
31
+ [RenderBackendType.WebGpu]: () => new WebGpuTextRenderer(),
32
+ };
33
+ return [
34
+ {
35
+ targets: [Sprite],
36
+ create: backend => spriteRenderers[backend.backendType]?.(),
37
+ },
38
+ {
39
+ targets: [Mesh],
40
+ create: backend => meshRenderers[backend.backendType]?.(),
41
+ },
42
+ {
43
+ // Text and BitmapText share the same renderer class — one multi-target binding.
44
+ targets: [Text, BitmapText],
45
+ create: backend => textRenderers[backend.backendType]?.(),
46
+ },
47
+ ];
48
+ }
49
+
50
+ export { buildCoreRendererBindings };
51
+ //# sourceMappingURL=coreRendererBindings.js.map