@luma.gl/core 9.2.6 → 9.3.0-alpha.11

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 (282) hide show
  1. package/dist/adapter/canvas-context.d.ts +6 -162
  2. package/dist/adapter/canvas-context.d.ts.map +1 -1
  3. package/dist/adapter/canvas-context.js +5 -419
  4. package/dist/adapter/canvas-context.js.map +1 -1
  5. package/dist/adapter/canvas-observer.d.ts +32 -0
  6. package/dist/adapter/canvas-observer.d.ts.map +1 -0
  7. package/dist/adapter/canvas-observer.js +90 -0
  8. package/dist/adapter/canvas-observer.js.map +1 -0
  9. package/dist/adapter/canvas-surface.d.ts +150 -0
  10. package/dist/adapter/canvas-surface.d.ts.map +1 -0
  11. package/dist/adapter/canvas-surface.js +392 -0
  12. package/dist/adapter/canvas-surface.js.map +1 -0
  13. package/dist/adapter/device.d.ts +81 -16
  14. package/dist/adapter/device.d.ts.map +1 -1
  15. package/dist/adapter/device.js +193 -11
  16. package/dist/adapter/device.js.map +1 -1
  17. package/dist/adapter/luma.d.ts.map +1 -1
  18. package/dist/adapter/luma.js +2 -1
  19. package/dist/adapter/luma.js.map +1 -1
  20. package/dist/adapter/presentation-context.d.ts +11 -0
  21. package/dist/adapter/presentation-context.d.ts.map +1 -0
  22. package/dist/adapter/presentation-context.js +12 -0
  23. package/dist/adapter/presentation-context.js.map +1 -0
  24. package/dist/adapter/resources/buffer.d.ts +1 -1
  25. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  26. package/dist/adapter/resources/buffer.js +14 -6
  27. package/dist/adapter/resources/buffer.js.map +1 -1
  28. package/dist/adapter/resources/command-buffer.d.ts +3 -1
  29. package/dist/adapter/resources/command-buffer.d.ts.map +1 -1
  30. package/dist/adapter/resources/command-buffer.js +3 -1
  31. package/dist/adapter/resources/command-buffer.js.map +1 -1
  32. package/dist/adapter/resources/command-encoder.d.ts +30 -7
  33. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  34. package/dist/adapter/resources/command-encoder.js +68 -2
  35. package/dist/adapter/resources/command-encoder.js.map +1 -1
  36. package/dist/adapter/resources/compute-pipeline.d.ts +2 -2
  37. package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
  38. package/dist/adapter/resources/fence.d.ts +16 -0
  39. package/dist/adapter/resources/fence.d.ts.map +1 -0
  40. package/dist/adapter/resources/fence.js +17 -0
  41. package/dist/adapter/resources/fence.js.map +1 -0
  42. package/dist/adapter/resources/framebuffer.d.ts +1 -1
  43. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  44. package/dist/adapter/resources/framebuffer.js +15 -12
  45. package/dist/adapter/resources/framebuffer.js.map +1 -1
  46. package/dist/adapter/resources/query-set.d.ts +17 -1
  47. package/dist/adapter/resources/query-set.d.ts.map +1 -1
  48. package/dist/adapter/resources/query-set.js.map +1 -1
  49. package/dist/adapter/resources/render-pipeline.d.ts +28 -10
  50. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  51. package/dist/adapter/resources/render-pipeline.js +21 -2
  52. package/dist/adapter/resources/render-pipeline.js.map +1 -1
  53. package/dist/adapter/resources/resource.d.ts +13 -0
  54. package/dist/adapter/resources/resource.d.ts.map +1 -1
  55. package/dist/adapter/resources/resource.js +243 -14
  56. package/dist/adapter/resources/resource.js.map +1 -1
  57. package/dist/adapter/resources/shader.js +27 -25
  58. package/dist/adapter/resources/shader.js.map +1 -1
  59. package/dist/adapter/resources/shared-render-pipeline.d.ts +22 -0
  60. package/dist/adapter/resources/shared-render-pipeline.d.ts.map +1 -0
  61. package/dist/adapter/resources/shared-render-pipeline.js +25 -0
  62. package/dist/adapter/resources/shared-render-pipeline.js.map +1 -0
  63. package/dist/adapter/resources/texture-view.d.ts +1 -1
  64. package/dist/adapter/resources/texture-view.d.ts.map +1 -1
  65. package/dist/adapter/resources/texture.d.ts +168 -28
  66. package/dist/adapter/resources/texture.d.ts.map +1 -1
  67. package/dist/adapter/resources/texture.js +284 -25
  68. package/dist/adapter/resources/texture.js.map +1 -1
  69. package/dist/adapter/types/attachments.d.ts +1 -1
  70. package/dist/adapter/types/attachments.d.ts.map +1 -1
  71. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  72. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  73. package/dist/adapter/types/parameters.d.ts +3 -1
  74. package/dist/adapter/types/parameters.d.ts.map +1 -1
  75. package/dist/adapter/types/parameters.js +1 -0
  76. package/dist/adapter/types/parameters.js.map +1 -1
  77. package/dist/adapter/types/shader-layout.d.ts +10 -6
  78. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  79. package/dist/adapter/types/uniforms.d.ts +6 -0
  80. package/dist/adapter/types/uniforms.d.ts.map +1 -1
  81. package/dist/adapter-utils/bind-groups.d.ts +9 -0
  82. package/dist/adapter-utils/bind-groups.d.ts.map +1 -0
  83. package/dist/adapter-utils/bind-groups.js +41 -0
  84. package/dist/adapter-utils/bind-groups.js.map +1 -0
  85. package/dist/adapter-utils/format-compiler-log.d.ts.map +1 -1
  86. package/dist/adapter-utils/format-compiler-log.js +23 -15
  87. package/dist/adapter-utils/format-compiler-log.js.map +1 -1
  88. package/dist/adapter-utils/get-attribute-from-layouts.d.ts +2 -2
  89. package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
  90. package/dist/adapter-utils/get-attribute-from-layouts.js +6 -6
  91. package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
  92. package/dist/dist.dev.js +2734 -644
  93. package/dist/dist.min.js +10 -9
  94. package/dist/factories/bind-group-factory.d.ts +20 -0
  95. package/dist/factories/bind-group-factory.d.ts.map +1 -0
  96. package/dist/factories/bind-group-factory.js +88 -0
  97. package/dist/factories/bind-group-factory.js.map +1 -0
  98. package/dist/factories/core-module-state.d.ts +7 -0
  99. package/dist/factories/core-module-state.d.ts.map +1 -0
  100. package/dist/{shadertypes/data-types/shader-types.js → factories/core-module-state.js} +1 -1
  101. package/dist/factories/core-module-state.js.map +1 -0
  102. package/dist/factories/pipeline-factory.d.ts +54 -0
  103. package/dist/factories/pipeline-factory.d.ts.map +1 -0
  104. package/dist/factories/pipeline-factory.js +270 -0
  105. package/dist/factories/pipeline-factory.js.map +1 -0
  106. package/dist/factories/shader-factory.d.ts +20 -0
  107. package/dist/factories/shader-factory.d.ts.map +1 -0
  108. package/dist/factories/shader-factory.js +84 -0
  109. package/dist/factories/shader-factory.js.map +1 -0
  110. package/dist/index.cjs +2447 -534
  111. package/dist/index.cjs.map +4 -4
  112. package/dist/index.d.ts +30 -14
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +19 -7
  115. package/dist/index.js.map +1 -1
  116. package/dist/portable/shader-block-writer.d.ts +51 -0
  117. package/dist/portable/shader-block-writer.d.ts.map +1 -0
  118. package/dist/portable/shader-block-writer.js +185 -0
  119. package/dist/portable/shader-block-writer.js.map +1 -0
  120. package/dist/portable/uniform-block.d.ts +1 -1
  121. package/dist/portable/uniform-block.d.ts.map +1 -1
  122. package/dist/portable/uniform-store.d.ts +55 -24
  123. package/dist/portable/uniform-store.d.ts.map +1 -1
  124. package/dist/portable/uniform-store.js +73 -25
  125. package/dist/portable/uniform-store.js.map +1 -1
  126. package/dist/shadertypes/data-types/data-type-decoder.d.ts +20 -0
  127. package/dist/shadertypes/data-types/data-type-decoder.d.ts.map +1 -0
  128. package/dist/shadertypes/data-types/data-type-decoder.js +79 -0
  129. package/dist/shadertypes/data-types/data-type-decoder.js.map +1 -0
  130. package/dist/shadertypes/data-types/data-types.d.ts +31 -12
  131. package/dist/shadertypes/data-types/data-types.d.ts.map +1 -1
  132. package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -1
  133. package/dist/shadertypes/data-types/decode-data-types.js +4 -3
  134. package/dist/shadertypes/data-types/decode-data-types.js.map +1 -1
  135. package/dist/{image-utils → shadertypes/image-types}/image-types.d.ts +0 -6
  136. package/dist/shadertypes/image-types/image-types.d.ts.map +1 -0
  137. package/dist/shadertypes/image-types/image-types.js.map +1 -0
  138. package/dist/shadertypes/shader-types/shader-block-layout.d.ts +72 -0
  139. package/dist/shadertypes/shader-types/shader-block-layout.d.ts.map +1 -0
  140. package/dist/shadertypes/shader-types/shader-block-layout.js +209 -0
  141. package/dist/shadertypes/shader-types/shader-block-layout.js.map +1 -0
  142. package/dist/shadertypes/shader-types/shader-type-decoder.d.ts +41 -0
  143. package/dist/shadertypes/shader-types/shader-type-decoder.d.ts.map +1 -0
  144. package/dist/shadertypes/{data-types/decode-shader-types.js → shader-types/shader-type-decoder.js} +43 -4
  145. package/dist/shadertypes/shader-types/shader-type-decoder.js.map +1 -0
  146. package/dist/shadertypes/shader-types/shader-types.d.ts +101 -0
  147. package/dist/shadertypes/shader-types/shader-types.d.ts.map +1 -0
  148. package/dist/shadertypes/shader-types/shader-types.js +30 -0
  149. package/dist/shadertypes/shader-types/shader-types.js.map +1 -0
  150. package/dist/shadertypes/texture-types/pixel-utils.d.ts.map +1 -0
  151. package/dist/shadertypes/{textures → texture-types}/pixel-utils.js +4 -4
  152. package/dist/shadertypes/texture-types/pixel-utils.js.map +1 -0
  153. package/dist/shadertypes/texture-types/texture-format-decoder.d.ts +36 -0
  154. package/dist/shadertypes/texture-types/texture-format-decoder.d.ts.map +1 -0
  155. package/dist/shadertypes/{textures → texture-types}/texture-format-decoder.js +110 -38
  156. package/dist/shadertypes/texture-types/texture-format-decoder.js.map +1 -0
  157. package/dist/shadertypes/texture-types/texture-format-generics.d.ts +34 -0
  158. package/dist/shadertypes/texture-types/texture-format-generics.d.ts.map +1 -0
  159. package/dist/shadertypes/texture-types/texture-format-generics.js.map +1 -0
  160. package/dist/shadertypes/texture-types/texture-format-table.d.ts.map +1 -0
  161. package/dist/shadertypes/{textures → texture-types}/texture-format-table.js +12 -11
  162. package/dist/shadertypes/texture-types/texture-format-table.js.map +1 -0
  163. package/dist/shadertypes/{textures → texture-types}/texture-formats.d.ts +51 -17
  164. package/dist/shadertypes/texture-types/texture-formats.d.ts.map +1 -0
  165. package/dist/shadertypes/{textures → texture-types}/texture-formats.js +1 -0
  166. package/dist/shadertypes/texture-types/texture-formats.js.map +1 -0
  167. package/dist/shadertypes/texture-types/texture-layout.d.ts +5 -0
  168. package/dist/shadertypes/texture-types/texture-layout.d.ts.map +1 -0
  169. package/dist/shadertypes/texture-types/texture-layout.js +41 -0
  170. package/dist/shadertypes/texture-types/texture-layout.js.map +1 -0
  171. package/dist/shadertypes/vertex-types/vertex-format-decoder.d.ts +24 -0
  172. package/dist/shadertypes/vertex-types/vertex-format-decoder.d.ts.map +1 -0
  173. package/dist/shadertypes/vertex-types/vertex-format-decoder.js +144 -0
  174. package/dist/shadertypes/vertex-types/vertex-format-decoder.js.map +1 -0
  175. package/dist/shadertypes/vertex-types/vertex-formats.d.ts +50 -0
  176. package/dist/shadertypes/vertex-types/vertex-formats.d.ts.map +1 -0
  177. package/dist/shadertypes/vertex-types/vertex-formats.js.map +1 -0
  178. package/dist/utils/array-equal.d.ts +1 -1
  179. package/dist/utils/array-equal.d.ts.map +1 -1
  180. package/dist/utils/array-equal.js +15 -9
  181. package/dist/utils/array-equal.js.map +1 -1
  182. package/dist/utils/assert.d.ts +5 -0
  183. package/dist/utils/assert.d.ts.map +1 -0
  184. package/dist/utils/assert.js +17 -0
  185. package/dist/utils/assert.js.map +1 -0
  186. package/dist/utils/stats-manager.d.ts.map +1 -1
  187. package/dist/utils/stats-manager.js +61 -1
  188. package/dist/utils/stats-manager.js.map +1 -1
  189. package/package.json +6 -6
  190. package/src/adapter/canvas-context.ts +7 -556
  191. package/src/adapter/canvas-observer.ts +130 -0
  192. package/src/adapter/canvas-surface.ts +521 -0
  193. package/src/adapter/device.ts +311 -25
  194. package/src/adapter/luma.ts +1 -0
  195. package/src/adapter/presentation-context.ts +16 -0
  196. package/src/adapter/resources/buffer.ts +13 -5
  197. package/src/adapter/resources/command-buffer.ts +4 -2
  198. package/src/adapter/resources/command-encoder.ts +101 -10
  199. package/src/adapter/resources/compute-pipeline.ts +2 -2
  200. package/src/adapter/resources/fence.ts +32 -0
  201. package/src/adapter/resources/framebuffer.ts +16 -13
  202. package/src/adapter/resources/query-set.ts +17 -1
  203. package/src/adapter/resources/render-pipeline.ts +52 -16
  204. package/src/adapter/resources/resource.ts +289 -14
  205. package/src/adapter/resources/shader.ts +28 -28
  206. package/src/adapter/resources/shared-render-pipeline.ts +40 -0
  207. package/src/adapter/resources/texture-view.ts +1 -1
  208. package/src/adapter/resources/texture.ts +427 -49
  209. package/src/adapter/types/attachments.ts +1 -1
  210. package/src/adapter/types/buffer-layout.ts +1 -1
  211. package/src/adapter/types/parameters.ts +4 -1
  212. package/src/adapter/types/shader-layout.ts +15 -9
  213. package/src/adapter/types/uniforms.ts +12 -0
  214. package/src/adapter-utils/bind-groups.ts +71 -0
  215. package/src/adapter-utils/format-compiler-log.ts +23 -15
  216. package/src/adapter-utils/get-attribute-from-layouts.ts +8 -11
  217. package/src/factories/bind-group-factory.ts +157 -0
  218. package/src/factories/core-module-state.ts +11 -0
  219. package/src/factories/pipeline-factory.ts +328 -0
  220. package/src/factories/shader-factory.ts +103 -0
  221. package/src/index.ts +70 -26
  222. package/src/portable/shader-block-writer.ts +254 -0
  223. package/src/portable/uniform-block.ts +1 -1
  224. package/src/portable/uniform-store.ts +98 -40
  225. package/src/shadertypes/data-types/data-type-decoder.ts +105 -0
  226. package/src/shadertypes/data-types/data-types.ts +100 -48
  227. package/src/shadertypes/data-types/decode-data-types.ts +4 -3
  228. package/src/{image-utils → shadertypes/image-types}/image-types.ts +0 -7
  229. package/src/shadertypes/shader-types/shader-block-layout.ts +340 -0
  230. package/src/shadertypes/{data-types/decode-shader-types.ts → shader-types/shader-type-decoder.ts} +88 -14
  231. package/src/shadertypes/shader-types/shader-types.ts +207 -0
  232. package/src/shadertypes/{textures → texture-types}/pixel-utils.ts +4 -4
  233. package/src/shadertypes/{textures → texture-types}/texture-format-decoder.ts +167 -46
  234. package/src/shadertypes/{textures → texture-types}/texture-format-generics.ts +42 -48
  235. package/src/shadertypes/{textures → texture-types}/texture-format-table.ts +12 -11
  236. package/src/shadertypes/{textures → texture-types}/texture-formats.ts +73 -17
  237. package/src/shadertypes/texture-types/texture-layout.ts +60 -0
  238. package/src/shadertypes/vertex-types/vertex-format-decoder.ts +175 -0
  239. package/src/shadertypes/vertex-types/vertex-formats.ts +196 -0
  240. package/src/utils/array-equal.ts +21 -9
  241. package/src/utils/assert.ts +18 -0
  242. package/src/utils/stats-manager.ts +76 -2
  243. package/dist/image-utils/image-types.d.ts.map +0 -1
  244. package/dist/image-utils/image-types.js.map +0 -1
  245. package/dist/portable/uniform-buffer-layout.d.ts +0 -28
  246. package/dist/portable/uniform-buffer-layout.d.ts.map +0 -1
  247. package/dist/portable/uniform-buffer-layout.js +0 -96
  248. package/dist/portable/uniform-buffer-layout.js.map +0 -1
  249. package/dist/shadertypes/data-types/decode-shader-types.d.ts +0 -17
  250. package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +0 -1
  251. package/dist/shadertypes/data-types/decode-shader-types.js.map +0 -1
  252. package/dist/shadertypes/data-types/shader-types.d.ts +0 -45
  253. package/dist/shadertypes/data-types/shader-types.d.ts.map +0 -1
  254. package/dist/shadertypes/data-types/shader-types.js.map +0 -1
  255. package/dist/shadertypes/textures/pixel-utils.d.ts.map +0 -1
  256. package/dist/shadertypes/textures/pixel-utils.js.map +0 -1
  257. package/dist/shadertypes/textures/texture-format-decoder.d.ts +0 -18
  258. package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +0 -1
  259. package/dist/shadertypes/textures/texture-format-decoder.js.map +0 -1
  260. package/dist/shadertypes/textures/texture-format-generics.d.ts +0 -33
  261. package/dist/shadertypes/textures/texture-format-generics.d.ts.map +0 -1
  262. package/dist/shadertypes/textures/texture-format-generics.js.map +0 -1
  263. package/dist/shadertypes/textures/texture-format-table.d.ts.map +0 -1
  264. package/dist/shadertypes/textures/texture-format-table.js.map +0 -1
  265. package/dist/shadertypes/textures/texture-formats.d.ts.map +0 -1
  266. package/dist/shadertypes/textures/texture-formats.js.map +0 -1
  267. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts +0 -18
  268. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +0 -1
  269. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js +0 -100
  270. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +0 -1
  271. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts +0 -27
  272. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +0 -1
  273. package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +0 -1
  274. package/src/portable/uniform-buffer-layout.ts +0 -118
  275. package/src/shadertypes/data-types/shader-types.ts +0 -87
  276. package/src/shadertypes/vertex-arrays/decode-vertex-format.ts +0 -124
  277. package/src/shadertypes/vertex-arrays/vertex-formats.ts +0 -91
  278. /package/dist/{image-utils → shadertypes/image-types}/image-types.js +0 -0
  279. /package/dist/shadertypes/{textures → texture-types}/pixel-utils.d.ts +0 -0
  280. /package/dist/shadertypes/{textures → texture-types}/texture-format-generics.js +0 -0
  281. /package/dist/shadertypes/{textures → texture-types}/texture-format-table.d.ts +0 -0
  282. /package/dist/shadertypes/{vertex-arrays → vertex-types}/vertex-formats.js +0 -0
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export type { DeviceProps, DeviceInfo, DeviceFeature, DeviceTextureFormatCapabil
5
5
  export { Device, DeviceFeatures, DeviceLimits } from "./adapter/device.js";
6
6
  export type { CanvasContextProps } from "./adapter/canvas-context.js";
7
7
  export { CanvasContext } from "./adapter/canvas-context.js";
8
+ export type { PresentationContextProps } from "./adapter/presentation-context.js";
9
+ export { PresentationContext } from "./adapter/presentation-context.js";
8
10
  export { Resource, type ResourceProps } from "./adapter/resources/resource.js";
9
11
  export { Buffer, type BufferProps, type BufferMapCallback } from "./adapter/resources/buffer.js";
10
12
  export { Texture, type TextureProps } from "./adapter/resources/texture.js";
@@ -19,6 +21,11 @@ export type { FramebufferProps } from "./adapter/resources/framebuffer.js";
19
21
  export { Framebuffer } from "./adapter/resources/framebuffer.js";
20
22
  export type { RenderPipelineProps } from "./adapter/resources/render-pipeline.js";
21
23
  export { RenderPipeline } from "./adapter/resources/render-pipeline.js";
24
+ export { SharedRenderPipeline, type SharedRenderPipelineProps } from "./adapter/resources/shared-render-pipeline.js";
25
+ export type { PipelineFactoryProps } from "./factories/pipeline-factory.js";
26
+ export { PipelineFactory } from "./factories/pipeline-factory.js";
27
+ export { ShaderFactory } from "./factories/shader-factory.js";
28
+ export { _getDefaultBindGroupFactory } from "./factories/bind-group-factory.js";
22
29
  export type { RenderPassProps } from "./adapter/resources/render-pass.js";
23
30
  export { RenderPass } from "./adapter/resources/render-pass.js";
24
31
  export type { ComputePipelineProps } from "./adapter/resources/compute-pipeline.js";
@@ -35,36 +42,45 @@ export type { TransformFeedbackProps, BufferRange } from "./adapter/resources/tr
35
42
  export { TransformFeedback } from "./adapter/resources/transform-feedback.js";
36
43
  export type { QuerySetProps } from "./adapter/resources/query-set.js";
37
44
  export { QuerySet } from "./adapter/resources/query-set.js";
45
+ export { Fence, type FenceProps } from "./adapter/resources/fence.js";
38
46
  export type { PipelineLayoutProps } from "./adapter/resources/pipeline-layout.js";
39
47
  export { PipelineLayout } from "./adapter/resources/pipeline-layout.js";
40
- export { UniformBufferLayout } from "./portable/uniform-buffer-layout.js";
48
+ export { makeShaderBlockLayout, type ShaderBlockLayout, type ShaderBlockLayoutEntry, type ShaderBlockLayoutOptions } from "./shadertypes/shader-types/shader-block-layout.js";
49
+ export { ShaderBlockWriter } from "./portable/shader-block-writer.js";
41
50
  export { UniformBlock } from "./portable/uniform-block.js";
42
51
  export { UniformStore } from "./portable/uniform-store.js";
43
52
  export type { CompilerMessage } from "./adapter/types/compiler-message.js";
44
- export type { ExternalImage } from "./image-utils/image-types.js";
45
- export { type CopyExternalImageOptions, type CopyImageDataOptions } from "./adapter/resources/texture.js";
53
+ export type { ExternalImage } from "./shadertypes/image-types/image-types.js";
54
+ export { type CopyExternalImageOptions, type CopyImageDataOptions, type TextureReadOptions, type TextureWriteOptions } from "./adapter/resources/texture.js";
46
55
  export type { Parameters, PrimitiveTopology, IndexFormat } from "./adapter/types/parameters.js";
47
56
  export type { CullMode, FrontFace, RasterizationParameters, CompareFunction, StencilOperation, DepthStencilParameters, BlendFactor, BlendOperation, ColorParameters, MultisampleParameters, RenderPassParameters, RenderPipelineParameters, PolygonMode, ProvokingVertex } from "./adapter/types/parameters.js";
48
57
  export type { ColorAttachment, DepthStencilAttachment } from "./adapter/types/attachments.js";
49
- export type { ShaderLayout, ComputeShaderLayout, AttributeDeclaration, BindingDeclaration, Binding, UniformBufferBindingLayout, StorageBufferBindingLayout, TextureBindingLayout, SamplerBindingLayout, StorageTextureBindingLayout } from "./adapter/types/shader-layout.js";
58
+ export type { ShaderLayout, ComputeShaderLayout, AttributeDeclaration, BindingDeclaration, Binding, Bindings, BindingsByGroup, UniformBufferBindingLayout, StorageBufferBindingLayout, TextureBindingLayout, SamplerBindingLayout, StorageTextureBindingLayout } from "./adapter/types/shader-layout.js";
50
59
  export type { BufferLayout, BufferAttributeLayout } from "./adapter/types/buffer-layout.js";
51
60
  export type { AttributeBinding, UniformBinding, UniformBlockBinding, VaryingBinding } from "./adapter/types/shader-layout.js";
52
61
  export type { UniformValue } from "./adapter/types/uniforms.js";
62
+ export type { CompositeUniformValue, CompositeUniformValueArray, CompositeUniformValueStruct } from "./adapter/types/uniforms.js";
53
63
  export type { NumberArray, TypedArray, TypedArrayConstructor, BigTypedArray, BigTypedArrayConstructor } from "./types.js";
54
- export { type PrimitiveDataType, type SignedDataType, type NormalizedDataType, type DataTypeInfo, type DataTypeArray, type NormalizedDataTypeArray } from "./shadertypes/data-types/data-types.js";
55
- export { type AttributeShaderType, type VariableShaderType } from "./shadertypes/data-types/shader-types.js";
56
- export { getDataTypeInfo, getDataType, getTypedArrayConstructor, getNormalizedDataType } from "./shadertypes/data-types/decode-data-types.js";
57
- export { getVariableShaderTypeInfo, getAttributeShaderTypeInfo } from "./shadertypes/data-types/decode-shader-types.js";
58
- export { type VertexFormat } from "./shadertypes/vertex-arrays/vertex-formats.js";
59
- export { getVertexFormatInfo, getVertexFormatFromAttribute, makeVertexFormat } from "./shadertypes/vertex-arrays/decode-vertex-format.js";
60
- export { type TextureFormat, type TextureFormatColor, type TextureFormatDepthStencil, type TextureCompression, type TextureFormatInfo, type TextureFormatCapabilities } from "./shadertypes/textures/texture-formats.js";
61
- export { TextureFormatDecoder, textureFormatDecoder } from "./shadertypes/textures/texture-format-decoder.js";
62
- export { type PixelData, readPixel, writePixel } from "./shadertypes/textures/pixel-utils.js";
64
+ export { type PrimitiveDataType, type SignedDataType, type NormalizedDataType, type DataTypeInfo, type PrimitiveDataTypeT, type SignedDataTypeT, type TypedArrayConstructorT, type NormalizedTypedArrayConstructorT } from "./shadertypes/data-types/data-types.js";
65
+ export { dataTypeDecoder } from "./shadertypes/data-types/data-type-decoder.js";
66
+ export { getTypedArrayConstructor } from "./shadertypes/data-types/decode-data-types.js";
67
+ export { type AttributeShaderTypeT, type AttributeShaderType, type ArrayShaderType, type CompositeShaderType, type StructShaderType, type VariableShaderTypeT, type VariableShaderType } from "./shadertypes/shader-types/shader-types.js";
68
+ export { shaderTypeDecoder, getAttributeShaderTypeInfo, getVariableShaderTypeInfo, type AttributeShaderTypeInfo } from "./shadertypes/shader-types/shader-type-decoder.js";
69
+ export { type VertexFormat, type VertexFormatDataTypeT } from "./shadertypes/vertex-types/vertex-formats.js";
70
+ export { vertexFormatDecoder } from "./shadertypes/vertex-types/vertex-format-decoder.js";
71
+ export { type TextureFormat, type TextureFormatColor, type TextureFormatDepthStencil, type CompressedTextureFormat, type TextureCompression, type TextureFormatInfo, type TextureFormatCapabilities, type TextureMemoryLayout } from "./shadertypes/texture-types/texture-formats.js";
72
+ export { type TextureFormatDataTypeT } from "./shadertypes/texture-types/texture-format-generics.js";
73
+ export { type TextureFormatDecoder, textureFormatDecoder } from "./shadertypes/texture-types/texture-format-decoder.js";
74
+ export { getTextureImageView, setTextureImageData } from "./shadertypes/texture-types/texture-layout.js";
75
+ export { type PixelData, readPixel, writePixel } from "./shadertypes/texture-types/pixel-utils.js";
76
+ export { isExternalImage, getExternalImageSize } from "./shadertypes/image-types/image-types.js";
63
77
  export type { StatsManager } from "./utils/stats-manager.js";
64
78
  export type { CopyBufferToBufferOptions, CopyBufferToTextureOptions, CopyTextureToBufferOptions, CopyTextureToTextureOptions } from "./adapter/resources/command-encoder.js";
65
79
  export { log } from "./utils/log.js";
80
+ export { getShaderLayoutBinding, normalizeBindingsByGroup, flattenBindingsByGroup } from "./adapter-utils/bind-groups.js";
81
+ export { assert, assertDefined } from "./utils/assert.js";
66
82
  export { getScratchArray } from "./utils/array-utils-flat.js";
67
83
  export type { AttributeInfo } from "./adapter-utils/get-attribute-from-layouts.js";
68
84
  export { getAttributeInfosFromLayouts } from "./adapter-utils/get-attribute-from-layouts.js";
69
- export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/textures/texture-format-table.js";
85
+ export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/texture-types/texture-format-table.js";
70
86
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export { luma } from "./adapter/luma.js";
6
6
  export { Adapter } from "./adapter/adapter.js";
7
7
  export { Device, DeviceFeatures, DeviceLimits } from "./adapter/device.js";
8
8
  export { CanvasContext } from "./adapter/canvas-context.js";
9
+ export { PresentationContext } from "./adapter/presentation-context.js";
9
10
  // GPU RESOURCES
10
11
  export { Resource } from "./adapter/resources/resource.js";
11
12
  export { Buffer } from "./adapter/resources/buffer.js";
@@ -16,6 +17,10 @@ export { Shader } from "./adapter/resources/shader.js";
16
17
  export { Sampler } from "./adapter/resources/sampler.js";
17
18
  export { Framebuffer } from "./adapter/resources/framebuffer.js";
18
19
  export { RenderPipeline } from "./adapter/resources/render-pipeline.js";
20
+ export { SharedRenderPipeline } from "./adapter/resources/shared-render-pipeline.js";
21
+ export { PipelineFactory } from "./factories/pipeline-factory.js";
22
+ export { ShaderFactory } from "./factories/shader-factory.js";
23
+ export { _getDefaultBindGroupFactory } from "./factories/bind-group-factory.js";
19
24
  export { RenderPass } from "./adapter/resources/render-pass.js";
20
25
  export { ComputePipeline } from "./adapter/resources/compute-pipeline.js";
21
26
  export { ComputePass } from "./adapter/resources/compute-pass.js";
@@ -24,20 +29,27 @@ export { CommandBuffer } from "./adapter/resources/command-buffer.js";
24
29
  export { VertexArray } from "./adapter/resources/vertex-array.js";
25
30
  export { TransformFeedback } from "./adapter/resources/transform-feedback.js";
26
31
  export { QuerySet } from "./adapter/resources/query-set.js";
32
+ export { Fence } from "./adapter/resources/fence.js";
27
33
  export { PipelineLayout } from "./adapter/resources/pipeline-layout.js";
28
34
  // PORTABLE API - UNIFORM BUFFERS
29
- export { UniformBufferLayout } from "./portable/uniform-buffer-layout.js";
35
+ export { makeShaderBlockLayout } from "./shadertypes/shader-types/shader-block-layout.js";
36
+ export { ShaderBlockWriter } from "./portable/shader-block-writer.js";
30
37
  export { UniformBlock } from "./portable/uniform-block.js";
31
38
  export { UniformStore } from "./portable/uniform-store.js";
32
- export { getDataTypeInfo, getDataType, getTypedArrayConstructor, getNormalizedDataType } from "./shadertypes/data-types/decode-data-types.js";
33
- export { getVariableShaderTypeInfo, getAttributeShaderTypeInfo } from "./shadertypes/data-types/decode-shader-types.js";
34
- export { getVertexFormatInfo, getVertexFormatFromAttribute, makeVertexFormat } from "./shadertypes/vertex-arrays/decode-vertex-format.js";
35
- export { TextureFormatDecoder, textureFormatDecoder } from "./shadertypes/textures/texture-format-decoder.js";
36
- export { readPixel, writePixel } from "./shadertypes/textures/pixel-utils.js";
39
+ export { dataTypeDecoder } from "./shadertypes/data-types/data-type-decoder.js";
40
+ export { getTypedArrayConstructor } from "./shadertypes/data-types/decode-data-types.js";
41
+ export { shaderTypeDecoder, getAttributeShaderTypeInfo, getVariableShaderTypeInfo } from "./shadertypes/shader-types/shader-type-decoder.js";
42
+ export { vertexFormatDecoder } from "./shadertypes/vertex-types/vertex-format-decoder.js";
43
+ export { textureFormatDecoder } from "./shadertypes/texture-types/texture-format-decoder.js";
44
+ export { getTextureImageView, setTextureImageData } from "./shadertypes/texture-types/texture-layout.js";
45
+ export { readPixel, writePixel } from "./shadertypes/texture-types/pixel-utils.js";
46
+ export { isExternalImage, getExternalImageSize } from "./shadertypes/image-types/image-types.js";
37
47
  // INTERNAL UTILS - for use in other luma.gl modules only
38
48
  export { log } from "./utils/log.js";
49
+ export { getShaderLayoutBinding, normalizeBindingsByGroup, flattenBindingsByGroup } from "./adapter-utils/bind-groups.js";
50
+ export { assert, assertDefined } from "./utils/assert.js";
39
51
  export { getScratchArray } from "./utils/array-utils-flat.js";
40
52
  export { getAttributeInfosFromLayouts } from "./adapter-utils/get-attribute-from-layouts.js";
41
53
  // TEST EXPORTS
42
- export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/textures/texture-format-table.js";
54
+ export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/texture-types/texture-format-table.js";
43
55
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,IAAI,EAAC,0BAAuB;AAEpC,+CAA+C;AAC/C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAQ1C,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAC,4BAAyB;AAGtE,OAAO,EAAC,aAAa,EAAC,oCAAiC;AAEvD,gBAAgB;AAChB,OAAO,EAAC,QAAQ,EAAqB,wCAAqC;AAE1E,OAAO,EAAC,MAAM,EAA2C,sCAAmC;AAE5F,OAAO,EAAC,OAAO,EAAoB,uCAAoC;AAEvE,OAAO,EAAC,WAAW,EAAwB,4CAAyC;AAGpF,OAAO,EAAC,eAAe,EAAC,gDAA6C;AAGrE,OAAO,EAAC,MAAM,EAAC,sCAAmC;AAGlD,OAAO,EAAC,OAAO,EAAC,uCAAoC;AAGpD,OAAO,EAAC,WAAW,EAAC,2CAAwC;AAG5D,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAGnE,OAAO,EAAC,UAAU,EAAC,2CAAwC;AAG3D,OAAO,EAAC,eAAe,EAAC,gDAA6C;AAGrE,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAG7D,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAGnE,OAAO,EAAC,aAAa,EAAC,8CAA2C;AAGjE,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAG7D,OAAO,EAAC,iBAAiB,EAAC,kDAA+C;AAGzE,OAAO,EAAC,QAAQ,EAAC,yCAAsC;AAGvD,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAEnE,iCAAiC;AACjC,OAAO,EAAC,mBAAmB,EAAC,4CAAyC;AACrE,OAAO,EAAC,YAAY,EAAC,oCAAiC;AACtD,OAAO,EAAC,YAAY,EAAC,oCAAiC;AAiFtD,OAAO,EACL,eAAe,EACf,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACtB,sDAAmD;AACpD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC3B,wDAAqD;AAMtD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EACjB,4DAAyD;AAa1D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACrB,yDAAsD;AAEvD,OAAO,EAAiB,SAAS,EAAE,UAAU,EAAC,8CAA2C;AAezF,yDAAyD;AACzD,OAAO,EAAC,GAAG,EAAC,uBAAoB;AAChC,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,OAAO,EAAC,4BAA4B,EAAC,sDAAmD;AAExF,eAAe;AACf,OAAO,EACL,0BAA0B,IAAI,2BAA2B,EACzD,qBAAqB,IAAI,sBAAsB,EAChD,uDAAoD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,IAAI,EAAC,0BAAuB;AAEpC,+CAA+C;AAC/C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAQ1C,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAC,4BAAyB;AAGtE,OAAO,EAAC,aAAa,EAAC,oCAAiC;AAEvD,OAAO,EAAC,mBAAmB,EAAC,0CAAuC;AAEnE,gBAAgB;AAChB,OAAO,EAAC,QAAQ,EAAqB,wCAAqC;AAE1E,OAAO,EAAC,MAAM,EAA2C,sCAAmC;AAE5F,OAAO,EAAC,OAAO,EAAoB,uCAAoC;AAEvE,OAAO,EAAC,WAAW,EAAwB,4CAAyC;AAGpF,OAAO,EAAC,eAAe,EAAC,gDAA6C;AAGrE,OAAO,EAAC,MAAM,EAAC,sCAAmC;AAGlD,OAAO,EAAC,OAAO,EAAC,uCAAoC;AAGpD,OAAO,EAAC,WAAW,EAAC,2CAAwC;AAG5D,OAAO,EAAC,cAAc,EAAC,+CAA4C;AACnE,OAAO,EACL,oBAAoB,EAErB,sDAAmD;AAEpD,OAAO,EAAC,eAAe,EAAC,wCAAqC;AAC7D,OAAO,EAAC,aAAa,EAAC,sCAAmC;AACzD,OAAO,EAAC,2BAA2B,EAAC,0CAAuC;AAG3E,OAAO,EAAC,UAAU,EAAC,2CAAwC;AAG3D,OAAO,EAAC,eAAe,EAAC,gDAA6C;AAGrE,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAG7D,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAGnE,OAAO,EAAC,aAAa,EAAC,8CAA2C;AAGjE,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAG7D,OAAO,EAAC,iBAAiB,EAAC,kDAA+C;AAGzE,OAAO,EAAC,QAAQ,EAAC,yCAAsC;AAEvD,OAAO,EAAC,KAAK,EAAkB,qCAAkC;AAGjE,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAEnE,iCAAiC;AACjC,OAAO,EACL,qBAAqB,EAItB,0DAAuD;AACxD,OAAO,EAAC,iBAAiB,EAAC,0CAAuC;AACjE,OAAO,EAAC,YAAY,EAAC,oCAAiC;AACtD,OAAO,EAAC,YAAY,EAAC,oCAAiC;AAwFtD,OAAO,EAAC,eAAe,EAAC,sDAAmD;AAC3E,OAAO,EAAC,wBAAwB,EAAC,sDAAmD;AAWpF,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EAE1B,0DAAuD;AASxD,OAAO,EAAC,mBAAmB,EAAC,4DAAyD;AAgBrF,OAAO,EAEL,oBAAoB,EACrB,8DAA2D;AAE5D,OAAO,EAAC,mBAAmB,EAAE,mBAAmB,EAAC,sDAAmD;AACpG,OAAO,EAAiB,SAAS,EAAE,UAAU,EAAC,mDAAgD;AAE9F,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,iDAA8C;AAe5F,yDAAyD;AACzD,OAAO,EAAC,GAAG,EAAC,uBAAoB;AAChC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACvB,uCAAoC;AACrC,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,0BAAuB;AACrD,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,OAAO,EAAC,4BAA4B,EAAC,sDAAmD;AAExF,eAAe;AACf,OAAO,EACL,0BAA0B,IAAI,2BAA2B,EACzD,qBAAqB,IAAI,sBAAsB,EAChD,4DAAyD"}
@@ -0,0 +1,51 @@
1
+ import type { CompositeUniformValue, UniformValue } from "../adapter/types/uniforms.js";
2
+ import { type ShaderBlockLayout } from "../shadertypes/shader-types/shader-block-layout.js";
3
+ /**
4
+ * Serializes nested JavaScript uniform values according to a {@link ShaderBlockLayout}.
5
+ */
6
+ export declare class ShaderBlockWriter {
7
+ /** Layout metadata used to flatten and serialize values. */
8
+ readonly layout: ShaderBlockLayout;
9
+ /**
10
+ * Creates a writer for a precomputed shader-block layout.
11
+ */
12
+ constructor(layout: ShaderBlockLayout);
13
+ /**
14
+ * Returns `true` if the flattened layout contains the given field.
15
+ */
16
+ has(name: string): boolean;
17
+ /**
18
+ * Returns offset and size metadata for a flattened field.
19
+ */
20
+ get(name: string): {
21
+ offset: number;
22
+ size: number;
23
+ } | undefined;
24
+ /**
25
+ * Flattens nested composite values into leaf-path values understood by {@link UniformBlock}.
26
+ *
27
+ * Top-level values may be supplied either in nested object form matching the
28
+ * declared composite shader types or as already-flattened leaf-path values.
29
+ */
30
+ getFlatUniformValues(uniformValues: Readonly<Record<string, CompositeUniformValue>>): Record<string, UniformValue>;
31
+ /**
32
+ * Serializes the supplied values into buffer-backed binary data.
33
+ *
34
+ * The returned view length matches {@link ShaderBlockLayout.byteLength}, which
35
+ * is the exact packed size of the block.
36
+ */
37
+ getData(uniformValues: Readonly<Record<string, CompositeUniformValue>>): Uint8Array;
38
+ /**
39
+ * Recursively flattens nested values using the declared composite shader type.
40
+ */
41
+ private _flattenCompositeValue;
42
+ /**
43
+ * Expands tightly packed numeric arrays into per-element leaf fields.
44
+ */
45
+ private _flattenPackedArray;
46
+ /**
47
+ * Writes one flattened leaf value into its typed-array view.
48
+ */
49
+ private _writeLeafValue;
50
+ }
51
+ //# sourceMappingURL=shader-block-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-block-writer.d.ts","sourceRoot":"","sources":["../../src/portable/shader-block-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,qBAAqB,EAAE,YAAY,EAAC,qCAAkC;AAQnF,OAAO,EAGL,KAAK,iBAAiB,EACvB,2DAAwD;AAEzD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC;;OAEG;gBACS,MAAM,EAAE,iBAAiB;IAIrC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,SAAS;IAK7D;;;;;OAKG;IACH,oBAAoB,CAClB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,GAC7D,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAe/B;;;;;OAKG;IACH,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,GAAG,UAAU;IAkBnF;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgE9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,eAAe;CAoCxB"}
@@ -0,0 +1,185 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { getScratchArrayBuffer } from "../utils/array-utils-flat.js";
5
+ import { isNumberArray } from "../utils/is-array.js";
6
+ import { log } from "../utils/log.js";
7
+ import { getLeafLayoutInfo, isCompositeShaderTypeStruct } from "../shadertypes/shader-types/shader-block-layout.js";
8
+ /**
9
+ * Serializes nested JavaScript uniform values according to a {@link ShaderBlockLayout}.
10
+ */
11
+ export class ShaderBlockWriter {
12
+ /** Layout metadata used to flatten and serialize values. */
13
+ layout;
14
+ /**
15
+ * Creates a writer for a precomputed shader-block layout.
16
+ */
17
+ constructor(layout) {
18
+ this.layout = layout;
19
+ }
20
+ /**
21
+ * Returns `true` if the flattened layout contains the given field.
22
+ */
23
+ has(name) {
24
+ return Boolean(this.layout.fields[name]);
25
+ }
26
+ /**
27
+ * Returns offset and size metadata for a flattened field.
28
+ */
29
+ get(name) {
30
+ const entry = this.layout.fields[name];
31
+ return entry ? { offset: entry.offset, size: entry.size } : undefined;
32
+ }
33
+ /**
34
+ * Flattens nested composite values into leaf-path values understood by {@link UniformBlock}.
35
+ *
36
+ * Top-level values may be supplied either in nested object form matching the
37
+ * declared composite shader types or as already-flattened leaf-path values.
38
+ */
39
+ getFlatUniformValues(uniformValues) {
40
+ const flattenedUniformValues = {};
41
+ for (const [name, value] of Object.entries(uniformValues)) {
42
+ const uniformType = this.layout.uniformTypes[name];
43
+ if (uniformType) {
44
+ this._flattenCompositeValue(flattenedUniformValues, name, uniformType, value);
45
+ }
46
+ else if (this.layout.fields[name]) {
47
+ flattenedUniformValues[name] = value;
48
+ }
49
+ }
50
+ return flattenedUniformValues;
51
+ }
52
+ /**
53
+ * Serializes the supplied values into buffer-backed binary data.
54
+ *
55
+ * The returned view length matches {@link ShaderBlockLayout.byteLength}, which
56
+ * is the exact packed size of the block.
57
+ */
58
+ getData(uniformValues) {
59
+ const buffer = getScratchArrayBuffer(this.layout.byteLength);
60
+ new Uint8Array(buffer, 0, this.layout.byteLength).fill(0);
61
+ const typedArrays = {
62
+ i32: new Int32Array(buffer),
63
+ u32: new Uint32Array(buffer),
64
+ f32: new Float32Array(buffer),
65
+ f16: new Uint16Array(buffer)
66
+ };
67
+ const flattenedUniformValues = this.getFlatUniformValues(uniformValues);
68
+ for (const [name, value] of Object.entries(flattenedUniformValues)) {
69
+ this._writeLeafValue(typedArrays, name, value);
70
+ }
71
+ return new Uint8Array(buffer, 0, this.layout.byteLength);
72
+ }
73
+ /**
74
+ * Recursively flattens nested values using the declared composite shader type.
75
+ */
76
+ _flattenCompositeValue(flattenedUniformValues, baseName, uniformType, value) {
77
+ if (value === undefined) {
78
+ return;
79
+ }
80
+ if (typeof uniformType === 'string' || this.layout.fields[baseName]) {
81
+ flattenedUniformValues[baseName] = value;
82
+ return;
83
+ }
84
+ if (Array.isArray(uniformType)) {
85
+ const elementType = uniformType[0];
86
+ const length = uniformType[1];
87
+ if (Array.isArray(elementType)) {
88
+ throw new Error(`Nested arrays are not supported for ${baseName}`);
89
+ }
90
+ if (typeof elementType === 'string' && isNumberArray(value)) {
91
+ this._flattenPackedArray(flattenedUniformValues, baseName, elementType, length, value);
92
+ return;
93
+ }
94
+ if (!Array.isArray(value)) {
95
+ log.warn(`Unsupported uniform array value for ${baseName}:`, value)();
96
+ return;
97
+ }
98
+ for (let index = 0; index < Math.min(value.length, length); index++) {
99
+ const elementValue = value[index];
100
+ if (elementValue === undefined) {
101
+ continue;
102
+ }
103
+ this._flattenCompositeValue(flattenedUniformValues, `${baseName}[${index}]`, elementType, elementValue);
104
+ }
105
+ return;
106
+ }
107
+ if (isCompositeShaderTypeStruct(uniformType) && isCompositeUniformObject(value)) {
108
+ for (const [key, subValue] of Object.entries(value)) {
109
+ if (subValue === undefined) {
110
+ continue;
111
+ }
112
+ const nestedName = `${baseName}.${key}`;
113
+ this._flattenCompositeValue(flattenedUniformValues, nestedName, uniformType[key], subValue);
114
+ }
115
+ return;
116
+ }
117
+ log.warn(`Unsupported uniform value for ${baseName}:`, value)();
118
+ }
119
+ /**
120
+ * Expands tightly packed numeric arrays into per-element leaf fields.
121
+ */
122
+ _flattenPackedArray(flattenedUniformValues, baseName, elementType, length, value) {
123
+ const numericValue = value;
124
+ const elementLayout = getLeafLayoutInfo(elementType, this.layout.layout);
125
+ const packedElementLength = elementLayout.components;
126
+ for (let index = 0; index < length; index++) {
127
+ const start = index * packedElementLength;
128
+ if (start >= numericValue.length) {
129
+ break;
130
+ }
131
+ if (packedElementLength === 1) {
132
+ flattenedUniformValues[`${baseName}[${index}]`] = Number(numericValue[start]);
133
+ }
134
+ else {
135
+ flattenedUniformValues[`${baseName}[${index}]`] = sliceNumericArray(value, start, start + packedElementLength);
136
+ }
137
+ }
138
+ }
139
+ /**
140
+ * Writes one flattened leaf value into its typed-array view.
141
+ */
142
+ _writeLeafValue(typedArrays, name, value) {
143
+ const entry = this.layout.fields[name];
144
+ if (!entry) {
145
+ log.warn(`Uniform ${name} not found in layout`)();
146
+ return;
147
+ }
148
+ const { type, components, columns, rows, offset, columnStride } = entry;
149
+ const array = typedArrays[type];
150
+ if (components === 1) {
151
+ array[offset] = Number(value);
152
+ return;
153
+ }
154
+ const sourceValue = value;
155
+ if (columns === 1) {
156
+ for (let componentIndex = 0; componentIndex < components; componentIndex++) {
157
+ array[offset + componentIndex] = Number(sourceValue[componentIndex] ?? 0);
158
+ }
159
+ return;
160
+ }
161
+ let sourceIndex = 0;
162
+ for (let columnIndex = 0; columnIndex < columns; columnIndex++) {
163
+ const columnOffset = offset + columnIndex * columnStride;
164
+ for (let rowIndex = 0; rowIndex < rows; rowIndex++) {
165
+ array[columnOffset + rowIndex] = Number(sourceValue[sourceIndex++] ?? 0);
166
+ }
167
+ }
168
+ }
169
+ }
170
+ /**
171
+ * Type guard for nested uniform objects.
172
+ */
173
+ function isCompositeUniformObject(value) {
174
+ return (Boolean(value) &&
175
+ typeof value === 'object' &&
176
+ !Array.isArray(value) &&
177
+ !ArrayBuffer.isView(value));
178
+ }
179
+ /**
180
+ * Slices a numeric array-like value without changing its numeric representation.
181
+ */
182
+ function sliceNumericArray(value, start, end) {
183
+ return Array.prototype.slice.call(value, start, end);
184
+ }
185
+ //# sourceMappingURL=shader-block-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-block-writer.js","sourceRoot":"","sources":["../../src/portable/shader-block-writer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { VariableShaderType } from "../shadertypes/data-types/shader-types.js";
1
+ import type { VariableShaderType } from "../shadertypes/shader-types/shader-types.js";
2
2
  import type { UniformValue } from "../adapter/types/uniforms.js";
3
3
  import { ShaderLayout, UniformInfo } from "../adapter/types/shader-layout.js";
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"uniform-block.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-block.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,kDAA+C;AAC/E,OAAO,KAAK,EAAC,YAAY,EAAC,qCAAkC;AAC5D,OAAO,EACL,YAAY,EACZ,WAAW,EAEZ,0CAAuC;AAGxC;;;GAGG;AACH,qBAAa,YAAY,CACvB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAE7E,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,YAAY,CAAC,CAA+C;IAC9F,gBAAgB,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,OAAO,CAAC,CAA0C;IAC5F,QAAQ,EAAE,OAAO,CAAQ;IAEzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;IACzD,WAAW,EAAE,MAAM,GAAG,KAAK,CAAiB;gBAEhC,KAAK,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;KAC5E;IAmBD,4BAA4B;IAC5B,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAS/C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,2BAA2B;IAC3B,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAO9C,2BAA2B;IAC3B,OAAO,CAAC,WAAW;CAQpB"}
1
+ {"version":3,"file":"uniform-block.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-block.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,oDAAiD;AACjF,OAAO,KAAK,EAAC,YAAY,EAAC,qCAAkC;AAC5D,OAAO,EACL,YAAY,EACZ,WAAW,EAEZ,0CAAuC;AAGxC;;;GAGG;AACH,qBAAa,YAAY,CACvB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAE7E,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,YAAY,CAAC,CAA+C;IAC9F,gBAAgB,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,OAAO,CAAC,CAA0C;IAC5F,QAAQ,EAAE,OAAO,CAAQ;IAEzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;IACzD,WAAW,EAAE,MAAM,GAAG,KAAK,CAAiB;gBAEhC,KAAK,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;KAC5E;IAmBD,4BAA4B;IAC5B,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAS/C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,2BAA2B;IAC3B,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAO9C,2BAA2B;IAC3B,OAAO,CAAC,WAAW;CAQpB"}
@@ -1,9 +1,23 @@
1
- import type { VariableShaderType } from "../shadertypes/data-types/shader-types.js";
2
- import type { UniformValue } from "../adapter/types/uniforms.js";
1
+ import type { CompositeShaderType } from "../shadertypes/shader-types/shader-types.js";
2
+ import type { CompositeUniformValue } from "../adapter/types/uniforms.js";
3
3
  import type { Device } from "../adapter/device.js";
