@codexo/exojs 0.11.0 → 0.13.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 (832) hide show
  1. package/CHANGELOG.md +307 -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 +102 -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 +26 -0
  179. package/dist/esm/extensions/snapshot.d.ts.map +1 -0
  180. package/dist/esm/extensions/snapshot.js +78 -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 +29 -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 +27 -3
  338. package/dist/esm/rendering/Drawable.d.ts.map +1 -0
  339. package/dist/esm/rendering/Drawable.js +35 -1
  340. package/dist/esm/rendering/Drawable.js.map +1 -1
  341. package/dist/esm/rendering/RenderBackend.d.ts +13 -10
  342. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -0
  343. package/dist/esm/rendering/RenderBackendType.d.ts +1 -0
  344. package/dist/esm/rendering/RenderBackendType.d.ts.map +1 -0
  345. package/dist/esm/rendering/RenderNode.d.ts +13 -12
  346. package/dist/esm/rendering/RenderNode.d.ts.map +1 -0
  347. package/dist/esm/rendering/RenderNode.js +2 -2
  348. package/dist/esm/rendering/RenderNode.js.map +1 -1
  349. package/dist/esm/rendering/RenderNodePass.d.ts +38 -0
  350. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -0
  351. package/dist/esm/rendering/RenderNodePass.js +48 -0
  352. package/dist/esm/rendering/RenderNodePass.js.map +1 -0
  353. package/dist/esm/rendering/RenderPass.d.ts +53 -8
  354. package/dist/esm/rendering/RenderPass.d.ts.map +1 -0
  355. package/dist/esm/rendering/RenderPass.js +48 -0
  356. package/dist/esm/rendering/RenderPass.js.map +1 -0
  357. package/dist/esm/rendering/RenderPipeline.d.ts +61 -0
  358. package/dist/esm/rendering/RenderPipeline.d.ts.map +1 -0
  359. package/dist/esm/rendering/RenderPipeline.js +177 -0
  360. package/dist/esm/rendering/RenderPipeline.js.map +1 -0
  361. package/dist/esm/rendering/RenderStats.d.ts +1 -0
  362. package/dist/esm/rendering/RenderStats.d.ts.map +1 -0
  363. package/dist/esm/rendering/RenderTarget.d.ts +4 -3
  364. package/dist/esm/rendering/RenderTarget.d.ts.map +1 -0
  365. package/dist/esm/rendering/Renderer.d.ts +1 -0
  366. package/dist/esm/rendering/Renderer.d.ts.map +1 -0
  367. package/dist/esm/rendering/RendererRegistry.d.ts +13 -2
  368. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -0
  369. package/dist/esm/rendering/RendererRegistry.js +60 -7
  370. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  371. package/dist/esm/rendering/RenderingContext.d.ts +7 -6
  372. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -0
  373. package/dist/esm/rendering/RenderingContext.js +5 -5
  374. package/dist/esm/rendering/TransformBuffer.d.ts +3 -2
  375. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -0
  376. package/dist/esm/rendering/View.d.ts +7 -6
  377. package/dist/esm/rendering/View.d.ts.map +1 -0
  378. package/dist/esm/rendering/coreRendererBindings.d.ts +10 -0
  379. package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -0
  380. package/dist/esm/rendering/coreRendererBindings.js +73 -0
  381. package/dist/esm/rendering/coreRendererBindings.js.map +1 -0
  382. package/dist/esm/rendering/filters/BlurFilter.d.ts +3 -2
  383. package/dist/esm/rendering/filters/BlurFilter.d.ts.map +1 -0
  384. package/dist/esm/rendering/filters/BlurFilter.js +2 -2
  385. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  386. package/dist/esm/rendering/filters/ColorFilter.d.ts +4 -3
  387. package/dist/esm/rendering/filters/ColorFilter.d.ts.map +1 -0
  388. package/dist/esm/rendering/filters/ColorFilter.js +2 -2
  389. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  390. package/dist/esm/rendering/filters/Filter.d.ts +3 -2
  391. package/dist/esm/rendering/filters/Filter.d.ts.map +1 -0
  392. package/dist/esm/rendering/filters/LutFilter.d.ts +4 -3
  393. package/dist/esm/rendering/filters/LutFilter.d.ts.map +1 -0
  394. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +4 -3
  395. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts.map +1 -0
  396. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +2 -2
  397. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  398. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +3 -2
  399. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -0
  400. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -3
  401. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  402. package/dist/esm/rendering/geometry/Geometry.d.ts +2 -1
  403. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -0
  404. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +1 -0
  405. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts.map +1 -0
  406. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +1 -0
  407. package/dist/esm/rendering/geometry/QuadGeometry.d.ts.map +1 -0
  408. package/dist/esm/rendering/gradient/Gradient.d.ts +5 -4
  409. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -0
  410. package/dist/esm/rendering/gradient/LinearGradient.d.ts +1 -0
  411. package/dist/esm/rendering/gradient/LinearGradient.d.ts.map +1 -0
  412. package/dist/esm/rendering/gradient/RadialGradient.d.ts +1 -0
  413. package/dist/esm/rendering/gradient/RadialGradient.d.ts.map +1 -0
  414. package/dist/esm/rendering/index.d.ts +100 -84
  415. package/dist/esm/rendering/index.d.ts.map +1 -0
  416. package/dist/esm/rendering/material/Material.d.ts +5 -4
  417. package/dist/esm/rendering/material/Material.d.ts.map +1 -0
  418. package/dist/esm/rendering/material/MaterialKey.d.ts +5 -4
  419. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -0
  420. package/dist/esm/rendering/material/MeshMaterial.d.ts +1 -0
  421. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -0
  422. package/dist/esm/rendering/material/ShaderSource.d.ts +1 -0
  423. package/dist/esm/rendering/material/ShaderSource.d.ts.map +1 -0
  424. package/dist/esm/rendering/material/SpriteMaterial.d.ts +1 -0
  425. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -0
  426. package/dist/esm/rendering/mesh/Mesh.d.ts +6 -5
  427. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -0
  428. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +8 -7
  429. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts.map +1 -0
  430. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +4 -3
  431. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts.map +1 -0
  432. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -1
  433. package/dist/esm/rendering/pixelSnap.d.ts +219 -0
  434. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -0
  435. package/dist/esm/rendering/pixelSnap.js +186 -0
  436. package/dist/esm/rendering/pixelSnap.js.map +1 -0
  437. package/dist/esm/rendering/plan/RenderCommand.d.ts +4 -3
  438. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -0
  439. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +2 -1
  440. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -0
  441. package/dist/esm/rendering/plan/RenderInstruction.d.ts +1 -0
  442. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -0
  443. package/dist/esm/rendering/plan/RenderPlan.d.ts +4 -3
  444. package/dist/esm/rendering/plan/RenderPlan.d.ts.map +1 -0
  445. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +5 -4
  446. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -0
  447. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +1 -0
  448. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -0
  449. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +2 -1
  450. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -0
  451. package/dist/esm/rendering/plan/RenderPlanPlayer.js +21 -1
  452. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  453. package/dist/esm/rendering/plan/RenderScope.d.ts +6 -5
  454. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -0
  455. package/dist/esm/rendering/plan/playRenderTree.d.ts +3 -2
  456. package/dist/esm/rendering/plan/playRenderTree.d.ts.map +1 -0
  457. package/dist/esm/rendering/primitives/Graphics.d.ts +7 -6
  458. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -0
  459. package/dist/esm/rendering/shader/Shader.d.ts +1 -0
  460. package/dist/esm/rendering/shader/Shader.d.ts.map +1 -0
  461. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +1 -0
  462. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -0
  463. package/dist/esm/rendering/shader/ShaderUniform.d.ts +2 -1
  464. package/dist/esm/rendering/shader/ShaderUniform.d.ts.map +1 -0
  465. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts +1 -0
  466. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts.map +1 -0
  467. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +6 -5
  468. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -0
  469. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts +69 -0
  470. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -0
  471. package/dist/esm/rendering/sprite/NineSliceSprite.js +207 -0
  472. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -0
  473. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts +120 -0
  474. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -0
  475. package/dist/esm/rendering/sprite/RepeatingSprite.js +279 -0
  476. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -0
  477. package/dist/esm/rendering/sprite/Sprite.d.ts +21 -7
  478. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -0
  479. package/dist/esm/rendering/sprite/Sprite.js +23 -0
  480. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  481. package/dist/esm/rendering/sprite/Spritesheet.d.ts +3 -2
  482. package/dist/esm/rendering/sprite/Spritesheet.d.ts.map +1 -0
  483. package/dist/esm/rendering/sprite/nineSlice.d.ts +53 -0
  484. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -0
  485. package/dist/esm/rendering/sprite/nineSlice.js +340 -0
  486. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -0
  487. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts +57 -0
  488. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -0
  489. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +156 -0
  490. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -0
  491. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +1 -0
  492. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts.map +1 -0
  493. package/dist/esm/rendering/text/AbstractText.d.ts +2 -1
  494. package/dist/esm/rendering/text/AbstractText.d.ts.map +1 -0
  495. package/dist/esm/rendering/text/BitmapText.d.ts +2 -1
  496. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -0
  497. package/dist/esm/rendering/text/BitmapText.js +1 -4
  498. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  499. package/dist/esm/rendering/text/BmFont.d.ts +2 -1
  500. package/dist/esm/rendering/text/BmFont.d.ts.map +1 -0
  501. package/dist/esm/rendering/text/GlyphAtlas.d.ts +3 -2
  502. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -0
  503. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +1 -0
  504. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -0
  505. package/dist/esm/rendering/text/GlyphSdf.d.ts +1 -0
  506. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -0
  507. package/dist/esm/rendering/text/GlyphSdf.js +7 -0
  508. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  509. package/dist/esm/rendering/text/HTMLText.d.ts +2 -1
  510. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -0
  511. package/dist/esm/rendering/text/LayoutOptions.d.ts +1 -0
  512. package/dist/esm/rendering/text/LayoutOptions.d.ts.map +1 -0
  513. package/dist/esm/rendering/text/Text.d.ts +1 -0
  514. package/dist/esm/rendering/text/Text.d.ts.map +1 -0
  515. package/dist/esm/rendering/text/TextLayout.d.ts +1 -0
  516. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -0
  517. package/dist/esm/rendering/text/TextStyle.d.ts +3 -2
  518. package/dist/esm/rendering/text/TextStyle.d.ts.map +1 -0
  519. package/dist/esm/rendering/text/types.d.ts +1 -0
  520. package/dist/esm/rendering/text/types.d.ts.map +1 -0
  521. package/dist/esm/rendering/texture/DataTexture.d.ts +3 -2
  522. package/dist/esm/rendering/texture/DataTexture.d.ts.map +1 -0
  523. package/dist/esm/rendering/texture/DataTexture.js +1 -1
  524. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  525. package/dist/esm/rendering/texture/RenderTexture.d.ts +4 -3
  526. package/dist/esm/rendering/texture/RenderTexture.d.ts.map +1 -0
  527. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  528. package/dist/esm/rendering/texture/Sampler.d.ts +2 -1
  529. package/dist/esm/rendering/texture/Sampler.d.ts.map +1 -0
  530. package/dist/esm/rendering/texture/Texture.d.ts +4 -3
  531. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -0
  532. package/dist/esm/rendering/texture/TextureRegion.d.ts +100 -0
  533. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -0
  534. package/dist/esm/rendering/texture/TextureRegion.js +144 -0
  535. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -0
  536. package/dist/esm/rendering/texture/repeat.d.ts +96 -0
  537. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -0
  538. package/dist/esm/rendering/texture/repeat.js +158 -0
  539. package/dist/esm/rendering/texture/repeat.js.map +1 -0
  540. package/dist/esm/rendering/types.d.ts +1 -0
  541. package/dist/esm/rendering/types.d.ts.map +1 -0
  542. package/dist/esm/rendering/utils.d.ts +1 -0
  543. package/dist/esm/rendering/utils.d.ts.map +1 -0
  544. package/dist/esm/rendering/video/Video.d.ts +8 -7
  545. package/dist/esm/rendering/video/Video.d.ts.map +1 -0
  546. package/dist/esm/rendering/video/Video.js.map +1 -1
  547. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -6
  548. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -0
  549. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +1 -1
  550. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +4 -3
  551. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts.map +1 -0
  552. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
  553. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +42 -21
  554. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -0
  555. package/dist/esm/rendering/webgl2/WebGl2Backend.js +34 -19
  556. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  557. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +4 -3
  558. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -0
  559. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +1 -1
  560. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +2 -1
  561. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -0
  562. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts +32 -0
  563. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -0
  564. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +308 -0
  565. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -0
  566. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +10 -9
  567. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts.map +1 -0
  568. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +1 -1
  569. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -1
  570. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +3 -2
  571. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -0
  572. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts +49 -0
  573. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -0
  574. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +535 -0
  575. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -0
  576. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts +2 -1
  577. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -0
  578. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  579. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts +1 -0
  580. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts.map +1 -0
  581. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts +2 -1
  582. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -0
  583. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +1 -1
  584. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +11 -1
  585. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -0
  586. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +23 -3
  587. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  588. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +3 -2
  589. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -0
  590. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +1 -1
  591. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +3 -2
  592. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -0
  593. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +3 -3
  594. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +3 -2
  595. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts.map +1 -0
  596. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +4 -3
  597. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts.map +1 -0
  598. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
  599. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +41 -20
  600. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -0
  601. package/dist/esm/rendering/webgpu/WebGpuBackend.js +31 -17
  602. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  603. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts +2 -1
  604. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -0
  605. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +4 -3
  606. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -0
  607. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -3
  608. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -0
  609. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +36 -0
  610. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -0
  611. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +358 -0
  612. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -0
  613. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +10 -9
  614. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -0
  615. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +52 -0
  616. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -0
  617. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +556 -0
  618. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -0
  619. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +13 -3
  620. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -0
  621. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +22 -2
  622. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  623. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +4 -3
  624. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -0
  625. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  626. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +1 -0
  627. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts.map +1 -0
  628. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +3 -2
  629. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -0
  630. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +2 -2
  631. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +7 -5
  632. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -0
  633. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +4 -4
  634. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  635. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +1 -0
  636. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts.map +1 -0
  637. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +1 -0
  638. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -0
  639. package/dist/esm/rendering/webgpu/compute/index.d.ts +1 -0
  640. package/dist/esm/rendering/webgpu/compute/index.d.ts.map +1 -0
  641. package/dist/esm/rendering.d.ts +29 -0
  642. package/dist/esm/rendering.d.ts.map +1 -0
  643. package/dist/esm/rendering.js +22 -0
  644. package/dist/esm/rendering.js.map +1 -0
  645. package/dist/esm/resources/AbstractAssetFactory.d.ts +1 -0
  646. package/dist/esm/resources/AbstractAssetFactory.d.ts.map +1 -0
  647. package/dist/esm/resources/Asset.d.ts +1 -0
  648. package/dist/esm/resources/Asset.d.ts.map +1 -0
  649. package/dist/esm/resources/AssetDefinitions.d.ts +9 -8
  650. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -0
  651. package/dist/esm/resources/AssetFactory.d.ts +1 -0
  652. package/dist/esm/resources/AssetFactory.d.ts.map +1 -0
  653. package/dist/esm/resources/AssetManifest.d.ts +1 -0
  654. package/dist/esm/resources/AssetManifest.d.ts.map +1 -0
  655. package/dist/esm/resources/Assets.d.ts +1 -0
  656. package/dist/esm/resources/Assets.d.ts.map +1 -0
  657. package/dist/esm/resources/CacheFirstStrategy.d.ts +1 -0
  658. package/dist/esm/resources/CacheFirstStrategy.d.ts.map +1 -0
  659. package/dist/esm/resources/CacheStore.d.ts +1 -0
  660. package/dist/esm/resources/CacheStore.d.ts.map +1 -0
  661. package/dist/esm/resources/CacheStrategy.d.ts +1 -0
  662. package/dist/esm/resources/CacheStrategy.d.ts.map +1 -0
  663. package/dist/esm/resources/Database.d.ts +1 -0
  664. package/dist/esm/resources/Database.d.ts.map +1 -0
  665. package/dist/esm/resources/FactoryRegistry.d.ts +1 -0
  666. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -0
  667. package/dist/esm/resources/IndexedDbDatabase.d.ts +2 -1
  668. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -0
  669. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  670. package/dist/esm/resources/IndexedDbStore.d.ts +1 -0
  671. package/dist/esm/resources/IndexedDbStore.d.ts.map +1 -0
  672. package/dist/esm/resources/JsonStore.d.ts +1 -0
  673. package/dist/esm/resources/JsonStore.d.ts.map +1 -0
  674. package/dist/esm/resources/Loader.d.ts +67 -9
  675. package/dist/esm/resources/Loader.d.ts.map +1 -0
  676. package/dist/esm/resources/Loader.js +125 -69
  677. package/dist/esm/resources/Loader.js.map +1 -1
  678. package/dist/esm/resources/LoadingQueue.d.ts +2 -1
  679. package/dist/esm/resources/LoadingQueue.d.ts.map +1 -0
  680. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +1 -0
  681. package/dist/esm/resources/NetworkOnlyStrategy.d.ts.map +1 -0
  682. package/dist/esm/resources/coreAssetBindings.d.ts +8 -0
  683. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -0
  684. package/dist/esm/resources/coreAssetBindings.js +151 -0
  685. package/dist/esm/resources/coreAssetBindings.js.map +1 -0
  686. package/dist/esm/resources/factories/BinaryFactory.d.ts +2 -1
  687. package/dist/esm/resources/factories/BinaryFactory.d.ts.map +1 -0
  688. package/dist/esm/resources/factories/BmFontFactory.d.ts +5 -4
  689. package/dist/esm/resources/factories/BmFontFactory.d.ts.map +1 -0
  690. package/dist/esm/resources/factories/CsvFactory.d.ts +2 -1
  691. package/dist/esm/resources/factories/CsvFactory.d.ts.map +1 -0
  692. package/dist/esm/resources/factories/FontFactory.d.ts +2 -1
  693. package/dist/esm/resources/factories/FontFactory.d.ts.map +1 -0
  694. package/dist/esm/resources/factories/ImageFactory.d.ts +2 -1
  695. package/dist/esm/resources/factories/ImageFactory.d.ts.map +1 -0
  696. package/dist/esm/resources/factories/JsonFactory.d.ts +2 -1
  697. package/dist/esm/resources/factories/JsonFactory.d.ts.map +1 -0
  698. package/dist/esm/resources/factories/MusicFactory.d.ts +4 -3
  699. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -0
  700. package/dist/esm/resources/factories/SoundFactory.d.ts +4 -3
  701. package/dist/esm/resources/factories/SoundFactory.d.ts.map +1 -0
  702. package/dist/esm/resources/factories/SubtitleFactory.d.ts +2 -1
  703. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -0
  704. package/dist/esm/resources/factories/SvgFactory.d.ts +2 -1
  705. package/dist/esm/resources/factories/SvgFactory.d.ts.map +1 -0
  706. package/dist/esm/resources/factories/TextFactory.d.ts +2 -1
  707. package/dist/esm/resources/factories/TextFactory.d.ts.map +1 -0
  708. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -3
  709. package/dist/esm/resources/factories/TextureFactory.d.ts.map +1 -0
  710. package/dist/esm/resources/factories/VideoFactory.d.ts +5 -4
  711. package/dist/esm/resources/factories/VideoFactory.d.ts.map +1 -0
  712. package/dist/esm/resources/factories/WasmFactory.d.ts +2 -1
  713. package/dist/esm/resources/factories/WasmFactory.d.ts.map +1 -0
  714. package/dist/esm/resources/factories/XmlFactory.d.ts +2 -1
  715. package/dist/esm/resources/factories/XmlFactory.d.ts.map +1 -0
  716. package/dist/esm/resources/index.d.ts +16 -15
  717. package/dist/esm/resources/index.d.ts.map +1 -0
  718. package/dist/esm/resources/tokens.d.ts +1 -0
  719. package/dist/esm/resources/tokens.d.ts.map +1 -0
  720. package/dist/esm/resources/utils.d.ts +1 -0
  721. package/dist/esm/resources/utils.d.ts.map +1 -0
  722. package/dist/exo.debug.esm.js +949 -0
  723. package/dist/exo.debug.esm.js.map +1 -0
  724. package/dist/exo.esm.js +11087 -10352
  725. package/dist/exo.esm.js.map +1 -1
  726. package/package.json +93 -58
  727. package/dist/esm/particles/ParticleSystem.d.ts +0 -212
  728. package/dist/esm/particles/ParticleSystem.js +0 -573
  729. package/dist/esm/particles/ParticleSystem.js.map +0 -1
  730. package/dist/esm/particles/distributions/BoxArea.d.ts +0 -17
  731. package/dist/esm/particles/distributions/BoxArea.js +0 -48
  732. package/dist/esm/particles/distributions/BoxArea.js.map +0 -1
  733. package/dist/esm/particles/distributions/CircleArea.d.ts +0 -19
  734. package/dist/esm/particles/distributions/CircleArea.js +0 -33
  735. package/dist/esm/particles/distributions/CircleArea.js.map +0 -1
  736. package/dist/esm/particles/distributions/ColorGradient.d.ts +0 -40
  737. package/dist/esm/particles/distributions/ColorGradient.js +0 -72
  738. package/dist/esm/particles/distributions/ColorGradient.js.map +0 -1
  739. package/dist/esm/particles/distributions/ConeDirection.d.ts +0 -28
  740. package/dist/esm/particles/distributions/ConeDirection.js +0 -44
  741. package/dist/esm/particles/distributions/ConeDirection.js.map +0 -1
  742. package/dist/esm/particles/distributions/Constant.d.ts +0 -17
  743. package/dist/esm/particles/distributions/Constant.js +0 -35
  744. package/dist/esm/particles/distributions/Constant.js.map +0 -1
  745. package/dist/esm/particles/distributions/Curve.d.ts +0 -30
  746. package/dist/esm/particles/distributions/Curve.js +0 -53
  747. package/dist/esm/particles/distributions/Curve.js.map +0 -1
  748. package/dist/esm/particles/distributions/Distribution.d.ts +0 -45
  749. package/dist/esm/particles/distributions/LineSegment.d.ts +0 -15
  750. package/dist/esm/particles/distributions/LineSegment.js +0 -27
  751. package/dist/esm/particles/distributions/LineSegment.js.map +0 -1
  752. package/dist/esm/particles/distributions/Range.d.ts +0 -12
  753. package/dist/esm/particles/distributions/Range.js +0 -19
  754. package/dist/esm/particles/distributions/Range.js.map +0 -1
  755. package/dist/esm/particles/distributions/VectorRange.d.ts +0 -20
  756. package/dist/esm/particles/distributions/VectorRange.js +0 -31
  757. package/dist/esm/particles/distributions/VectorRange.js.map +0 -1
  758. package/dist/esm/particles/distributions/index.d.ts +0 -12
  759. package/dist/esm/particles/gpu/ParticleGpuState.d.ts +0 -57
  760. package/dist/esm/particles/gpu/ParticleGpuState.js +0 -535
  761. package/dist/esm/particles/gpu/ParticleGpuState.js.map +0 -1
  762. package/dist/esm/particles/index.d.ts +0 -4
  763. package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +0 -24
  764. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +0 -64
  765. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +0 -1
  766. package/dist/esm/particles/modules/ApplyForce.d.ts +0 -20
  767. package/dist/esm/particles/modules/ApplyForce.js +0 -48
  768. package/dist/esm/particles/modules/ApplyForce.js.map +0 -1
  769. package/dist/esm/particles/modules/AttractToPoint.d.ts +0 -27
  770. package/dist/esm/particles/modules/AttractToPoint.js +0 -73
  771. package/dist/esm/particles/modules/AttractToPoint.js.map +0 -1
  772. package/dist/esm/particles/modules/BurstSpawn.d.ts +0 -53
  773. package/dist/esm/particles/modules/BurstSpawn.js +0 -94
  774. package/dist/esm/particles/modules/BurstSpawn.js.map +0 -1
  775. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +0 -22
  776. package/dist/esm/particles/modules/ColorOverLifetime.js +0 -65
  777. package/dist/esm/particles/modules/ColorOverLifetime.js.map +0 -1
  778. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +0 -27
  779. package/dist/esm/particles/modules/ColorOverSpeed.js +0 -86
  780. package/dist/esm/particles/modules/ColorOverSpeed.js.map +0 -1
  781. package/dist/esm/particles/modules/DeathModule.d.ts +0 -24
  782. package/dist/esm/particles/modules/DeathModule.js +0 -25
  783. package/dist/esm/particles/modules/DeathModule.js.map +0 -1
  784. package/dist/esm/particles/modules/Drag.d.ts +0 -20
  785. package/dist/esm/particles/modules/Drag.js +0 -43
  786. package/dist/esm/particles/modules/Drag.js.map +0 -1
  787. package/dist/esm/particles/modules/OrbitalForce.d.ts +0 -28
  788. package/dist/esm/particles/modules/OrbitalForce.js +0 -65
  789. package/dist/esm/particles/modules/OrbitalForce.js.map +0 -1
  790. package/dist/esm/particles/modules/RateSpawn.d.ts +0 -41
  791. package/dist/esm/particles/modules/RateSpawn.js +0 -76
  792. package/dist/esm/particles/modules/RateSpawn.js.map +0 -1
  793. package/dist/esm/particles/modules/RepelFromPoint.d.ts +0 -24
  794. package/dist/esm/particles/modules/RepelFromPoint.js +0 -76
  795. package/dist/esm/particles/modules/RepelFromPoint.js.map +0 -1
  796. package/dist/esm/particles/modules/RotateOverLifetime.d.ts +0 -20
  797. package/dist/esm/particles/modules/RotateOverLifetime.js +0 -41
  798. package/dist/esm/particles/modules/RotateOverLifetime.js.map +0 -1
  799. package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +0 -26
  800. package/dist/esm/particles/modules/ScaleOverLifetime.js +0 -59
  801. package/dist/esm/particles/modules/ScaleOverLifetime.js.map +0 -1
  802. package/dist/esm/particles/modules/SpawnModule.d.ts +0 -30
  803. package/dist/esm/particles/modules/SpawnModule.js +0 -31
  804. package/dist/esm/particles/modules/SpawnModule.js.map +0 -1
  805. package/dist/esm/particles/modules/SpawnOnDeath.d.ts +0 -24
  806. package/dist/esm/particles/modules/SpawnOnDeath.js +0 -47
  807. package/dist/esm/particles/modules/SpawnOnDeath.js.map +0 -1
  808. package/dist/esm/particles/modules/Turbulence.d.ts +0 -30
  809. package/dist/esm/particles/modules/Turbulence.js +0 -122
  810. package/dist/esm/particles/modules/Turbulence.js.map +0 -1
  811. package/dist/esm/particles/modules/UpdateModule.d.ts +0 -95
  812. package/dist/esm/particles/modules/UpdateModule.js +0 -66
  813. package/dist/esm/particles/modules/UpdateModule.js.map +0 -1
  814. package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +0 -30
  815. package/dist/esm/particles/modules/VelocityOverLifetime.js +0 -84
  816. package/dist/esm/particles/modules/VelocityOverLifetime.js.map +0 -1
  817. package/dist/esm/particles/modules/WgslContribution.d.ts +0 -81
  818. package/dist/esm/particles/modules/WgslContribution.js +0 -34
  819. package/dist/esm/particles/modules/WgslContribution.js.map +0 -1
  820. package/dist/esm/particles/modules/index.d.ts +0 -22
  821. package/dist/esm/rendering/RenderTargetPass.d.ts +0 -29
  822. package/dist/esm/rendering/RenderTargetPass.js.map +0 -1
  823. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +0 -45
  824. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +0 -330
  825. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +0 -1
  826. package/dist/esm/rendering/webgl2/glsl/particle.frag.js +0 -4
  827. package/dist/esm/rendering/webgl2/glsl/particle.frag.js.map +0 -1
  828. package/dist/esm/rendering/webgl2/glsl/particle.vert.js +0 -4
  829. package/dist/esm/rendering/webgl2/glsl/particle.vert.js.map +0 -1
  830. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +0 -48
  831. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +0 -556
  832. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +0 -1
