@codexo/exojs 0.8.4 → 0.10.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 (470) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/README.md +34 -13
  3. package/dist/esm/animation/Tween.d.ts +20 -3
  4. package/dist/esm/animation/Tween.js +16 -8
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +16 -1
  7. package/dist/esm/animation/TweenManager.js +27 -2
  8. package/dist/esm/animation/TweenManager.js.map +1 -1
  9. package/dist/esm/audio/AudioAnalyser.d.ts +2 -0
  10. package/dist/esm/audio/AudioAnalyser.js +24 -9
  11. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  12. package/dist/esm/audio/AudioBus.d.ts +1 -0
  13. package/dist/esm/audio/AudioBus.js +8 -4
  14. package/dist/esm/audio/AudioBus.js.map +1 -1
  15. package/dist/esm/audio/AudioListener.d.ts +1 -0
  16. package/dist/esm/audio/AudioListener.js +7 -5
  17. package/dist/esm/audio/AudioListener.js.map +1 -1
  18. package/dist/esm/audio/AudioManager.d.ts +8 -2
  19. package/dist/esm/audio/AudioManager.js +14 -1
  20. package/dist/esm/audio/AudioManager.js.map +1 -1
  21. package/dist/esm/audio/BeatDetector.d.ts +2 -0
  22. package/dist/esm/audio/BeatDetector.js +27 -661
  23. package/dist/esm/audio/BeatDetector.js.map +1 -1
  24. package/dist/esm/audio/Music.d.ts +1 -0
  25. package/dist/esm/audio/Music.js +7 -3
  26. package/dist/esm/audio/Music.js.map +1 -1
  27. package/dist/esm/audio/OscillatorSound.d.ts +1 -0
  28. package/dist/esm/audio/OscillatorSound.js +7 -3
  29. package/dist/esm/audio/OscillatorSound.js.map +1 -1
  30. package/dist/esm/audio/Sound.d.ts +1 -0
  31. package/dist/esm/audio/Sound.js +7 -3
  32. package/dist/esm/audio/Sound.js.map +1 -1
  33. package/dist/esm/audio/audio-context.d.ts +2 -2
  34. package/dist/esm/audio/audio-context.js +4 -4
  35. package/dist/esm/audio/audio-context.js.map +1 -1
  36. package/dist/esm/audio/filters/ChorusFilter.d.ts +1 -0
  37. package/dist/esm/audio/filters/ChorusFilter.js +7 -3
  38. package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
  39. package/dist/esm/audio/filters/CompressorFilter.d.ts +1 -0
  40. package/dist/esm/audio/filters/CompressorFilter.js +7 -3
  41. package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
  42. package/dist/esm/audio/filters/DelayFilter.d.ts +1 -0
  43. package/dist/esm/audio/filters/DelayFilter.js +7 -3
  44. package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
  45. package/dist/esm/audio/filters/EqualizerFilter.d.ts +1 -0
  46. package/dist/esm/audio/filters/EqualizerFilter.js +7 -3
  47. package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
  48. package/dist/esm/audio/filters/GranularFilter.js +1 -86
  49. package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
  50. package/dist/esm/audio/filters/HighpassFilter.d.ts +1 -0
  51. package/dist/esm/audio/filters/HighpassFilter.js +7 -3
  52. package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
  53. package/dist/esm/audio/filters/LowpassFilter.d.ts +1 -0
  54. package/dist/esm/audio/filters/LowpassFilter.js +7 -3
  55. package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
  56. package/dist/esm/audio/filters/PitchShiftFilter.js +1 -71
  57. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
  58. package/dist/esm/audio/filters/ReverbFilter.d.ts +1 -0
  59. package/dist/esm/audio/filters/ReverbFilter.js +7 -3
  60. package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
  61. package/dist/esm/audio/filters/VocoderFilter.js +1 -89
  62. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
  63. package/dist/esm/audio/filters/WorkletFilter.d.ts +2 -0
  64. package/dist/esm/audio/filters/WorkletFilter.js +10 -5
  65. package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
  66. package/dist/esm/audio/index.d.ts +15 -10
  67. package/dist/esm/audio/worklet/registerWorklet.d.ts +1 -1
  68. package/dist/esm/audio/worklet/registerWorklet.js +2 -2
  69. package/dist/esm/audio/worklet/registerWorklet.js.map +1 -1
  70. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +1 -0
  71. package/dist/esm/audio/worklets/beat-detector.worklet.js +647 -0
  72. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +1 -0
  73. package/dist/esm/audio/worklets/granular.worklet.d.ts +1 -0
  74. package/dist/esm/audio/worklets/granular.worklet.js +89 -0
  75. package/dist/esm/audio/worklets/granular.worklet.js.map +1 -0
  76. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +1 -0
  77. package/dist/esm/audio/worklets/pitch-shift.worklet.js +74 -0
  78. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +1 -0
  79. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +1 -0
  80. package/dist/esm/audio/worklets/vocoder.worklet.js +92 -0
  81. package/dist/esm/audio/worklets/vocoder.worklet.js.map +1 -0
  82. package/dist/esm/core/Application.d.ts +86 -29
  83. package/dist/esm/core/Application.js +157 -47
  84. package/dist/esm/core/Application.js.map +1 -1
  85. package/dist/esm/core/Color.d.ts +0 -8
  86. package/dist/esm/core/Color.js +0 -24
  87. package/dist/esm/core/Color.js.map +1 -1
  88. package/dist/esm/core/Perf.d.ts +23 -0
  89. package/dist/esm/core/Perf.js +49 -0
  90. package/dist/esm/core/Perf.js.map +1 -0
  91. package/dist/esm/core/Scene.d.ts +40 -80
  92. package/dist/esm/core/Scene.js +63 -43
  93. package/dist/esm/core/Scene.js.map +1 -1
  94. package/dist/esm/core/SceneManager.d.ts +11 -25
  95. package/dist/esm/core/SceneManager.js +37 -100
  96. package/dist/esm/core/SceneManager.js.map +1 -1
  97. package/dist/esm/core/SceneNode.d.ts +28 -17
  98. package/dist/esm/core/SceneNode.js +66 -42
  99. package/dist/esm/core/SceneNode.js.map +1 -1
  100. package/dist/esm/core/Signal.d.ts +24 -28
  101. package/dist/esm/core/Signal.js +64 -50
  102. package/dist/esm/core/Signal.js.map +1 -1
  103. package/dist/esm/core/Timer.d.ts +1 -0
  104. package/dist/esm/core/Timer.js +3 -0
  105. package/dist/esm/core/Timer.js.map +1 -1
  106. package/dist/esm/core/capabilities.d.ts +2 -0
  107. package/dist/esm/core/capabilities.js +15 -0
  108. package/dist/esm/core/capabilities.js.map +1 -1
  109. package/dist/esm/core/index.d.ts +1 -0
  110. package/dist/esm/core/types.d.ts +1 -1
  111. package/dist/esm/core/utils.d.ts +12 -0
  112. package/dist/esm/core/utils.js +18 -1
  113. package/dist/esm/core/utils.js.map +1 -1
  114. package/dist/esm/debug/BoundingBoxesLayer.js +1 -1
  115. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  116. package/dist/esm/debug/HitTestLayer.js +1 -1
  117. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  118. package/dist/esm/debug/PerformanceLayer.js +1 -2
  119. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  120. package/dist/esm/debug/PointerStackLayer.js +1 -2
  121. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  122. package/dist/esm/debug/RenderPassInspectorLayer.js +1 -2
  123. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  124. package/dist/esm/index.js +37 -10
  125. package/dist/esm/index.js.map +1 -1
  126. package/dist/esm/input/InputManager.d.ts +1 -0
  127. package/dist/esm/input/InputManager.js +30 -3
  128. package/dist/esm/input/InputManager.js.map +1 -1
  129. package/dist/esm/input/InteractionManager.d.ts +5 -2
  130. package/dist/esm/input/InteractionManager.js +29 -18
  131. package/dist/esm/input/InteractionManager.js.map +1 -1
  132. package/dist/esm/input/Pointer.js +3 -2
  133. package/dist/esm/input/Pointer.js.map +1 -1
  134. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +9 -0
  135. package/dist/esm/input/internal/interactionManagerRegistry.js +10 -0
  136. package/dist/esm/input/internal/interactionManagerRegistry.js.map +1 -0
  137. package/dist/esm/math/AbstractVector.d.ts +1 -7
  138. package/dist/esm/math/AbstractVector.js +6 -20
  139. package/dist/esm/math/AbstractVector.js.map +1 -1
  140. package/dist/esm/math/Circle.js +0 -2
  141. package/dist/esm/math/Circle.js.map +1 -1
  142. package/dist/esm/math/Collision.d.ts +9 -3
  143. package/dist/esm/math/Ellipse.d.ts +2 -5
  144. package/dist/esm/math/Ellipse.js +10 -7
  145. package/dist/esm/math/Ellipse.js.map +1 -1
  146. package/dist/esm/math/ObservableVector.d.ts +1 -1
  147. package/dist/esm/math/ObservableVector.js +3 -3
  148. package/dist/esm/math/ObservableVector.js.map +1 -1
  149. package/dist/esm/math/Polygon.d.ts +0 -2
  150. package/dist/esm/math/Polygon.js +1 -9
  151. package/dist/esm/math/Polygon.js.map +1 -1
  152. package/dist/esm/math/Rectangle.js +0 -2
  153. package/dist/esm/math/Rectangle.js.map +1 -1
  154. package/dist/esm/math/collision-detection.d.ts +19 -4
  155. package/dist/esm/math/collision-detection.js +61 -4
  156. package/dist/esm/math/collision-detection.js.map +1 -1
  157. package/dist/esm/math/swept-collision.d.ts +16 -12
  158. package/dist/esm/math/swept-collision.js +109 -19
  159. package/dist/esm/math/swept-collision.js.map +1 -1
  160. package/dist/esm/particles/ParticleSystem.d.ts +8 -5
  161. package/dist/esm/particles/ParticleSystem.js +10 -6
  162. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  163. package/dist/esm/particles/distributions/{Gradient.d.ts → ColorGradient.d.ts} +5 -5
  164. package/dist/esm/particles/distributions/{Gradient.js → ColorGradient.js} +5 -5
  165. package/dist/esm/particles/distributions/ColorGradient.js.map +1 -0
  166. package/dist/esm/particles/distributions/Distribution.d.ts +2 -2
  167. package/dist/esm/particles/distributions/index.d.ts +2 -2
  168. package/dist/esm/particles/gpu/ParticleGpuState.js +1 -1
  169. package/dist/esm/particles/index.d.ts +1 -0
  170. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +3 -3
  171. package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
  172. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +3 -3
  173. package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
  174. package/dist/esm/particles/modules/UpdateModule.d.ts +2 -2
  175. package/dist/esm/particles/modules/UpdateModule.js +1 -1
  176. package/dist/esm/particles/modules/WgslContribution.d.ts +2 -2
  177. package/dist/esm/rendering/CallbackRenderPass.d.ts +1 -0
  178. package/dist/esm/rendering/CallbackRenderPass.js +1 -0
  179. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  180. package/dist/esm/rendering/Camera.d.ts +33 -0
  181. package/dist/esm/rendering/Camera.js +38 -0
  182. package/dist/esm/rendering/Camera.js.map +1 -0
  183. package/dist/esm/rendering/Container.d.ts +7 -25
  184. package/dist/esm/rendering/Container.js +25 -87
  185. package/dist/esm/rendering/Container.js.map +1 -1
  186. package/dist/esm/rendering/Drawable.d.ts +8 -10
  187. package/dist/esm/rendering/Drawable.js +12 -20
  188. package/dist/esm/rendering/Drawable.js.map +1 -1
  189. package/dist/esm/rendering/RenderBackend.d.ts +19 -0
  190. package/dist/esm/rendering/RenderNode.d.ts +82 -11
  191. package/dist/esm/rendering/RenderNode.js +133 -163
  192. package/dist/esm/rendering/RenderNode.js.map +1 -1
  193. package/dist/esm/rendering/RenderPass.d.ts +1 -0
  194. package/dist/esm/rendering/RenderStats.d.ts +9 -0
  195. package/dist/esm/rendering/RenderStats.js +2 -0
  196. package/dist/esm/rendering/RenderStats.js.map +1 -1
  197. package/dist/esm/rendering/RenderTarget.d.ts +13 -0
  198. package/dist/esm/rendering/RenderTarget.js +13 -0
  199. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  200. package/dist/esm/rendering/RenderTargetPass.js +17 -0
  201. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  202. package/dist/esm/rendering/RendererRegistry.d.ts +1 -0
  203. package/dist/esm/rendering/RendererRegistry.js +1 -0
  204. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  205. package/dist/esm/rendering/RenderingContext.d.ts +87 -0
  206. package/dist/esm/rendering/RenderingContext.js +157 -0
  207. package/dist/esm/rendering/RenderingContext.js.map +1 -0
  208. package/dist/esm/rendering/TransformBuffer.d.ts +38 -0
  209. package/dist/esm/rendering/TransformBuffer.js +116 -0
  210. package/dist/esm/rendering/TransformBuffer.js.map +1 -0
  211. package/dist/esm/rendering/View.d.ts +23 -0
  212. package/dist/esm/rendering/View.js +42 -0
  213. package/dist/esm/rendering/View.js.map +1 -1
  214. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -12
  215. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  216. package/dist/esm/rendering/geometry/Geometry.d.ts +40 -0
  217. package/dist/esm/rendering/geometry/Geometry.js +228 -0
  218. package/dist/esm/rendering/geometry/Geometry.js.map +1 -0
  219. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +32 -0
  220. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +5 -0
  221. package/dist/esm/rendering/gradient/Gradient.d.ts +34 -0
  222. package/dist/esm/rendering/gradient/Gradient.js +114 -0
  223. package/dist/esm/rendering/gradient/Gradient.js.map +1 -0
  224. package/dist/esm/rendering/gradient/LinearGradient.d.ts +10 -0
  225. package/dist/esm/rendering/gradient/LinearGradient.js +26 -0
  226. package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -0
  227. package/dist/esm/rendering/gradient/RadialGradient.d.ts +10 -0
  228. package/dist/esm/rendering/gradient/RadialGradient.js +25 -0
  229. package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -0
  230. package/dist/esm/rendering/index.d.ts +103 -59
  231. package/dist/esm/rendering/material/Material.d.ts +114 -0
  232. package/dist/esm/rendering/material/Material.js +111 -0
  233. package/dist/esm/rendering/material/Material.js.map +1 -0
  234. package/dist/esm/rendering/material/MaterialKey.d.ts +18 -0
  235. package/dist/esm/rendering/material/MaterialKey.js +82 -0
  236. package/dist/esm/rendering/material/MaterialKey.js.map +1 -0
  237. package/dist/esm/rendering/material/MeshMaterial.d.ts +16 -0
  238. package/dist/esm/rendering/material/MeshMaterial.js +21 -0
  239. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -0
  240. package/dist/esm/rendering/{mesh/MeshShader.d.ts → material/ShaderSource.d.ts} +30 -62
  241. package/dist/esm/rendering/{mesh/MeshShader.js → material/ShaderSource.js} +36 -62
  242. package/dist/esm/rendering/material/ShaderSource.js.map +1 -0
  243. package/dist/esm/rendering/material/SpriteMaterial.d.ts +15 -0
  244. package/dist/esm/rendering/material/SpriteMaterial.js +20 -0
  245. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -0
  246. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -12
  247. package/dist/esm/rendering/mesh/Mesh.js +123 -4
  248. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  249. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +63 -0
  250. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +48 -0
  251. package/dist/esm/rendering/pass/RenderPassDescriptor.js +16 -0
  252. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -0
  253. package/dist/esm/rendering/plan/RenderCommand.d.ts +67 -0
  254. package/dist/esm/rendering/plan/RenderCommand.js +94 -0
  255. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -0
  256. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +10 -0
  257. package/dist/esm/rendering/plan/RenderEffectExecutor.js +159 -0
  258. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -0
  259. package/dist/esm/rendering/plan/RenderPlan.d.ts +23 -0
  260. package/dist/esm/rendering/plan/RenderPlan.js +12 -0
  261. package/dist/esm/rendering/plan/RenderPlan.js.map +1 -0
  262. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +31 -0
  263. package/dist/esm/rendering/plan/RenderPlanBuilder.js +242 -0
  264. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -0
  265. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +10 -0
  266. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +180 -0
  267. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -0
  268. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +9 -0
  269. package/dist/esm/rendering/plan/RenderPlanPlayer.js +56 -0
  270. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -0
  271. package/dist/esm/rendering/plan/RenderScope.d.ts +70 -0
  272. package/dist/esm/rendering/plan/RenderScope.js +16 -0
  273. package/dist/esm/rendering/plan/RenderScope.js.map +1 -0
  274. package/dist/esm/rendering/plan/playRenderTree.d.ts +4 -0
  275. package/dist/esm/rendering/plan/playRenderTree.js +19 -0
  276. package/dist/esm/rendering/plan/playRenderTree.js.map +1 -0
  277. package/dist/esm/rendering/shader/Shader.d.ts +1 -0
  278. package/dist/esm/rendering/shader/Shader.js +1 -0
  279. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  280. package/dist/esm/rendering/shader/ShaderUniform.d.ts +1 -0
  281. package/dist/esm/rendering/shader/ShaderUniform.js +1 -0
  282. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  283. package/dist/esm/rendering/sprite/Sprite.d.ts +25 -3
  284. package/dist/esm/rendering/sprite/Sprite.js +48 -15
  285. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  286. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +36 -0
  287. package/dist/esm/rendering/sprite/spriteMaterialSources.js +128 -0
  288. package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -0
  289. package/dist/esm/rendering/text/AbstractText.d.ts +36 -0
  290. package/dist/esm/rendering/text/AbstractText.js +49 -0
  291. package/dist/esm/rendering/text/AbstractText.js.map +1 -0
  292. package/dist/esm/rendering/text/BitmapText.d.ts +97 -0
  293. package/dist/esm/rendering/text/BitmapText.js +220 -0
  294. package/dist/esm/rendering/text/BitmapText.js.map +1 -0
  295. package/dist/esm/rendering/text/BmFont.d.ts +50 -0
  296. package/dist/esm/rendering/text/BmFont.js +24 -0
  297. package/dist/esm/rendering/text/BmFont.js.map +1 -0
  298. package/dist/esm/rendering/text/GlyphAtlas.d.ts +104 -0
  299. package/dist/esm/rendering/text/GlyphAtlas.js +347 -0
  300. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -0
  301. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +40 -0
  302. package/dist/esm/rendering/text/GlyphAtlasPool.js +67 -0
  303. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -0
  304. package/dist/esm/rendering/text/GlyphSdf.d.ts +92 -0
  305. package/dist/esm/rendering/text/GlyphSdf.js +220 -0
  306. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -0
  307. package/dist/esm/rendering/text/HTMLText.d.ts +107 -0
  308. package/dist/esm/rendering/text/HTMLText.js +284 -0
  309. package/dist/esm/rendering/text/HTMLText.js.map +1 -0
  310. package/dist/esm/rendering/text/LayoutOptions.d.ts +30 -0
  311. package/dist/esm/rendering/text/Text.d.ts +89 -20
  312. package/dist/esm/rendering/text/Text.js +176 -101
  313. package/dist/esm/rendering/text/Text.js.map +1 -1
  314. package/dist/esm/rendering/text/TextLayout.d.ts +20 -8
  315. package/dist/esm/rendering/text/TextLayout.js +234 -25
  316. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  317. package/dist/esm/rendering/text/TextStyle.d.ts +154 -87
  318. package/dist/esm/rendering/text/TextStyle.js +257 -203
  319. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  320. package/dist/esm/rendering/text/types.d.ts +73 -13
  321. package/dist/esm/rendering/texture/DataTexture.d.ts +5 -0
  322. package/dist/esm/rendering/texture/DataTexture.js +7 -0
  323. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  324. package/dist/esm/rendering/texture/Texture.d.ts +1 -0
  325. package/dist/esm/rendering/texture/Texture.js +1 -0
  326. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  327. package/dist/esm/rendering/types.d.ts +3 -1
  328. package/dist/esm/rendering/types.js +2 -0
  329. package/dist/esm/rendering/types.js.map +1 -1
  330. package/dist/esm/rendering/video/Video.d.ts +5 -8
  331. package/dist/esm/rendering/video/Video.js +12 -13
  332. package/dist/esm/rendering/video/Video.js.map +1 -1
  333. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +40 -0
  334. package/dist/esm/rendering/webgl2/WebGl2Backend.js +344 -27
  335. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  336. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +22 -2
  337. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +404 -112
  338. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  339. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +57 -0
  340. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +79 -0
  341. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -0
  342. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +12 -0
  343. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +214 -58
  344. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  345. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +34 -0
  346. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +169 -0
  347. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -0
  348. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +56 -0
  349. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +486 -0
  350. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -0
  351. package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +1 -1
  352. package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +1 -1
  353. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js +4 -0
  354. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js.map +1 -0
  355. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js +4 -0
  356. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js.map +1 -0
  357. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +4 -0
  358. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js.map +1 -0
  359. package/dist/esm/rendering/webgl2/glsl/text-msdf.frag.js +4 -0
  360. package/dist/esm/rendering/webgl2/glsl/text-msdf.frag.js.map +1 -0
  361. package/dist/esm/rendering/webgl2/glsl/text-sdf.frag.js +4 -0
  362. package/dist/esm/rendering/webgl2/glsl/text-sdf.frag.js.map +1 -0
  363. package/dist/esm/rendering/webgl2/glsl/text.vert.js +4 -0
  364. package/dist/esm/rendering/webgl2/glsl/text.vert.js.map +1 -0
  365. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +50 -0
  366. package/dist/esm/rendering/webgpu/WebGpuBackend.js +151 -27
  367. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  368. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +26 -0
  369. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  370. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +22 -17
  371. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  372. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +26 -2
  373. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +511 -89
  374. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  375. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +13 -17
  376. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  377. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +141 -0
  378. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +270 -0
  379. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -0
  380. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +16 -0
  381. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +344 -27
  382. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  383. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +57 -0
  384. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +257 -0
  385. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -0
  386. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +14 -0
  387. package/dist/esm/rendering/webgpu/WebGpuStencilState.js +36 -0
  388. package/dist/esm/rendering/webgpu/WebGpuStencilState.js.map +1 -0
  389. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +70 -0
  390. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +775 -0
  391. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -0
  392. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -0
  393. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +57 -0
  394. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -0
  395. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +96 -0
  396. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -0
  397. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +68 -0
  398. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -0
  399. package/dist/esm/resources/Asset.d.ts +23 -0
  400. package/dist/esm/resources/Asset.js +23 -0
  401. package/dist/esm/resources/Asset.js.map +1 -0
  402. package/dist/esm/resources/AssetDefinitions.d.ts +137 -0
  403. package/dist/esm/resources/Assets.d.ts +35 -0
  404. package/dist/esm/resources/Assets.js +32 -0
  405. package/dist/esm/resources/Assets.js.map +1 -0
  406. package/dist/esm/resources/IndexedDbDatabase.js +17 -1
  407. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  408. package/dist/esm/resources/IndexedDbStore.js +17 -1
  409. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  410. package/dist/esm/resources/JsonStore.d.ts +18 -0
  411. package/dist/esm/resources/JsonStore.js +62 -0
  412. package/dist/esm/resources/JsonStore.js.map +1 -0
  413. package/dist/esm/resources/Loader.d.ts +244 -18
  414. package/dist/esm/resources/Loader.js +456 -50
  415. package/dist/esm/resources/Loader.js.map +1 -1
  416. package/dist/esm/resources/LoadingQueue.d.ts +28 -0
  417. package/dist/esm/resources/LoadingQueue.js +59 -0
  418. package/dist/esm/resources/LoadingQueue.js.map +1 -0
  419. package/dist/esm/resources/factories/BmFontFactory.d.ts +25 -0
  420. package/dist/esm/resources/factories/BmFontFactory.js +96 -0
  421. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -0
  422. package/dist/esm/resources/factories/CsvFactory.d.ts +35 -0
  423. package/dist/esm/resources/factories/CsvFactory.js +87 -0
  424. package/dist/esm/resources/factories/CsvFactory.js.map +1 -0
  425. package/dist/esm/resources/factories/ImageFactory.d.ts +14 -8
  426. package/dist/esm/resources/factories/ImageFactory.js +13 -6
  427. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  428. package/dist/esm/resources/factories/MusicFactory.d.ts +8 -2
  429. package/dist/esm/resources/factories/MusicFactory.js +25 -14
  430. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  431. package/dist/esm/resources/factories/SoundFactory.d.ts +2 -2
  432. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  433. package/dist/esm/resources/factories/SubtitleFactory.d.ts +28 -0
  434. package/dist/esm/resources/factories/SubtitleFactory.js +203 -0
  435. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -0
  436. package/dist/esm/resources/factories/SvgFactory.d.ts +18 -1
  437. package/dist/esm/resources/factories/SvgFactory.js +21 -2
  438. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  439. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -4
  440. package/dist/esm/resources/factories/TextureFactory.js +8 -4
  441. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  442. package/dist/esm/resources/factories/VideoFactory.d.ts +8 -2
  443. package/dist/esm/resources/factories/VideoFactory.js +27 -20
  444. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  445. package/dist/esm/resources/factories/XmlFactory.d.ts +24 -0
  446. package/dist/esm/resources/factories/XmlFactory.js +37 -0
  447. package/dist/esm/resources/factories/XmlFactory.js.map +1 -0
  448. package/dist/esm/resources/index.d.ts +9 -1
  449. package/dist/esm/resources/tokens.d.ts +49 -3
  450. package/dist/esm/resources/tokens.js +50 -4
  451. package/dist/esm/resources/tokens.js.map +1 -1
  452. package/dist/exo.esm.js +15382 -8078
  453. package/dist/exo.esm.js.map +1 -1
  454. package/package.json +34 -16
  455. package/dist/esm/input/interaction-hooks.d.ts +0 -34
  456. package/dist/esm/input/interaction-hooks.js +0 -35
  457. package/dist/esm/input/interaction-hooks.js.map +0 -1
  458. package/dist/esm/particles/distributions/Gradient.js.map +0 -1
  459. package/dist/esm/rendering/mesh/MeshShader.js.map +0 -1
  460. package/dist/esm/rendering/text/DynamicGlyphAtlas.d.ts +0 -33
  461. package/dist/esm/rendering/text/DynamicGlyphAtlas.js +0 -134
  462. package/dist/esm/rendering/text/DynamicGlyphAtlas.js.map +0 -1
  463. package/dist/esm/rendering/text/atlas-singleton.d.ts +0 -7
  464. package/dist/esm/rendering/text/atlas-singleton.js +0 -17
  465. package/dist/esm/rendering/text/atlas-singleton.js.map +0 -1
  466. package/dist/esm/resources/factories/VttFactory.d.ts +0 -24
  467. package/dist/esm/resources/factories/VttFactory.js +0 -158
  468. package/dist/esm/resources/factories/VttFactory.js.map +0 -1
  469. package/dist/esm/vendor/webgl-debug.js +0 -1160
  470. package/dist/esm/vendor/webgl-debug.js.map +0 -1
