@codexo/exojs 0.10.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 (815) hide show
  1. package/CHANGELOG.md +265 -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 +22 -0
  135. package/dist/esm/core/dev.d.ts.map +1 -0
  136. package/dist/esm/core/dev.js +39 -0
  137. package/dist/esm/core/dev.js.map +1 -0
  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 +47 -2
  374. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -0
  375. package/dist/esm/rendering/TransformBuffer.js +64 -0
  376. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  377. package/dist/esm/rendering/View.d.ts +7 -6
  378. package/dist/esm/rendering/View.d.ts.map +1 -0
  379. package/dist/esm/rendering/coreRendererBindings.d.ts +10 -0
  380. package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -0
  381. package/dist/esm/rendering/coreRendererBindings.js +51 -0
  382. package/dist/esm/rendering/coreRendererBindings.js.map +1 -0
  383. package/dist/esm/rendering/filters/BlurFilter.d.ts +3 -2
  384. package/dist/esm/rendering/filters/BlurFilter.d.ts.map +1 -0
  385. package/dist/esm/rendering/filters/BlurFilter.js +2 -2
  386. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  387. package/dist/esm/rendering/filters/ColorFilter.d.ts +4 -3
  388. package/dist/esm/rendering/filters/ColorFilter.d.ts.map +1 -0
  389. package/dist/esm/rendering/filters/ColorFilter.js +2 -2
  390. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  391. package/dist/esm/rendering/filters/Filter.d.ts +3 -2
  392. package/dist/esm/rendering/filters/Filter.d.ts.map +1 -0
  393. package/dist/esm/rendering/filters/LutFilter.d.ts +4 -3
  394. package/dist/esm/rendering/filters/LutFilter.d.ts.map +1 -0
  395. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +4 -3
  396. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts.map +1 -0
  397. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +2 -2
  398. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  399. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +3 -2
  400. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -0
  401. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -3
  402. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  403. package/dist/esm/rendering/geometry/Geometry.d.ts +2 -1
  404. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -0
  405. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +1 -0
  406. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts.map +1 -0
  407. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +1 -0
  408. package/dist/esm/rendering/geometry/QuadGeometry.d.ts.map +1 -0
  409. package/dist/esm/rendering/gradient/Gradient.d.ts +39 -5
  410. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -0
  411. package/dist/esm/rendering/gradient/Gradient.js +51 -5
  412. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  413. package/dist/esm/rendering/gradient/LinearGradient.d.ts +12 -3
  414. package/dist/esm/rendering/gradient/LinearGradient.d.ts.map +1 -0
  415. package/dist/esm/rendering/gradient/LinearGradient.js +23 -0
  416. package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -1
  417. package/dist/esm/rendering/gradient/RadialGradient.d.ts +12 -3
  418. package/dist/esm/rendering/gradient/RadialGradient.d.ts.map +1 -0
  419. package/dist/esm/rendering/gradient/RadialGradient.js +19 -0
  420. package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -1
  421. package/dist/esm/rendering/index.d.ts +87 -84
  422. package/dist/esm/rendering/index.d.ts.map +1 -0
  423. package/dist/esm/rendering/material/Material.d.ts +5 -4
  424. package/dist/esm/rendering/material/Material.d.ts.map +1 -0
  425. package/dist/esm/rendering/material/MaterialKey.d.ts +5 -4
  426. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -0
  427. package/dist/esm/rendering/material/MeshMaterial.d.ts +1 -0
  428. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -0
  429. package/dist/esm/rendering/material/ShaderSource.d.ts +1 -0
  430. package/dist/esm/rendering/material/ShaderSource.d.ts.map +1 -0
  431. package/dist/esm/rendering/material/SpriteMaterial.d.ts +1 -0
  432. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -0
  433. package/dist/esm/rendering/mesh/Mesh.d.ts +6 -5
  434. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -0
  435. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +10 -9
  436. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts.map +1 -0
  437. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +6 -5
  438. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts.map +1 -0
  439. package/dist/esm/rendering/pass/RenderPassDescriptor.js +1 -1
  440. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -1
  441. package/dist/esm/rendering/plan/RenderCommand.d.ts +25 -5
  442. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -0
  443. package/dist/esm/rendering/plan/RenderCommand.js +34 -1
  444. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  445. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +2 -1
  446. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -0
  447. package/dist/esm/rendering/plan/RenderInstruction.d.ts +52 -0
  448. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -0
  449. package/dist/esm/rendering/plan/RenderInstruction.js +45 -0
  450. package/dist/esm/rendering/plan/RenderInstruction.js.map +1 -0
  451. package/dist/esm/rendering/plan/RenderPlan.d.ts +4 -3
  452. package/dist/esm/rendering/plan/RenderPlan.d.ts.map +1 -0
  453. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +5 -4
  454. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -0
  455. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +1 -0
  456. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -0
  457. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +6 -1
  458. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -0
  459. package/dist/esm/rendering/plan/RenderPlanPlayer.js +58 -7
  460. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  461. package/dist/esm/rendering/plan/RenderScope.d.ts +6 -5
  462. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -0
  463. package/dist/esm/rendering/plan/playRenderTree.d.ts +3 -2
  464. package/dist/esm/rendering/plan/playRenderTree.d.ts.map +1 -0
  465. package/dist/esm/rendering/primitives/Graphics.d.ts +76 -10
  466. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -0
  467. package/dist/esm/rendering/primitives/Graphics.js +172 -14
  468. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  469. package/dist/esm/rendering/shader/Shader.d.ts +1 -0
  470. package/dist/esm/rendering/shader/Shader.d.ts.map +1 -0
  471. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +1 -0
  472. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -0
  473. package/dist/esm/rendering/shader/ShaderUniform.d.ts +2 -1
  474. package/dist/esm/rendering/shader/ShaderUniform.d.ts.map +1 -0
  475. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts +1 -0
  476. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts.map +1 -0
  477. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +6 -5
  478. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -0
  479. package/dist/esm/rendering/sprite/Sprite.d.ts +8 -7
  480. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -0
  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/spriteMaterialSources.d.ts +14 -8
  484. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts.map +1 -0
  485. package/dist/esm/rendering/sprite/spriteMaterialSources.js +35 -14
  486. package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -1
  487. package/dist/esm/rendering/text/AbstractText.d.ts +2 -1
  488. package/dist/esm/rendering/text/AbstractText.d.ts.map +1 -0
  489. package/dist/esm/rendering/text/BitmapText.d.ts +4 -1
  490. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -0
  491. package/dist/esm/rendering/text/BitmapText.js +5 -1
  492. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  493. package/dist/esm/rendering/text/BmFont.d.ts +2 -1
  494. package/dist/esm/rendering/text/BmFont.d.ts.map +1 -0
  495. package/dist/esm/rendering/text/BmFont.js +3 -0
  496. package/dist/esm/rendering/text/BmFont.js.map +1 -1
  497. package/dist/esm/rendering/text/GlyphAtlas.d.ts +3 -2
  498. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -0
  499. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +1 -0
  500. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -0
  501. package/dist/esm/rendering/text/GlyphSdf.d.ts +15 -0
  502. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -0
  503. package/dist/esm/rendering/text/GlyphSdf.js +48 -11
  504. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  505. package/dist/esm/rendering/text/HTMLText.d.ts +2 -1
  506. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -0
  507. package/dist/esm/rendering/text/LayoutOptions.d.ts +1 -0
  508. package/dist/esm/rendering/text/LayoutOptions.d.ts.map +1 -0
  509. package/dist/esm/rendering/text/Text.d.ts +1 -0
  510. package/dist/esm/rendering/text/Text.d.ts.map +1 -0
  511. package/dist/esm/rendering/text/TextLayout.d.ts +1 -0
  512. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -0
  513. package/dist/esm/rendering/text/TextStyle.d.ts +8 -2
  514. package/dist/esm/rendering/text/TextStyle.d.ts.map +1 -0
  515. package/dist/esm/rendering/text/TextStyle.js +1 -1
  516. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  517. package/dist/esm/rendering/text/types.d.ts +1 -0
  518. package/dist/esm/rendering/text/types.d.ts.map +1 -0
  519. package/dist/esm/rendering/texture/DataTexture.d.ts +3 -2
  520. package/dist/esm/rendering/texture/DataTexture.d.ts.map +1 -0
  521. package/dist/esm/rendering/texture/DataTexture.js +1 -1
  522. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  523. package/dist/esm/rendering/texture/RenderTexture.d.ts +4 -3
  524. package/dist/esm/rendering/texture/RenderTexture.d.ts.map +1 -0
  525. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  526. package/dist/esm/rendering/texture/Sampler.d.ts +2 -1
  527. package/dist/esm/rendering/texture/Sampler.d.ts.map +1 -0
  528. package/dist/esm/rendering/texture/Texture.d.ts +4 -3
  529. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -0
  530. package/dist/esm/rendering/types.d.ts +1 -0
  531. package/dist/esm/rendering/types.d.ts.map +1 -0
  532. package/dist/esm/rendering/utils.d.ts +1 -0
  533. package/dist/esm/rendering/utils.d.ts.map +1 -0
  534. package/dist/esm/rendering/video/Video.d.ts +8 -7
  535. package/dist/esm/rendering/video/Video.d.ts.map +1 -0
  536. package/dist/esm/rendering/video/Video.js.map +1 -1
  537. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -6
  538. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -0
  539. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +1 -1
  540. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +4 -3
  541. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts.map +1 -0
  542. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
  543. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +43 -20
  544. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -0
  545. package/dist/esm/rendering/webgl2/WebGl2Backend.js +53 -17
  546. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  547. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +4 -3
  548. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -0
  549. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +1 -1
  550. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +2 -1
  551. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -0
  552. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +3 -3
  553. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  554. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +10 -9
  555. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts.map +1 -0
  556. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +1 -1
  557. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -1
  558. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +3 -2
  559. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -0
  560. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts +2 -1
  561. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -0
  562. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  563. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts +1 -0
  564. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts.map +1 -0
  565. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts +2 -1
  566. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -0
  567. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +1 -1
  568. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +4 -1
  569. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -0
  570. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +63 -40
  571. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  572. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +3 -2
  573. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -0
  574. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +1 -1
  575. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +10 -2
  576. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -0
  577. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -3
  578. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  579. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +3 -2
  580. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts.map +1 -0
  581. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
  582. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +1 -1
  583. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +4 -3
  584. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts.map +1 -0
  585. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
  586. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -21
  587. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -0
  588. package/dist/esm/rendering/webgpu/WebGpuBackend.js +51 -19
  589. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  590. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts +2 -1
  591. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -0
  592. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +4 -3
  593. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -0
  594. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -3
  595. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -0
  596. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +53 -41
  597. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  598. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +12 -11
  599. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -0
  600. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +2 -2
  601. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +13 -4
  602. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -0
  603. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +122 -77
  604. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  605. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +4 -3
  606. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -0
  607. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  608. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +1 -0
  609. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts.map +1 -0
  610. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +10 -2
  611. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -0
  612. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +24 -15
  613. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  614. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +34 -1
  615. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -0
  616. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +58 -12
  617. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  618. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +1 -0
  619. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts.map +1 -0
  620. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +1 -0
  621. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -0
  622. package/dist/esm/rendering/webgpu/compute/index.d.ts +1 -0
  623. package/dist/esm/rendering/webgpu/compute/index.d.ts.map +1 -0
  624. package/dist/esm/rendering.d.ts +28 -0
  625. package/dist/esm/rendering.d.ts.map +1 -0
  626. package/dist/esm/rendering.js +22 -0
  627. package/dist/esm/rendering.js.map +1 -0
  628. package/dist/esm/resources/AbstractAssetFactory.d.ts +1 -0
  629. package/dist/esm/resources/AbstractAssetFactory.d.ts.map +1 -0
  630. package/dist/esm/resources/Asset.d.ts +1 -0
  631. package/dist/esm/resources/Asset.d.ts.map +1 -0
  632. package/dist/esm/resources/AssetDefinitions.d.ts +9 -8
  633. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -0
  634. package/dist/esm/resources/AssetFactory.d.ts +1 -0
  635. package/dist/esm/resources/AssetFactory.d.ts.map +1 -0
  636. package/dist/esm/resources/AssetManifest.d.ts +1 -0
  637. package/dist/esm/resources/AssetManifest.d.ts.map +1 -0
  638. package/dist/esm/resources/Assets.d.ts +1 -0
  639. package/dist/esm/resources/Assets.d.ts.map +1 -0
  640. package/dist/esm/resources/CacheFirstStrategy.d.ts +1 -0
  641. package/dist/esm/resources/CacheFirstStrategy.d.ts.map +1 -0
  642. package/dist/esm/resources/CacheStore.d.ts +1 -0
  643. package/dist/esm/resources/CacheStore.d.ts.map +1 -0
  644. package/dist/esm/resources/CacheStrategy.d.ts +1 -0
  645. package/dist/esm/resources/CacheStrategy.d.ts.map +1 -0
  646. package/dist/esm/resources/Database.d.ts +1 -0
  647. package/dist/esm/resources/Database.d.ts.map +1 -0
  648. package/dist/esm/resources/FactoryRegistry.d.ts +1 -0
  649. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -0
  650. package/dist/esm/resources/IndexedDbDatabase.d.ts +2 -1
  651. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -0
  652. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  653. package/dist/esm/resources/IndexedDbStore.d.ts +1 -0
  654. package/dist/esm/resources/IndexedDbStore.d.ts.map +1 -0
  655. package/dist/esm/resources/JsonStore.d.ts +1 -0
  656. package/dist/esm/resources/JsonStore.d.ts.map +1 -0
  657. package/dist/esm/resources/Loader.d.ts +34 -4
  658. package/dist/esm/resources/Loader.d.ts.map +1 -0
  659. package/dist/esm/resources/Loader.js +107 -70
  660. package/dist/esm/resources/Loader.js.map +1 -1
  661. package/dist/esm/resources/LoadingQueue.d.ts +2 -1
  662. package/dist/esm/resources/LoadingQueue.d.ts.map +1 -0
  663. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +1 -0
  664. package/dist/esm/resources/NetworkOnlyStrategy.d.ts.map +1 -0
  665. package/dist/esm/resources/coreAssetBindings.d.ts +8 -0
  666. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -0
  667. package/dist/esm/resources/coreAssetBindings.js +151 -0
  668. package/dist/esm/resources/coreAssetBindings.js.map +1 -0
  669. package/dist/esm/resources/factories/BinaryFactory.d.ts +2 -1
  670. package/dist/esm/resources/factories/BinaryFactory.d.ts.map +1 -0
  671. package/dist/esm/resources/factories/BmFontFactory.d.ts +5 -4
  672. package/dist/esm/resources/factories/BmFontFactory.d.ts.map +1 -0
  673. package/dist/esm/resources/factories/CsvFactory.d.ts +2 -1
  674. package/dist/esm/resources/factories/CsvFactory.d.ts.map +1 -0
  675. package/dist/esm/resources/factories/FontFactory.d.ts +2 -1
  676. package/dist/esm/resources/factories/FontFactory.d.ts.map +1 -0
  677. package/dist/esm/resources/factories/ImageFactory.d.ts +2 -1
  678. package/dist/esm/resources/factories/ImageFactory.d.ts.map +1 -0
  679. package/dist/esm/resources/factories/JsonFactory.d.ts +2 -1
  680. package/dist/esm/resources/factories/JsonFactory.d.ts.map +1 -0
  681. package/dist/esm/resources/factories/MusicFactory.d.ts +4 -3
  682. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -0
  683. package/dist/esm/resources/factories/SoundFactory.d.ts +4 -3
  684. package/dist/esm/resources/factories/SoundFactory.d.ts.map +1 -0
  685. package/dist/esm/resources/factories/SubtitleFactory.d.ts +2 -1
  686. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -0
  687. package/dist/esm/resources/factories/SvgFactory.d.ts +2 -1
  688. package/dist/esm/resources/factories/SvgFactory.d.ts.map +1 -0
  689. package/dist/esm/resources/factories/TextFactory.d.ts +2 -1
  690. package/dist/esm/resources/factories/TextFactory.d.ts.map +1 -0
  691. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -3
  692. package/dist/esm/resources/factories/TextureFactory.d.ts.map +1 -0
  693. package/dist/esm/resources/factories/VideoFactory.d.ts +5 -4
  694. package/dist/esm/resources/factories/VideoFactory.d.ts.map +1 -0
  695. package/dist/esm/resources/factories/WasmFactory.d.ts +2 -1
  696. package/dist/esm/resources/factories/WasmFactory.d.ts.map +1 -0
  697. package/dist/esm/resources/factories/XmlFactory.d.ts +2 -1
  698. package/dist/esm/resources/factories/XmlFactory.d.ts.map +1 -0
  699. package/dist/esm/resources/index.d.ts +16 -15
  700. package/dist/esm/resources/index.d.ts.map +1 -0
  701. package/dist/esm/resources/tokens.d.ts +1 -0
  702. package/dist/esm/resources/tokens.d.ts.map +1 -0
  703. package/dist/esm/resources/utils.d.ts +1 -0
  704. package/dist/esm/resources/utils.d.ts.map +1 -0
  705. package/dist/exo.debug.esm.js +949 -0
  706. package/dist/exo.debug.esm.js.map +1 -0
  707. package/dist/exo.esm.js +8258 -10156
  708. package/dist/exo.esm.js.map +1 -1
  709. package/package.json +86 -54
  710. package/dist/esm/particles/ParticleSystem.d.ts +0 -212
  711. package/dist/esm/particles/ParticleSystem.js +0 -573
  712. package/dist/esm/particles/ParticleSystem.js.map +0 -1
  713. package/dist/esm/particles/distributions/BoxArea.d.ts +0 -17
  714. package/dist/esm/particles/distributions/BoxArea.js +0 -48
  715. package/dist/esm/particles/distributions/BoxArea.js.map +0 -1
  716. package/dist/esm/particles/distributions/CircleArea.d.ts +0 -19
  717. package/dist/esm/particles/distributions/CircleArea.js +0 -33
  718. package/dist/esm/particles/distributions/CircleArea.js.map +0 -1
  719. package/dist/esm/particles/distributions/ColorGradient.d.ts +0 -40
  720. package/dist/esm/particles/distributions/ColorGradient.js +0 -72
  721. package/dist/esm/particles/distributions/ColorGradient.js.map +0 -1
  722. package/dist/esm/particles/distributions/ConeDirection.d.ts +0 -28
  723. package/dist/esm/particles/distributions/ConeDirection.js +0 -44
  724. package/dist/esm/particles/distributions/ConeDirection.js.map +0 -1
  725. package/dist/esm/particles/distributions/Constant.d.ts +0 -17
  726. package/dist/esm/particles/distributions/Constant.js +0 -35
  727. package/dist/esm/particles/distributions/Constant.js.map +0 -1
  728. package/dist/esm/particles/distributions/Curve.d.ts +0 -30
  729. package/dist/esm/particles/distributions/Curve.js +0 -53
  730. package/dist/esm/particles/distributions/Curve.js.map +0 -1
  731. package/dist/esm/particles/distributions/Distribution.d.ts +0 -45
  732. package/dist/esm/particles/distributions/LineSegment.d.ts +0 -15
  733. package/dist/esm/particles/distributions/LineSegment.js +0 -27
  734. package/dist/esm/particles/distributions/LineSegment.js.map +0 -1
  735. package/dist/esm/particles/distributions/Range.d.ts +0 -12
  736. package/dist/esm/particles/distributions/Range.js +0 -19
  737. package/dist/esm/particles/distributions/Range.js.map +0 -1
  738. package/dist/esm/particles/distributions/VectorRange.d.ts +0 -20
  739. package/dist/esm/particles/distributions/VectorRange.js +0 -31
  740. package/dist/esm/particles/distributions/VectorRange.js.map +0 -1
  741. package/dist/esm/particles/distributions/index.d.ts +0 -12
  742. package/dist/esm/particles/gpu/ParticleGpuState.d.ts +0 -57
  743. package/dist/esm/particles/gpu/ParticleGpuState.js +0 -535
  744. package/dist/esm/particles/gpu/ParticleGpuState.js.map +0 -1
  745. package/dist/esm/particles/index.d.ts +0 -4
  746. package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +0 -24
  747. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +0 -60
  748. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +0 -1
  749. package/dist/esm/particles/modules/ApplyForce.d.ts +0 -20
  750. package/dist/esm/particles/modules/ApplyForce.js +0 -48
  751. package/dist/esm/particles/modules/ApplyForce.js.map +0 -1
  752. package/dist/esm/particles/modules/AttractToPoint.d.ts +0 -27
  753. package/dist/esm/particles/modules/AttractToPoint.js +0 -73
  754. package/dist/esm/particles/modules/AttractToPoint.js.map +0 -1
  755. package/dist/esm/particles/modules/BurstSpawn.d.ts +0 -53
  756. package/dist/esm/particles/modules/BurstSpawn.js +0 -94
  757. package/dist/esm/particles/modules/BurstSpawn.js.map +0 -1
  758. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +0 -22
  759. package/dist/esm/particles/modules/ColorOverLifetime.js +0 -65
  760. package/dist/esm/particles/modules/ColorOverLifetime.js.map +0 -1
  761. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +0 -27
  762. package/dist/esm/particles/modules/ColorOverSpeed.js +0 -86
  763. package/dist/esm/particles/modules/ColorOverSpeed.js.map +0 -1
  764. package/dist/esm/particles/modules/DeathModule.d.ts +0 -24
  765. package/dist/esm/particles/modules/DeathModule.js +0 -25
  766. package/dist/esm/particles/modules/DeathModule.js.map +0 -1
  767. package/dist/esm/particles/modules/Drag.d.ts +0 -20
  768. package/dist/esm/particles/modules/Drag.js +0 -43
  769. package/dist/esm/particles/modules/Drag.js.map +0 -1
  770. package/dist/esm/particles/modules/OrbitalForce.d.ts +0 -28
  771. package/dist/esm/particles/modules/OrbitalForce.js +0 -65
  772. package/dist/esm/particles/modules/OrbitalForce.js.map +0 -1
  773. package/dist/esm/particles/modules/RateSpawn.d.ts +0 -41
  774. package/dist/esm/particles/modules/RateSpawn.js +0 -76
  775. package/dist/esm/particles/modules/RateSpawn.js.map +0 -1
  776. package/dist/esm/particles/modules/RepelFromPoint.d.ts +0 -24
  777. package/dist/esm/particles/modules/RepelFromPoint.js +0 -76
  778. package/dist/esm/particles/modules/RepelFromPoint.js.map +0 -1
  779. package/dist/esm/particles/modules/RotateOverLifetime.d.ts +0 -20
  780. package/dist/esm/particles/modules/RotateOverLifetime.js +0 -41
  781. package/dist/esm/particles/modules/RotateOverLifetime.js.map +0 -1
  782. package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +0 -26
  783. package/dist/esm/particles/modules/ScaleOverLifetime.js +0 -59
  784. package/dist/esm/particles/modules/ScaleOverLifetime.js.map +0 -1
  785. package/dist/esm/particles/modules/SpawnModule.d.ts +0 -30
  786. package/dist/esm/particles/modules/SpawnModule.js +0 -31
  787. package/dist/esm/particles/modules/SpawnModule.js.map +0 -1
  788. package/dist/esm/particles/modules/SpawnOnDeath.d.ts +0 -24
  789. package/dist/esm/particles/modules/SpawnOnDeath.js +0 -47
  790. package/dist/esm/particles/modules/SpawnOnDeath.js.map +0 -1
  791. package/dist/esm/particles/modules/Turbulence.d.ts +0 -30
  792. package/dist/esm/particles/modules/Turbulence.js +0 -122
  793. package/dist/esm/particles/modules/Turbulence.js.map +0 -1
  794. package/dist/esm/particles/modules/UpdateModule.d.ts +0 -95
  795. package/dist/esm/particles/modules/UpdateModule.js +0 -66
  796. package/dist/esm/particles/modules/UpdateModule.js.map +0 -1
  797. package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +0 -30
  798. package/dist/esm/particles/modules/VelocityOverLifetime.js +0 -84
  799. package/dist/esm/particles/modules/VelocityOverLifetime.js.map +0 -1
  800. package/dist/esm/particles/modules/WgslContribution.d.ts +0 -81
  801. package/dist/esm/particles/modules/WgslContribution.js +0 -34
  802. package/dist/esm/particles/modules/WgslContribution.js.map +0 -1
  803. package/dist/esm/particles/modules/index.d.ts +0 -22
  804. package/dist/esm/rendering/RenderTargetPass.d.ts +0 -29
  805. package/dist/esm/rendering/RenderTargetPass.js.map +0 -1
  806. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +0 -37
  807. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +0 -322
  808. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +0 -1
  809. package/dist/esm/rendering/webgl2/glsl/particle.frag.js +0 -4
  810. package/dist/esm/rendering/webgl2/glsl/particle.frag.js.map +0 -1
  811. package/dist/esm/rendering/webgl2/glsl/particle.vert.js +0 -4
  812. package/dist/esm/rendering/webgl2/glsl/particle.vert.js.map +0 -1
  813. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +0 -41
  814. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +0 -550
  815. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +0 -1