@@ -0,0 +1,48 @@
1
+ import { playRenderTree } from './plan/playRenderTree.js';
2
+ import { BackendTargetPass } from './BackendTargetPass.js';
3
+ import { RenderPass } from './RenderPass.js';
4
+
5
+ /**
6
+ * Renders a scene subtree (a {@link RenderNode}) as one pass — into the active target, or off-screen when
7
+ * `options.target` is set. The most common pass: world, HUD overlay, an off-screen scene capture.
8
+ *
9
+ * `view`/`target`/`clear` are fixed at construction; only `enabled`/`label` are mutable. The off-screen redirect is
10
+ * built once and reused every frame (no per-frame allocation). The node and any caller `target` are NOT owned by
11
+ * this pass — `destroy()` never frees them.
12
+ * @advanced
13
+ */
14
+ class RenderNodePass extends RenderPass {
15
+ _node;
16
+ _target;
17
+ _clear;
18
+ _renderOptions;
19
+ _redirect;
20
+ constructor(node, options) {
21
+ super(options);
22
+ this._node = node;
23
+ this._target = options?.target ?? null;
24
+ this._clear = options?.clear ?? null;
25
+ this._renderOptions = { view: options?.view };
26
+ this._redirect =
27
+ this._target !== null
28
+ ? new BackendTargetPass(backend => playRenderTree(this._node, backend), {
29
+ target: this._target,
30
+ view: options?.view ?? this._target.view,
31
+ clearColor: this._clear ?? undefined,
32
+ })
33
+ : null;
34
+ }
35
+ execute(context) {
36
+ if (this._redirect !== null) {
37
+ context.backend.execute(this._redirect);
38
+ return;
39
+ }
40
+ if (this._clear !== null) {
41
+ context.backend.clear(this._clear);
42
+ }
43
+ context.render(this._node, this._renderOptions);
44
+ }
45
+ }
46
+
47
+ export { RenderNodePass };
48
+ //# sourceMappingURL=RenderNodePass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderNodePass.js","sources":["../../../../src/rendering/RenderNodePass.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAwBA;;;;;;;;AAQG;AACG,MAAO,cAAe,SAAQ,UAAU,CAAA;AAC3B,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,cAAc;AACd,IAAA,SAAS;IAE1B,WAAA,CAAmB,IAAgB,EAAE,OAA+B,EAAA;QAClE,KAAK,CAAC,OAAO,CAAC;AAEd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI;QACpC,IAAI,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AAC7C,QAAA,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,OAAO,KAAK;AACf,kBAAE,IAAI,iBAAiB,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;oBACpE,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI;AACxC,oBAAA,UAAU,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;iBACrC;kBACD,IAAI;IACZ;AAEgB,IAAA,OAAO,CAAC,OAAyB,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAEvC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YACxB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC;QAEA,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC;IACjD;AACD;;;;"}
@@ -1,13 +1,58 @@
1
- import type { RenderBackend } from './RenderBackend';
1
+ import type { RenderingContext } from './RenderingContext';
2
+ import type { RenderPipeline } from './RenderPipeline';
2
3
  /**
3
- * A single node in the render graph.
4
+ * Options shared by every {@link RenderPass}.
5
+ * @advanced
6
+ */
7
+ export interface RenderPassOptions {
8
+ /** Initial enabled state. Default `true`. Toggle later via the {@link RenderPass.enabled} field. */
9
+ readonly enabled?: boolean;
10
+ /** Optional debug label for the inspector / logging. Default: the constructor name. Display only — not an identity. */
11
+ readonly label?: string;
12
+ }
13
+ /**
14
+ * One high-level phase of a frame. Subclass and implement {@link execute}, or use a stock subclass
15
+ * ({@link RenderNodePass}, {@link CallbackRenderPass}, {@link RenderPipeline}).
16
+ *
17
+ * `enabled`, `label`, {@link resize}, and {@link destroy} are part of the contract so every pass — including
18
+ * resource-owning effect passes — composes uniformly inside a {@link RenderPipeline}.
4
19
  *
5
- * Concrete implementations include {@link CallbackRenderPass} for arbitrary
6
- * draw logic and {@link RenderTargetPass} for off-screen rendering to a
7
- * {@link RenderTarget}. Passes are executed in order each frame by the backend.
20
+ * **Exclusive ownership:** a `RenderPass` belongs to at most one {@link RenderPipeline} at a time (tracked via an
21
+ * internal slot). `removePass`/`clear`/`destroy` release it. This is what makes add-time cycle detection and safe
22
+ * cascade-destroy possible, and prevents a pass's `enabled`/`resize`/`destroy` state from being shared.
8
23
  * @advanced
9
24
  */
