@codexo/exojs 0.14.0 → 0.15.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 (237) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/README.md +2 -4
  3. package/dist/esm/animation/Tween.d.ts.map +1 -1
  4. package/dist/esm/animation/Tween.js +0 -1
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +44 -5
  7. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +57 -5
  9. package/dist/esm/animation/TweenManager.js.map +1 -1
  10. package/dist/esm/animation/TweenSequencer.d.ts +139 -0
  11. package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
  12. package/dist/esm/animation/TweenSequencer.js +305 -0
  13. package/dist/esm/animation/TweenSequencer.js.map +1 -0
  14. package/dist/esm/animation/index.d.ts +1 -0
  15. package/dist/esm/animation/index.d.ts.map +1 -1
  16. package/dist/esm/audio/WorkletEffect.d.ts +34 -20
  17. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -1
  18. package/dist/esm/audio/WorkletEffect.js +92 -25
  19. package/dist/esm/audio/WorkletEffect.js.map +1 -1
  20. package/dist/esm/core/Application.d.ts +43 -5
  21. package/dist/esm/core/Application.d.ts.map +1 -1
  22. package/dist/esm/core/Application.js +83 -9
  23. package/dist/esm/core/Application.js.map +1 -1
  24. package/dist/esm/core/BuildInfo.js +2 -2
  25. package/dist/esm/core/Codec.d.ts +41 -0
  26. package/dist/esm/core/Codec.d.ts.map +1 -0
  27. package/dist/esm/core/Codec.js +79 -0
  28. package/dist/esm/core/Codec.js.map +1 -0
  29. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  30. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  31. package/dist/esm/core/FixedTimestep.js +62 -0
  32. package/dist/esm/core/FixedTimestep.js.map +1 -0
  33. package/dist/esm/core/Scene.d.ts +14 -0
  34. package/dist/esm/core/Scene.d.ts.map +1 -1
  35. package/dist/esm/core/Scene.js +18 -0
  36. package/dist/esm/core/Scene.js.map +1 -1
  37. package/dist/esm/core/SceneManager.d.ts +7 -0
  38. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  39. package/dist/esm/core/SceneManager.js +20 -4
  40. package/dist/esm/core/SceneManager.js.map +1 -1
  41. package/dist/esm/core/SceneNode.d.ts +36 -6
  42. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  43. package/dist/esm/core/SceneNode.js +63 -11
  44. package/dist/esm/core/SceneNode.js.map +1 -1
  45. package/dist/esm/core/Stage.d.ts +7 -0
  46. package/dist/esm/core/Stage.d.ts.map +1 -1
  47. package/dist/esm/core/SystemRegistry.d.ts +5 -0
  48. package/dist/esm/core/SystemRegistry.d.ts.map +1 -1
  49. package/dist/esm/core/SystemRegistry.js +10 -0
  50. package/dist/esm/core/SystemRegistry.js.map +1 -1
  51. package/dist/esm/core/index.d.ts +4 -0
  52. package/dist/esm/core/index.d.ts.map +1 -1
  53. package/dist/esm/core/logging.d.ts +34 -0
  54. package/dist/esm/core/logging.d.ts.map +1 -0
  55. package/dist/esm/core/logging.js +59 -0
  56. package/dist/esm/core/logging.js.map +1 -0
  57. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -1
  58. package/dist/esm/core/serialization/commonFields.js +6 -0
  59. package/dist/esm/core/serialization/commonFields.js.map +1 -1
  60. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -1
  61. package/dist/esm/core/serialization/renderingSerializers.js +14 -5
  62. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -1
  63. package/dist/esm/index.js +7 -2
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/input/Gamepad.d.ts +10 -0
  66. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  67. package/dist/esm/input/Gamepad.js +12 -0
  68. package/dist/esm/input/Gamepad.js.map +1 -1
  69. package/dist/esm/input/InputManager.d.ts.map +1 -1
  70. package/dist/esm/input/InputManager.js +5 -0
  71. package/dist/esm/input/InputManager.js.map +1 -1
  72. package/dist/esm/input/InteractionManager.js +4 -4
  73. package/dist/esm/input/InteractionManager.js.map +1 -1
  74. package/dist/esm/math/collision-detection.js +1 -1
  75. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  76. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  77. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  78. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  79. package/dist/esm/rendering/CallbackRenderPass.js +16 -11
  80. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  81. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  82. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  83. package/dist/esm/rendering/PassContext.d.ts +42 -0
  84. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  85. package/dist/esm/rendering/PassContext.js +48 -0
  86. package/dist/esm/rendering/PassContext.js.map +1 -0
  87. package/dist/esm/rendering/RenderBackend.d.ts +14 -0
  88. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  89. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  90. package/dist/esm/rendering/RenderNode.js +2 -2
  91. package/dist/esm/rendering/RenderNode.js.map +1 -1
  92. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  93. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  94. package/dist/esm/rendering/RenderingContext.d.ts +47 -16
  95. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  96. package/dist/esm/rendering/RenderingContext.js +134 -36
  97. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  98. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  99. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  100. package/dist/esm/rendering/TransformBuffer.js +58 -0
  101. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  102. package/dist/esm/rendering/View.d.ts +38 -0
  103. package/dist/esm/rendering/View.d.ts.map +1 -1
  104. package/dist/esm/rendering/View.js +37 -0
  105. package/dist/esm/rendering/View.js.map +1 -1
  106. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  107. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +9 -2
  108. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  109. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  110. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  111. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  112. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  113. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  114. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  115. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  116. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  117. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  118. package/dist/esm/rendering/plan/RenderEffectExecutor.js +7 -2
  119. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  120. package/dist/esm/rendering/plan/RenderInstruction.d.ts +5 -2
  121. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  122. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  123. package/dist/esm/rendering/plan/RenderPlanBuilder.js +23 -5
  124. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  125. package/dist/esm/rendering/plan/RenderScope.d.ts +7 -0
  126. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  127. package/dist/esm/rendering/primitives/Graphics.d.ts +10 -1
  128. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  129. package/dist/esm/rendering/primitives/Graphics.js +30 -9
  130. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  131. package/dist/esm/rendering/public.d.ts +5 -5
  132. package/dist/esm/rendering/public.d.ts.map +1 -1
  133. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +56 -19
  134. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  135. package/dist/esm/rendering/sprite/AnimatedSprite.js +121 -31
  136. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  137. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  138. package/dist/esm/rendering/text/BitmapText.js +2 -0
  139. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  140. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  141. package/dist/esm/rendering/text/HTMLText.js +2 -2
  142. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  143. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  144. package/dist/esm/rendering/text/Text.js +2 -0
  145. package/dist/esm/rendering/text/Text.js.map +1 -1
  146. package/dist/esm/rendering/types.d.ts +37 -13
  147. package/dist/esm/rendering/types.d.ts.map +1 -1
  148. package/dist/esm/rendering/types.js +37 -13
  149. package/dist/esm/rendering/types.js.map +1 -1
  150. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  151. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  152. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  153. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  154. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +34 -1
  155. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  156. package/dist/esm/rendering/webgl2/WebGl2Backend.js +108 -60
  157. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  158. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  159. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +50 -11
  160. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  161. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  162. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  163. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  164. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  165. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  166. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  167. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  168. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  169. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  170. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +27 -0
  171. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  172. package/dist/esm/rendering/webgpu/WebGpuBackend.js +157 -60
  173. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  174. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  175. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -29
  176. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  177. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  178. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  179. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  180. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  181. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -0
  182. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  183. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +3 -1
  184. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  185. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  186. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  187. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +2 -1
  188. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  189. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  190. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  191. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  192. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  193. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  194. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  195. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +4 -1
  196. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  197. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  198. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  199. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +2 -1
  200. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  201. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  202. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  203. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +2 -1
  204. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  205. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  206. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  207. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +3 -2
  208. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  209. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -1
  210. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  211. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +29 -5
  212. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  213. package/dist/esm/resources/Loader.d.ts +13 -0
  214. package/dist/esm/resources/Loader.d.ts.map +1 -1
  215. package/dist/esm/resources/Loader.js +67 -7
  216. package/dist/esm/resources/Loader.js.map +1 -1
  217. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  218. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  219. package/dist/esm/ui/ScrollContainer.js +99 -0
  220. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  221. package/dist/esm/ui/Tooltip.d.ts +67 -0
  222. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  223. package/dist/esm/ui/Tooltip.js +133 -0
  224. package/dist/esm/ui/Tooltip.js.map +1 -0
  225. package/dist/esm/ui/index.d.ts +4 -0
  226. package/dist/esm/ui/index.d.ts.map +1 -1
  227. package/dist/exo.esm.js +1 -1
  228. package/dist/exo.esm.js.map +1 -1
  229. package/dist/exo.iife.js +45202 -0
  230. package/dist/exo.iife.js.map +1 -0
  231. package/dist/exo.iife.min.js +2 -0
  232. package/dist/exo.iife.min.js.map +1 -0
  233. package/package.json +15 -3
  234. package/dist/esm/rendering/Camera.d.ts +0 -34
  235. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  236. package/dist/esm/rendering/Camera.js +0 -38
  237. package/dist/esm/rendering/Camera.js.map +0 -1