4
4
  import { Buffer } from "../adapter/resources/buffer.js";
5
+ import { type ShaderBlockLayout } from "../shadertypes/shader-types/shader-block-layout.js";
5
6
  import { UniformBlock } from "./uniform-block.js";
6
- import { UniformBufferLayout } from "./uniform-buffer-layout.js";
7
+ import { ShaderBlockWriter } from "./shader-block-writer.js";
8
+ /** Definition of a single managed uniform block. */
9
+ export type UniformStoreBlockDefinition = {
10
+ /** Declared shader types for the block's uniforms. */
11
+ uniformTypes?: Record<string, CompositeShaderType>;
12
+ /** Reserved for future prop-level defaults. */
13
+ defaultProps?: Record<string, unknown>;
14
+ /** Initial uniform values written into the backing block. */
15
+ defaultUniforms?: Record<string, CompositeUniformValue>;
16
+ /** Explicit shader-block layout override. */
17
+ layout?: 'std140' | 'wgsl-uniform' | 'wgsl-storage';
18
+ };
19
+ /** Uniform block definitions keyed by block name. */
20
+ export type UniformStoreBlocks<TPropGroups extends Record<string, Record<string, unknown>>> = Record<keyof TPropGroups, UniformStoreBlockDefinition>;
7
21
  /**
8
22
  * A uniform store holds a uniform values for one or more uniform blocks,
9
23
  * - It can generate binary data for any uniform buffer
@@ -12,47 +26,64 @@ import { UniformBufferLayout } from "./uniform-buffer-layout.js";
12
26
  * - It performs some book keeping on what has changed to minimize unnecessary writes to uniform buffers.
13
27
  */