10
- export interface RenderPass {
11
- /** Execute this pass, issuing draw calls through `backend`. */
12
- execute(backend: RenderBackend): void;
25
+ export declare abstract class RenderPass {
26
+ /**
27
+ * When `false`, the containing {@link RenderPipeline} skips this pass during `execute`. Default `true`.
28
+ * Evaluated by the parent — a direct {@link execute} call runs the pass regardless.
29
+ */
30
+ enabled: boolean;
31
+ /** Debug label (inspector / logging). Defaults to the constructor name. Display only — not an identity. */
32
+ label: string;
33
+ /**
34
+ * The owning pipeline, or `null`. Set by {@link RenderPipeline.addPass}/`insertPass`, cleared by
35
+ * `removePass`/`clear`/`destroy`. Used to enforce exclusive ownership and detect composition cycles.
36
+ * @internal
37
+ */
38
+ _pipelineOwner: RenderPipeline | null;
39
+ protected constructor(options?: RenderPassOptions);
40
+ /**
41
+ * Run this pass against `context`. The active render target is the canvas unless a parent redirected it.
42
+ *
43
+ * Called directly, this runs **regardless of `enabled`** — `enabled` is evaluated by the containing
44
+ * {@link RenderPipeline}, not self-checked here. Subclasses must not begin `execute` with `if (!this.enabled)`.
45
+ */
46
+ abstract execute(context: RenderingContext): void;
47
+ /**
48
+ * React to a surface / target size change. No-op by default; size-dependent passes (effects with scratch
49
+ * targets) override. Called by {@link RenderPipeline.resize}, which the caller wires to `app.onResize`.
50
+ */
51
+ resize(_width: number, _height: number): void;
52
+ /**
53
+ * Release resources this pass allocated internally. No-op by default; idempotent. Never frees injected scene
54
+ * nodes or caller-provided RenderTextures — those are owned by the caller / scene.
55
+ */
56
+ destroy(): void;
13
57
  }
58
+ //# sourceMappingURL=RenderPass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderPass.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oGAAoG;IACpG,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,uHAAuH;IACvH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,8BAAsB,UAAU;IAC9B;;;OAGG;IACI,OAAO,EAAE,OAAO,CAAC;IAExB,2GAA2G;IACpG,KAAK,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACI,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAEpD,SAAS,aAAa,OAAO,CAAC,EAAE,iBAAiB;IAKjD;;;;;OAKG;aACa,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAExD;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpD;;;OAGG;IACI,OAAO,IAAI,IAAI;CAGvB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * One high-level phase of a frame. Subclass and implement {@link execute}, or use a stock subclass
3
+ * ({@link RenderNodePass}, {@link CallbackRenderPass}, {@link RenderPipeline}).
4
+ *
5
+ * `enabled`, `label`, {@link resize}, and {@link destroy} are part of the contract so every pass — including
6
+ * resource-owning effect passes — composes uniformly inside a {@link RenderPipeline}.
7
+ *
8
+ * **Exclusive ownership:** a `RenderPass` belongs to at most one {@link RenderPipeline} at a time (tracked via an
9
+ * internal slot). `removePass`/`clear`/`destroy` release it. This is what makes add-time cycle detection and safe
10
+ * cascade-destroy possible, and prevents a pass's `enabled`/`resize`/`destroy` state from being shared.
11
+ * @advanced
12
+ */
13
+ class RenderPass {
14
+ /**
15
+ * When `false`, the containing {@link RenderPipeline} skips this pass during `execute`. Default `true`.
16
+ * Evaluated by the parent — a direct {@link execute} call runs the pass regardless.
17
+ */
18
+ enabled;
19
+ /** Debug label (inspector / logging). Defaults to the constructor name. Display only — not an identity. */
20
+ label;
21
+ /**
22
+ * The owning pipeline, or `null`. Set by {@link RenderPipeline.addPass}/`insertPass`, cleared by
23
+ * `removePass`/`clear`/`destroy`. Used to enforce exclusive ownership and detect composition cycles.
24
+ * @internal
25
+ */
26
+ _pipelineOwner = null;
27
+ constructor(options) {
28
+ this.enabled = options?.enabled ?? true;
29
+ this.label = options?.label ?? new.target.name;
30
+ }
31
+ /**
32
+ * React to a surface / target size change. No-op by default; size-dependent passes (effects with scratch
33
+ * targets) override. Called by {@link RenderPipeline.resize}, which the caller wires to `app.onResize`.
34
+ */
35
+ resize(_width, _height) {
36
+ // no-op by default; size-dependent passes override.
37
+ }
38
+ /**
39
+ * Release resources this pass allocated internally. No-op by default; idempotent. Never frees injected scene
40
+ * nodes or caller-provided RenderTextures — those are owned by the caller / scene.
41
+ */
42
+ destroy() {
43
+ // no-op by default; resource-owning passes override.
44
+ }
45
+ }
46
+
47
+ export { RenderPass };
48
+ //# sourceMappingURL=RenderPass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderPass.js","sources":["../../../../src/rendering/RenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAcA;;;;;;;;;;;AAWG;MACmB,UAAU,CAAA;AAC9B;;;AAGG;AACI,IAAA,OAAO;;AAGP,IAAA,KAAK;AAEZ;;;;AAIG;IACI,cAAc,GAA0B,IAAI;AAEnD,IAAA,WAAA,CAAsB,OAA2B,EAAA;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI;IAChD;AAUA;;;AAGG;IACI,MAAM,CAAC,MAAc,EAAE,OAAe,EAAA;;IAE7C;AAEA;;;AAGG;IACI,OAAO,GAAA;;IAEd;AACD;;;;"}
@@ -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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"}