@@ -1,550 +0,0 @@
1
- import { Texture } from '../texture/Texture.js';
2
- import { AbstractWebGpuRenderer } from './AbstractWebGpuRenderer.js';
3
- import { getWebGpuBlendState } from './WebGpuBlendState.js';
4
-
5
- /// <reference types="@webgpu/types" />
6
- const particleShaderSource = `
7
- struct ProjectionUniforms {
8
- projection: mat4x4<f32>,
9
- translation: mat4x4<f32>,
10
- flags: vec4<f32>,
11
- localBounds: vec4<f32>, // quadMin.xy, quadSize.xy
12
- uvBounds: vec4<f32>, // uvMin.xy, uvMax.xy
13
- };
14
-
15
- @group(0) @binding(0)
16
- var<uniform> uniforms: ProjectionUniforms;
17
-
18
- @group(1) @binding(0)
19
- var particleTexture: texture_2d<f32>;
20
-
21
- @group(1) @binding(1)
22
- var particleSampler: sampler;
23
-
24
- // Per-instance attributes (one entry per particle, 40 bytes total).
25
- struct VertexInput {
26
- @location(0) unitPosition: vec2<f32>, // per-vertex (static unit quad)
27
- @location(1) translation: vec2<f32>,
28
- @location(2) scale: vec2<f32>,
29
- @location(3) rotation: f32,
30
- @location(4) color: vec4<f32>,
31
- @location(5) uvMin: vec2<f32>, // pre-resolved frame UV (top-left)
32
- @location(6) uvMax: vec2<f32>, // pre-resolved frame UV (bottom-right)
33
- };
34
-
35
- struct VertexOutput {
36
- @builtin(position) position: vec4<f32>,
37
- @location(0) texcoord: vec2<f32>,
38
- @location(1) color: vec4<f32>,
39
- };
40
-
41
- @vertex
42
- fn vertexMain(input: VertexInput) -> VertexOutput {
43
- let quadMin = uniforms.localBounds.xy;
44
- let quadSize = uniforms.localBounds.zw;
45
-
46
- let localPosition = quadMin + (input.unitPosition * quadSize);
47
- let radians = radians(input.rotation);
48
- let sinValue = sin(radians);
49
- let cosValue = cos(radians);
50
- let rotated = vec2<f32>(
51
- (localPosition.x * (input.scale.x * cosValue)) + (localPosition.y * (input.scale.y * sinValue)) + input.translation.x,
52
- (localPosition.x * (input.scale.x * -sinValue)) + (localPosition.y * (input.scale.y * cosValue)) + input.translation.y
53
- );
54
-
55
- var output: VertexOutput;
56
-
57
- output.position = uniforms.projection * uniforms.translation * vec4<f32>(rotated, 0.0, 1.0);
58
- output.texcoord = input.uvMin + ((input.uvMax - input.uvMin) * input.unitPosition);
59
- output.color = vec4(input.color.rgb * input.color.a, input.color.a);
60
-
61
- return output;
62
- }
63
-
64
- @fragment
65
- fn fragmentMain(input: VertexOutput) -> @location(0) vec4<f32> {
66
- let sample = textureSample(particleTexture, particleSampler, input.texcoord);
67
- let premultipliedSample = select(sample, vec4(sample.rgb * sample.a, sample.a), uniforms.flags.x > 0.5);
68
-
69
- return premultipliedSample * input.color;
70
- }
71
- `;
72
- const staticVertexStrideBytes = 8;
73
- const instanceWords = 10;
74
- const instanceStrideBytes = 40;
75
- const indicesPerParticle = 6;
76
- const uniformByteLength = 176;
77
- const initialParticleCapacity = 1;
78
- const staticVertexData = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]);
79
- const staticIndexData = new Uint16Array([0, 1, 2, 0, 2, 3]);
80
- class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
81
- _drawCalls = [];
82
- _drawCallCount = 0;
83
- _uniformData = new Float32Array(uniformByteLength / Float32Array.BYTES_PER_ELEMENT);
84
- _device = null;
85
- _shaderModule = null;
86
- _uniformBindGroupLayout = null;
87
- _textureBindGroupLayout = null;
88
- _pipelineLayout = null;
89
- _uniformBuffer = null;
90
- _uniformBindGroup = null;
91
- _staticVertexBuffer = null;
92
- _instanceBuffer = null;
93
- _indexBuffer = null;
94
- _instanceBufferByteLength = 0;
95
- _instanceData = new ArrayBuffer(instanceStrideBytes * initialParticleCapacity);
96
- _float32View = new Float32Array(this._instanceData);
97
- _uint32View = new Uint32Array(this._instanceData);
98
- _pipelines = new Map();
99
- render(system) {
100
- const backend = this._backend;
101
- const texture = system.texture;
102
- if (backend === null || !(texture instanceof Texture) || texture.source === null || texture.width === 0 || texture.height === 0 || system.liveCount === 0) {
103
- return;
104
- }
105
- if (backend._passCoordinator.stencilActive) {
106
- // MVP boundary: stencil clipping supports default-material Sprites, Meshes,
107
- // and Graphics — not ParticleSystems. Throw at collection time (inside the
108
- // clip scope's try) so the push/pop balances.
109
- throw new Error('WebGPU geometry stencil clipping currently supports default-material Sprites, Meshes, and Graphics. ParticleSystem content under a Geometry clip (RenderNode.clip with a Geometry clipShape) is not supported yet. Use a Rectangle clipShape (scissor) or the WebGL2 backend instead.');
110
- }
111
- backend.setBlendMode(system.blendMode);
112
- const drawCallIndex = this._drawCallCount++;
113
- const drawCall = this._drawCalls[drawCallIndex];
114
- if (drawCall) {
115
- drawCall.system = system;
116
- drawCall.texture = texture;
117
- drawCall.blendMode = system.blendMode;
118
- }
119
- else {
120
- this._drawCalls.push({
121
- system,
122
- texture,
123
- blendMode: system.blendMode,
124
- });
125
- }
126
- }
127
- flush() {
128
- const backend = this._backend;
129
- const device = this._device;
130
- const uniformBuffer = this._uniformBuffer;
131
- const uniformBindGroup = this._uniformBindGroup;
132
- const staticVertexBuffer = this._staticVertexBuffer;
133
- const indexBuffer = this._indexBuffer;
134
- if (!backend || !device || !uniformBuffer || !uniformBindGroup || !staticVertexBuffer || !this._instanceBuffer || !indexBuffer) {
135
- return;
136
- }
137
- if (this._drawCallCount === 0 && !backend.clearRequested) {
138
- return;
139
- }
140
- const scissor = backend.getScissorRect();
141
- const maskClipsAll = scissor !== null && (scissor.width <= 0 || scissor.height <= 0);
142
- // If no drawcalls will actually render (none queued, or the scissor
143
- // clips everything), but a clear is pending, open a single empty
144
- // pass so createColorAttachment consumes the clear state.
145
- if (this._drawCallCount === 0 || maskClipsAll) {
146
- if (backend.clearRequested) {
147
- backend._passCoordinator.acquirePass();
148
- backend._passCoordinator.endPass();
149
- }
150
- this._drawCallCount = 0;
151
- return;
152
- }
153
- // One command encoder / pass per drawcall. Each particle system's
154
- // queue.writeBuffer calls target offset 0 of the instance and uniform
155
- // buffers — a single pass with multiple systems would see all
156
- // writeBuffers serialize before submit, leaving only the last
157
- // system's data in those buffers and making every earlier draw read
158
- // the wrong data. Also: _ensureCapacity may destroy and recreate the
159
- // instance buffer on growth; keeping one drawcall per pass means
160
- // that destroy happens strictly between submits, so no pass holds a
161
- // reference to a buffer that has since been destroyed.
162
- for (let drawCallIndex = 0; drawCallIndex < this._drawCallCount; drawCallIndex++) {
163
- const drawCall = this._drawCalls[drawCallIndex];
164
- const system = drawCall.system;
165
- const particleCount = system.liveCount;
166
- if (particleCount === 0) {
167
- continue;
168
- }
169
- const pipeline = this._getPipeline(drawCall.blendMode, backend.renderTargetFormat);
170
- const textureBinding = backend.getTextureBinding(drawCall.texture);
171
- const textureBindGroup = device.createBindGroup({
172
- layout: this._textureBindGroupLayout,
173
- entries: [
174
- {
175
- binding: 0,
176
- resource: textureBinding.view,
177
- },
178
- {
179
- binding: 1,
180
- resource: textureBinding.sampler,
181
- },
182
- ],
183
- });
184
- this._writeUniformData(backend, system, drawCall.texture);
185
- // GPU mode: the system's compute pipeline already wrote the
186
- // interleaved instance data into its own buffer. Bind it
187
- // directly — no CPU pack, no writeBuffer for instance data.
188
- // CPU mode: pack from CPU SoA into our owned instance buffer.
189
- let drawInstanceCount = particleCount;
190
- const instanceBuffer = (() => {
191
- if (system.gpuMode && system.gpuState !== null) {
192
- return system.gpuState.instanceBuffer;
193
- }
194
- this._ensureCapacity(particleCount);
195
- drawInstanceCount = this._writeInstanceData(system);
196
- device.queue.writeBuffer(this._instanceBuffer, 0, this._instanceData, 0, drawInstanceCount * instanceStrideBytes);
197
- return this._instanceBuffer;
198
- })();
199
- device.queue.writeBuffer(uniformBuffer, 0, this._uniformData.buffer, this._uniformData.byteOffset, this._uniformData.byteLength);
200
- // One coordinator-owned pass per drawcall: each system's writeBuffers
201
- // target offset 0, so the pass must be submitted before the next system
202
- // overwrites those buffers. acquirePass/endPass preserve that 1:1 ratio.
203
- const pass = backend._passCoordinator.acquirePass().pass;
204
- pass.setBindGroup(0, uniformBindGroup);
205
- pass.setPipeline(pipeline);
206
- pass.setBindGroup(1, textureBindGroup);
207
- pass.setVertexBuffer(0, staticVertexBuffer);
208
- pass.setVertexBuffer(1, instanceBuffer);
209
- pass.setIndexBuffer(indexBuffer, 'uint16');
210
- pass.drawIndexed(indicesPerParticle, drawInstanceCount, 0, 0, 0);
211
- backend.stats.batches++;
212
- backend.stats.drawCalls++;
213
- backend._passCoordinator.endPass();
214
- }
215
- this._drawCallCount = 0;
216
- }
217
- destroy() {
218
- this.disconnect();
219
- }
220
- onConnect(backend) {
221
- this._backend = backend;
222
- this._device = this._backend.device;
223
- this._shaderModule = this._device.createShaderModule({ code: particleShaderSource });
224
- this._uniformBindGroupLayout = this._device.createBindGroupLayout({
225
- entries: [
226
- {
227
- binding: 0,
228
- visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT,
229
- buffer: {
230
- type: 'uniform',
231
- },
232
- },
233
- ],
234
- });
235
- this._textureBindGroupLayout = this._device.createBindGroupLayout({
236
- entries: [
237
- {
238
- binding: 0,
239
- visibility: GPUShaderStage.FRAGMENT,
240
- texture: {
241
- sampleType: 'float',
242
- },
243
- },
244
- {
245
- binding: 1,
246
- visibility: GPUShaderStage.FRAGMENT,
247
- sampler: {
248
- type: 'filtering',
249
- },
250
- },
251
- ],
252
- });
253
- this._pipelineLayout = this._device.createPipelineLayout({
254
- bindGroupLayouts: [this._uniformBindGroupLayout, this._textureBindGroupLayout],
255
- });
256
- this._uniformBuffer = this._device.createBuffer({
257
- size: uniformByteLength,
258
- usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
259
- });
260
- this._uniformBindGroup = this._device.createBindGroup({
261
- layout: this._uniformBindGroupLayout,
262
- entries: [
263
- {
264
- binding: 0,
265
- resource: {
266
- buffer: this._uniformBuffer,
267
- },
268
- },
269
- ],
270
- });
271
- this._staticVertexBuffer = this._device.createBuffer({
272
- size: staticVertexData.byteLength,
273
- usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
274
- });
275
- this._device.queue.writeBuffer(this._staticVertexBuffer, 0, staticVertexData.buffer, staticVertexData.byteOffset, staticVertexData.byteLength);
276
- this._indexBuffer = this._device.createBuffer({
277
- size: staticIndexData.byteLength,
278
- usage: GPUBufferUsage.INDEX | GPUBufferUsage.COPY_DST,
279
- });
280
- this._device.queue.writeBuffer(this._indexBuffer, 0, staticIndexData.buffer, staticIndexData.byteOffset, staticIndexData.byteLength);
281
- this._ensureCapacity(initialParticleCapacity);
282
- }
283
- onDisconnect() {
284
- this.flush();
285
- this._staticVertexBuffer?.destroy();
286
- this._instanceBuffer?.destroy();
287
- this._indexBuffer?.destroy();
288
- this._uniformBuffer?.destroy();
289
- this._pipelines.clear();
290
- this._indexBuffer = null;
291
- this._staticVertexBuffer = null;
292
- this._instanceBuffer = null;
293
- this._uniformBindGroup = null;
294
- this._uniformBuffer = null;
295
- this._pipelineLayout = null;
296
- this._textureBindGroupLayout = null;
297
- this._uniformBindGroupLayout = null;
298
- this._shaderModule = null;
299
- this._device = null;
300
- this._backend = null;
301
- this._instanceBufferByteLength = 0;
302
- this._instanceData = new ArrayBuffer(instanceStrideBytes * initialParticleCapacity);
303
- this._float32View = new Float32Array(this._instanceData);
304
- this._uint32View = new Uint32Array(this._instanceData);
305
- this._drawCallCount = 0;
306
- }
307
- _ensureCapacity(particleCount) {
308
- const requiredInstanceBytes = particleCount * instanceStrideBytes;
309
- if (requiredInstanceBytes > this._instanceData.byteLength) {
310
- let byteLength = this._instanceData.byteLength;
311
- while (byteLength < requiredInstanceBytes) {
312
- byteLength *= 2;
313
- }
314
- this._instanceData = new ArrayBuffer(byteLength);
315
- this._float32View = new Float32Array(this._instanceData);
316
- this._uint32View = new Uint32Array(this._instanceData);
317
- }
318
- if (requiredInstanceBytes > this._instanceBufferByteLength) {
319
- let byteLength = this._instanceBufferByteLength || instanceStrideBytes;
320
- while (byteLength < requiredInstanceBytes) {
321
- byteLength *= 2;
322
- }
323
- this._instanceBuffer?.destroy();
324
- this._instanceBuffer = this._device.createBuffer({
325
- size: byteLength,
326
- usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
327
- });
328
- this._instanceBufferByteLength = byteLength;
329
- }
330
- }
331
- _writeUniformData(backend, system, texture) {
332
- const projection = backend.view.getTransform().toArray(false);
333
- const transform = system.getGlobalTransform().toArray(false);
334
- const shouldPremultiplySample = backend.shouldPremultiplyTextureSample(texture);
335
- const vertices = system.vertices;
336
- const texCoords = system.texCoords;
337
- const quadMinX = vertices[0];
338
- const quadMinY = vertices[1];
339
- const quadSizeX = vertices[2] - vertices[0];
340
- const quadSizeY = vertices[3] - vertices[1];
341
- const uvMinX = (texCoords[0] & 0xffff) / 0xffff;
342
- const uvMinY = ((texCoords[0] >>> 16) & 0xffff) / 0xffff;
343
- const uvMaxX = (texCoords[2] & 0xffff) / 0xffff;
344
- const uvMaxY = ((texCoords[2] >>> 16) & 0xffff) / 0xffff;
345
- this._uniformData.set([
346
- projection[0],
347
- projection[1],
348
- 0,
349
- 0,
350
- projection[3],
351
- projection[4],
352
- 0,
353
- 0,
354
- 0,
355
- 0,
356
- 1,
357
- 0,
358
- projection[6],
359
- projection[7],
360
- 0,
361
- projection[8],
362
- transform[0],
363
- transform[1],
364
- 0,
365
- 0,
366
- transform[3],
367
- transform[4],
368
- 0,
369
- 0,
370
- 0,
371
- 0,
372
- 1,
373
- 0,
374
- transform[6],
375
- transform[7],
376
- 0,
377
- transform[8],
378
- shouldPremultiplySample ? 1 : 0,
379
- 0,
380
- 0,
381
- 0,
382
- quadMinX,
383
- quadMinY,
384
- quadSizeX,
385
- quadSizeY,
386
- uvMinX,
387
- uvMinY,
388
- uvMaxX,
389
- uvMaxY,
390
- ]);
391
- }
392
- _writeInstanceData(system) {
393
- const { posX, posY, scaleX, scaleY, rotations, color, textureIndex, alive, liveCount } = system;
394
- const f32 = this._float32View;
395
- const u32 = this._uint32View;
396
- const { uvMins, uvMaxs } = this._computeFrameUvs(system);
397
- const frameCount = uvMins.length / 2;
398
- let writeIndex = 0;
399
- for (let particleIndex = 0; particleIndex < liveCount; particleIndex++) {
400
- // Skip dead slots — present in GPU-mode systems where the live
401
- // range can carry holes filled in on next spawn.
402
- if (alive[particleIndex] === 0) {
403
- continue;
404
- }
405
- const targetIndex = writeIndex * instanceWords;
406
- const frame = textureIndex[particleIndex] < frameCount ? textureIndex[particleIndex] : 0;
407
- const uvBase = frame * 2;
408
- f32[targetIndex + 0] = posX[particleIndex];
409
- f32[targetIndex + 1] = posY[particleIndex];
410
- f32[targetIndex + 2] = scaleX[particleIndex];
411
- f32[targetIndex + 3] = scaleY[particleIndex];
412
- f32[targetIndex + 4] = rotations[particleIndex];
413
- u32[targetIndex + 5] = color[particleIndex];
414
- f32[targetIndex + 6] = uvMins[uvBase + 0];
415
- f32[targetIndex + 7] = uvMins[uvBase + 1];
416
- f32[targetIndex + 8] = uvMaxs[uvBase + 0];
417
- f32[targetIndex + 9] = uvMaxs[uvBase + 1];
418
- writeIndex++;
419
- }
420
- return writeIndex;
421
- }
422
- /**
423
- * Same atlas/UV-resolution as the WebGL2 path. Returns the per-frame
424
- * (uvMin, uvMax) pairs derived from `system.frames` (or fallback to
425
- * `system.textureFrame` when no atlas is declared), already flipY-
426
- * adjusted for the current texture.
427
- */
428
- _uvMinsScratch = new Float32Array(2);
429
- _uvMaxsScratch = new Float32Array(2);
430
- _computeFrameUvs(system) {
431
- const frames = system.frames;
432
- const tex = system.texture;
433
- const texW = tex.width;
434
- const texH = tex.height;
435
- const flipY = tex.flipY;
436
- const count = frames.length === 0 ? 1 : frames.length;
437
- if (this._uvMinsScratch.length < count * 2) {
438
- this._uvMinsScratch = new Float32Array(count * 2);
439
- this._uvMaxsScratch = new Float32Array(count * 2);
440
- }
441
- const mins = this._uvMinsScratch;
442
- const maxs = this._uvMaxsScratch;
443
- if (frames.length === 0) {
444
- const f = system.textureFrame;
445
- const minU = f.left / texW;
446
- const maxU = f.right / texW;
447
- const topV = f.top / texH;
448
- const bottomV = f.bottom / texH;
449
- mins[0] = minU;
450
- mins[1] = flipY ? bottomV : topV;
451
- maxs[0] = maxU;
452
- maxs[1] = flipY ? topV : bottomV;
453
- return { uvMins: mins, uvMaxs: maxs };
454
- }
455
- for (let i = 0; i < frames.length; i++) {
456
- const f = frames[i];
457
- const o = i * 2;
458
- const minU = f.left / texW;
459
- const maxU = f.right / texW;
460
- const topV = f.top / texH;
461
- const bottomV = f.bottom / texH;
462
- mins[o + 0] = minU;
463
- mins[o + 1] = flipY ? bottomV : topV;
464
- maxs[o + 0] = maxU;
465
- maxs[o + 1] = flipY ? topV : bottomV;
466
- }
467
- return { uvMins: mins, uvMaxs: maxs };
468
- }
469
- _getPipeline(blendMode, format) {
470
- const pipelineKey = `${blendMode}:${format}`;
471
- const existingPipeline = this._pipelines.get(pipelineKey);
472
- if (existingPipeline) {
473
- return existingPipeline;
474
- }
475
- const pipeline = this._device.createRenderPipeline({
476
- layout: this._pipelineLayout,
477
- vertex: {
478
- module: this._shaderModule,
479
- entryPoint: 'vertexMain',
480
- buffers: [
481
- {
482
- arrayStride: staticVertexStrideBytes,
483
- attributes: [
484
- {
485
- shaderLocation: 0,
486
- offset: 0,
487
- format: 'float32x2',
488
- },
489
- ],
490
- },
491
- {
492
- arrayStride: instanceStrideBytes,
493
- stepMode: 'instance',
494
- attributes: [
495
- {
496
- shaderLocation: 1,
497
- offset: 0,
498
- format: 'float32x2',
499
- },
500
- {
501
- shaderLocation: 2,
502
- offset: 8,
503
- format: 'float32x2',
504
- },
505
- {
506
- shaderLocation: 3,
507
- offset: 16,
508
- format: 'float32',
509
- },
510
- {
511
- shaderLocation: 4,
512
- offset: 20,
513
- format: 'unorm8x4',
514
- },
515
- {
516
- shaderLocation: 5,
517
- offset: 24,
518
- format: 'float32x2',
519
- },
520
- {
521
- shaderLocation: 6,
522
- offset: 32,
523
- format: 'float32x2',
524
- },
525
- ],
526
- },
527
- ],
528
- },
529
- fragment: {
530
- module: this._shaderModule,
531
- entryPoint: 'fragmentMain',
532
- targets: [
533
- {
534
- format,
535
- blend: getWebGpuBlendState(blendMode),
536
- writeMask: GPUColorWrite.ALL,
537
- },
538
- ],
539
- },
540
- primitive: {
541
- topology: 'triangle-list',
542
- },
543
- });
544
- this._pipelines.set(pipelineKey, pipeline);
545
- return pipeline;
546
- }
547
- }
548
-
549
- export { WebGpuParticleRenderer };
550
- //# sourceMappingURL=WebGpuParticleRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebGpuParticleRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuParticleRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}