@@ -12,6 +12,7 @@ import { RenderTarget } from '../RenderTarget.js';
12
12
  import { DataTexture } from '../texture/DataTexture.js';
13
13
  import { RenderTexture } from '../texture/RenderTexture.js';
14
14
  import { WrapModes, ScaleModes } from '../types.js';
15
+ import { WebGpuBackdropBlendCompositor } from './WebGpuBackdropBlendCompositor.js';
15
16
  import { WebGpuMaskCompositor } from './WebGpuMaskCompositor.js';
16
17
  import { WebGpuMeshRenderer } from './WebGpuMeshRenderer.js';
17
18
  import { WebGpuPassCoordinator } from './WebGpuPassCoordinator.js';
@@ -22,6 +23,49 @@ import { WebGpuTransformStorage } from './WebGpuTransformStorage.js';
22
23
  const managedTextureFormat = 'rgba8unorm';
23
24
  // Managed content + render textures use rgba8unorm = 4 bytes/px.
24
25
  const MANAGED_TEXTURE_BYTES_PER_PIXEL = 4;
26
+ /** WGSL source for the box-filter mipmap-generation pipeline. @internal */
27
+ const mipmapWgsl = `
28
+ struct VertexOutput {
29
+ @builtin(position) position: vec4<f32>,
30
+ @location(0) texcoord: vec2<f32>,
31
+ };
32
+
33
+ @group(0) @binding(0)
34
+ var sourceTexture: texture_2d<f32>;
35
+ @group(0) @binding(1)
36
+ var sourceSampler: sampler;
37
+
38
+ @vertex
39
+ fn vertexMain(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
40
+ var positions = array<vec2<f32>, 3>(
41
+ vec2<f32>(-1.0, -1.0),
42
+ vec2<f32>(3.0, -1.0),
43
+ vec2<f32>(-1.0, 3.0)
44
+ );
45
+ // Y is flipped vs the position array: NDC Y points up, but texture UV
46
+ // Y points down (UV (0,0) is the top-left of the source). Matching the
47
+ // two ensures that the output texture's top-left pixel samples from the
48
+ // source's top-left, so every mip level has the same orientation as the
49
+ // level above it. Prior to this, odd mip levels were rendered upside
50
+ // down, producing visible texture flips at view-size doublings.
51
+ var texcoords = array<vec2<f32>, 3>(
52
+ vec2<f32>(0.0, 1.0),
53
+ vec2<f32>(2.0, 1.0),
54
+ vec2<f32>(0.0, -1.0)
55
+ );
56
+ var output: VertexOutput;
57
+
58
+ output.position = vec4<f32>(positions[vertexIndex], 0.0, 1.0);
59
+ output.texcoord = texcoords[vertexIndex];
60
+
61
+ return output;
62
+ }
63
+
64
+ @fragment
65
+ fn fragmentMain(input: VertexOutput) -> @location(0) vec4<f32> {
66
+ return textureSample(sourceTexture, sourceSampler, input.texcoord);
67
+ }
68
+ `;
25
69
  /**
26
70
  * WebGPU implementation of {@link RenderBackend}. Manages the GPU device,
27
71
  * canvas context configuration, format selection, managed-texture cache
@@ -66,6 +110,8 @@ class WebGpuBackend {
66
110
  _clipPointB = new Vector();
67
111
  _maskCompositor = new WebGpuMaskCompositor();
68
112
  _maskCompositorConnected = false;
113
+ _backdropBlendCompositor = new WebGpuBackdropBlendCompositor();
114
+ _backdropBlendCompositorConnected = false;
69
115
  _mipmapShaderModule = null;
70
116
  _mipmapBindGroupLayout = null;
71
117
  _mipmapPipelineLayout = null;
@@ -87,6 +133,8 @@ class WebGpuBackend {
87
133
  _activeDrawCommand = null;
88
134
  _passCoordinatorInstance = null;
89
135
  _drawPlanDepth = 0;
136
+ _planBaseStack = [];
137
+ _planHashStack = [];
90
138
  constructor(app) {
91
139
  const canvasOptions = app.options.canvas ?? {};
92
140
  const width = canvasOptions.width ?? 800;
@@ -178,18 +226,31 @@ class WebGpuBackend {
178
226
  }
179
227
  resetStats() {
180
228
  resetRenderStats(this._stats);
229
+ // The transform buffer is frame-scoped: reset it once per frame here (was
230
+ // previously reset per render() call in _beginDrawPlan).
231
+ this._getTransformStorage().buffer.begin();
181
232
  return this;
182
233
  }
234
+ /** Frame-global slot base the plan builder indexes from. @internal */
235
+ get transformBufferCount() {
236
+ return this._getTransformStorage().buffer.count;
237
+ }
183
238
  /** @internal */