14
28
  export declare class UniformStore<TPropGroups extends Record<string, Record<string, unknown>> = Record<string, Record<string, unknown>>> {
29
+ /** Device used to infer layout and allocate buffers. */
30
+ readonly device: Device;
15
31
  /** Stores the uniform values for each uniform block */
16
- uniformBlocks: Map<keyof TPropGroups, UniformBlock<Record<string, UniformValue>>>;
17
- /** Can generate data for a uniform buffer for each block from data */
18
- uniformBufferLayouts: Map<keyof TPropGroups, UniformBufferLayout>;
32
+ uniformBlocks: Map<keyof TPropGroups, UniformBlock<Record<string, import("../adapter/types/uniforms").UniformValue>>>;
33
+ /** Flattened layout metadata for each block. */
34
+ shaderBlockLayouts: Map<keyof TPropGroups, ShaderBlockLayout>;
35
+ /** Serializers for block-backed uniform data. */
36
+ shaderBlockWriters: Map<keyof TPropGroups, ShaderBlockWriter>;
19
37
  /** Actual buffer for the blocks */
20
38
  uniformBuffers: Map<keyof TPropGroups, Buffer>;
21
39
  /**
22
- * Create a new UniformStore instance
23
- * @param blocks
40
+ * Creates a new {@link UniformStore} for the supplied device and block definitions.
24
41
  */
25
- constructor(blocks: Record<keyof TPropGroups, {
26
- uniformTypes?: Record<string, VariableShaderType>;
27
- uniformSizes?: Record<string, number>;
28
- defaultProps?: Record<string, unknown>;
29
- defaultUniforms?: Record<string, UniformValue>;
30
- }>);
42
+ constructor(device: Device, blocks: UniformStoreBlocks<TPropGroups>);
31
43
  /** Destroy any managed uniform buffers */
32
44
  destroy(): void;
33
45
  /**
34
46
  * Set uniforms
35
- * Makes all properties partial
47
+ *
48
+ * Makes all group properties partial and eagerly propagates changes to any
49
+ * managed GPU buffers.
36
50
  */
37
51
  setUniforms(uniforms: Partial<{
38
52
  [group in keyof TPropGroups]: Partial<TPropGroups[group]>;
39
53
  }>): void;
40
- /** Get the required minimum length of the uniform buffer */
54
+ /**
55
+ * Returns the allocation size for the named uniform buffer.
56
+ *
57
+ * This may exceed the packed layout size because minimum buffer-size policy is
58
+ * applied at the store layer.
59
+ */
41
60
  getUniformBufferByteLength(uniformBufferName: keyof TPropGroups): number;
42
- /** Get formatted binary memory that can be uploaded to a buffer */
61
+ /**
62
+ * Returns packed binary data that can be uploaded to the named uniform buffer.
63
+ *
64
+ * The returned view length matches the packed block size and is not padded to
65
+ * the store's minimum allocation size.
66
+ */
43
67
  getUniformBufferData(uniformBufferName: keyof TPropGroups): Uint8Array;
44
68
  /**
45
- * Creates an unmanaged uniform buffer (umnanaged means that application is responsible for destroying it)
46
- * The new buffer is initialized with current / supplied values
69
+ * Creates an unmanaged uniform buffer initialized with the current or supplied values.
47
70
  */
48
- createUniformBuffer(device: Device, uniformBufferName: keyof TPropGroups, uniforms?: Partial<{
71
+ createUniformBuffer(uniformBufferName: keyof TPropGroups, uniforms?: Partial<{
49
72
  [group in keyof TPropGroups]: Partial<TPropGroups[group]>;
50
73
  }>): Buffer;
51
- /** Get the managed uniform buffer. "managed" resources are destroyed when the uniformStore is destroyed. */
52
- getManagedUniformBuffer(device: Device, uniformBufferName: keyof TPropGroups): Buffer;
53
- /** Updates all uniform buffers where values have changed */
74
+ /** Returns the managed uniform buffer for the named block. */
75
+ getManagedUniformBuffer(uniformBufferName: keyof TPropGroups): Buffer;
76
+ /**
77
+ * Updates every managed uniform buffer whose source uniforms have changed.
78
+ *
79
+ * @returns The first redraw reason encountered, or `false` if nothing changed.
80
+ */
54
81
  updateUniformBuffers(): false | string;
55
- /** Update one uniform buffer. Only updates if values have changed */
82
+ /**
83
+ * Updates one managed uniform buffer if its corresponding block is dirty.
84
+ *
85
+ * @returns The redraw reason for the update, or `false` if no write occurred.
86
+ */
56
87
  updateUniformBuffer(uniformBufferName: keyof TPropGroups): false | string;
57
88
  }
58
89
  //# sourceMappingURL=uniform-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uniform-store.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,kDAA+C;AAC/E,OAAO,KAAK,EAAC,YAAY,EAAC,qCAAkC;AAC5D,OAAO,KAAK,EAAC,MAAM,EAAC,6BAA0B;AAC9C,OAAO,EAAC,MAAM,EAAC,uCAAoC;AAEnD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB;IAED,uDAAuD;IACvD,aAAa,qEAA8C;IAC3D,sEAAsE;IACtE,oBAAoB,8CAAqD;IACzE,mCAAmC;IACnC,cAAc,iCAAwC;IAEtD;;;OAGG;gBAED,MAAM,EAAE,MAAM,CACZ,MAAM,WAAW,EACjB;QACE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KAChD,CACF;IAmBH,0CAA0C;IAC1C,OAAO,IAAI,IAAI;IAMf;;;OAGG;IACH,WAAW,CACT,QAAQ,EAAE,OAAO,CAAC;SAAE,KAAK,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAAC,CAAC,GAC7E,IAAI;IAUP,4DAA4D;IAC5D,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,MAAM;IAIxE,mEAAmE;IACnE,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,UAAU;IAMtE;;;OAGG;IACH,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,WAAW,EACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;SAAE,KAAK,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAAC,CAAC,GAC9E,MAAM;IAeT,4GAA4G;IAC5G,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,WAAW,GAAG,MAAM;IAcrF,4DAA4D;IAC5D,oBAAoB,IAAI,KAAK,GAAG,MAAM;IAYtC,qEAAqE;IACrE,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM;CAwB1E"}
1
+ {"version":3,"file":"uniform-store.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,mBAAmB,EAAC,oDAAiD;AAClF,OAAO,KAAK,EAAC,qBAAqB,EAAC,qCAAkC;AACrE,OAAO,KAAK,EAAC,MAAM,EAAC,6BAA0B;AAC9C,OAAO,EAAC,MAAM,EAAC,uCAAoC;AAEnD,OAAO,EAEL,KAAK,iBAAiB,EACvB,2DAAwD;AACzD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAExD,oDAAoD;AACpD,MAAM,MAAM,2BAA2B,GAAG;IACxC,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnD,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACxD,6CAA6C;IAC7C,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC;CACrD,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IACxF,MAAM,CAAC,MAAM,WAAW,EAAE,2BAA2B,CAAC,CAAC;AAazD;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB;IAED,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,aAAa,yGAA8C;IAC3D,gDAAgD;IAChD,kBAAkB,4CAAmD;IACrE,iDAAiD;IACjD,kBAAkB,4CAAmD;IACrE,mCAAmC;IACnC,cAAc,iCAAwC;IAEtD;;OAEG;gBACS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,CAAC,WAAW,CAAC;IAqBnE,0CAA0C;IAC1C,OAAO,IAAI,IAAI;IAMf;;;;;OAKG;IACH,WAAW,CACT,QAAQ,EAAE,OAAO,CAAC;SAAE,KAAK,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAAC,CAAC,GAC7E,IAAI;IAeP;;;;;OAKG;IACH,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,MAAM;IAKxE;;;;;OAKG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,UAAU;IAMtE;;OAEG;IACH,mBAAmB,CACjB,iBAAiB,EAAE,MAAM,WAAW,EACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;SAAE,KAAK,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAAC,CAAC,GAC9E,MAAM;IAeT,8DAA8D;IAC9D,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,MAAM;IAcrE;;;;OAIG;IACH,oBAAoB,IAAI,KAAK,GAAG,MAAM;IAYtC;;;;OAIG;IACH,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM;CAwB1E"}