@@ -32,6 +32,7 @@ var ViewFlags;
32
32
  * matrices, a follow-target system for tracking scene nodes, and a procedural
33
33
  * screen-shake effect. Call {@link update} once per frame to advance follow and
34
34
  * shake animations.
35
+ * @stable
35
36
  */
36
37
  class View {
37
38
  _center;
@@ -307,6 +308,47 @@ class View {
307
308
  }
308
309
  return this._inverseTransform;
309
310
  }
311
+ /**
312
+ * Convert a canvas pixel coordinate to a world-space position for this view.
313
+ * Accounts for the view's viewport rectangle, so it works correctly in
314
+ * multi-view / split-screen setups.
315
+ *
316
+ * @param screenX - X pixel relative to the canvas top-left corner.
317
+ * @param screenY - Y pixel relative to the canvas top-left corner.
318
+ * @param canvasWidth - Canvas width in pixels (e.g. `app.canvas.width`).
319
+ * @param canvasHeight - Canvas height in pixels (e.g. `app.canvas.height`).
320
+ */
321
+ screenToWorld(screenX, screenY, canvasWidth, canvasHeight) {
322
+ const vw = this._viewport.width * canvasWidth;
323
+ const vh = this._viewport.height * canvasHeight;
324
+ const clipX = ((screenX - this._viewport.x * canvasWidth) / vw) * 2 - 1;
325
+ const clipY = 1 - ((screenY - this._viewport.y * canvasHeight) / vh) * 2;
326
+ const inv = this.getInverseTransform();
327
+ return {
328
+ x: inv.a * clipX + inv.b * clipY + inv.x,
329
+ y: inv.c * clipX + inv.d * clipY + inv.y,
330
+ };
331
+ }
332
+ /**
333
+ * Convert a world-space position to canvas pixel coordinates for this view.
334
+ * Accounts for the view's viewport rectangle.
335
+ *
336
+ * @param worldX - World X coordinate.
337
+ * @param worldY - World Y coordinate.
338
+ * @param canvasWidth - Canvas width in pixels (e.g. `app.canvas.width`).
339
+ * @param canvasHeight - Canvas height in pixels (e.g. `app.canvas.height`).
340
+ */
341
+ worldToScreen(worldX, worldY, canvasWidth, canvasHeight) {
342
+ const m = this.getTransform();
343
+ const clipX = m.a * worldX + m.b * worldY + m.x;
344
+ const clipY = m.c * worldX + m.d * worldY + m.y;
345
+ const vx = this._viewport.x * canvasWidth;
346
+ const vy = this._viewport.y * canvasHeight;
347
+ return {
348
+ x: vx + ((clipX + 1) / 2) * this._viewport.width * canvasWidth,
349
+ y: vy + ((1 - clipY) / 2) * this._viewport.height * canvasHeight,
350
+ };
351
+ }
310
352
  /**
311
353
  * Return the world-space bounding rectangle of the currently visible area, recalculating if dirty.
312
354
  * Used for frustum culling by {@link Drawable.render}.
@@ -1 +1 @@
1
- {"version":3,"file":"View.js","sources":["../../../../src/rendering/View.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"View.js","sources":["../../../../src/rendering/View.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAUA;;;AAGG;IACS;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAW;AACX,IAAA,SAAA,CAAA,SAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAkB;AAClB,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAe;AACf,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAc;AACd,IAAA,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAa;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAgB;AAChB,IAAA,SAAA,CAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAuB;AACvB,IAAA,SAAA,CAAA,SAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAkB;AAClB,IAAA,SAAA,CAAA,SAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAoB;AACpB,IAAA,SAAA,CAAA,SAAA,CAAA,YAAA,CAAA,GAAA,GAAA,CAAA,GAAA,YAAiB;AACnB,CAAC,EAXW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAkCrB;;;;;;;;;AASG;MACU,IAAI,CAAA;AACE,IAAA,OAAO;AACP,IAAA,KAAK;AACL,IAAA,SAAS,GAAc,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,IAAA,UAAU,GAAW,IAAI,MAAM,EAAE;AACjC,IAAA,iBAAiB,GAAW,IAAI,MAAM,EAAE;AACxC,IAAA,OAAO,GAAW,IAAI,MAAM,EAAE;AAC9B,IAAA,MAAM,GAAqB,IAAI,KAAK,EAAa;IAC1D,SAAS,GAAG,CAAC;IACb,IAAI,GAAG,CAAC;IACR,IAAI,GAAG,CAAC;IACR,UAAU,GAAG,CAAC;AACd,IAAA,cAAc;AACd,IAAA,eAAe;IACf,aAAa,GAAqB,IAAI;IACtC,WAAW,GAAG,CAAC;IACf,cAAc,GAAG,CAAC;IAClB,cAAc,GAAG,CAAC;IAClB,iBAAiB,GAAqB,IAAI;IAC1C,eAAe,GAAG,CAAC;IACnB,gBAAgB,GAAG,CAAC;IACpB,eAAe,GAAG,CAAC;IACnB,eAAe,GAAG,EAAE;IACpB,WAAW,GAAG,IAAI;IAClB,WAAW,GAAG,CAAC;IACf,aAAa,GAAG,CAAC;IACjB,aAAa,GAAG,CAAC;IACjB,SAAS,GAAG,CAAC;AAErB,IAAA,WAAA,CAAmB,OAAe,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAA;AAChF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;AACxF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;AAChF,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC;IAC1F;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;IAEA,IAAW,MAAM,CAAC,MAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B;AAEA,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;IACnB;IAEA,IAAW,IAAI,CAAC,IAAoB,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB;AAEA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK;IACzB;IAEA,IAAW,KAAK,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;IAC1B;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;IAC1B;IAEA,IAAW,MAAM,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;IAC5B;AAEA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;IAEA,IAAW,QAAQ,CAAC,QAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC5B;AAEA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;IAEA,IAAW,QAAQ,CAAC,QAAmB,EAAA;QACrC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7B,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;AAEA;;;AAGG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;IAEO,SAAS,CAAC,CAAS,EAAE,CAAS,EAAA;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAEtB,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,MAAM,CAAC,KAAa,EAAE,MAAc,EAAA;AACzC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AAE7B,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,WAAW,CAAC,OAAe,EAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;AAEtC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;YACzB,IAAI,CAAC,iBAAiB,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACb;IAEO,IAAI,CAAC,CAAS,EAAE,CAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtD,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,IAAI,CAAC,MAAc,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAElE,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACI,IAAA,OAAO,CAAC,IAAY,EAAA;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AAE7C,QAAA,IAAI,CAAC,UAAU,GAAG,cAAc;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,EAAE,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;AAE3F,QAAA,OAAO,IAAI;IACb;IAEO,MAAM,CAAC,MAAM,GAAG,GAAG,EAAA;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC/C;IAEO,OAAO,CAAC,MAAM,GAAG,GAAG,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;IACjE;AAEA;;;;AAIG;AACI,IAAA,MAAM,CAAC,MAAwB,EAAE,OAAA,GAA6B,EAAE,EAAA;AACrE,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC;AAE1C,QAAA,OAAO,IAAI;IACb;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;AAEvB,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACI,IAAA,SAAS,CAAC,MAAwB,EAAA;AACvC,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;AAChC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;YAC/B;AAEA,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;AACnC,YAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE;QACzC;aAAO;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;QACrC;QAEA,IAAI,CAAC,sBAAsB,EAAE;AAE7B,QAAA,OAAO,IAAI;IACb;IAEO,WAAW,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B;AAEA;;;;;;;;AAQG;AACI,IAAA,KAAK,CAAC,SAAiB,EAAE,UAAkB,EAAE,UAA4B,EAAE,EAAA;QAChF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC;AAC/C,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE;AAExB,QAAA,OAAO,IAAI;IACb;IAEO,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AAEpB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AACxD,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;YACtB,IAAI,CAAC,iBAAiB,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,MAAM,CAAC,iBAAyB,EAAA;QACrC,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC;QACpC,IAAI,CAAC,sBAAsB,EAAE;AAE7B,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,MAAM,CAAC,OAAe,EAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AAE1C,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,KAAK,CAAC,OAAe,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAA;AAC1E,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;AACb,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;QAEb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAErC,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,YAAY,GAAA;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACxC,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QACzC;QAEA,OAAO,IAAI,CAAC,UAAU;IACxB;IAEU,eAAe,GAAA;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa;AACnD,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK;QACxB,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAEhD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/B;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE;YAC3D,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI;YACjC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI;YAEjC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI;YAClC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI;QACnC;QAEA,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;QACjF,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;AAEjF,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,mBAAmB,GAAA;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;YAC/C,IAAI,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAEtD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAChD;QAEA,OAAO,IAAI,CAAC,iBAAiB;IAC/B;AAEA;;;;;;;;;AASG;AACI,IAAA,aAAa,CAAC,OAAe,EAAE,OAAe,EAAE,WAAmB,EAAE,YAAoB,EAAA;QAC9F,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;QAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,WAAW,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QACvE,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,YAAY,IAAI,EAAE,IAAI,CAAC;AACxE,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE;QAEtC,OAAO;AACL,YAAA,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;AACxC,YAAA,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;SACzC;IACH;AAEA;;;;;;;;AAQG;AACI,IAAA,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,WAAmB,EAAE,YAAoB,EAAA;AAC5F,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;AAC7B,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,WAAW;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,YAAY;QAE1C,OAAO;AACL,YAAA,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW;AAC9D,YAAA,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;SACjE;IACH;AAEA;;;AAGG;IACI,SAAS,GAAA;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YAC1C,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QAC3C;AAEA,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IAC/B;IAEU,YAAY,GAAA;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa;AACnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAE/B,QAAA,IAAI,CAAC;AACF,aAAA,KAAK;aACL,SAAS,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;aAC9C,SAAS,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;AAElD,QAAA,OAAO,IAAI;IACb;IAEO,OAAO,GAAA;QACZ,IAAI,CAAC,SAAS,EAAE;QAChB,IAAI,CAAC,WAAW,EAAE;AAElB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;AAChC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAC/B;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IACvB;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC,WAAW,CAAC;QACnE,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,iBAAiB,GAAA;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,iBAAiB,GAAA;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE;IAClB;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB;QACF;AAEA,QAAA,IAAI,OAAe;AACnB,QAAA,IAAI,OAAe;AAEnB,QAAA,IAAI,IAAI,CAAC,aAAa,YAAY,SAAS,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;YACjD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc;YACnC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc;QACrC;aAAO;YACL,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc;YACpD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc;QACtD;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;YAEhC;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;IAChJ;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB;AACrC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AAChC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAClC,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS;AACpC,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS;AACrC,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,UAAU;AACpC,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU;AACvC,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;AACvG,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;AAEvG,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;AACtE,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;QAC5C;IACF;AAEQ,IAAA,YAAY,CAAC,iBAAyB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE;AAC3D,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AACxD,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC;gBACtB,IAAI,CAAC,iBAAiB,EAAE;YAC1B;YAEA;QACF;QAEA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAE7G,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe;QAEjG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AAEhG,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,SAAS;AAChE,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,SAAS;AAEhE,QAAA,IAAI,WAAW,KAAK,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,IAAI,CAAC,aAAa,EAAE;AAC5E,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW;YAChC,IAAI,CAAC,iBAAiB,EAAE;QAC1B;QAEA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACjD,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;AACD;;;;"}
@@ -144,24 +144,17 @@ class WebGpuShaderFilter extends Filter {
144
144
  // ---- Build user bind group (group 1) ----
145
145
  const userBindGroup = this._buildUserBindGroup(gpu, conn);
146
146
  // ---- Encode render pass ----
147
- // Labels are picked up by Spector.js and Chrome DevTools' WebGPU
148
- // panel and displayed as the pass name in capture views; ignored
149
- // by WebGPU at runtime so they cost nothing in release builds.
150
- const device2 = gpu.device;
151
- const encoder = device2.createCommandEncoder({ label: 'WebGpuShaderFilter' });
152
- const pass = encoder.beginRenderPass({
153
- colorAttachments: [gpu.createColorAttachment()],
154
- label: 'WebGpuShaderFilter pass',
155
- });
156
- gpu.stats.renderPasses++;
147
+ // The coordinator owns the GPU pass (it runs inside the surrounding
148
+ // RenderTargetPass child pass, so load/clear is already resolved to
149
+ // a clear of the output target) and ends + submits it below.
150
+ const pass = gpu._passCoordinator.acquirePass().pass;
157
151
  pass.setPipeline(conn.pipeline);
158
152
  pass.setVertexBuffer(0, conn.vertexBuffer);
159
153
  pass.setBindGroup(0, autoBindGroup);
160
154
  pass.setBindGroup(1, userBindGroup);
161
155
  pass.draw(4);
162
156
  gpu.stats.drawCalls++;
163
- pass.end();
164
- gpu.submit(encoder.finish());
157
+ gpu._passCoordinator.endPass();
165
158
  }, {
166
159
  target: output,
167
160
  view: output.view,
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGpuShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGpuShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGpuShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;AAiDA;;;AAGG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;CAa3B;AAED;;;;;;;;;AASG;AACH,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7F;AACA,MAAM,iBAAiB,GAAG,EAAE;AAE5B;AACA,MAAM,qBAAqB,GAAG,EAAE;AA+BhC;AACA,SAAS,cAAc,CAAC,KAA+B,EAAA;IACrD,QACE,KAAK,YAAY,OAAO;SACvB,OAAO,KAAK,KAAK,QAAQ;AACxB,YAAA,KAAK,KAAK,IAAI;AACd,YAAA,OAAO,IAAI,KAAK;AAChB,YAAA,QAAQ,IAAI,KAAK;AACjB,YAAA,EAAE,KAAK,YAAY,YAAY,CAAC;AAChC,YAAA,EAAE,KAAK,YAAY,UAAU,CAAC;YAC9B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE5B;AAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CG;AACG,MAAO,kBAAmB,SAAQ,MAAM,CAAA;AAC5C;;;;;;AAMG;AACa,IAAA,QAAQ;AAEP,IAAA,eAAe;AACf,IAAA,aAAa;IAEtB,WAAW,GAA4B,IAAI;AAEnD,IAAA,WAAA,CAAmB,OAAkC,EAAA;AACnD,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;QAChE;AAEA,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,cAAc;QAC7C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB;AAChE,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;IACjD;AAEA;;;;AAIG;AACI,IAAA,KAAK,CAAC,OAAsB,EAAE,KAAoB,EAAE,MAAqB,EAAA;QAC9E,IAAI,OAAO,CAAC,WAAW,KAAK,iBAAiB,CAAC,MAAM,EAAE;AACpD,YAAA,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC;QACtG;QAEA,MAAM,UAAU,GAAG,OAAwB;AAE3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC;AAEzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAY;QAE9B,OAAO,CAAC,OAAO,CACb,IAAI,gBAAgB,CAClB,CAAC,IAAG;YACF,MAAM,GAAG,GAAG,CAAkB;AAC9B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;;AAG1B,YAAA,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAErE,YAAA,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,OAAO,CAAC;;YAG3D,MAAM,YAAY,GAAG,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACjD,YAAA,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;gBAC3C,MAAM,EAAE,IAAI,CAAC,mBAAmB;AAChC,gBAAA,OAAO,EAAE;AACP,oBAAA,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE;oBAC3D,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE;oBAC3C,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;AACvC,iBAAA;AACF,aAAA,CAAC;;YAGF,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC;;;;;YAMzD,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI;AAEpD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;AAC1C,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAEZ,YAAA,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE;AAErB,YAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAChC,QAAA,CAAC,EACD;AACE,YAAA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,KAAK,CAAC,gBAAgB;AACnC,SAAA,CACF,CACF;IACH;IAEgB,OAAO,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE;AACvC,YAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC3C,YAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,OAAO,EAAE;AAC7C,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACzB;AAEA,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC3B;IACF;;;;IAMQ,gBAAgB,CAAC,OAAsB,EAAE,MAAqB,EAAA;AACpE,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;;AAG7B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACxE,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;;AAG1E,QAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,UAAU,EAAE,cAAc,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM;AAC3D,oBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC5B,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;;QAGF,MAAM,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC;;AAGlE,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACjD,YAAA,gBAAgB,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;AAC7D,SAAA,CAAC;;AAGF,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,kBAAkB;AAC/C,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC3C,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,OAAO,EAAE;AACP,oBAAA;AACE,wBAAA,WAAW,EAAE,iBAAiB;AAC9B,wBAAA,UAAU,EAAE;4BACV,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;4BACrD,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;AACtD,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACpC,aAAA;AACD,YAAA,SAAS,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;AAC1C,SAAA,CAAC;;AAGF,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACvC,IAAI,EAAE,cAAc,CAAC,UAAU;AAC/B,YAAA,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ;AACvD,SAAA,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,EAAE,cAAc,CAAC;;AAGzD,QAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC;AAC3C,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;AACxD,SAAA,CAAC;;AAGF,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AACnC,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,YAAY,EAAE,eAAe;AAC9B,SAAA,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG;YACjB,MAAM;YACN,YAAY;YACZ,gBAAgB;YAChB,mBAAmB;YACnB,mBAAmB;YACnB,cAAc;YACd,QAAQ;YACR,OAAO;AACP,YAAA,iBAAiB,EAAE,IAAI;SACxB;IACH;AAEA;;;;;;;AAOG;AACK,IAAA,yBAAyB,CAAC,MAAiB,EAAA;QACjD,MAAM,OAAO,GAA8B,EAAE;QAC7C,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAEpF,IAAI,iBAAiB,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,gBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC5B,aAAA,CAAC;QACJ;QAEA,IAAI,YAAY,GAAG,CAAC;AAEpB,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBAC1B;YACF;;YAGA,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC;AACF,YAAA,YAAY,EAAE;;YAGd,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAC;AACF,YAAA,YAAY,EAAE;QAChB;;AAGA,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,gBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC5B,aAAA,CAAC;QACJ;QAEA,OAAO,MAAM,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC;IAClD;AAEA;;;;AAIG;IACK,mBAAmB,CAAC,OAAsB,EAAE,IAAsB,EAAA;AACxE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;QAC1B,MAAM,OAAO,GAAwB,EAAE;;QAGvC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEzF,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;;AAE5B,YAAA,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;YAE7C,IAAI,IAAI,GAAG,CAAC;YAEZ,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,aAAa,EAAE;AACrC,gBAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC;AAEhC,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK;gBAC9B;AAAO,qBAAA,IAAI,KAAK,YAAY,YAAY,EAAE;AACxC,oBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC;gBACjC;AAAO,qBAAA,IAAI,KAAK,YAAY,UAAU,EAAE;;AAEtC,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBACrC;gBACF;qBAAO;;oBAEL,MAAM,GAAG,GAAG,KAA0B;AAEtC,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACnC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACnC;gBACF;AAEA,gBAAA,IAAI,EAAE;YACR;;AAGA,YAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,UAAU,EAAE;AAC/E,gBAAA,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE;AACjC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC;AAC3C,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;AACxD,iBAAA,CAAC;YACJ;AAEA,YAAA,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC;YAEzD,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAC7C,aAAA,CAAC;QACJ;aAAO;;;AAGL,YAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;AACnC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC;AAC3C,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;AACxD,iBAAA,CAAC;YACJ;YAEA,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAC7C,aAAA,CAAC;QACJ;;QAGA,IAAI,YAAY,GAAG,CAAC;AAEpB,QAAA,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBAC1B;YACF;YAEA,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAEhD,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/D,YAAA,YAAY,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AAClE,YAAA,YAAY,EAAE;QAChB;QAEA,OAAO,MAAM,CAAC,eAAe,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,mBAAmB;YAChC,OAAO;AACR,SAAA,CAAC;IACJ;AACD;;;;"}
@@ -0,0 +1,40 @@
1
+ import { Rectangle } from '@/math/Rectangle';
2
+ import type { GeometryAttribute, GeometryOptions, GeometryUsage, Topology } from './GeometryAttribute';
3
+ /**
4
+ * Non-renderable geometry data object used by advanced rendering paths.
5
+ *
6
+ * Geometry owns only vertex/index data and its layout metadata; it is not a
7
+ * scene node, has no transform state, and cannot render itself.
8
+ * @advanced
9
+ */
10
+ export declare class Geometry {
11
+ readonly attributes: readonly GeometryAttribute[];
12
+ readonly stride: number;
13
+ readonly topology: Topology;
14
+ readonly usage: GeometryUsage;
15
+ readonly indices: Uint16Array | Uint32Array | null;
16
+ vertexData: Float32Array | ArrayBuffer;
17
+ private _version;
18
+ private _localBounds;
19
+ private _localBoundsDirty;
20
+ private readonly _positionAttribute;
21
+ private readonly _disposeCallbacks;
22
+ constructor(options: GeometryOptions);
23
+ get vertexCount(): number;
24
+ get indexCount(): number;
25
+ get version(): number;
26
+ get id(): number;
27
+ /** Mark vertex data as mutated in place so backends can re-upload GPU buffers. */
28
+ invalidate(): this;
29
+ /** Return local-space bounds; when `out` is provided it is populated and returned. */
30
+ getLocalBounds(out?: Rectangle): Rectangle;
31
+ /** Force local-space AABB recomputation from the current position attribute data. */
32
+ recomputeLocalBounds(): this;
33
+ /** Release backend-owned resources associated with this geometry instance. */
34
+ destroy(): void;
35
+ /**
36
+ * Internal backend hook used to register per-geometry cleanup callbacks.
37
+ * @internal
38
+ */
39
+ _onDispose(callback: () => void): void;
40
+ }
@@ -0,0 +1,228 @@
1
+ import { Rectangle } from '../../math/Rectangle.js';
2
+
3
+ const attributeTypeByteSizes = {
4
+ f32: 4,
5
+ u8: 1,
6
+ u16: 2,
7
+ u32: 4,
8
+ i32: 4,
9
+ };
10
+ const validTopologies = new Set(['triangle-list', 'triangle-strip']);
11
+ const validUsages = new Set(['static', 'dynamic', 'stream']);
12
+ const positionAttributeNames = new Set(['a_position', 'position']);
13
+ const geometryIds = new WeakMap();
14
+ let nextGeometryId = 1;
15
+ const getOrCreateGeometryId = (geometry) => {
16
+ const cached = geometryIds.get(geometry);
17
+ if (cached !== undefined) {
18
+ return cached;
19
+ }
20
+ const id = nextGeometryId++;
21
+ geometryIds.set(geometry, id);
22
+ return id;
23
+ };
24
+ const getVertexCount = (vertexData, stride) => {
25
+ const { byteLength } = vertexData;
26
+ if (byteLength % stride !== 0) {
27
+ throw new Error(`Geometry vertexData byteLength ${byteLength} must be divisible by stride ${stride}.`);
28
+ }
29
+ return byteLength / stride;
30
+ };
31
+ const readComponent = (view, type, offset, normalized) => {
32
+ switch (type) {
33
+ case 'f32':
34
+ return view.getFloat32(offset, true);
35
+ case 'u8': {
36
+ const value = view.getUint8(offset);
37
+ return normalized ? value / 255 : value;
38
+ }
39
+ case 'u16': {
40
+ const value = view.getUint16(offset, true);
41
+ return normalized ? value / 65535 : value;
42
+ }
43
+ case 'u32': {
44
+ const value = view.getUint32(offset, true);
45
+ return normalized ? value / 4294967295 : value;
46
+ }
47
+ case 'i32': {
48
+ const value = view.getInt32(offset, true);
49
+ return normalized ? Math.max(value / 2147483647, -1) : value;
50
+ }
51
+ default:
52
+ return 0;
53
+ }
54
+ };
55
+ const cloneAttributes = (attributes) => {
56
+ return attributes.map(attribute => ({ ...attribute }));
57
+ };
58
+ const resolvePositionAttribute = (attributes) => {
59
+ const directMatch = attributes.find(attribute => positionAttributeNames.has(attribute.name));
60
+ if (directMatch) {
61
+ return directMatch;
62
+ }
63
+ const fuzzyMatch = attributes.find(attribute => attribute.name.toLowerCase().includes('position'));
64
+ if (fuzzyMatch) {
65
+ return fuzzyMatch;
66
+ }
67
+ throw new Error('Geometry requires a position attribute named `a_position` or `position`.');
68
+ };
69
+ /**
70
+ * Non-renderable geometry data object used by advanced rendering paths.
71
+ *
72
+ * Geometry owns only vertex/index data and its layout metadata; it is not a
73
+ * scene node, has no transform state, and cannot render itself.
74
+ * @advanced
75
+ */
76
+ class Geometry {
77
+ attributes;
78
+ stride;
79
+ topology;
80
+ usage;
81
+ indices;
82
+ vertexData;
83
+ _version = 0;
84
+ _localBounds = new Rectangle();
85
+ _localBoundsDirty = true;
86
+ _positionAttribute;
87
+ _disposeCallbacks = new Set();
88
+ constructor(options) {
89
+ const { attributes, vertexData, stride, indices = null, topology = 'triangle-list', usage = 'static' } = options;
90
+ if (attributes.length === 0) {
91
+ throw new Error('Geometry attributes must be a non-empty array.');
92
+ }
93
+ if (!Number.isInteger(stride) || stride <= 0) {
94
+ throw new Error(`Geometry stride must be a positive integer (got ${stride}).`);
95
+ }
96
+ if (!validTopologies.has(topology)) {
97
+ throw new Error(`Geometry topology must be one of: triangle-list, triangle-strip (got ${String(topology)}).`);
98
+ }
99
+ if (!validUsages.has(usage)) {
100
+ throw new Error(`Geometry usage must be one of: static, dynamic, stream (got ${String(usage)}).`);
101
+ }
102
+ const ranges = [];
103
+ const names = new Set();
104
+ for (const attribute of attributes) {
105
+ if (typeof attribute.name !== 'string' || attribute.name.length === 0) {
106
+ throw new Error('Geometry attribute name must be a non-empty string.');
107
+ }
108
+ if (names.has(attribute.name)) {
109
+ throw new Error(`Geometry attribute "${attribute.name}" is declared more than once.`);
110
+ }
111
+ names.add(attribute.name);
112
+ if (!Number.isInteger(attribute.size) || attribute.size < 1 || attribute.size > 4) {
113
+ throw new Error(`Geometry attribute "${attribute.name}" size must be an integer in [1..4] (got ${attribute.size}).`);
114
+ }
115
+ if (!Number.isInteger(attribute.offset) || attribute.offset < 0) {
116
+ throw new Error(`Geometry attribute "${attribute.name}" offset must be a non-negative integer (got ${attribute.offset}).`);
117
+ }
118
+ const byteSize = attributeTypeByteSizes[attribute.type];
119
+ const end = attribute.offset + byteSize * attribute.size;
120
+ if (end > stride) {
121
+ throw new Error(`Geometry attribute "${attribute.name}" range [${attribute.offset}, ${end}) exceeds stride ${stride}.`);
122
+ }
123
+ for (const range of ranges) {
124
+ if (attribute.offset < range.end && end > range.start) {
125
+ throw new Error(`Geometry attribute "${attribute.name}" overlaps attribute "${range.name}" in the interleaved layout.`);
126
+ }
127
+ }
128
+ ranges.push({ name: attribute.name, start: attribute.offset, end });
129
+ }
130
+ const positionAttribute = resolvePositionAttribute(attributes);
131
+ if (positionAttribute.size < 2) {
132
+ throw new Error(`Geometry position attribute "${positionAttribute.name}" must declare at least 2 components.`);
133
+ }
134
+ const vertexCount = getVertexCount(vertexData, stride);
135
+ if (indices !== null) {
136
+ for (let i = 0; i < indices.length; i++) {
137
+ if (indices[i] >= vertexCount) {
138
+ throw new Error(`Geometry index ${indices[i]} at position ${i} is out of range for vertex count ${vertexCount}.`);
139
+ }
140
+ }
141
+ }
142
+ this.attributes = cloneAttributes(attributes);
143
+ this.vertexData = vertexData;
144
+ this.stride = stride;
145
+ this.indices = indices;
146
+ this.topology = topology;
147
+ this.usage = usage;
148
+ this._positionAttribute = { ...positionAttribute };
149
+ }
150
+ get vertexCount() {
151
+ return getVertexCount(this.vertexData, this.stride);
152
+ }
153
+ get indexCount() {
154
+ return this.indices?.length ?? this.vertexCount;
155
+ }
156
+ get version() {
157
+ return this._version;
158
+ }
159
+ get id() {
160
+ return getOrCreateGeometryId(this);
161
+ }
162
+ /** Mark vertex data as mutated in place so backends can re-upload GPU buffers. */
163
+ invalidate() {
164
+ this._version++;
165
+ this._localBoundsDirty = true;
166
+ return this;
167
+ }
168
+ /** Return local-space bounds; when `out` is provided it is populated and returned. */
169
+ getLocalBounds(out = this._localBounds) {
170
+ if (this._localBoundsDirty) {
171
+ this.recomputeLocalBounds();
172
+ }
173
+ if (out === this._localBounds) {
174
+ return this._localBounds;
175
+ }
176
+ return out.copy(this._localBounds);
177
+ }
178
+ /** Force local-space AABB recomputation from the current position attribute data. */
179
+ recomputeLocalBounds() {
180
+ const vertexCount = this.vertexCount;
181
+ if (vertexCount === 0) {
182
+ this._localBounds.set(0, 0, 0, 0);
183
+ this._localBoundsDirty = false;
184
+ return this;
185
+ }
186
+ const view = this.vertexData instanceof Float32Array
187
+ ? new DataView(this.vertexData.buffer, this.vertexData.byteOffset, this.vertexData.byteLength)
188
+ : new DataView(this.vertexData);
189
+ const componentByteSize = attributeTypeByteSizes[this._positionAttribute.type];
190
+ let minX = Infinity;
191
+ let minY = Infinity;
192
+ let maxX = -Infinity;
193
+ let maxY = -Infinity;
194
+ for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {
195
+ const start = vertexIndex * this.stride + this._positionAttribute.offset;
196
+ const x = readComponent(view, this._positionAttribute.type, start, this._positionAttribute.normalized);
197
+ const y = readComponent(view, this._positionAttribute.type, start + componentByteSize, this._positionAttribute.normalized);
198
+ if (x < minX)
199
+ minX = x;
200
+ if (x > maxX)
201
+ maxX = x;
202
+ if (y < minY)
203
+ minY = y;
204
+ if (y > maxY)
205
+ maxY = y;
206
+ }
207
+ this._localBounds.set(minX, minY, maxX - minX, maxY - minY);
208
+ this._localBoundsDirty = false;
209
+ return this;
210
+ }
211
+ /** Release backend-owned resources associated with this geometry instance. */
212
+ destroy() {
213
+ for (const callback of this._disposeCallbacks) {
214
+ callback();
215
+ }
216
+ this._disposeCallbacks.clear();
217
+ }
218
+ /**
219
+ * Internal backend hook used to register per-geometry cleanup callbacks.
220
+ * @internal
221
+ */
222
+ _onDispose(callback) {
223
+ this._disposeCallbacks.add(callback);
224
+ }
225
+ }
226
+
227
+ export { Geometry };
228
+ //# sourceMappingURL=Geometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Geometry.js","sources":["../../../../../src/rendering/geometry/Geometry.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * GPU buffer ownership strategy used by geometry-aware render paths.
3
+ *
4
+ * - `static` — immutable after creation; eligible for shared batched buffers.
5
+ * - `dynamic` — occasionally mutated; backend should keep a dedicated buffer.
6
+ * - `stream` — mutated every frame; backend should treat as immediate data.
7
+ */
8
+ export type GeometryUsage = 'static' | 'dynamic' | 'stream';
9
+ /** Scalar component type used by a geometry vertex attribute. */
10
+ export type AttributeType = 'f32' | 'u8' | 'u16' | 'u32' | 'i32';
11
+ /** Primitive topology used when drawing this geometry. */
12
+ export type Topology = 'triangle-list' | 'triangle-strip';
13
+ /**
14
+ * Descriptor for one attribute in an interleaved vertex layout.
15
+ * Offsets and stride are expressed in bytes.
16
+ */
17
+ export interface GeometryAttribute {
18
+ readonly name: string;
19
+ readonly size: number;
20
+ readonly type: AttributeType;
21
+ readonly normalized: boolean;
22
+ readonly offset: number;
23
+ }
24
+ /** Construction options for {@link Geometry}. */
25
+ export interface GeometryOptions {
26
+ readonly attributes: readonly GeometryAttribute[];
27
+ readonly vertexData: Float32Array | ArrayBuffer;
28
+ readonly stride: number;
29
+ readonly indices?: Uint16Array | Uint32Array | null;
30
+ readonly topology?: Topology;
31
+ readonly usage?: GeometryUsage;
32
+ }
@@ -0,0 +1,5 @@
1
+ import { Geometry } from './Geometry';
2
+ /** @internal */
3
+ export declare class QuadGeometry extends Geometry {
4
+ constructor();
5
+ }
@@ -0,0 +1,34 @@
1
+ import type { Color } from '@/core/Color';
2
+ import { DataTexture } from '@/rendering/texture/DataTexture';
3
+ import type { SamplerOptions } from '@/rendering/texture/Sampler';
4
+ export interface GradientStop {
5
+ offset: number;
6
+ color: Color;
7
+ }
8
+ export interface GradientToTextureOptions {
9
+ readonly format?: 'rgba8' | 'rgba32f';
10
+ readonly samplerOptions?: Partial<SamplerOptions>;
11
+ }
12
+ /**
13
+ * CPU-rasterized gradient base that can be converted into a {@link DataTexture}.
14
+ */
15
+ export declare abstract class Gradient {
16
+ private _stops;
17
+ private readonly _sample;
18
+ protected constructor(stops: readonly GradientStop[]);
19
+ get stops(): readonly GradientStop[];
20
+ toTexture(width: number, height: number, options?: GradientToTextureOptions & {
21
+ format?: 'rgba8';
22
+ }): DataTexture<'rgba8'>;
23
+ toTexture(width: number, height: number, options: GradientToTextureOptions & {
24
+ format: 'rgba32f';
25
+ }): DataTexture<'rgba32f'>;
26
+ destroy(): void;
27
+ protected abstract resolveT(u: number, v: number): number;
28
+ /**
29
+ * Shared stop sampling logic ported from the legacy GLSL implementation.
30
+ */
31
+ protected sampleAt(t: number, out: Float32Array): void;
32
+ private _toRgba8Texture;
33
+ private _toRgba32fTexture;
34
+ }