184
239
  _beginDrawPlan(nodeCount) {
185
240
  const storage = this._getTransformStorage();
186
- storage.begin(nodeCount);
241
+ // Do NOT reset the transform buffer here — it is frame-scoped (reset in
242
+ // resetStats). The builder already based this plan's node indices at the
243
+ // current buffer count, so writes land in fresh frame-global slots and
244
+ // batches survive across render() calls. Remember this plan's base so a
245
+ // nested plan can free its rows on end.
246
+ this._planBaseStack.push(storage.buffer.count);
247
+ this._planHashStack.push(storage.buffer.frameHash);
187
248
  // Pre-allocate the GPU storage buffer for the full plan before any group
188
- // flush runs. Without this, a later flush with a higher maxNodeIndex would
189
- // destroy and replace the buffer mid-frame while earlier command buffers
190
- // may still reference the old allocation.
191
- if (nodeCount > 0 && this._device !== null && !this._deviceLost) {
192
- storage.reserve(this._device, nodeCount, this._accountant);
249
+ // flush runs. Base the reservation on the frame-global count + this plan's
250
+ // nodes so the buffer grows to cover both pre-existing frame rows and new rows.
251
+ const reserveCount = storage.buffer.count + nodeCount;
252
+ if (reserveCount > 0 && this._device !== null && !this._deviceLost) {
253
+ storage.reserve(this._device, reserveCount, this._accountant);
193
254
  }
194
255
  this._activeDrawCommand = null;
195
256
  this._drawPlanDepth++;
@@ -234,9 +295,19 @@ class WebGpuBackend {
234
295
  /** @internal */
235
296
  _endDrawPlan() {
236
297
  this._activeDrawCommand = null;
298
+ const planBase = this._planBaseStack.pop() ?? 0;
299
+ const planHash = this._planHashStack.pop() ?? 0;
237
300
  if (this._drawPlanDepth > 0) {
238
301
  this._drawPlanDepth--;
239
302
  }
303
+ // A nested plan (filter / cacheAsBitmap) just ended: flush its draws, then
304
+ // free its transform rows so the frame-scoped buffer only grows with
305
+ // top-level render() calls. Top-level plans (depth back to 0) keep their rows
306
+ // so cross-call batching survives to the frame-end flush.
307
+ if (this._drawPlanDepth > 0) {
308
+ this._flushActiveRenderer();
309
+ this._getTransformStorage().buffer.rewindTo(planBase, planHash);
310
+ }
240
311
  // Only assert balance at the outermost plan: a nested render() (e.g.
241
312
  // cacheAsBitmap drawing its cache sprite) sees the still-open outer clips,
242
313
  // which are not leaks.
@@ -340,6 +411,39 @@ class WebGpuBackend {
340
411
  this._maskCompositor.compose(this, content, mask, x, y, width, height, blendMode);
341
412
  return this;
342
413
  }
414
+ composeWithBackdropBlend(source, x, y, width, height, mode) {
415
+ if (width <= 0 || height <= 0) {
416
+ return this;
417
+ }
418
+ if (this._deviceLost || this._device === null) {
419
+ return this;
420
+ }
421
+ this._flushActiveRenderer();
422
+ this._setActiveRenderer(null);
423
+ if (!this._backdropBlendCompositorConnected) {
424
+ this._backdropBlendCompositor.connect(this.device);
425
+ this._backdropBlendCompositorConnected = true;
426
+ }
427
+ this._backdropBlendCompositor.compose(this, source, x, y, width, height, mode);
428
+ return this;
429
+ }
430
+ /**
431
+ * Return the GPU texture backing `target`. For the root canvas target this is
432
+ * `context.getCurrentTexture()` (requires `COPY_SRC` usage configured on the
433
+ * canvas context). For a {@link RenderTexture} target it is the managed GPU
434
+ * texture. Used internally by {@link WebGpuBackdropBlendCompositor} for
435
+ * `copyTextureToTexture` backdrop capture.
436
+ * @internal
437
+ */
438
+ _renderTargetTexture(target) {
439
+ if (target === this._rootRenderTarget) {
440
+ return this.context.getCurrentTexture();
441
+ }
442
+ if (target instanceof RenderTexture) {
443
+ return this._getTextureState(target).texture;
444
+ }
445
+ throw new Error('WebGpuBackend._renderTargetTexture: unsupported render target type.');
446
+ }
343
447
  popScissorRect() {
344
448
  if (this._clipBoundsStack.length === 0) {
345
449
  return this;
@@ -409,7 +513,12 @@ class WebGpuBackend {
409
513
  return this;
410
514
  }
411
515
  setView(view) {
412
- this._flushActiveRenderer();
516
+ // Only flush the open batch when the view actually changes. The unconditional
517
+ // flush forced one draw call per render() call (each render() re-applies the
518
+ // same camera view), defeating cross-call batching.
519
+ if (this._renderTarget.view !== view) {
520
+ this._flushActiveRenderer();
521
+ }
413
522
  this._renderTarget.setView(view);
414
523
  return this;
415
524
  }
@@ -459,6 +568,10 @@ class WebGpuBackend {
459
568
  this._maskCompositor.disconnect();
460
569
  this._maskCompositorConnected = false;
461
570
  }
571
+ if (this._backdropBlendCompositorConnected) {
572
+ this._backdropBlendCompositor.disconnect();
573
+ this._backdropBlendCompositorConnected = false;
574
+ }
462
575
  this._transformStorage?.destroy();
463
576
  this._transformStorage = null;
464
577
  this._activeDrawCommand = null;
@@ -562,6 +675,17 @@ class WebGpuBackend {
562
675
  sampler: state.sampler,
563
676
  };
564
677
  }
678
+ /**
679
+ * The `GPUTextureFormat` a given `Texture`/`RenderTexture` is (or will be)
680
+ * backed by. Unlike {@link renderTargetFormat} (which reflects whatever
681
+ * target is *currently bound*), this is keyed off the texture itself, so
682
+ * callers that build a pipeline for a specific offscreen target — before
683
+ * that target is bound as the active render target — can match its format
684
+ * exactly instead of reading unrelated, possibly-stale backend state.
685
+ */
686
+ getTextureFormat(texture) {
687
+ return this._getGpuTextureFormat(texture);
688
+ }
565
689
  shouldPremultiplyTextureSample(texture) {
566
690
  return !(texture instanceof RenderTexture) && texture.premultiplyAlpha;
567
691
  }
@@ -631,11 +755,9 @@ class WebGpuBackend {
631
755
  if (typeof gpuNavigator.gpu.getPreferredCanvasFormat !== 'function') {
632
756
  throw new Error('WebGPU is available, but navigator.gpu.getPreferredCanvasFormat is not implemented.');
633
757
  }
634
- // Request the adapter before acquiring a WebGPU canvas context.
635
- // getContext('webgpu') is exclusive per canvas once it succeeds, the
636
- // same canvas can no longer produce a WebGL2 context. Doing it the
637
- // other way round means an unavailable adapter still locks the canvas
638
- // and breaks the automatic WebGL2 fallback in Application.
758
+ // Request the adapter AND the device before acquiring a WebGPU canvas
759
+ // context — see the getContext('webgpu') call below for why the order
760
+ // matters.
639
761
  let adapter;
640
762
  try {
641
763
  adapter = await gpuNavigator.gpu.requestAdapter();
@@ -646,10 +768,6 @@ class WebGpuBackend {
646
768
  if (adapter === null) {
647
769
  throw new Error('Could not acquire a WebGPU adapter.');
648
770
  }
649
- const context = this._canvas.getContext('webgpu');
650
- if (context === null) {
651
- throw new Error('Could not create WebGPU canvas context.');
652
- }
653
771
  if (typeof adapter.requestDevice !== 'function') {
654
772
  throw new Error('WebGPU adapter does not expose requestDevice().');
655
773
  }
@@ -663,12 +781,26 @@ class WebGpuBackend {
663
781
  if (device === null) {
664
782
  throw new Error('Could not acquire a WebGPU device.');
665
783
  }
784
+ // Acquire the WebGPU canvas context only after BOTH the adapter and the
785
+ // device are secured. getContext('webgpu') is exclusive per canvas — once
786
+ // it succeeds, the same canvas can no longer produce a WebGL2 context.
787
+ // Acquiring it earlier would lock the canvas even when WebGPU ultimately
788
+ // fails (a usable adapter but a failing requestDevice — e.g. a missing
789
+ // backend library), which breaks the automatic WebGL2 fallback in
790
+ // Application.
791
+ const context = this._canvas.getContext('webgpu');
792
+ if (context === null) {
793
+ throw new Error('Could not create WebGPU canvas context.');
794
+ }
666
795
  const format = gpuNavigator.gpu.getPreferredCanvasFormat();
667
796
  try {
668
797
  context.configure({
669
798
  device,
670
799
  format,
671
800
  alphaMode: 'opaque',
801
+ // COPY_SRC is required by WebGpuBackdropBlendCompositor to capture
802
+ // the root-canvas backdrop via copyTextureToTexture.
803
+ usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC,
672
804
  });
673
805
  }
674
806
  catch (error) {
@@ -781,6 +913,10 @@ class WebGpuBackend {
781
913
  this._maskCompositor.disconnect();
782
914
  this._maskCompositorConnected = false;
783
915
  }
916
+ if (this._backdropBlendCompositorConnected) {
917
+ this._backdropBlendCompositor.disconnect();
918
+ this._backdropBlendCompositorConnected = false;
919
+ }
784
920
  // Mipmap pipeline cache is keyed to the dead device — drop it.
785
921
  this._mipmapShaderModule = null;
786
922
  this._mipmapBindGroupLayout = null;
@@ -1041,7 +1177,9 @@ class WebGpuBackend {
1041
1177
  _getTextureUsage(texture) {
1042
1178
  const mipmapUsage = this._getMipLevelCount(texture) > 1 ? GPUTextureUsage.RENDER_ATTACHMENT : 0;
1043
1179
  if (texture instanceof RenderTexture) {
1044
- return GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.RENDER_ATTACHMENT | mipmapUsage;
1180
+ // COPY_SRC is required by WebGpuBackdropBlendCompositor to capture the
1181
+ // backdrop from an offscreen RenderTexture target via copyTextureToTexture.
1182
+ return GPUTextureUsage.COPY_SRC | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.RENDER_ATTACHMENT | mipmapUsage;
1045
1183
  }
1046
1184
  return GPUTextureUsage.COPY_DST | GPUTextureUsage.TEXTURE_BINDING | mipmapUsage;
1047
1185
  }
@@ -1148,48 +1286,7 @@ class WebGpuBackend {
1148
1286
  this._mipmapPipeline === null ||
1149
1287
  this._mipmapSampler === null) {
1150
1288
  this._mipmapShaderModule = this.device.createShaderModule({
1151
- code: `
1152
- struct VertexOutput {
1153
- @builtin(position) position: vec4<f32>,
1154
- @location(0) texcoord: vec2<f32>,
1155
- };
1156
-
1157
- @group(0) @binding(0)
1158
- var sourceTexture: texture_2d<f32>;
1159
- @group(0) @binding(1)
1160
- var sourceSampler: sampler;
1161
-
1162
- @vertex
1163
- fn vertexMain(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
1164
- var positions = array<vec2<f32>, 3>(
1165
- vec2<f32>(-1.0, -1.0),
1166
- vec2<f32>(3.0, -1.0),
1167
- vec2<f32>(-1.0, 3.0)
1168
- );
1169
- // Y is flipped vs the position array: NDC Y points up, but texture UV
1170
- // Y points down (UV (0,0) is the top-left of the source). Matching the
1171
- // two ensures that the output texture's top-left pixel samples from the
1172
- // source's top-left, so every mip level has the same orientation as the
1173
- // level above it. Prior to this, odd mip levels were rendered upside
1174
- // down, producing visible texture flips at view-size doublings.
1175
- var texcoords = array<vec2<f32>, 3>(
1176
- vec2<f32>(0.0, 1.0),
1177
- vec2<f32>(2.0, 1.0),
1178
- vec2<f32>(0.0, -1.0)
1179
- );
1180
- var output: VertexOutput;
1181
-
1182
- output.position = vec4<f32>(positions[vertexIndex], 0.0, 1.0);
1183
- output.texcoord = texcoords[vertexIndex];
1184
-
1185
- return output;
1186
- }
1187
-
1188
- @fragment
1189
- fn fragmentMain(input: VertexOutput) -> @location(0) vec4<f32> {
1190
- return textureSample(sourceTexture, sourceSampler, input.texcoord);
1191
- }
1192
- `,
1289
+ code: mipmapWgsl,
1193
1290
  });
1194
1291
  this._mipmapBindGroupLayout = this.device.createBindGroupLayout({
1195
1292
  entries: [
@@ -1258,5 +1355,5 @@ function webgpuDataTextureFormat(format) {
1258
1355
  }
1259
1356
  }
1260
1357
 
1261
- export { WebGpuBackend };
1358
+ export { WebGpuBackend, mipmapWgsl };
1262
1359
  //# sourceMappingURL=WebGpuBackend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuBackend.js","sources":["../../../../../src/rendering/webgpu/WebGpuBackend.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AACA;AAuDA,MAAM,oBAAoB,GAAqB,YAAY;AAC3D;AACA,MAAM,+BAA+B,GAAG,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;AAmBG;MACU,aAAa,CAAA;AACR,IAAA,WAAW,GAAG,iBAAiB,CAAC,MAAM;AACtC,IAAA,gBAAgB,GAAoC,IAAI,gBAAgB,EAAiB;AACzF,IAAA,YAAY,GAAG,IAAI,MAAM,EAAuB;AAChD,IAAA,gBAAgB,GAAG,IAAI,MAAM,EAAE;AAE9B,IAAA,OAAO;AACP,IAAA,iBAAiB;AAC1B,IAAA,WAAW,GAAU,IAAI,KAAK,EAAE;IAChC,WAAW,GAAG,KAAK;IACnB,aAAa,GAAG,KAAK;IACrB,UAAU,GAAG,KAAK;IAClB,gBAAgB,GAAG,CAAC;IACpB,oBAAoB,GAAG,CAAC;IACxB,kBAAkB,GAAG,GAAG;AACf,IAAA,cAAc,GAA4D,IAAI,GAAG,EAAsD;AACvI,IAAA,uBAAuB,GAA6C,IAAI,GAAG,EAAuC;AAClH,IAAA,4BAA4B,GAAkC,IAAI,GAAG,EAA4B;IACjG,wBAAwB,GAAoB,EAAE;IAC9C,gBAAgB,GAAgB,EAAE;IAClC,eAAe,GAA2B,EAAE;AAC5C,IAAA,WAAW,GAAW,IAAI,MAAM,EAAE;AAClC,IAAA,WAAW,GAAW,IAAI,MAAM,EAAE;AAClC,IAAA,eAAe,GAAyB,IAAI,oBAAoB,EAAE;IAC3E,wBAAwB,GAAG,KAAK;IAChC,mBAAmB,GAA2B,IAAI;IAClD,sBAAsB,GAA8B,IAAI;IACxD,qBAAqB,GAA6B,IAAI;IACtD,eAAe,GAA6B,IAAI;IAChD,cAAc,GAAsB,IAAI;IACxC,QAAQ,GAA4B,IAAI;IACxC,OAAO,GAAqB,IAAI;IAChC,OAAO,GAA4B,IAAI;IACvC,kBAAkB,GAAyB,IAAI;AAC/C,IAAA,aAAa;AACJ,IAAA,cAAc,GAAW,IAAI,MAAM,EAAE;IAC9C,SAAS,GAAoB,IAAI;IACjC,QAAQ,GAAmC,IAAI;IAC/C,eAAe,GAAG,KAAK;IACvB,kBAAkB,GAAG,KAAK;IACjB,MAAM,GAAgB,iBAAiB,EAAE;IACzC,WAAW,GAA0B,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC;AACpF,IAAA,iBAAiB,GAAkC,IAAI,sBAAsB,EAAE;IAC/E,kBAAkB,GAAuB,IAAI;IAC7C,wBAAwB,GAAiC,IAAI;IAC7D,cAAc,GAAG,CAAC;AAE1B,IAAA,WAAA,CAAmB,GAAgB,EAAA;QACjC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE;AAC9C,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,IAAI,GAAG;AACxC,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,IAAI,GAAG;AAC1C,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU;AAEzC,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;QAE3C,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC;;AAGA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IAC5B;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;IAChC;AAEA,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;QAC1D;QAEA,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;QAClE;QAEA,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;QACjE;QAEA,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,IAAW,kBAAkB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,oBAAoB;IAC3F;AAEA,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,eAAe;IAC7B;AAEA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;;;;AAMG;AACH,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;;AAGA,IAAA,IAAW,iBAAiB,GAAA;QAC1B,OAAO,IAAI,CAAC,kBAAkB;IAChC;AAEA;;;;;AAKG;AACH,IAAA,IAAW,gBAAgB,GAAA;QACzB,QAAQ,IAAI,CAAC,wBAAwB,KAAK,IAAI,qBAAqB,CAAC,IAAI,CAAC;IAC3E;AAEA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEO,IAAA,aAAa,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAE5B,QAAA,OAAO,IAAI;IACb;IAEO,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AACpE,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,gBAAA,MAAM,KAAK;AACb,YAAA,CAAC,CAAC;QACJ;QAEA,OAAO,IAAI,CAAC,kBAAkB;IAChC;IAEO,UAAU,GAAA;AACf,QAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;AAE7B,QAAA,OAAO,IAAI;IACb;;AAGO,IAAA,cAAc,CAAC,SAAiB,EAAA;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAE3C,QAAA,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;;;;;AAMxB,QAAA,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC/D,YAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5D;AAEA,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAC9B,IAAI,CAAC,cAAc,EAAE;IACvB;;AAGO,IAAA,yBAAyB,CAAC,OAA8B,EAAE,UAAkB,EAAE,KAAa,EAAA;;;;;;;;;;;;AAYhG,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC3C,QAAA,MAAM,GAAG,GAAG,UAAU,GAAG,KAAK;AAE9B,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE;;YAGzB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE;gBACvC;YACF;AAEA,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;AAE7B,YAAA,IAAI,8BAA8B,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACjD,gBAAA,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7E;iBAAO;gBACL,OAAO,CAAC,kBAAkB,EAAE;YAC9B;QACF;IACF;;AAGO,IAAA,mBAAmB,CAAC,OAAoB,EAAA;;;;AAI7C,QAAA,IAAI,CAAC,kBAAkB,GAAG,OAAO;IACnC;;IAGO,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAE9B,QAAA,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;YAC3B,IAAI,CAAC,cAAc,EAAE;QACvB;;;;AAKA,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI,EAAE;YACvE,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,EAAE;AAEzE,YAAA,IAAI,UAAU,GAAG,CAAC,EAAE;AAClB,gBAAA,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE;AAC5C,gBAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,UAAU,CAAA,mBAAA,CAAqB,CAAC;YACpG;QACF;IACF;AAEO,IAAA,IAAI,CAAC,QAAkB,EAAA;QAC5B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC7C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC;AAExD,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AACjC,QAAA,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAE5B,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,aAAa,CAAC,IAAU,EAAE,UAA6B,EAAE,KAAuB,EAAE,KAAa,EAAA;QACpG,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACrF,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AAEpD,QAAA,IAAI,EAAE,QAAQ,YAAY,kBAAkB,CAAC,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC;QACvF;AAEA,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;;;;;;AAOjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC3C,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC;AAEpE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC9B,YAAA,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC;QAC/C;QAEA,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC;AACxD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,KAAK;AAEnC,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,OAAO,CAAC,IAAuB,EAAA;QACpC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC7C,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAElB,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,YAAY,CAAC,UAA6B,EAAA;;;;AAI/C,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,eAAe,CAAC,MAA2B,EAAA;AAChD,QAAA,MAAM,gBAAgB,GAAG,MAAM,IAAI,IAAI,CAAC,iBAAiB;AAEzD,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,gBAAgB,EAAE;YAC3C,IAAI,CAAC,oBAAoB,EAAE;YAE3B,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACjD,gBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC;YACnD;AAEA,YAAA,IAAI,CAAC,aAAa,GAAG,gBAAgB;AACrC,YAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;AAEjC,YAAA,IAAI,gBAAgB,KAAK,IAAI,CAAC,iBAAiB,EAAE;AAC/C,gBAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;YAC/C;QACF;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,eAAe,CAAC,MAAiB,EAAA;QACtC,IAAI,CAAC,oBAAoB,EAAE;QAE3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC3C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI;AACnH,QAAA,MAAM,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,QAAQ;AAE3F,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;AAEvC,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,oBAAoB,CACzB,OAAgC,EAChC,IAA6B,EAC7B,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,SAAqB,EAAA;QAErB,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AAC7B,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC7C,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAE7B,QAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACzC,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;QACtC;QAEA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AAEjF,QAAA,OAAO,IAAI;IACb;IAEO,cAAc,GAAA;QACnB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,oBAAoB,EAAE;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;QAE/C,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,OAAO,EAAE;QACvB;AAEA,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;AAE1B,QAAA,OAAO,IAAI;IACb;IAEO,eAAe,CAAC,KAAe,EAAE,SAAiB,EAAA;QACvD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC7C,YAAA,OAAO,IAAI;QACb;;;;;QAMA,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;AAEvD,QAAA,OAAO,IAAI;IACb;IAEO,cAAc,GAAA;QACnB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC7C,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE;AAEtC,QAAA,OAAO,IAAI;IACb;IAEO,cAAc,GAAA;QACnB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAE;AACnE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC;AAC1H,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAE7H,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;YAC9B,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AAC9B,YAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AACnD,YAAA,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;SACtD;IACH;IAEO,oBAAoB,CAAC,KAAa,EAAE,MAAc,EAAA;AACvD,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;;YAEzE,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAE;AAErD,YAAA,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;gBACxD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAE9C,gBAAA,OAAO,OAAO;YAChB;QACF;AAEA,QAAA,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;IACzC;AAEO,IAAA,oBAAoB,CAAC,OAAsB,EAAA;QAChD,IAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACnD,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;AAE3C,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,OAAO,CAAC,IAAiB,EAAA;QAC9B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;AAEhC,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,KAAK,CAAC,KAAa,EAAA;QACxB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC3B;AAEA,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAE3B,QAAA,OAAO,IAAI;IACb;IAEO,MAAM,CAAC,KAAa,EAAE,MAAc,EAAA;QACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5C,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAE/B,QAAA,OAAO,IAAI;IACb;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACnC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,oBAAoB,EAAE;QAC7B;AAAO,aAAA,IAAI,IAAI,CAAC,eAAe,EAAE;;;AAG/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;QACjC;AAEA,QAAA,OAAO,IAAI;IACb;IAEO,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;QAC/B,IAAI,CAAC,uBAAuB,EAAE;QAC9B,IAAI,CAAC,+BAA+B,EAAE;AAEtC,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC9C,UAAU,CAAC,OAAO,EAAE;QACtB;AAEA,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAE1B,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;QACvC;AAEA,QAAA,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,IAAI,CAAC,wBAAwB,EAAE,cAAc,EAAE;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;AAEvB,QAAA,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC,EAAE;AAClE,YAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;QACvC;AACA,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/B,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;AAClC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;AAC3C,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;IAClC;IAEO,qBAAqB,GAAA;AAC1B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa;AACvC,QAAA,IAAI,IAAoB;AAExB,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,iBAAiB,EAAE;YAC3C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE;QACtD;AAAO,aAAA,IAAI,YAAY,YAAY,aAAa,EAAE;;;YAGhD,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI;QAC7C;aAAO;AACL,YAAA,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC;QAC3F;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;AAEpF,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAE5B,OAAO;YACL,IAAI;AACJ,YAAA,UAAU,EAAE;AACV,gBAAA,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG;AAC3B,gBAAA,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG;AAC3B,gBAAA,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG;AAC3B,gBAAA,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACtB,aAAA;YACD,MAAM;AACN,YAAA,OAAO,EAAE,OAAO;SACjB;IACH;AAEO,IAAA,MAAM,CAAC,aAA+B,EAAA;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACjD,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAChC;AAAO,aAAA,IAAI,IAAI,CAAC,aAAa,YAAY,aAAa,EAAE;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;AAEnD,YAAA,KAAK,CAAC,UAAU,GAAG,IAAI;AAEvB,YAAA,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC;YAC3D;QACF;IACF;AAEA;;;;;AAKG;AACI,IAAA,iBAAiB,CAAC,MAAoB,EAAA;AAC3C,QAAA,IAAI,MAAM,KAAK,IAAI,CAAC,iBAAiB,EAAE;YACrC,OAAO,IAAI,CAAC,kBAAkB;QAChC;AAEA,QAAA,IAAI,MAAM,YAAY,aAAa,EAAE;YACnC,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,UAAU;QACjD;AAEA,QAAA,OAAO,KAAK;IACd;AAEA;;;;;;;AAOG;AACI,IAAA,uBAAuB,CAAC,MAAoB,EAAA;AACjD,QAAA,IAAI,MAAM,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACrC,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACnE;AAEA,QAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IACvD;AAEO,IAAA,iBAAiB,CAAC,OAAgC,EAAA;QAIvD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAExC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB;IACH;AAEO,IAAA,8BAA8B,CAAC,OAAgC,EAAA;QACpE,OAAO,EAAE,OAAO,YAAY,aAAa,CAAC,IAAI,OAAO,CAAC,gBAAgB;IACxE;;AAGO,IAAA,yBAAyB,CAAC,QAAgB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;IACvF;AAEA;;;;;;;;AAQG;AACI,IAAA,cAAc,CAAC,QAAkB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACzF;AAEA;;;;;;AAMG;AACK,IAAA,qBAAqB,CAAC,QAAkB,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;AACjC,QAAA,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,iBAAiB;AAC9C,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACtD,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAEzD,QAAA,OAAO,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC;IAC1F;AAEA;;;;;;AAMG;IACI,iBAAiB,GAAA;QACtB,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC;IACzD;AAEQ,IAAA,kBAAkB,CAAC,QAAyB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QAC3B;IACF;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;IACzB;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;AAC3E,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,sBAAsB,EAAE;QACvD;QAEA,OAAO,IAAI,CAAC,iBAAiB;IAC/B;AAEQ,IAAA,MAAM,WAAW,GAAA;AACvB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAE5C,QAAA,IAAI,YAAY,KAAK,IAAI,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;QAC1D;QAEA,IAAI,OAAO,YAAY,CAAC,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE;AACzD,YAAA,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC;QAC9F;QAEA,IAAI,OAAO,YAAY,CAAC,GAAG,CAAC,wBAAwB,KAAK,UAAU,EAAE;AACnE,YAAA,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC;QACxG;;;;;;AAOA,QAAA,IAAI,OAA0B;AAE9B,QAAA,IAAI;YACF,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE;QACnD;QAAE,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,CAAC,0BAA0B,CAAC,qCAAqC,EAAE,KAAK,CAAC;QACrF;AAEA,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;QACxD;QAEA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AAEjD,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;QAC5D;AAEA,QAAA,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE;AAC/C,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;QACpE;AAEA,QAAA,IAAI,MAAwB;AAE5B,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE;QACxC;QAAE,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,CAAC,0BAA0B,CAAC,oCAAoC,EAAE,KAAK,CAAC;QACpF;AAEA,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;QACvD;QAEA,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,wBAAwB,EAAE;AAE1D,QAAA,IAAI;YACF,OAAO,CAAC,SAAS,CAAC;gBAChB,MAAM;gBACN,MAAM;AACN,gBAAA,SAAS,EAAE,QAAQ;AACpB,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,CAAC,0BAA0B,CAAC,gDAAgD,EAAE,KAAK,CAAC;QAChG;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;QAC/B,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;;;;;;;AAQxE,QAAA,MAAM,cAAc,GAAgC,CAAC,MAAM,EAAE,oBAAoB,CAAC;AAElF,QAAA,MAAM,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC;AAEpD,QAAA,OAAO,IAAI;IACb;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;QACF;AAEA,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO;QAErC,KAAK,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAG;;;;YAIrC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,EAAE;gBACxD;YACF;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC9B,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,iBAAiB,CAAC,IAAuB,EAAA;AAC/C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;;;AAIhC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;YAC/B;QACF;AAEA,QAAA,KAAK,IAAI,CAAC,gBAAgB,EAAE;IAC9B;AAEQ,IAAA,MAAM,gBAAgB,GAAA;QAC5B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE;YACzC;QACF;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAEzB,QAAA,IAAI;AACF,YAAA,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC5E,IAAI,CAAC,gBAAgB,EAAE;gBAEvB,IAAI,CAAC,oBAAoB,EAAE;AAE3B,gBAAA,IAAI;AACF,oBAAA,MAAM,IAAI,CAAC,WAAW,EAAE;AAExB,oBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;wBACnB;oBACF;AAEA,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,oBAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;;;;;oBAKzB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAEhC;gBACF;AAAE,gBAAA,MAAM;AACN,oBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;wBACnB;oBACF;AAEA,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAE9E,oBAAA,MAAM,IAAI,OAAO,CAAO,OAAO,IAAG;AAChC,wBAAA,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5B,oBAAA,CAAC,CAAC;gBACJ;YACF;QACF;gBAAU;AACR,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;QAC5B;IACF;AAEA;;;;;AAKG;IACK,oBAAoB,GAAA;;;;;QAK1B,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC7D,YAAA,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC;QACxC;AAEA,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;;;AAI3B,QAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC;;;AAIxC,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAElC,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;QACvC;;AAGA,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/B,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;AAClC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;;;AAG9B,QAAA,IAAI,CAAC,wBAAwB,EAAE,cAAc,EAAE;AAE/C,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACjC;IAEQ,MAAM,yBAAyB,CAAC,OAAoC,EAAA;QAC1E,MAAM,QAAQ,GAAyB,EAAE;QAEzC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE;YACxD,MAAM,SAAS,GAAG,QAEhB;AAEF,YAAA,IAAI,OAAO,SAAS,CAAC,gBAAgB,KAAK,UAAU,EAAE;gBACpD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACpD;QACF;AAEA,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7B;IAEQ,gBAAgB,GAAA;QACtB,MAAM,YAAY,GAAG,SAA8C;QAEnE,OAAO,YAAY,CAAC,GAAG,GAAG,YAAY,GAAG,IAAI;IAC/C;IAEQ,0BAA0B,CAAC,OAAe,EAAE,KAAc,EAAA;AAChE,QAAA,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,OAAO,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;QACjD;AAEA,QAAA,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;IAC3B;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAC7B;IACF;IAEQ,+BAA+B,GAAA;AACrC,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACnD,OAAO,CAAC,OAAO,EAAE;QACnB;AAEA,QAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC;IAC1C;AAEQ,IAAA,gBAAgB,CAAC,OAAgC,EAAA;QACvD,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAE5C,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAC3C,gBAAA,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;oBACjC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AACpC,iBAAA;AACD,gBAAA,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;AAC1C,gBAAA,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACtC,aAAA,CAAC;YAEF,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAErD,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE;AAC7B,gBAAA,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBACrC,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,aAAa;AACb,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,cAAc,EAAE,CAAC;aAClB;YAED,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAEzG,MAAM,cAAc,GAAG,MAAW;AAChC,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7B,YAAA,CAAC;AAED,YAAA,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC;YACzD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;QACzC;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,YAAY,CAAC,OAAgC,EAAA;AACnD,QAAA,IAAI,EAAE,OAAO,YAAY,aAAa,CAAC,IAAI,EAAE,OAAO,YAAY,WAAW,CAAC,KAAK,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACxJ,YAAA,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC;QAC5G;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC5C,QAAA,MAAM,cAAc,GAAG,OAAO,YAAY,aAAa,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO;QAClG,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAErD,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,cAAc,EAAE;YACpC,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,EAAE;AAC7G,gBAAA,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;AAEvB,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAC/C,oBAAA,IAAI,EAAE;wBACJ,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;AACvB,qBAAA;AACD,oBAAA,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;oBAC1C,aAAa;AACb,oBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACtC,iBAAA,CAAC;AAEF,gBAAA,KAAK,CAAC,OAAO,GAAG,cAAc;AAC9B,gBAAA,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC,UAAU,EAAE;AACxC,gBAAA,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;AAC3B,gBAAA,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;AAC7B,gBAAA,KAAK,CAAC,aAAa,GAAG,aAAa;AACnC,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAK;;gBAExB,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC9H;YAEA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAE5C,YAAA,IAAI,OAAO,YAAY,WAAW,EAAE;;;;AAIlC,gBAAA,MAAM,MAAM,GAAsB,OAAO,CAAC,MAAM;AAChD,gBAAA,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC;AAClD,gBAAA,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE;AAC5C,gBAAA,MAAM,YAAY,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;gBAExE,IAAI,YAAY,EAAE;AAChB,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAC5B,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAC1B,OAAO,CAAC,MAAM,EACd;AACE,wBAAA,WAAW,EAAE,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,aAAa;wBACrD,YAAY,EAAE,OAAO,CAAC,MAAM;AAC7B,qBAAA,EACD,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CACjD;AACD,oBAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC;gBACjG;qBAAO;;AAEL,oBAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ;AACpC,oBAAA,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa;oBAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,aAAa;oBAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,YAAY,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC;AACpH,oBAAA,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,GAAG,QAAQ;AAC5C,oBAAA,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,GAAG,QAAQ;AAE9C,oBAAA,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;AAC5C,wBAAA,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,QAAQ;AACxE,wBAAA,MAAM,WAAW,GAAG,GAAG,GAAG,cAAc;AACxC,wBAAA,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc,CAAC,EAAE,WAAW,CAAC;oBAChG;AAEA,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAC5B,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAChE,SAAS,EACT,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,GAAG,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,EAC1E,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAC/C;AACD,oBAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;gBACpF;AAEA,gBAAA,KAAK,CAAC,UAAU,GAAG,IAAI;YACzB;AAAO,iBAAA,IAAI,EAAE,OAAO,YAAY,aAAa,CAAC,EAAE;AAC9C,gBAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAO;AAE9B,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAC1C;oBACE,MAAM;AACN,oBAAA,KAAK,EAAE,KAAK;iBACb,EACD;oBACE,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,EACD;oBACE,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;AACvB,iBAAA,CACF;AACD,gBAAA,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,+BAA+B,CAAC;AAEtG,gBAAA,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE;oBAC3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC;gBAC3D;YACF;AAEA,YAAA,KAAK,CAAC,OAAO,GAAG,cAAc;QAChC;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,aAAa,CAAC,OAAgC,EAAA;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC;QAEhE,IAAI,cAAc,EAAE;AAClB,YAAA,OAAO,CAAC,qBAAqB,CAAC,cAAc,CAAC;AAC7C,YAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9C;QAEA,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AAC3C,YAAA,KAAK,CAAC,cAAc,GAAG,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;QACrC;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACtB;IACF;AAEQ,IAAA,sBAAsB,CAAC,MAAoB,EAAA;QACjD,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClD,MAAM,cAAc,GAAG,MAAW;AAChC,gBAAA,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AACjC,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;gBAC7C;AAEA,gBAAA,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,MAAM,CAAC;AAC3D,gBAAA,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC;AAClD,YAAA,CAAC;AAED,YAAA,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;QAC/D;IACF;AAEQ,IAAA,wBAAwB,CAAC,MAAoB,EAAA;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,MAAM,CAAC;QAEpE,IAAI,cAAc,EAAE;AAClB,YAAA,MAAM,CAAC,qBAAqB,CAAC,cAAc,CAAC;AAC5C,YAAA,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC;QAClD;IACF;AAEQ,IAAA,aAAa,CAAC,MAAiB,EAAA;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1G,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;AAC5C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;QAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;QAEtC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC;IAEQ,eAAe,CAAC,KAA2B,EAAE,MAA4B,EAAA;AAC/E,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACxC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAEzE,OAAO;AACL,YAAA,CAAC,EAAE,IAAI;AACP,YAAA,CAAC,EAAE,GAAG;YACN,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;SAClC;IACH;AAEQ,IAAA,cAAc,CAAC,OAAgC,EAAA;;;;;;AAMrD,QAAA,MAAM,WAAW,GAAG,OAAO,YAAY,WAAW,KAAK,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;AACjH,QAAA,MAAM,MAAM,GAAkB,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;AAE9F,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/B,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;YACpD,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;AACpD,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,YAAY,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC;AACrF,SAAA,CAAC;IACJ;AAEQ,IAAA,oBAAoB,CAAC,OAAgC,EAAA;AAC3D,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;;;AAGlC,YAAA,MAAM,MAAM,GAAsB,OAAO,CAAC,MAAM;AAChD,YAAA,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC,SAAS;QAClD;AACA,QAAA,OAAO,oBAAoB;IAC7B;AAEQ,IAAA,gBAAgB,CAAC,OAAgC,EAAA;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,iBAAiB,GAAG,CAAC;AAE/F,QAAA,IAAI,OAAO,YAAY,aAAa,EAAE;YACpC,OAAO,eAAe,CAAC,eAAe,GAAG,eAAe,CAAC,iBAAiB,GAAG,WAAW;QAC1F;QAEA,OAAO,eAAe,CAAC,QAAQ,GAAG,eAAe,CAAC,eAAe,GAAG,WAAW;IACjF;AAEQ,IAAA,eAAe,CAAC,QAAmB,EAAA;QACzC,QAAQ,QAAQ;YACd,KAAK,SAAS,CAAC,MAAM;AACnB,gBAAA,OAAO,QAAQ;YACjB,KAAK,SAAS,CAAC,cAAc;AAC3B,gBAAA,OAAO,eAAe;AACxB,YAAA;AACE,gBAAA,OAAO,eAAe;;IAE5B;AAEQ,IAAA,cAAc,CAAC,SAAqB,EAAA;QAC1C,QAAQ,SAAS;YACf,KAAK,UAAU,CAAC,OAAO;YACvB,KAAK,UAAU,CAAC,oBAAoB;YACpC,KAAK,UAAU,CAAC,mBAAmB;AACjC,gBAAA,OAAO,SAAS;AAClB,YAAA;AACE,gBAAA,OAAO,QAAQ;;IAErB;AAEQ,IAAA,oBAAoB,CAAC,SAAqB,EAAA;QAChD,QAAQ,SAAS;YACf,KAAK,UAAU,CAAC,mBAAmB;YACnC,KAAK,UAAU,CAAC,kBAAkB;AAChC,gBAAA,OAAO,QAAQ;AACjB,YAAA;AACE,gBAAA,OAAO,SAAS;;IAEtB;;AAGQ,IAAA,qBAAqB,CAAC,OAAgC,EAAA;AAC5D,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;;;AAGlC,YAAA,MAAM,MAAM,GAAsB,OAAO,CAAC,MAAM;AAChD,YAAA,OAAO,wBAAwB,CAAC,MAAM,CAAC;QACzC;AAEA,QAAA,OAAO,+BAA+B;IACxC;;IAGQ,qBAAqB,CAAC,OAAgC,EAAE,aAAqB,EAAA;AACnF,QAAA,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAChH;AAEQ,IAAA,iBAAiB,CAAC,OAAgC,EAAA;AACxD,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAC3B,YAAA,OAAO,CAAC;QACV;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;AAEvD,QAAA,IAAI,OAAO,IAAI,CAAC,EAAE;AAChB,YAAA,OAAO,CAAC;QACV;AAEA,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;IAC3C;IAEQ,gBAAgB,CAAC,OAAmB,EAAE,aAAqB,EAAA;AACjE,QAAA,IAAI,aAAa,IAAI,CAAC,EAAE;YACtB;QACF;AAEA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;AAElD,QAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,QAAQ,EAAE,EAAE;AAC3D,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;gBAC5C,MAAM,EAAE,SAAS,CAAC,eAAe;AACjC,gBAAA,OAAO,EAAE;AACP,oBAAA;AACE,wBAAA,OAAO,EAAE,CAAC;AACV,wBAAA,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;4BAC3B,YAAY,EAAE,QAAQ,GAAG,CAAC;AAC1B,4BAAA,aAAa,EAAE,CAAC;yBACjB,CAAC;AACH,qBAAA;AACD,oBAAA;AACE,wBAAA,OAAO,EAAE,CAAC;wBACV,QAAQ,EAAE,SAAS,CAAC,OAAO;AAC5B,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC;AACF,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;AACnC,gBAAA,gBAAgB,EAAE;AAChB,oBAAA;AACE,wBAAA,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;AACvB,4BAAA,YAAY,EAAE,QAAQ;AACtB,4BAAA,aAAa,EAAE,CAAC;yBACjB,CAAC;AACF,wBAAA,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtC,wBAAA,MAAM,EAAE,OAAO;AACf,wBAAA,OAAO,EAAE,OAAO;AACjB,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;AACpC,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,GAAG,EAAE;QACZ;AAEA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C;IAEQ,mBAAmB,GAAA;AAKzB,QAAA,IACE,IAAI,CAAC,mBAAmB,KAAK,IAAI;YACjC,IAAI,CAAC,sBAAsB,KAAK,IAAI;YACpC,IAAI,CAAC,qBAAqB,KAAK,IAAI;YACnC,IAAI,CAAC,eAAe,KAAK,IAAI;AAC7B,YAAA,IAAI,CAAC,cAAc,KAAK,IAAI,EAC5B;YACA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;AACxD,gBAAA,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCb,CAAA;AACM,aAAA,CAAC;YACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;AAC9D,gBAAA,OAAO,EAAE;AACP,oBAAA;AACE,wBAAA,OAAO,EAAE,CAAC;wBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,wBAAA,OAAO,EAAE;AACP,4BAAA,UAAU,EAAE,OAAO;AACpB,yBAAA;AACF,qBAAA;AACD,oBAAA;AACE,wBAAA,OAAO,EAAE,CAAC;wBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,WAAW;AAClB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC;YACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;AAC5D,gBAAA,gBAAgB,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAChD,aAAA,CAAC;YACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;gBACtD,MAAM,EAAE,IAAI,CAAC,qBAAqB;AAClC,gBAAA,MAAM,EAAE;oBACN,MAAM,EAAE,IAAI,CAAC,mBAAmB;AAChC,oBAAA,UAAU,EAAE,YAAY;AACzB,iBAAA;AACD,gBAAA,QAAQ,EAAE;oBACR,MAAM,EAAE,IAAI,CAAC,mBAAmB;AAChC,oBAAA,UAAU,EAAE,cAAc;AAC1B,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,MAAM,EAAE,oBAAoB;4BAC5B,SAAS,EAAE,aAAa,CAAC,GAAG;AAC7B,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA,SAAS,EAAE;AACT,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA;AACF,aAAA,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAC9C,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,YAAY,EAAE,SAAS;AACxB,aAAA,CAAC;QACJ;QAEA,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,sBAAsB;YAC5C,QAAQ,EAAE,IAAI,CAAC,eAAe;YAC9B,OAAO,EAAE,IAAI,CAAC,cAAc;SAC7B;IACH;AACD;AAQD,SAAS,uBAAuB,CAAC,MAAyB,EAAA;IACxD,QAAQ,MAAM;AACZ,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;AAChE,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;AACjE,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;AACnE,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;;AAEzE;;;;"}
1
+ {"version":3,"file":"WebGpuBackend.js","sources":["../../../../../src/rendering/webgpu/WebGpuBackend.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuBlendState.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgpu/WebGpuBlendState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,UAAU,GAAG,aAAa,CAiGxE"}
1
+ {"version":3,"file":"WebGpuBlendState.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgpu/WebGpuBlendState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,UAAU,GAAG,aAAa,CAyExE"}
@@ -59,36 +59,12 @@ function getWebGpuBlendState(blendMode) {
59
59
  dstFactor: 'one-minus-src-alpha',
60
60
  },
61
61
  };
62
- case BlendModes.Darken:
63
- // `min`/`max` ignore the blend factors, so this cannot account for source
64
- // coverage — transparent (premultiplied rgb=0) texels darken to black.
65
- // Reliable only for opaque sources. See {@link BlendModes.Darken}.
66
- return {
67
- color: {
68
- operation: 'min',
69
- srcFactor: 'one',
70
- dstFactor: 'one',
71
- },
72
- alpha: {
73
- operation: 'min',
74
- srcFactor: 'one',
75
- dstFactor: 'one',
76
- },
77
- };
78
- case BlendModes.Lighten:
79
- return {
80
- color: {
81
- operation: 'max',
82
- srcFactor: 'one',
83
- dstFactor: 'one',
84
- },
85
- alpha: {
86
- operation: 'max',
87
- srcFactor: 'one',
88
- dstFactor: 'one',
89
- },
90
- };
91
62
  default:
63
+ // Modes 5–17 (Darken, Lighten, Overlay, …, Luminosity) are compositor-handled
64
+ // (backdrop-aware shader path). Inside the barrier texture capture they render
65
+ // as Normal so the captured sprite is pristine premultiplied RGBA; the actual
66
+ // W3C blend happens in WebGpuBackdropBlendCompositor. All other unrecognised
67
+ // modes fall back to Normal (premultiplied source-over).
92
68
  return {
93
69
  color: {
94
70
  operation: 'add',
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuBlendState.js","sources":["../../../../../src/rendering/webgpu/WebGpuBlendState.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAIA;;;AAGG;AACG,SAAU,mBAAmB,CAAC,SAAqB,EAAA;IACvD,QAAQ,SAAS;QACf,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;aACF;QACH,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,MAAM;AACjB,oBAAA,SAAS,EAAE,eAAe;AAC3B,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,MAAM;AACjB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;aACF;QACH,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,WAAW;AACtB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;aACF;QACH,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,eAAe;AAC3B,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;aACF;QACH,KAAK,UAAU,CAAC,MAAM;;;;YAIpB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;aACF;QACH,KAAK,UAAU,CAAC,OAAO;YACrB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;aACF;AACH,QAAA;YACE,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;aACF;;AAEP;;;;"}
1
+ {"version":3,"file":"WebGpuBlendState.js","sources":["../../../../../src/rendering/webgpu/WebGpuBlendState.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAIA;;;AAGG;AACG,SAAU,mBAAmB,CAAC,SAAqB,EAAA;IACvD,QAAQ,SAAS;QACf,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;aACF;QACH,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,MAAM;AACjB,oBAAA,SAAS,EAAE,eAAe;AAC3B,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,MAAM;AACjB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;aACF;QACH,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,WAAW;AACtB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;aACF;QACH,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,eAAe;AAC3B,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;aACF;AACH,QAAA;;;;;;YAME,OAAO;AACL,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,SAAS,EAAE,qBAAqB;AACjC,iBAAA;aACF;;AAEP;;;;"}
@@ -2,6 +2,8 @@ import type { RenderTexture } from '#rendering/texture/RenderTexture';
2
2
  import type { Texture } from '#rendering/texture/Texture';
3
3
  import type { BlendModes } from '#rendering/types';
4
4
  import type { WebGpuBackend } from './WebGpuBackend';
5
+ /** WGSL source for the mask compositor pipeline. @internal */
6
+ export declare const compositorShaderSource = "\nstruct ProjectionUniforms {\n matrix: mat4x4<f32>,\n};\n\n@group(0) @binding(0)\nvar<uniform> projection: ProjectionUniforms;\n\n@group(1) @binding(0)\nvar contentTexture: texture_2d<f32>;\n@group(1) @binding(1)\nvar contentSampler: sampler;\n@group(1) @binding(2)\nvar maskTexture: texture_2d<f32>;\n@group(1) @binding(3)\nvar maskSampler: sampler;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) texcoord: vec2<f32>,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texcoord: vec2<f32>,\n};\n\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n\n output.position = projection.matrix * vec4<f32>(input.position, 0.0, 1.0);\n output.texcoord = input.texcoord;\n\n return output;\n}\n\n@fragment\nfn fragmentMain(input: VertexOutput) -> @location(0) vec4<f32> {\n let contentColor = textureSample(contentTexture, contentSampler, input.texcoord);\n let maskAlpha = textureSample(maskTexture, maskSampler, input.texcoord).a;\n\n return vec4<f32>(contentColor.rgb * maskAlpha, contentColor.a * maskAlpha);\n}\n";
5
7
  /**
6
8
  * Single-quad two-texture compositor used by
7
9
  * `WebGpuBackend.composeWithAlphaMask`. Renders the content texture
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuMaskCompositor.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgpu/WebGpuMaskCompositor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAwDrD;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoD;IAC/E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwE;IAEnG,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,0BAA0B,CAAmC;IACrE,OAAO,CAAC,uBAAuB,CAAmC;IAClE,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,oBAAoB,CAA6B;IAElD,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAsDhC,UAAU,IAAI,IAAI;IAqBlB,OAAO,CACZ,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,GAAG,aAAa,EAChC,IAAI,EAAE,OAAO,GAAG,aAAa,EAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,GACpB,IAAI;IAuDP,OAAO,CAAC,oBAAoB;IAmD5B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,sBAAsB;CA2B/B"}
1
+ {"version":3,"file":"WebGpuMaskCompositor.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgpu/WebGpuMaskCompositor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,ioCA4ClC,CAAC;AAQF;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoD;IAC/E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwE;IAEnG,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,0BAA0B,CAAmC;IACrE,OAAO,CAAC,uBAAuB,CAAmC;IAClE,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,oBAAoB,CAA6B;IAElD,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAsDhC,UAAU,IAAI,IAAI;IAqBlB,OAAO,CACZ,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,GAAG,aAAa,EAChC,IAAI,EAAE,OAAO,GAAG,aAAa,EAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,GACpB,IAAI;IAuDP,OAAO,CAAC,oBAAoB;IAmD5B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,sBAAsB;CA2B/B"}
@@ -3,6 +3,7 @@ import { getWebGpuBlendState } from './WebGpuBlendState.js';
3
3
  import { stencilContentDepthStencilState } from './WebGpuStencilState.js';
4
4
 
5
5
  /// <reference types="@webgpu/types" />
6
+ /** WGSL source for the mask compositor pipeline. @internal */
6
7
  const compositorShaderSource = `
7
8
  struct ProjectionUniforms {
8
9
  matrix: mat4x4<f32>,
@@ -278,5 +279,5 @@ class WebGpuMaskCompositor {
278
279
  }
279
280
  }
280
281
 
281
- export { WebGpuMaskCompositor };
282
+ export { WebGpuMaskCompositor, compositorShaderSource };
282
283
  //# sourceMappingURL=WebGpuMaskCompositor.js.map