@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,24 +0,0 @@
1
- import type { ParticleSystem } from '@/particles/ParticleSystem';
2
- import { DeathModule } from './DeathModule';
3
- import type { SpawnModule } from './SpawnModule';
4
- /**
5
- * Sub-emitter: triggers a child {@link SpawnModule} on a target system at
6
- * the dying particle's position. Use for explosion-on-impact, sparks at
7
- * end-of-life, multi-stage VFX.
8
- *
9
- * The child module receives a synthesized `dt` of 0 — it must spawn
10
- * immediately rather than rely on rate accumulation. {@link BurstSpawn}
11
- * works naturally; {@link RateSpawn} is the wrong fit here.
12
- *
13
- * Position is the only field forwarded — child distributions decide
14
- * everything else. To keep child particles riding the parent's velocity,
15
- * configure the child's velocity distribution to match.
16
- */
17
- export declare class SpawnOnDeath extends DeathModule {
18
- targetSystem: ParticleSystem;
19
- spawner: SpawnModule;
20
- /** Number of times to invoke the spawner per dying particle. Default 1. */
21
- count: number;
22
- constructor(targetSystem: ParticleSystem, spawner: SpawnModule, count?: number);
23
- onDeath(parent: ParticleSystem, slot: number): void;
24
- }
@@ -1,47 +0,0 @@
1
- import { DeathModule } from './DeathModule.js';
2
-
3
- /**
4
- * Sub-emitter: triggers a child {@link SpawnModule} on a target system at
5
- * the dying particle's position. Use for explosion-on-impact, sparks at
6
- * end-of-life, multi-stage VFX.
7
- *
8
- * The child module receives a synthesized `dt` of 0 — it must spawn
9
- * immediately rather than rely on rate accumulation. {@link BurstSpawn}
10
- * works naturally; {@link RateSpawn} is the wrong fit here.
11
- *
12
- * Position is the only field forwarded — child distributions decide
13
- * everything else. To keep child particles riding the parent's velocity,
14
- * configure the child's velocity distribution to match.
15
- */
16
- class SpawnOnDeath extends DeathModule {
17
- targetSystem;
18
- spawner;
19
- /** Number of times to invoke the spawner per dying particle. Default 1. */
20
- count;
21
- constructor(targetSystem, spawner, count = 1) {
22
- super();
23
- this.targetSystem = targetSystem;
24
- this.spawner = spawner;
25
- this.count = count;
26
- }
27
- onDeath(parent, slot) {
28
- const target = this.targetSystem;
29
- const x = parent.posX[slot];
30
- const y = parent.posY[slot];
31
- // Snapshot the target's pre-spawn count so we can apply the
32
- // position to whichever slots the spawner adds.
33
- const before = target.liveCount;
34
- for (let n = 0; n < this.count; n++) {
35
- this.spawner.apply(target, 0);
36
- }
37
- const added = target.liveCount - before;
38
- for (let i = 0; i < added; i++) {
39
- const dst = before + i;
40
- target.posX[dst] += x;
41
- target.posY[dst] += y;
42
- }
43
- }
44
- }
45
-
46
- export { SpawnOnDeath };
47
- //# sourceMappingURL=SpawnOnDeath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpawnOnDeath.js","sources":["../../../../../src/particles/modules/SpawnOnDeath.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;;;;;;;;;;;AAYG;AACG,MAAO,YAAa,SAAQ,WAAW,CAAA;AACpC,IAAA,YAAY;AACZ,IAAA,OAAO;;AAGP,IAAA,KAAK;AAEZ,IAAA,WAAA,CAAmB,YAA4B,EAAE,OAAoB,EAAE,KAAK,GAAG,CAAC,EAAA;AAC9E,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;IAEgB,OAAO,CAAC,MAAsB,EAAE,IAAY,EAAA;AAC1D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAI3B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS;AAE/B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/B;AAEA,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM;AAEvC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC9B,YAAA,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;AAEtB,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACvB;IACF;AACD;;;;"}
@@ -1,30 +0,0 @@
1
- import type { ParticleSystem } from '@/particles/ParticleSystem';
2
- import { UpdateModule } from './UpdateModule';
3
- import type { WgslContribution } from './WgslContribution';
4
- /**
5
- * Adds a smooth pseudo-random force field that animates over time.
6
- * Implemented as 2D value noise with cubic Hermite smoothing — sampled
7
- * twice per particle (offset to decorrelate x and y components) and scaled
8
- * by `strength`. The field evolves at `timeScale` units per second; lower
9
- * values produce slow-moving currents, higher values produce buzzy chaos.
10
- *
11
- * `frequency` controls the spatial granularity: small values (≈ 0.005)
12
- * yield broad swirls across the playfield, large values (≈ 0.1) produce
13
- * tight per-particle jitter.
14
- *
15
- * Use cases: smoke turbulence, organic swirls, wind eddies, dust haze.
16
- * Pair with {@link Drag} to keep particle velocities bounded.
17
- *
18
- * GPU-eligible. The noise function is identical on CPU and GPU so visual
19
- * results match across backends (modulo float precision).
20
- */
21
- export declare class Turbulence extends UpdateModule {
22
- strength: number;
23
- frequency: number;
24
- timeScale: number;
25
- private _time;
26
- constructor(strength: number, frequency?: number, timeScale?: number);
27
- apply(system: ParticleSystem, dt: number): void;
28
- wgsl(): WgslContribution;
29
- writeUniforms(view: DataView, offset: number, dt: number): void;
30
- }
@@ -1,122 +0,0 @@
1
- import { UpdateModule } from './UpdateModule.js';
2
-
3
- /**
4
- * Adds a smooth pseudo-random force field that animates over time.
5
- * Implemented as 2D value noise with cubic Hermite smoothing — sampled
6
- * twice per particle (offset to decorrelate x and y components) and scaled
7
- * by `strength`. The field evolves at `timeScale` units per second; lower
8
- * values produce slow-moving currents, higher values produce buzzy chaos.
9
- *
10
- * `frequency` controls the spatial granularity: small values (≈ 0.005)
11
- * yield broad swirls across the playfield, large values (≈ 0.1) produce
12
- * tight per-particle jitter.
13
- *
14
- * Use cases: smoke turbulence, organic swirls, wind eddies, dust haze.
15
- * Pair with {@link Drag} to keep particle velocities bounded.
16
- *
17
- * GPU-eligible. The noise function is identical on CPU and GPU so visual
18
- * results match across backends (modulo float precision).
19
- */
20
- class Turbulence extends UpdateModule {
21
- strength;
22
- frequency;
23
- timeScale;
24
- _time = 0;
25
- constructor(strength, frequency = 0.01, timeScale = 1) {
26
- super();
27
- this.strength = strength;
28
- this.frequency = frequency;
29
- this.timeScale = timeScale;
30
- }
31
- apply(system, dt) {
32
- this._time += dt * this.timeScale;
33
- const t = this._time;
34
- const f = this.frequency;
35
- const s = this.strength * dt;
36
- const { posX, posY, velX, velY, liveCount } = system;
37
- for (let i = 0; i < liveCount; i++) {
38
- const x = posX[i] * f;
39
- const y = posY[i] * f;
40
- const nx = valueNoise2(x + t, y);
41
- const ny = valueNoise2(x, y + t + 17.31);
42
- velX[i] += (nx * 2 - 1) * s;
43
- velY[i] += (ny * 2 - 1) * s;
44
- }
45
- }
46
- wgsl() {
47
- return {
48
- key: 'Turbulence',
49
- uniforms: [
50
- { name: 'strength', type: 'f32' },
51
- { name: 'frequency', type: 'f32' },
52
- { name: 'time', type: 'f32' },
53
- { name: '_pad0', type: 'f32' },
54
- ],
55
- prelude: `
56
- fn exojs_turbulence_hash21(p: vec2<f32>) -> f32 {
57
- let n = sin(dot(p, vec2<f32>(127.1, 311.7))) * 43758.5453;
58
- return fract(n);
59
- }
60
-
61
- fn exojs_turbulence_valueNoise2(x: f32, y: f32) -> f32 {
62
- let xi = floor(x);
63
- let yi = floor(y);
64
- let xf = x - xi;
65
- let yf = y - yi;
66
- let u = xf * xf * (3.0 - 2.0 * xf);
67
- let v = yf * yf * (3.0 - 2.0 * yf);
68
- let a = exojs_turbulence_hash21(vec2<f32>(xi, yi));
69
- let b = exojs_turbulence_hash21(vec2<f32>(xi + 1.0, yi));
70
- let c = exojs_turbulence_hash21(vec2<f32>(xi, yi + 1.0));
71
- let d = exojs_turbulence_hash21(vec2<f32>(xi + 1.0, yi + 1.0));
72
- let ab = a + (b - a) * u;
73
- let cd = c + (d - c) * u;
74
- return ab + (cd - ab) * v;
75
- }
76
- `,
77
- body: `
78
- let turbF = modules.u_Turbulence.frequency;
79
- let turbT = modules.u_Turbulence.time;
80
- let turbS = modules.u_Turbulence.strength * dt;
81
- let turbX = positions[idx].x * turbF;
82
- let turbY = positions[idx].y * turbF;
83
- let turbNx = exojs_turbulence_valueNoise2(turbX + turbT, turbY);
84
- let turbNy = exojs_turbulence_valueNoise2(turbX, turbY + turbT + 17.31);
85
- velocities[idx] = velocities[idx] + vec2<f32>(turbNx * 2.0 - 1.0, turbNy * 2.0 - 1.0) * turbS;
86
- `,
87
- };
88
- }
89
- writeUniforms(view, offset, dt) {
90
- // GPU mode: apply() never runs, so advance _time here once per frame.
91
- // CPU mode: apply() already advances _time before update finishes,
92
- // and writeUniforms is not called → no double-advance.
93
- this._time += dt * this.timeScale;
94
- view.setFloat32(offset + 0, this.strength, true);
95
- view.setFloat32(offset + 4, this.frequency, true);
96
- view.setFloat32(offset + 8, this._time, true);
97
- view.setFloat32(offset + 12, 0, true);
98
- }
99
- }
100
- function hash21(x, y) {
101
- let n = Math.sin(x * 127.1 + y * 311.7) * 43758.5453;
102
- n = n - Math.floor(n);
103
- return n;
104
- }
105
- function valueNoise2(x, y) {
106
- const xi = Math.floor(x);
107
- const yi = Math.floor(y);
108
- const xf = x - xi;
109
- const yf = y - yi;
110
- const u = xf * xf * (3 - 2 * xf);
111
- const v = yf * yf * (3 - 2 * yf);
112
- const a = hash21(xi, yi);
113
- const b = hash21(xi + 1, yi);
114
- const c = hash21(xi, yi + 1);
115
- const d = hash21(xi + 1, yi + 1);
116
- const ab = a + (b - a) * u;
117
- const cd = c + (d - c) * u;
118
- return ab + (cd - ab) * v;
119
- }
120
-
121
- export { Turbulence };
122
- //# sourceMappingURL=Turbulence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Turbulence.js","sources":["../../../../../src/particles/modules/Turbulence.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;;;;;;;;;;;;;;;AAgBG;AACG,MAAO,UAAW,SAAQ,YAAY,CAAA;AACnC,IAAA,QAAQ;AACR,IAAA,SAAS;AACT,IAAA,SAAS;IACR,KAAK,GAAG,CAAC;IAEjB,WAAA,CAAmB,QAAgB,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,EAAA;AAClE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC5B;IAEgB,KAAK,CAAC,MAAsB,EAAE,EAAU,EAAA;QACtD,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS;AACjC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK;AACpB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS;AACxB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AAE5B,QAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM;AAEpD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACrB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACrB,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChC,YAAA,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExC,YAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAC7B;IACF;IAEgB,IAAI,GAAA;QAClB,OAAO;AACL,YAAA,GAAG,EAAE,YAAY;AACjB,YAAA,QAAQ,EAAE;AACR,gBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;AACjC,gBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;AAClC,gBAAA,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC7B,gBAAA,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B,aAAA;AACD,YAAA,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;AAqBF,YAAA,CAAA;AACP,YAAA,IAAI,EAAE;;;;;;;;;AASC,YAAA,CAAA;SACR;IACH;AAEgB,IAAA,aAAa,CAAC,IAAc,EAAE,MAAc,EAAE,EAAU,EAAA;;;;QAItE,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS;AAEjC,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACjD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;IACvC;AACD;AAED,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;AAClC,IAAA,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,UAAU;IACpD,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrB,IAAA,OAAO,CAAC;AACV;AAEA,SAAS,WAAW,CAAC,CAAS,EAAE,CAAS,EAAA;IACvC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;AACjB,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;AAEjB,IAAA,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAChC,IAAA,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;IACxB,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5B,IAAA,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEhC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;AAC3B;;;;"}
@@ -1,95 +0,0 @@
1
- import type { ParticleSystem } from '@/particles/ParticleSystem';
2
- import type { WgslContribution } from './WgslContribution';
3
- /**
4
- * Per-frame, per-batch mutator. Operates on the system's SoA storage
5
- * directly — typically a single tight loop over `[0, system.liveCount)`
6
- * that reads/writes the relevant `Float32Array`s.
7
- *
8
- * Implementations must always provide a CPU `apply()`. To make a module
9
- * GPU-eligible (executed inside the system's composite compute shader on
10
- * WebGPU backends), additionally implement {@link wgsl} and
11
- * {@link writeUniforms}. Modules that declare a {@link WgslContribution}
12
- * may also opt to declare a 1D texture binding via the `textures` field
13
- * (used by `Curve` / `ColorGradient`-driven modules) — in which case
14
- * {@link uploadTextures} runs once at compile time to upload the data.
15
- *
16
- * Implementation pattern (CPU-only module):
17
- *
18
- * ```ts
19
- * class MyModule extends UpdateModule {
20
- * apply(system, dt) {
21
- * const { velX, velY, liveCount } = system;
22
- * for (let i = 0; i < liveCount; i++) { velX[i] *= 0.99; velY[i] *= 0.99; }
23
- * }
24
- * }
25
- * ```
26
- *
27
- * Implementation pattern (GPU-eligible module):
28
- *
29
- * ```ts
30
- * class MyForce extends UpdateModule {
31
- * constructor(public ax: number, public ay: number) { super(); }
32
- *
33
- * apply(system, dt) {
34
- * const { velX, velY, liveCount } = system;
35
- * for (let i = 0; i < liveCount; i++) { velX[i] += this.ax * dt; velY[i] += this.ay * dt; }
36
- * }
37
- *
38
- * wgsl(): WgslContribution {
39
- * return {
40
- * key: 'MyForce',
41
- * uniforms: [{ name: 'ax', type: 'f32' }, { name: 'ay', type: 'f32' }],
42
- * body: `velX[idx] += u_MyForce.ax * dt; velY[idx] += u_MyForce.ay * dt;`,
43
- * };
44
- * }
45
- *
46
- * writeUniforms(view, offset) {
47
- * view.setFloat32(offset + 0, this.ax, true);
48
- * view.setFloat32(offset + 4, this.ay, true);
49
- * }
50
- * }
51
- * ```
52
- *
53
- * If *any* registered update module on a system lacks `wgsl()`, the system
54
- * forces CPU mode regardless of backend — preserving the contract that
55
- * `apply()` is always honoured. Built-in modules ship both
56
- * implementations; custom modules can opt into GPU acceleration at their
57
- * authors' discretion.
58
- *
59
- * Update modules run after integration each frame. Multiple modules execute
60
- * in registration order; later modules see the effects of earlier ones.
61
- */
62
- export declare abstract class UpdateModule {
63
- abstract apply(system: ParticleSystem, dt: number): void;
64
- /**
65
- * Override to declare a GPU contribution. Returning a {@link WgslContribution}
66
- * makes this module GPU-eligible; omitting (or returning undefined)
67
- * forces CPU mode for any system that uses this module.
68
- */
69
- wgsl?(): WgslContribution;
70
- /**
71
- * Write this module's current uniform values into the shared uniform
72
- * buffer at `byteOffset`. Layout must match the field declarations
73
- * returned by {@link wgsl} (in the same order).
74
- *
75
- * Receives the current frame `dt` (seconds). Modules tracking
76
- * accumulated time (e.g. noise/turbulence) should advance their
77
- * internal counter here to stay in sync when running in GPU mode
78
- * (where {@link apply} is not called).
79
- *
80
- * Required when {@link wgsl} declares uniforms. Called every frame by
81
- * the system before dispatching compute.
82
- */
83
- writeUniforms?(view: DataView, byteOffset: number, dt: number): void;
84
- /**
85
- * Upload texture data (Curve/ColorGradient lookup tables) to the GPU at
86
- * compile time. Receives the GPUDevice and a map of texture bindings
87
- * keyed by the `name` in {@link WgslContribution.textures}. Called once
88
- * after pipeline creation.
89
- *
90
- * Required when {@link wgsl} declares textures.
91
- */
92
- uploadTextures?(device: GPUDevice, textures: ReadonlyMap<string, GPUTexture>): void;
93
- /** Optional cleanup hook called from `ParticleSystem.destroy`. */
94
- destroy(): void;
95
- }
@@ -1,66 +0,0 @@
1
- /**
2
- * Per-frame, per-batch mutator. Operates on the system's SoA storage
3
- * directly — typically a single tight loop over `[0, system.liveCount)`
4
- * that reads/writes the relevant `Float32Array`s.
5
- *
6
- * Implementations must always provide a CPU `apply()`. To make a module
7
- * GPU-eligible (executed inside the system's composite compute shader on
8
- * WebGPU backends), additionally implement {@link wgsl} and
9
- * {@link writeUniforms}. Modules that declare a {@link WgslContribution}
10
- * may also opt to declare a 1D texture binding via the `textures` field
11
- * (used by `Curve` / `ColorGradient`-driven modules) — in which case
12
- * {@link uploadTextures} runs once at compile time to upload the data.
13
- *
14
- * Implementation pattern (CPU-only module):
15
- *
16
- * ```ts
17
- * class MyModule extends UpdateModule {
18
- * apply(system, dt) {
19
- * const { velX, velY, liveCount } = system;
20
- * for (let i = 0; i < liveCount; i++) { velX[i] *= 0.99; velY[i] *= 0.99; }
21
- * }
22
- * }
23
- * ```
24
- *
25
- * Implementation pattern (GPU-eligible module):
26
- *
27
- * ```ts
28
- * class MyForce extends UpdateModule {
29
- * constructor(public ax: number, public ay: number) { super(); }
30
- *
31
- * apply(system, dt) {
32
- * const { velX, velY, liveCount } = system;
33
- * for (let i = 0; i < liveCount; i++) { velX[i] += this.ax * dt; velY[i] += this.ay * dt; }
34
- * }
35
- *
36
- * wgsl(): WgslContribution {
37
- * return {
38
- * key: 'MyForce',
39
- * uniforms: [{ name: 'ax', type: 'f32' }, { name: 'ay', type: 'f32' }],
40
- * body: `velX[idx] += u_MyForce.ax * dt; velY[idx] += u_MyForce.ay * dt;`,
41
- * };
42
- * }
43
- *
44
- * writeUniforms(view, offset) {
45
- * view.setFloat32(offset + 0, this.ax, true);
46
- * view.setFloat32(offset + 4, this.ay, true);
47
- * }
48
- * }
49
- * ```
50
- *
51
- * If *any* registered update module on a system lacks `wgsl()`, the system
52
- * forces CPU mode regardless of backend — preserving the contract that
53
- * `apply()` is always honoured. Built-in modules ship both
54
- * implementations; custom modules can opt into GPU acceleration at their
55
- * authors' discretion.
56
- *
57
- * Update modules run after integration each frame. Multiple modules execute
58
- * in registration order; later modules see the effects of earlier ones.
59
- */
60
- class UpdateModule {
61
- /** Optional cleanup hook called from `ParticleSystem.destroy`. */
62
- destroy() { }
63
- }
64
-
65
- export { UpdateModule };
66
- //# sourceMappingURL=UpdateModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UpdateModule.js","sources":["../../../../../src/particles/modules/UpdateModule.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DG;MACmB,YAAY,CAAA;;AAoCzB,IAAA,OAAO,KAAU;AACzB;;;;"}
@@ -1,30 +0,0 @@
1
- import type { Curve } from '@/particles/distributions/Curve';
2
- import type { ParticleSystem } from '@/particles/ParticleSystem';
3
- import { UpdateModule } from './UpdateModule';
4
- import type { WgslContribution } from './WgslContribution';
5
- /**
6
- * Multiplies every live particle's velocity by a curve sampled at the
7
- * particle's current `elapsed / lifetime` ratio. The same scalar is applied
8
- * to both axes — the direction is preserved, only the magnitude scales.
9
- *
10
- * Common patterns:
11
- * - **Snappy spawn, slow drift:** `[0,1]→[1,0.1]` — fast initial motion
12
- * that decays over lifetime.
13
- * - **Late acceleration:** `[0,0.2]→[1,1]` — particles ease in.
14
- * - **Pulse:** sine-shaped curve for breathing-style motion.
15
- *
16
- * Note: the curve **replaces** velocity each frame relative to the previous
17
- * frame's velocity, so the effect is multiplicative. Pair with `ApplyForce`
18
- * if you want a constant external acceleration on top.
19
- *
20
- * GPU-eligible: uploads the curve as a 256-tap 1D R32F texture; sampled
21
- * once per particle per frame.
22
- */
23
- export declare class VelocityOverLifetime extends UpdateModule {
24
- curve: Curve;
25
- private _prevSample;
26
- constructor(curve: Curve);
27
- apply(system: ParticleSystem, _dt: number): void;
28
- wgsl(): WgslContribution;
29
- uploadTextures(device: GPUDevice, textures: ReadonlyMap<string, GPUTexture>): void;
30
- }
@@ -1,84 +0,0 @@
1
- import { UpdateModule } from './UpdateModule.js';
2
-
3
- /// <reference types="@webgpu/types" />
4
- const lookupSize = 256;
5
- /**
6
- * Multiplies every live particle's velocity by a curve sampled at the
7
- * particle's current `elapsed / lifetime` ratio. The same scalar is applied
8
- * to both axes — the direction is preserved, only the magnitude scales.
9
- *
10
- * Common patterns:
11
- * - **Snappy spawn, slow drift:** `[0,1]→[1,0.1]` — fast initial motion
12
- * that decays over lifetime.
13
- * - **Late acceleration:** `[0,0.2]→[1,1]` — particles ease in.
14
- * - **Pulse:** sine-shaped curve for breathing-style motion.
15
- *
16
- * Note: the curve **replaces** velocity each frame relative to the previous
17
- * frame's velocity, so the effect is multiplicative. Pair with `ApplyForce`
18
- * if you want a constant external acceleration on top.
19
- *
20
- * GPU-eligible: uploads the curve as a 256-tap 1D R32F texture; sampled
21
- * once per particle per frame.
22
- */
23
- class VelocityOverLifetime extends UpdateModule {
24
- curve;
25
- _prevSample = new Float32Array(0);
26
- constructor(curve) {
27
- super();
28
- this.curve = curve;
29
- }
30
- apply(system, _dt) {
31
- const { velX, velY, elapsed, lifetime, liveCount } = system;
32
- const curve = this.curve;
33
- // Resize per-particle previous-sample cache once.
34
- if (this._prevSample.length < system.capacity) {
35
- this._prevSample = new Float32Array(system.capacity);
36
- this._prevSample.fill(1);
37
- }
38
- const prev = this._prevSample;
39
- for (let i = 0; i < liveCount; i++) {
40
- const t = elapsed[i] / lifetime[i];
41
- const sample = curve.evaluate(t);
42
- const last = prev[i] === 0 ? 1 : prev[i];
43
- const delta = sample / last;
44
- velX[i] *= delta;
45
- velY[i] *= delta;
46
- prev[i] = sample === 0 ? 1e-6 : sample;
47
- }
48
- }
49
- wgsl() {
50
- // GPU path uses a different formulation: re-derive velocity from
51
- // initial speed at t=0 by storing nothing — instead, scale relative
52
- // to the previous sample stored in scales[idx] alpha? No — keep it
53
- // simple and stateless: scale the integrated velocity by the
54
- // *ratio* of (current sample) / (sample at previous frame's t).
55
- // We approximate the previous t with `(elapsed - dt) / lifetime`.
56
- return {
57
- key: 'VelocityOverLifetime',
58
- textures: [{ name: 'curve', format: 'r32float' }],
59
- body: `
60
- let velLifetime = max(timing[idx].y, 0.000001);
61
- let velTNow = clamp(timing[idx].x / velLifetime, 0.0, 1.0);
62
- let velTPrev = clamp((timing[idx].x - dt) / velLifetime, 0.0, 1.0);
63
- let velSampleNow = textureSampleLevel(u_VelocityOverLifetime_curve, u_VelocityOverLifetime_curve_sampler, velTNow, 0.0).r;
64
- let velSamplePrev = textureSampleLevel(u_VelocityOverLifetime_curve, u_VelocityOverLifetime_curve_sampler, velTPrev, 0.0).r;
65
- let velRatio = velSampleNow / max(velSamplePrev, 0.000001);
66
- velocities[idx] = velocities[idx] * velRatio;
67
- `,
68
- };
69
- }
70
- uploadTextures(device, textures) {
71
- const texture = textures.get('curve');
72
- if (texture === undefined) {
73
- return;
74
- }
75
- const data = new Float32Array(lookupSize);
76
- for (let i = 0; i < lookupSize; i++) {
77
- data[i] = this.curve.evaluate(i / (lookupSize - 1));
78
- }
79
- device.queue.writeTexture({ texture }, data.buffer, { offset: 0, bytesPerRow: lookupSize * 4, rowsPerImage: 1 }, { width: lookupSize, height: 1, depthOrArrayLayers: 1 });
80
- }
81
- }
82
-
83
- export { VelocityOverLifetime };
84
- //# sourceMappingURL=VelocityOverLifetime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VelocityOverLifetime.js","sources":["../../../../../src/particles/modules/VelocityOverLifetime.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAQA,MAAM,UAAU,GAAG,GAAG;AAEtB;;;;;;;;;;;;;;;;;AAiBG;AACG,MAAO,oBAAqB,SAAQ,YAAY,CAAA;AAC7C,IAAA,KAAK;AAEJ,IAAA,WAAW,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC;AAEzC,IAAA,WAAA,CAAmB,KAAY,EAAA;AAC7B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;IAEgB,KAAK,CAAC,MAAsB,EAAE,GAAW,EAAA;AACvD,QAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM;AAC3D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;;QAGxB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;AACpD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;AAE7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACxC,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,IAAI;AAE3B,YAAA,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK;AAChB,YAAA,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK;AAChB,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM;QACxC;IACF;IAEgB,IAAI,GAAA;;;;;;;QAOlB,OAAO;AACL,YAAA,GAAG,EAAE,sBAAsB;YAC3B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACjD,YAAA,IAAI,EAAE;;;;;;;;AAQC,YAAA,CAAA;SACR;IACH;IAEgB,cAAc,CAAC,MAAiB,EAAE,QAAyC,EAAA;QACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAErC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC;AAEzC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;QACrD;AAEA,QAAA,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,EAAE,OAAO,EAAE,EACX,IAAI,CAAC,MAAM,EACX,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAC3D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,CACxD;IACH;AACD;;;;"}
@@ -1,81 +0,0 @@
1
- /**
2
- * WGSL primitive types accepted in {@link WgslUniformField} declarations.
3
- * The codegen emits matching WGSL field declarations; the writeUniforms
4
- * implementation must produce bytes in the layout WGSL expects (see
5
- * https://www.w3.org/TR/WGSL/#alignment-and-size).
6
- *
7
- * Common pitfalls:
8
- * - `vec2<f32>` aligns to 8 bytes; pad with `f32` or use `vec4<f32>`.
9
- * - `vec3<f32>` aligns to 16 bytes (so does `vec4<f32>`); avoid `vec3` for tight packing.
10
- *
11
- * For now the supported subset covers what the built-in modules need. Add
12
- * more types here as new modules require them.
13
- */
14
- export type WgslPrimitive = 'f32' | 'i32' | 'u32' | 'vec2<f32>' | 'vec4<f32>';
15
- /** A named uniform field within a module's struct. Order matters — defines memory layout. */
16
- export interface WgslUniformField {
17
- name: string;
18
- type: WgslPrimitive;
19
- }
20
- /** A 1D texture binding (used by Curve / ColorGradient lookups). */
21
- export interface WgslTextureBinding {
22
- /** Field name within the module — referenced in WGSL as `u_${moduleKey}_${name}`. */
23
- name: string;
24
- /** WGSL texture format. `r32float` for Curve, `rgba8unorm` for ColorGradient. */
25
- format: 'r32float' | 'rgba8unorm';
26
- }
27
- /**
28
- * What an {@link UpdateModule} contributes to the system's composite compute
29
- * shader. `body` runs once per particle in the inner main function, with
30
- * these locals in scope:
31
- *
32
- * - `idx: u32` — the particle slot index (already gated on `< sim.liveCount`
33
- * and skip-on-dead via `timing[idx].y < 0.0`).
34
- * - `dt: f32` — frame delta in seconds (mirrors `sim.dt`).
35
- * - **Packed SoA bindings** (see body of doc) — channels are packed into
36
- * `vec2<f32>`-typed storage buffers to fit within WebGPU's default 8-buffer
37
- * limit. Access x/y components for the per-axis values:
38
- * - `positions[idx].x` / `.y` (was posX/posY)
39
- * - `velocities[idx].x` / `.y` (was velX/velY)
40
- * - `scales[idx].x` / `.y` (was scaleX/scaleY)
41
- * - `rotInfo[idx].x` / `.y` (rotation, rotationSpeed)
42
- * - `timing[idx].x` / `.y` (elapsed, lifetime — y is set to -1 when expired)
43
- * - `color[idx]` — packed RGBA u32, single channel (no .x/.y)
44
- * - `sim: SimUniforms` — `{ dt: f32, liveCount: u32 }`.
45
- * - `modules.u_${key}: ${Key}Uniforms` — your module's uniform struct (if declared).
46
- * - `u_${key}_${textureName}` and `u_${key}_${textureName}_sampler` — texture bindings (if any).
47
- *
48
- * The body should not declare new functions or top-level statements; it
49
- * runs inline in the main function. Use comments and parentheses generously
50
- * — composition concatenates several module bodies and any syntax mistake
51
- * surfaces only at pipeline-creation time.
52
- */
53
- export interface WgslContribution {
54
- /** Unique key per module *class* (e.g. `'ApplyForce'`). Two ApplyForce instances on one system aren't supported — combine into one. */
55
- key: string;
56
- uniforms?: readonly WgslUniformField[];
57
- textures?: readonly WgslTextureBinding[];
58
- /**
59
- * Optional WGSL declarations (functions, constants) emitted at module
60
- * scope before `main()`. Use this for noise/hash helpers or any
61
- * supporting function the {@link body} calls. Multiple modules can
62
- * declare preludes; they're concatenated in registration order. Naming
63
- * collisions across modules are the author's problem — prefix helpers
64
- * with the module key (e.g. `myModule_hash`) to avoid clashes.
65
- */
66
- prelude?: string;
67
- body: string;
68
- }
69
- /**
70
- * Compute the byte size of a uniform struct from its declared fields,
71
- * respecting WGSL std140-like alignment rules. Each field aligns to its
72
- * natural alignment; the struct itself rounds to its largest alignment.
73
- *
74
- * Used by the codegen to size the system's combined uniform buffer.
75
- */
76
- export declare const wgslUniformByteSize: (fields: readonly WgslUniformField[]) => number;
77
- /** Per-WGSL-primitive size and alignment in bytes. */
78
- export declare const wgslFieldLayout: (type: WgslPrimitive) => {
79
- size: number;
80
- align: number;
81
- };
@@ -1,34 +0,0 @@
1
- /**
2
- * Compute the byte size of a uniform struct from its declared fields,
3
- * respecting WGSL std140-like alignment rules. Each field aligns to its
4
- * natural alignment; the struct itself rounds to its largest alignment.
5
- *
6
- * Used by the codegen to size the system's combined uniform buffer.
7
- */
8
- const wgslUniformByteSize = (fields) => {
9
- let offset = 0;
10
- let maxAlign = 4;
11
- for (const field of fields) {
12
- const { size, align } = wgslFieldLayout(field.type);
13
- offset = Math.ceil(offset / align) * align;
14
- offset += size;
15
- maxAlign = Math.max(maxAlign, align);
16
- }
17
- return Math.ceil(offset / maxAlign) * maxAlign;
18
- };
19
- /** Per-WGSL-primitive size and alignment in bytes. */
20
- const wgslFieldLayout = (type) => {
21
- switch (type) {
22
- case 'f32':
23
- case 'i32':
24
- case 'u32':
25
- return { size: 4, align: 4 };
26
- case 'vec2<f32>':
27
- return { size: 8, align: 8 };
28
- case 'vec4<f32>':
29
- return { size: 16, align: 16 };
30
- }
31
- };
32
-
33
- export { wgslFieldLayout, wgslUniformByteSize };
34
- //# sourceMappingURL=WgslContribution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WgslContribution.js","sources":["../../../../../src/particles/modules/WgslContribution.ts"],"sourcesContent":[null],"names":[],"mappings":"AAwEA;;;;;;AAMG;AACI,MAAM,mBAAmB,GAAG,CAAC,MAAmC,KAAY;IACjF,IAAI,MAAM,GAAG,CAAC;IACd,IAAI,QAAQ,GAAG,CAAC;AAEhB,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,QAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;QAEnD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,KAAK;QAC1C,MAAM,IAAI,IAAI;QACd,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;IACtC;IAEA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,QAAQ;AAChD;AAEA;AACO,MAAM,eAAe,GAAG,CAAC,IAAmB,KAAqC;IACtF,QAAQ,IAAI;AACV,QAAA,KAAK,KAAK;AACV,QAAA,KAAK,KAAK;AACV,QAAA,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC9B,QAAA,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;AAC9B,QAAA,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;;AAEpC;;;;"}