@luma.gl/shaders 0.0.0-stage → 10.0.0-alpha.10

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 (699) hide show
  1. package/LICENSE +38 -0
  2. package/README.md +25 -2
  3. package/dist/dist.dev.js +19880 -0
  4. package/dist/dist.min.js +12192 -0
  5. package/dist/glsl.cjs +33 -0
  6. package/dist/glsl.cjs.map +6 -0
  7. package/dist/glsl.d.ts +6 -0
  8. package/dist/glsl.d.ts.map +1 -0
  9. package/dist/glsl.js +7 -0
  10. package/dist/glsl.js.map +1 -0
  11. package/dist/index.cjs +243 -0
  12. package/dist/index.cjs.map +6 -0
  13. package/dist/index.d.ts +91 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +65 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/lib/color/normalize-byte-colors.cjs +50 -0
  18. package/dist/lib/color/normalize-byte-colors.d.ts +23 -0
  19. package/dist/lib/color/normalize-byte-colors.d.ts.map +1 -0
  20. package/dist/lib/color/normalize-byte-colors.js +42 -0
  21. package/dist/lib/color/normalize-byte-colors.js.map +1 -0
  22. package/dist/lib/filters/prop-types.cjs +90 -0
  23. package/dist/lib/filters/prop-types.d.ts +44 -0
  24. package/dist/lib/filters/prop-types.d.ts.map +1 -0
  25. package/dist/lib/filters/prop-types.js +96 -0
  26. package/dist/lib/filters/prop-types.js.map +1 -0
  27. package/dist/lib/glsl-shader-assembler.cjs +50 -0
  28. package/dist/lib/glsl-shader-assembler.d.ts +19 -0
  29. package/dist/lib/glsl-shader-assembler.d.ts.map +1 -0
  30. package/dist/lib/glsl-shader-assembler.js +29 -0
  31. package/dist/lib/glsl-shader-assembler.js.map +1 -0
  32. package/dist/lib/glsl-utils/get-shader-info.cjs +52 -0
  33. package/dist/lib/glsl-utils/get-shader-info.d.ts +9 -0
  34. package/dist/lib/glsl-utils/get-shader-info.d.ts.map +1 -0
  35. package/dist/lib/glsl-utils/get-shader-info.js +33 -0
  36. package/dist/lib/glsl-utils/get-shader-info.js.map +1 -0
  37. package/dist/lib/glsl-utils/shader-utils.cjs +126 -0
  38. package/dist/lib/glsl-utils/shader-utils.d.ts +23 -0
  39. package/dist/lib/glsl-utils/shader-utils.d.ts.map +1 -0
  40. package/dist/lib/glsl-utils/shader-utils.js +92 -0
  41. package/dist/lib/glsl-utils/shader-utils.js.map +1 -0
  42. package/dist/lib/preprocessor/preprocessor.cjs +128 -0
  43. package/dist/lib/preprocessor/preprocessor.d.ts +15 -0
  44. package/dist/lib/preprocessor/preprocessor.d.ts.map +1 -0
  45. package/dist/lib/preprocessor/preprocessor.js +120 -0
  46. package/dist/lib/preprocessor/preprocessor.js.map +1 -0
  47. package/dist/lib/shader-assembler-base.cjs +132 -0
  48. package/dist/lib/shader-assembler-base.d.ts +51 -0
  49. package/dist/lib/shader-assembler-base.d.ts.map +1 -0
  50. package/dist/lib/shader-assembler-base.js +127 -0
  51. package/dist/lib/shader-assembler-base.js.map +1 -0
  52. package/dist/lib/shader-assembler.cjs +33 -0
  53. package/dist/lib/shader-assembler.d.ts +4 -0
  54. package/dist/lib/shader-assembler.d.ts.map +1 -0
  55. package/dist/lib/shader-assembler.js +7 -0
  56. package/dist/lib/shader-assembler.js.map +1 -0
  57. package/dist/lib/shader-assembly/assemble-glsl-shaders.cjs +181 -0
  58. package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts +70 -0
  59. package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts.map +1 -0
  60. package/dist/lib/shader-assembly/assemble-glsl-shaders.js +208 -0
  61. package/dist/lib/shader-assembly/assemble-glsl-shaders.js.map +1 -0
  62. package/dist/lib/shader-assembly/assemble-shaders.cjs +42 -0
  63. package/dist/lib/shader-assembly/assemble-shaders.d.ts +10 -0
  64. package/dist/lib/shader-assembly/assemble-shaders.d.ts.map +1 -0
  65. package/dist/lib/shader-assembly/assemble-shaders.js +10 -0
  66. package/dist/lib/shader-assembly/assemble-shaders.js.map +1 -0
  67. package/dist/lib/shader-assembly/assemble-wgsl-shaders.cjs +498 -0
  68. package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts +70 -0
  69. package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts.map +1 -0
  70. package/dist/lib/shader-assembly/assemble-wgsl-shaders.js +480 -0
  71. package/dist/lib/shader-assembly/assemble-wgsl-shaders.js.map +1 -0
  72. package/dist/lib/shader-assembly/platform-defines.cjs +79 -0
  73. package/dist/lib/shader-assembly/platform-defines.d.ts +4 -0
  74. package/dist/lib/shader-assembly/platform-defines.d.ts.map +1 -0
  75. package/dist/lib/shader-assembly/platform-defines.js +52 -0
  76. package/dist/lib/shader-assembly/platform-defines.js.map +1 -0
  77. package/dist/lib/shader-assembly/platform-info.cjs +15 -0
  78. package/dist/lib/shader-assembly/platform-info.d.ts +20 -0
  79. package/dist/lib/shader-assembly/platform-info.d.ts.map +1 -0
  80. package/dist/lib/shader-assembly/platform-info.js +5 -0
  81. package/dist/lib/shader-assembly/platform-info.js.map +1 -0
  82. package/dist/lib/shader-assembly/shader-assembly-shared.cjs +96 -0
  83. package/dist/lib/shader-assembly/shader-assembly-shared.d.ts +16 -0
  84. package/dist/lib/shader-assembly/shader-assembly-shared.d.ts.map +1 -0
  85. package/dist/lib/shader-assembly/shader-assembly-shared.js +79 -0
  86. package/dist/lib/shader-assembly/shader-assembly-shared.js.map +1 -0
  87. package/dist/lib/shader-assembly/shader-assembly-types.cjs +15 -0
  88. package/dist/lib/shader-assembly/shader-assembly-types.d.ts +132 -0
  89. package/dist/lib/shader-assembly/shader-assembly-types.d.ts.map +1 -0
  90. package/dist/lib/shader-assembly/shader-assembly-types.js +5 -0
  91. package/dist/lib/shader-assembly/shader-assembly-types.js.map +1 -0
  92. package/dist/lib/shader-assembly/shader-injection-targets.cjs +103 -0
  93. package/dist/lib/shader-assembly/shader-injection-targets.d.ts +46 -0
  94. package/dist/lib/shader-assembly/shader-injection-targets.d.ts.map +1 -0
  95. package/dist/lib/shader-assembly/shader-injection-targets.js +83 -0
  96. package/dist/lib/shader-assembly/shader-injection-targets.js.map +1 -0
  97. package/dist/lib/shader-assembly/shader-injections.cjs +204 -0
  98. package/dist/lib/shader-assembly/shader-injections.d.ts +49 -0
  99. package/dist/lib/shader-assembly/shader-injections.d.ts.map +1 -0
  100. package/dist/lib/shader-assembly/shader-injections.js +207 -0
  101. package/dist/lib/shader-assembly/shader-injections.js.map +1 -0
  102. package/dist/lib/shader-assembly/shader-plugin-varyings.cjs +434 -0
  103. package/dist/lib/shader-assembly/shader-plugin-varyings.d.ts +15 -0
  104. package/dist/lib/shader-assembly/shader-plugin-varyings.d.ts.map +1 -0
  105. package/dist/lib/shader-assembly/shader-plugin-varyings.js +438 -0
  106. package/dist/lib/shader-assembly/shader-plugin-varyings.js.map +1 -0
  107. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.cjs +254 -0
  108. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.d.ts +12 -0
  109. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.d.ts.map +1 -0
  110. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.js +237 -0
  111. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.js.map +1 -0
  112. package/dist/lib/shader-assembly/wgsl-binding-debug.cjs +166 -0
  113. package/dist/lib/shader-assembly/wgsl-binding-debug.d.ts +37 -0
  114. package/dist/lib/shader-assembly/wgsl-binding-debug.d.ts.map +1 -0
  115. package/dist/lib/shader-assembly/wgsl-binding-debug.js +144 -0
  116. package/dist/lib/shader-assembly/wgsl-binding-debug.js.map +1 -0
  117. package/dist/lib/shader-assembly/wgsl-binding-scan.cjs +184 -0
  118. package/dist/lib/shader-assembly/wgsl-binding-scan.d.ts +19 -0
  119. package/dist/lib/shader-assembly/wgsl-binding-scan.d.ts.map +1 -0
  120. package/dist/lib/shader-assembly/wgsl-binding-scan.js +151 -0
  121. package/dist/lib/shader-assembly/wgsl-binding-scan.js.map +1 -0
  122. package/dist/lib/shader-assembly/wgsl-injection-target-names.cjs +163 -0
  123. package/dist/lib/shader-assembly/wgsl-injection-target-names.d.ts +8 -0
  124. package/dist/lib/shader-assembly/wgsl-injection-target-names.d.ts.map +1 -0
  125. package/dist/lib/shader-assembly/wgsl-injection-target-names.js +145 -0
  126. package/dist/lib/shader-assembly/wgsl-injection-target-names.js.map +1 -0
  127. package/dist/lib/shader-assembly/wgsl-interface-scan.cjs +502 -0
  128. package/dist/lib/shader-assembly/wgsl-interface-scan.d.ts +14 -0
  129. package/dist/lib/shader-assembly/wgsl-interface-scan.d.ts.map +1 -0
  130. package/dist/lib/shader-assembly/wgsl-interface-scan.js +498 -0
  131. package/dist/lib/shader-assembly/wgsl-interface-scan.js.map +1 -0
  132. package/dist/lib/shader-generator/generate-shader.cjs +36 -0
  133. package/dist/lib/shader-generator/generate-shader.d.ts +8 -0
  134. package/dist/lib/shader-generator/generate-shader.d.ts.map +1 -0
  135. package/dist/lib/shader-generator/generate-shader.js +15 -0
  136. package/dist/lib/shader-generator/generate-shader.js.map +1 -0
  137. package/dist/lib/shader-generator/glsl/generate-glsl.cjs +94 -0
  138. package/dist/lib/shader-generator/glsl/generate-glsl.d.ts +7 -0
  139. package/dist/lib/shader-generator/glsl/generate-glsl.d.ts.map +1 -0
  140. package/dist/lib/shader-generator/glsl/generate-glsl.js +79 -0
  141. package/dist/lib/shader-generator/glsl/generate-glsl.js.map +1 -0
  142. package/dist/lib/shader-generator/utils/capitalize.cjs +29 -0
  143. package/dist/lib/shader-generator/utils/capitalize.d.ts +7 -0
  144. package/dist/lib/shader-generator/utils/capitalize.d.ts.map +1 -0
  145. package/dist/lib/shader-generator/utils/capitalize.js +12 -0
  146. package/dist/lib/shader-generator/utils/capitalize.js.map +1 -0
  147. package/dist/lib/shader-generator/wgsl/generate-wgsl.cjs +46 -0
  148. package/dist/lib/shader-generator/wgsl/generate-wgsl.d.ts +7 -0
  149. package/dist/lib/shader-generator/wgsl/generate-wgsl.d.ts.map +1 -0
  150. package/dist/lib/shader-generator/wgsl/generate-wgsl.js +23 -0
  151. package/dist/lib/shader-generator/wgsl/generate-wgsl.js.map +1 -0
  152. package/dist/lib/shader-module/composite-shader-pass.cjs +15 -0
  153. package/dist/lib/shader-module/composite-shader-pass.d.ts +41 -0
  154. package/dist/lib/shader-module/composite-shader-pass.d.ts.map +1 -0
  155. package/dist/lib/shader-module/composite-shader-pass.js +5 -0
  156. package/dist/lib/shader-module/composite-shader-pass.js.map +1 -0
  157. package/dist/lib/shader-module/shader-module-dependencies.cjs +83 -0
  158. package/dist/lib/shader-module/shader-module-dependencies.d.ts +39 -0
  159. package/dist/lib/shader-module/shader-module-dependencies.d.ts.map +1 -0
  160. package/dist/lib/shader-module/shader-module-dependencies.js +103 -0
  161. package/dist/lib/shader-module/shader-module-dependencies.js.map +1 -0
  162. package/dist/lib/shader-module/shader-module-uniform-layout.cjs +224 -0
  163. package/dist/lib/shader-module/shader-module-uniform-layout.d.ts +91 -0
  164. package/dist/lib/shader-module/shader-module-uniform-layout.d.ts.map +1 -0
  165. package/dist/lib/shader-module/shader-module-uniform-layout.js +253 -0
  166. package/dist/lib/shader-module/shader-module-uniform-layout.js.map +1 -0
  167. package/dist/lib/shader-module/shader-module.cjs +99 -0
  168. package/dist/lib/shader-module/shader-module.d.ts +94 -0
  169. package/dist/lib/shader-module/shader-module.d.ts.map +1 -0
  170. package/dist/lib/shader-module/shader-module.js +101 -0
  171. package/dist/lib/shader-module/shader-module.js.map +1 -0
  172. package/dist/lib/shader-module/shader-pass.cjs +15 -0
  173. package/dist/lib/shader-module/shader-pass.d.ts +48 -0
  174. package/dist/lib/shader-module/shader-pass.d.ts.map +1 -0
  175. package/dist/lib/shader-module/shader-pass.js +5 -0
  176. package/dist/lib/shader-module/shader-pass.js.map +1 -0
  177. package/dist/lib/shader-plugin.cjs +156 -0
  178. package/dist/lib/shader-plugin.d.ts +61 -0
  179. package/dist/lib/shader-plugin.d.ts.map +1 -0
  180. package/dist/lib/shader-plugin.js +147 -0
  181. package/dist/lib/shader-plugin.js.map +1 -0
  182. package/dist/lib/shader-transpiler/shader-transpiler.cjs +15 -0
  183. package/dist/lib/shader-transpiler/shader-transpiler.d.ts +27 -0
  184. package/dist/lib/shader-transpiler/shader-transpiler.d.ts.map +1 -0
  185. package/dist/lib/shader-transpiler/shader-transpiler.js +5 -0
  186. package/dist/lib/shader-transpiler/shader-transpiler.js.map +1 -0
  187. package/dist/lib/shader-transpiler/transpile-glsl-shader.cjs +71 -0
  188. package/dist/lib/shader-transpiler/transpile-glsl-shader.d.ts +9 -0
  189. package/dist/lib/shader-transpiler/transpile-glsl-shader.d.ts.map +1 -0
  190. package/dist/lib/shader-transpiler/transpile-glsl-shader.js +69 -0
  191. package/dist/lib/shader-transpiler/transpile-glsl-shader.js.map +1 -0
  192. package/dist/lib/utils/assert.cjs +34 -0
  193. package/dist/lib/utils/assert.d.ts +2 -0
  194. package/dist/lib/utils/assert.d.ts.map +1 -0
  195. package/dist/lib/utils/assert.js +13 -0
  196. package/dist/lib/utils/assert.js.map +1 -0
  197. package/dist/lib/utils/uniform-types.cjs +15 -0
  198. package/dist/lib/utils/uniform-types.d.ts +18 -0
  199. package/dist/lib/utils/uniform-types.d.ts.map +1 -0
  200. package/dist/lib/utils/uniform-types.js +5 -0
  201. package/dist/lib/utils/uniform-types.js.map +1 -0
  202. package/dist/lib/wgsl-shader-assembler.cjs +99 -0
  203. package/dist/lib/wgsl-shader-assembler.d.ts +34 -0
  204. package/dist/lib/wgsl-shader-assembler.d.ts.map +1 -0
  205. package/dist/lib/wgsl-shader-assembler.js +84 -0
  206. package/dist/lib/wgsl-shader-assembler.js.map +1 -0
  207. package/dist/module-injectors.cjs +59 -0
  208. package/dist/module-injectors.d.ts +3 -0
  209. package/dist/module-injectors.d.ts.map +1 -0
  210. package/dist/module-injectors.js +31 -0
  211. package/dist/module-injectors.js.map +1 -0
  212. package/dist/modules/color/float-colors.cjs +275 -0
  213. package/dist/modules/color/float-colors.d.ts +132 -0
  214. package/dist/modules/color/float-colors.d.ts.map +1 -0
  215. package/dist/modules/color/float-colors.js +248 -0
  216. package/dist/modules/color/float-colors.js.map +1 -0
  217. package/dist/modules/engine/clip/clip.cjs +142 -0
  218. package/dist/modules/engine/clip/clip.d.ts +12 -0
  219. package/dist/modules/engine/clip/clip.d.ts.map +1 -0
  220. package/dist/modules/engine/clip/clip.js +119 -0
  221. package/dist/modules/engine/clip/clip.js.map +1 -0
  222. package/dist/modules/engine/filter/filter.cjs +103 -0
  223. package/dist/modules/engine/filter/filter.d.ts +12 -0
  224. package/dist/modules/engine/filter/filter.d.ts.map +1 -0
  225. package/dist/modules/engine/filter/filter.js +80 -0
  226. package/dist/modules/engine/filter/filter.js.map +1 -0
  227. package/dist/modules/engine/geometry/geometry.cjs +63 -0
  228. package/dist/modules/engine/geometry/geometry.d.ts +9 -0
  229. package/dist/modules/engine/geometry/geometry.d.ts.map +1 -0
  230. package/dist/modules/engine/geometry/geometry.js +42 -0
  231. package/dist/modules/engine/geometry/geometry.js.map +1 -0
  232. package/dist/modules/engine/gpu-animation/gpu-animation.cjs +255 -0
  233. package/dist/modules/engine/gpu-animation/gpu-animation.d.ts +34 -0
  234. package/dist/modules/engine/gpu-animation/gpu-animation.d.ts.map +1 -0
  235. package/dist/modules/engine/gpu-animation/gpu-animation.js +228 -0
  236. package/dist/modules/engine/gpu-animation/gpu-animation.js.map +1 -0
  237. package/dist/modules/engine/picking/picking.cjs +210 -0
  238. package/dist/modules/engine/picking/picking.d.ts +77 -0
  239. package/dist/modules/engine/picking/picking.d.ts.map +1 -0
  240. package/dist/modules/engine/picking/picking.js +198 -0
  241. package/dist/modules/engine/picking/picking.js.map +1 -0
  242. package/dist/modules/engine/project/project.cjs +138 -0
  243. package/dist/modules/engine/project/project.d.ts +39 -0
  244. package/dist/modules/engine/project/project.d.ts.map +1 -0
  245. package/dist/modules/engine/project/project.js +129 -0
  246. package/dist/modules/engine/project/project.js.map +1 -0
  247. package/dist/modules/engine/skin/skin.cjs +212 -0
  248. package/dist/modules/engine/skin/skin.d.ts +52 -0
  249. package/dist/modules/engine/skin/skin.d.ts.map +1 -0
  250. package/dist/modules/engine/skin/skin.js +179 -0
  251. package/dist/modules/engine/skin/skin.js.map +1 -0
  252. package/dist/modules/engine/transform/transform.cjs +72 -0
  253. package/dist/modules/engine/transform/transform.d.ts +6 -0
  254. package/dist/modules/engine/transform/transform.d.ts.map +1 -0
  255. package/dist/modules/engine/transform/transform.js +49 -0
  256. package/dist/modules/engine/transform/transform.js.map +1 -0
  257. package/dist/modules/geometry/path-dash/path-dash.cjs +93 -0
  258. package/dist/modules/geometry/path-dash/path-dash.d.ts +10 -0
  259. package/dist/modules/geometry/path-dash/path-dash.d.ts.map +1 -0
  260. package/dist/modules/geometry/path-dash/path-dash.js +66 -0
  261. package/dist/modules/geometry/path-dash/path-dash.js.map +1 -0
  262. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.cjs +117 -0
  263. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.d.ts +3 -0
  264. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.d.ts.map +1 -0
  265. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.js +87 -0
  266. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.js.map +1 -0
  267. package/dist/modules/geometry/pattern-fill/pattern-fill.cjs +64 -0
  268. package/dist/modules/geometry/pattern-fill/pattern-fill.d.ts +14 -0
  269. package/dist/modules/geometry/pattern-fill/pattern-fill.d.ts.map +1 -0
  270. package/dist/modules/geometry/pattern-fill/pattern-fill.js +43 -0
  271. package/dist/modules/geometry/pattern-fill/pattern-fill.js.map +1 -0
  272. package/dist/modules/geometry/point-glow/point-glow.cjs +104 -0
  273. package/dist/modules/geometry/point-glow/point-glow.d.ts +11 -0
  274. package/dist/modules/geometry/point-glow/point-glow.d.ts.map +1 -0
  275. package/dist/modules/geometry/point-glow/point-glow.js +77 -0
  276. package/dist/modules/geometry/point-glow/point-glow.js.map +1 -0
  277. package/dist/modules/geometry/precipitation/precipitation.cjs +122 -0
  278. package/dist/modules/geometry/precipitation/precipitation.d.ts +40 -0
  279. package/dist/modules/geometry/precipitation/precipitation.d.ts.map +1 -0
  280. package/dist/modules/geometry/precipitation/precipitation.js +95 -0
  281. package/dist/modules/geometry/precipitation/precipitation.js.map +1 -0
  282. package/dist/modules/geometry/sketch-stroke/sketch-stroke.cjs +158 -0
  283. package/dist/modules/geometry/sketch-stroke/sketch-stroke.d.ts +60 -0
  284. package/dist/modules/geometry/sketch-stroke/sketch-stroke.d.ts.map +1 -0
  285. package/dist/modules/geometry/sketch-stroke/sketch-stroke.js +137 -0
  286. package/dist/modules/geometry/sketch-stroke/sketch-stroke.js.map +1 -0
  287. package/dist/modules/geospatial/dggs/dggs-wgsl.cjs +2304 -0
  288. package/dist/modules/geospatial/dggs/dggs-wgsl.d.ts +3 -0
  289. package/dist/modules/geospatial/dggs/dggs-wgsl.d.ts.map +1 -0
  290. package/dist/modules/geospatial/dggs/dggs-wgsl.js +2283 -0
  291. package/dist/modules/geospatial/dggs/dggs-wgsl.js.map +1 -0
  292. package/dist/modules/geospatial/dggs/dggs.cjs +31 -0
  293. package/dist/modules/geospatial/dggs/dggs.d.ts +6 -0
  294. package/dist/modules/geospatial/dggs/dggs.d.ts.map +1 -0
  295. package/dist/modules/geospatial/dggs/dggs.js +10 -0
  296. package/dist/modules/geospatial/dggs/dggs.js.map +1 -0
  297. package/dist/modules/lighting/area-lighting/area-light-types.cjs +68 -0
  298. package/dist/modules/lighting/area-lighting/area-light-types.d.ts +34 -0
  299. package/dist/modules/lighting/area-lighting/area-light-types.d.ts.map +1 -0
  300. package/dist/modules/lighting/area-lighting/area-light-types.js +40 -0
  301. package/dist/modules/lighting/area-lighting/area-light-types.js.map +1 -0
  302. package/dist/modules/lighting/area-lighting/area-lighting-shaders.cjs +101 -0
  303. package/dist/modules/lighting/area-lighting/area-lighting-shaders.d.ts +3 -0
  304. package/dist/modules/lighting/area-lighting/area-lighting-shaders.d.ts.map +1 -0
  305. package/dist/modules/lighting/area-lighting/area-lighting-shaders.js +71 -0
  306. package/dist/modules/lighting/area-lighting/area-lighting-shaders.js.map +1 -0
  307. package/dist/modules/lighting/area-lighting/area-lighting.cjs +62 -0
  308. package/dist/modules/lighting/area-lighting/area-lighting.d.ts +89 -0
  309. package/dist/modules/lighting/area-lighting/area-lighting.d.ts.map +1 -0
  310. package/dist/modules/lighting/area-lighting/area-lighting.js +41 -0
  311. package/dist/modules/lighting/area-lighting/area-lighting.js.map +1 -0
  312. package/dist/modules/lighting/area-lighting/ltc-shaders.cjs +192 -0
  313. package/dist/modules/lighting/area-lighting/ltc-shaders.d.ts +3 -0
  314. package/dist/modules/lighting/area-lighting/ltc-shaders.d.ts.map +1 -0
  315. package/dist/modules/lighting/area-lighting/ltc-shaders.js +162 -0
  316. package/dist/modules/lighting/area-lighting/ltc-shaders.js.map +1 -0
  317. package/dist/modules/lighting/atmosphere/atmosphere.cjs +253 -0
  318. package/dist/modules/lighting/atmosphere/atmosphere.d.ts +45 -0
  319. package/dist/modules/lighting/atmosphere/atmosphere.d.ts.map +1 -0
  320. package/dist/modules/lighting/atmosphere/atmosphere.js +228 -0
  321. package/dist/modules/lighting/atmosphere/atmosphere.js.map +1 -0
  322. package/dist/modules/lighting/clouds/clouds.cjs +216 -0
  323. package/dist/modules/lighting/clouds/clouds.d.ts +58 -0
  324. package/dist/modules/lighting/clouds/clouds.d.ts.map +1 -0
  325. package/dist/modules/lighting/clouds/clouds.js +192 -0
  326. package/dist/modules/lighting/clouds/clouds.js.map +1 -0
  327. package/dist/modules/lighting/firefly/firefly.cjs +74 -0
  328. package/dist/modules/lighting/firefly/firefly.d.ts +36 -0
  329. package/dist/modules/lighting/firefly/firefly.d.ts.map +1 -0
  330. package/dist/modules/lighting/firefly/firefly.js +53 -0
  331. package/dist/modules/lighting/firefly/firefly.js.map +1 -0
  332. package/dist/modules/lighting/globe-clouds/globe-clouds.cjs +143 -0
  333. package/dist/modules/lighting/globe-clouds/globe-clouds.d.ts +53 -0
  334. package/dist/modules/lighting/globe-clouds/globe-clouds.d.ts.map +1 -0
  335. package/dist/modules/lighting/globe-clouds/globe-clouds.js +119 -0
  336. package/dist/modules/lighting/globe-clouds/globe-clouds.js.map +1 -0
  337. package/dist/modules/lighting/gouraud-material/gouraud-material.cjs +61 -0
  338. package/dist/modules/lighting/gouraud-material/gouraud-material.d.ts +12 -0
  339. package/dist/modules/lighting/gouraud-material/gouraud-material.d.ts.map +1 -0
  340. package/dist/modules/lighting/gouraud-material/gouraud-material.js +40 -0
  341. package/dist/modules/lighting/gouraud-material/gouraud-material.js.map +1 -0
  342. package/dist/modules/lighting/height-fog/height-fog-functions.cjs +139 -0
  343. package/dist/modules/lighting/height-fog/height-fog-functions.d.ts +14 -0
  344. package/dist/modules/lighting/height-fog/height-fog-functions.d.ts.map +1 -0
  345. package/dist/modules/lighting/height-fog/height-fog-functions.js +114 -0
  346. package/dist/modules/lighting/height-fog/height-fog-functions.js.map +1 -0
  347. package/dist/modules/lighting/height-fog/height-fog.cjs +104 -0
  348. package/dist/modules/lighting/height-fog/height-fog.d.ts +60 -0
  349. package/dist/modules/lighting/height-fog/height-fog.d.ts.map +1 -0
  350. package/dist/modules/lighting/height-fog/height-fog.js +77 -0
  351. package/dist/modules/lighting/height-fog/height-fog.js.map +1 -0
  352. package/dist/modules/lighting/ibl/ibl.cjs +63 -0
  353. package/dist/modules/lighting/ibl/ibl.d.ts +25 -0
  354. package/dist/modules/lighting/ibl/ibl.d.ts.map +1 -0
  355. package/dist/modules/lighting/ibl/ibl.js +33 -0
  356. package/dist/modules/lighting/ibl/ibl.js.map +1 -0
  357. package/dist/modules/lighting/lambert-material/lambert-material.cjs +54 -0
  358. package/dist/modules/lighting/lambert-material/lambert-material.d.ts +10 -0
  359. package/dist/modules/lighting/lambert-material/lambert-material.d.ts.map +1 -0
  360. package/dist/modules/lighting/lambert-material/lambert-material.js +33 -0
  361. package/dist/modules/lighting/lambert-material/lambert-material.js.map +1 -0
  362. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.cjs +88 -0
  363. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.d.ts +3 -0
  364. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.d.ts.map +1 -0
  365. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.js +60 -0
  366. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.js.map +1 -0
  367. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.cjs +97 -0
  368. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.d.ts +2 -0
  369. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.d.ts.map +1 -0
  370. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.js +73 -0
  371. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.js.map +1 -0
  372. package/dist/modules/lighting/lights/lighting-glsl.cjs +116 -0
  373. package/dist/modules/lighting/lights/lighting-glsl.d.ts +2 -0
  374. package/dist/modules/lighting/lights/lighting-glsl.d.ts.map +1 -0
  375. package/dist/modules/lighting/lights/lighting-glsl.js +92 -0
  376. package/dist/modules/lighting/lights/lighting-glsl.js.map +1 -0
  377. package/dist/modules/lighting/lights/lighting-wgsl.cjs +115 -0
  378. package/dist/modules/lighting/lights/lighting-wgsl.d.ts +2 -0
  379. package/dist/modules/lighting/lights/lighting-wgsl.d.ts.map +1 -0
  380. package/dist/modules/lighting/lights/lighting-wgsl.js +91 -0
  381. package/dist/modules/lighting/lights/lighting-wgsl.js.map +1 -0
  382. package/dist/modules/lighting/lights/lighting.cjs +210 -0
  383. package/dist/modules/lighting/lights/lighting.d.ts +163 -0
  384. package/dist/modules/lighting/lights/lighting.d.ts.map +1 -0
  385. package/dist/modules/lighting/lights/lighting.js +208 -0
  386. package/dist/modules/lighting/lights/lighting.js.map +1 -0
  387. package/dist/modules/lighting/no-material/dirlight.cjs +112 -0
  388. package/dist/modules/lighting/no-material/dirlight.d.ts +33 -0
  389. package/dist/modules/lighting/no-material/dirlight.d.ts.map +1 -0
  390. package/dist/modules/lighting/no-material/dirlight.js +86 -0
  391. package/dist/modules/lighting/no-material/dirlight.js.map +1 -0
  392. package/dist/modules/lighting/pbr-material/pbr-material-glsl.cjs +1767 -0
  393. package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts +3 -0
  394. package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts.map +1 -0
  395. package/dist/modules/lighting/pbr-material/pbr-material-glsl.js +1745 -0
  396. package/dist/modules/lighting/pbr-material/pbr-material-glsl.js.map +1 -0
  397. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.cjs +2062 -0
  398. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts +3 -0
  399. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts.map +1 -0
  400. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js +2040 -0
  401. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js.map +1 -0
  402. package/dist/modules/lighting/pbr-material/pbr-material.cjs +315 -0
  403. package/dist/modules/lighting/pbr-material/pbr-material.d.ts +516 -0
  404. package/dist/modules/lighting/pbr-material/pbr-material.d.ts.map +1 -0
  405. package/dist/modules/lighting/pbr-material/pbr-material.js +292 -0
  406. package/dist/modules/lighting/pbr-material/pbr-material.js.map +1 -0
  407. package/dist/modules/lighting/pbr-material/pbr-projection.cjs +63 -0
  408. package/dist/modules/lighting/pbr-material/pbr-projection.d.ts +10 -0
  409. package/dist/modules/lighting/pbr-material/pbr-projection.d.ts.map +1 -0
  410. package/dist/modules/lighting/pbr-material/pbr-projection.js +37 -0
  411. package/dist/modules/lighting/pbr-material/pbr-projection.js.map +1 -0
  412. package/dist/modules/lighting/pbr-material/pbr-scene.cjs +109 -0
  413. package/dist/modules/lighting/pbr-material/pbr-scene.d.ts +52 -0
  414. package/dist/modules/lighting/pbr-material/pbr-scene.d.ts.map +1 -0
  415. package/dist/modules/lighting/pbr-material/pbr-scene.js +83 -0
  416. package/dist/modules/lighting/pbr-material/pbr-scene.js.map +1 -0
  417. package/dist/modules/lighting/phong-material/phong-material.cjs +61 -0
  418. package/dist/modules/lighting/phong-material/phong-material.d.ts +13 -0
  419. package/dist/modules/lighting/phong-material/phong-material.d.ts.map +1 -0
  420. package/dist/modules/lighting/phong-material/phong-material.js +40 -0
  421. package/dist/modules/lighting/phong-material/phong-material.js.map +1 -0
  422. package/dist/modules/lighting/phong-material/phong-shaders-glsl.cjs +100 -0
  423. package/dist/modules/lighting/phong-material/phong-shaders-glsl.d.ts +3 -0
  424. package/dist/modules/lighting/phong-material/phong-shaders-glsl.d.ts.map +1 -0
  425. package/dist/modules/lighting/phong-material/phong-shaders-glsl.js +72 -0
  426. package/dist/modules/lighting/phong-material/phong-shaders-glsl.js.map +1 -0
  427. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.cjs +153 -0
  428. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.d.ts +2 -0
  429. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.d.ts.map +1 -0
  430. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.js +129 -0
  431. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.js.map +1 -0
  432. package/dist/modules/lighting/surface-weather/surface-weather.cjs +199 -0
  433. package/dist/modules/lighting/surface-weather/surface-weather.d.ts +54 -0
  434. package/dist/modules/lighting/surface-weather/surface-weather.d.ts.map +1 -0
  435. package/dist/modules/lighting/surface-weather/surface-weather.js +175 -0
  436. package/dist/modules/lighting/surface-weather/surface-weather.js.map +1 -0
  437. package/dist/modules/lighting/water-material/river-water-material.cjs +56 -0
  438. package/dist/modules/lighting/water-material/river-water-material.d.ts +21 -0
  439. package/dist/modules/lighting/water-material/river-water-material.d.ts.map +1 -0
  440. package/dist/modules/lighting/water-material/river-water-material.js +36 -0
  441. package/dist/modules/lighting/water-material/river-water-material.js.map +1 -0
  442. package/dist/modules/lighting/water-material/river-water-shaders.cjs +261 -0
  443. package/dist/modules/lighting/water-material/river-water-shaders.d.ts +3 -0
  444. package/dist/modules/lighting/water-material/river-water-shaders.d.ts.map +1 -0
  445. package/dist/modules/lighting/water-material/river-water-shaders.js +233 -0
  446. package/dist/modules/lighting/water-material/river-water-shaders.js.map +1 -0
  447. package/dist/modules/lighting/water-material/water-material.cjs +188 -0
  448. package/dist/modules/lighting/water-material/water-material.d.ts +28 -0
  449. package/dist/modules/lighting/water-material/water-material.d.ts.map +1 -0
  450. package/dist/modules/lighting/water-material/water-material.js +179 -0
  451. package/dist/modules/lighting/water-material/water-material.js.map +1 -0
  452. package/dist/modules/lighting/water-material/water-shaders-glsl.cjs +260 -0
  453. package/dist/modules/lighting/water-material/water-shaders-glsl.d.ts +3 -0
  454. package/dist/modules/lighting/water-material/water-shaders-glsl.d.ts.map +1 -0
  455. package/dist/modules/lighting/water-material/water-shaders-glsl.js +232 -0
  456. package/dist/modules/lighting/water-material/water-shaders-glsl.js.map +1 -0
  457. package/dist/modules/lighting/water-material/water-shaders-wgsl.cjs +254 -0
  458. package/dist/modules/lighting/water-material/water-shaders-wgsl.d.ts +2 -0
  459. package/dist/modules/lighting/water-material/water-shaders-wgsl.d.ts.map +1 -0
  460. package/dist/modules/lighting/water-material/water-shaders-wgsl.js +230 -0
  461. package/dist/modules/lighting/water-material/water-shaders-wgsl.js.map +1 -0
  462. package/dist/modules/math/fp16/fp16-utils.cjs +112 -0
  463. package/dist/modules/math/fp16/fp16-utils.d.ts +13 -0
  464. package/dist/modules/math/fp16/fp16-utils.d.ts.map +1 -0
  465. package/dist/modules/math/fp16/fp16-utils.js +118 -0
  466. package/dist/modules/math/fp16/fp16-utils.js.map +1 -0
  467. package/dist/modules/math/fp32/fp32.cjs +310 -0
  468. package/dist/modules/math/fp32/fp32.d.ts +9 -0
  469. package/dist/modules/math/fp32/fp32.d.ts.map +1 -0
  470. package/dist/modules/math/fp32/fp32.js +288 -0
  471. package/dist/modules/math/fp32/fp32.js.map +1 -0
  472. package/dist/modules/math/fp64/fp64-arithmetic-glsl.cjs +229 -0
  473. package/dist/modules/math/fp64/fp64-arithmetic-glsl.d.ts +2 -0
  474. package/dist/modules/math/fp64/fp64-arithmetic-glsl.d.ts.map +1 -0
  475. package/dist/modules/math/fp64/fp64-arithmetic-glsl.js +205 -0
  476. package/dist/modules/math/fp64/fp64-arithmetic-glsl.js.map +1 -0
  477. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.cjs +144 -0
  478. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.d.ts +10 -0
  479. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.d.ts.map +1 -0
  480. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.js +128 -0
  481. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.js.map +1 -0
  482. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.cjs +583 -0
  483. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.d.ts +11 -0
  484. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.d.ts.map +1 -0
  485. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.js +563 -0
  486. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.js.map +1 -0
  487. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.cjs +946 -0
  488. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.d.ts +3 -0
  489. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.d.ts.map +1 -0
  490. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.js +923 -0
  491. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.js.map +1 -0
  492. package/dist/modules/math/fp64/fp64-functions-glsl.cjs +699 -0
  493. package/dist/modules/math/fp64/fp64-functions-glsl.d.ts +2 -0
  494. package/dist/modules/math/fp64/fp64-functions-glsl.d.ts.map +1 -0
  495. package/dist/modules/math/fp64/fp64-functions-glsl.js +675 -0
  496. package/dist/modules/math/fp64/fp64-functions-glsl.js.map +1 -0
  497. package/dist/modules/math/fp64/fp64-functions-wgsl.cjs +180 -0
  498. package/dist/modules/math/fp64/fp64-functions-wgsl.d.ts +3 -0
  499. package/dist/modules/math/fp64/fp64-functions-wgsl.d.ts.map +1 -0
  500. package/dist/modules/math/fp64/fp64-functions-wgsl.js +157 -0
  501. package/dist/modules/math/fp64/fp64-functions-wgsl.js.map +1 -0
  502. package/dist/modules/math/fp64/fp64-utils.cjs +50 -0
  503. package/dist/modules/math/fp64/fp64-utils.d.ts +22 -0
  504. package/dist/modules/math/fp64/fp64-utils.d.ts.map +1 -0
  505. package/dist/modules/math/fp64/fp64-utils.js +42 -0
  506. package/dist/modules/math/fp64/fp64-utils.js.map +1 -0
  507. package/dist/modules/math/fp64/fp64.cjs +68 -0
  508. package/dist/modules/math/fp64/fp64.d.ts +24 -0
  509. package/dist/modules/math/fp64/fp64.d.ts.map +1 -0
  510. package/dist/modules/math/fp64/fp64.js +46 -0
  511. package/dist/modules/math/fp64/fp64.js.map +1 -0
  512. package/dist/modules/math/random/random.cjs +46 -0
  513. package/dist/modules/math/random/random.d.ts +7 -0
  514. package/dist/modules/math/random/random.d.ts.map +1 -0
  515. package/dist/modules/math/random/random.js +21 -0
  516. package/dist/modules/math/random/random.js.map +1 -0
  517. package/dist/modules/math/value-noise/value-noise.cjs +95 -0
  518. package/dist/modules/math/value-noise/value-noise.d.ts +7 -0
  519. package/dist/modules/math/value-noise/value-noise.d.ts.map +1 -0
  520. package/dist/modules/math/value-noise/value-noise.js +68 -0
  521. package/dist/modules/math/value-noise/value-noise.js.map +1 -0
  522. package/dist/modules/volume/volume-raymarch.cjs +107 -0
  523. package/dist/modules/volume/volume-raymarch.d.ts +6 -0
  524. package/dist/modules/volume/volume-raymarch.d.ts.map +1 -0
  525. package/dist/modules/volume/volume-raymarch.js +84 -0
  526. package/dist/modules/volume/volume-raymarch.js.map +1 -0
  527. package/dist/types/align-to.cjs +38 -0
  528. package/dist/types/align-to.d.ts +3 -0
  529. package/dist/types/align-to.d.ts.map +1 -0
  530. package/dist/types/align-to.js +13 -0
  531. package/dist/types/align-to.js.map +1 -0
  532. package/dist/types/primitive-data-types.cjs +15 -0
  533. package/dist/types/primitive-data-types.d.ts +7 -0
  534. package/dist/types/primitive-data-types.d.ts.map +1 -0
  535. package/dist/types/primitive-data-types.js +5 -0
  536. package/dist/types/primitive-data-types.js.map +1 -0
  537. package/dist/types/sampler-props.cjs +15 -0
  538. package/dist/types/sampler-props.d.ts +26 -0
  539. package/dist/types/sampler-props.d.ts.map +1 -0
  540. package/dist/types/sampler-props.js +5 -0
  541. package/dist/types/sampler-props.js.map +1 -0
  542. package/dist/types/shader-block-layout.cjs +184 -0
  543. package/dist/types/shader-block-layout.d.ts +72 -0
  544. package/dist/types/shader-block-layout.d.ts.map +1 -0
  545. package/dist/types/shader-block-layout.js +209 -0
  546. package/dist/types/shader-block-layout.js.map +1 -0
  547. package/dist/types/shader-layout.cjs +15 -0
  548. package/dist/types/shader-layout.d.ts +178 -0
  549. package/dist/types/shader-layout.d.ts.map +1 -0
  550. package/dist/types/shader-layout.js +5 -0
  551. package/dist/types/shader-layout.js.map +1 -0
  552. package/dist/types/shader-type-decoder.cjs +240 -0
  553. package/dist/types/shader-type-decoder.d.ts +41 -0
  554. package/dist/types/shader-type-decoder.d.ts.map +1 -0
  555. package/dist/types/shader-type-decoder.js +210 -0
  556. package/dist/types/shader-type-decoder.js.map +1 -0
  557. package/dist/types/shader-types.cjs +15 -0
  558. package/dist/types/shader-types.d.ts +101 -0
  559. package/dist/types/shader-types.d.ts.map +1 -0
  560. package/dist/types/shader-types.js +30 -0
  561. package/dist/types/shader-types.js.map +1 -0
  562. package/dist/types/texture-formats.cjs +15 -0
  563. package/dist/types/texture-formats.d.ts +24 -0
  564. package/dist/types/texture-formats.d.ts.map +1 -0
  565. package/dist/types/texture-formats.js +5 -0
  566. package/dist/types/texture-formats.js.map +1 -0
  567. package/dist/types.cjs +53 -0
  568. package/dist/types.cjs.map +6 -0
  569. package/dist/types.d.ts +14 -0
  570. package/dist/types.d.ts.map +1 -0
  571. package/dist/types.js +7 -0
  572. package/dist/types.js.map +1 -0
  573. package/dist/wgsl.cjs +55 -0
  574. package/dist/wgsl.cjs.map +6 -0
  575. package/dist/wgsl.d.ts +8 -0
  576. package/dist/wgsl.d.ts.map +1 -0
  577. package/dist/wgsl.js +9 -0
  578. package/dist/wgsl.js.map +1 -0
  579. package/package.json +65 -4
  580. package/src/glsl.ts +13 -0
  581. package/src/index.ts +259 -0
  582. package/src/lib/color/normalize-byte-colors.ts +57 -0
  583. package/src/lib/filters/prop-types.ts +150 -0
  584. package/src/lib/glsl-shader-assembler.ts +39 -0
  585. package/src/lib/glsl-utils/get-shader-info.ts +42 -0
  586. package/src/lib/glsl-utils/shader-utils.ts +110 -0
  587. package/src/lib/preprocessor/preprocessor.ts +157 -0
  588. package/src/lib/shader-assembler-base.ts +169 -0
  589. package/src/lib/shader-assembler.ts +7 -0
  590. package/src/lib/shader-assembly/assemble-glsl-shaders.ts +305 -0
  591. package/src/lib/shader-assembly/assemble-shaders.ts +13 -0
  592. package/src/lib/shader-assembly/assemble-wgsl-shaders.ts +830 -0
  593. package/src/lib/shader-assembly/platform-defines.ts +58 -0
  594. package/src/lib/shader-assembly/platform-info.ts +23 -0
  595. package/src/lib/shader-assembly/shader-assembly-shared.ts +95 -0
  596. package/src/lib/shader-assembly/shader-assembly-types.ts +146 -0
  597. package/src/lib/shader-assembly/shader-injection-targets.ts +148 -0
  598. package/src/lib/shader-assembly/shader-injections.ts +298 -0
  599. package/src/lib/shader-assembly/shader-plugin-varyings.ts +555 -0
  600. package/src/lib/shader-assembly/shader-plugin-vertex-inputs.ts +279 -0
  601. package/src/lib/shader-assembly/wgsl-binding-debug.ts +227 -0
  602. package/src/lib/shader-assembly/wgsl-binding-scan.ts +228 -0
  603. package/src/lib/shader-assembly/wgsl-injection-target-names.ts +180 -0
  604. package/src/lib/shader-assembly/wgsl-interface-scan.ts +676 -0
  605. package/src/lib/shader-generator/generate-shader.ts +27 -0
  606. package/src/lib/shader-generator/glsl/generate-glsl.ts +101 -0
  607. package/src/lib/shader-generator/utils/capitalize.ts +12 -0
  608. package/src/lib/shader-generator/wgsl/generate-wgsl.ts +40 -0
  609. package/src/lib/shader-module/composite-shader-pass.ts +47 -0
  610. package/src/lib/shader-module/shader-module-dependencies.ts +128 -0
  611. package/src/lib/shader-module/shader-module-uniform-layout.ts +420 -0
  612. package/src/lib/shader-module/shader-module.ts +237 -0
  613. package/src/lib/shader-module/shader-pass.ts +69 -0
  614. package/src/lib/shader-plugin.ts +236 -0
  615. package/src/lib/shader-transpiler/shader-transpiler.ts +34 -0
  616. package/src/lib/shader-transpiler/transpile-glsl-shader.ts +78 -0
  617. package/src/lib/utils/assert.ts +13 -0
  618. package/src/lib/utils/uniform-types.ts +89 -0
  619. package/src/lib/wgsl-shader-assembler.ts +122 -0
  620. package/src/module-injectors.ts +32 -0
  621. package/src/modules/color/float-colors.ts +334 -0
  622. package/src/modules/engine/clip/clip.ts +139 -0
  623. package/src/modules/engine/filter/filter.ts +99 -0
  624. package/src/modules/engine/geometry/geometry.ts +45 -0
  625. package/src/modules/engine/gpu-animation/gpu-animation.ts +244 -0
  626. package/src/modules/engine/picking/README.md +88 -0
  627. package/src/modules/engine/picking/picking.ts +252 -0
  628. package/src/modules/engine/project/project.ts +166 -0
  629. package/src/modules/engine/skin/skin.ts +233 -0
  630. package/src/modules/engine/transform/transform.ts +50 -0
  631. package/src/modules/geometry/path-dash/path-dash.ts +68 -0
  632. package/src/modules/geometry/pattern-fill/pattern-fill-shaders.ts +88 -0
  633. package/src/modules/geometry/pattern-fill/pattern-fill.ts +54 -0
  634. package/src/modules/geometry/point-glow/point-glow.ts +87 -0
  635. package/src/modules/geometry/precipitation/README.md +19 -0
  636. package/src/modules/geometry/precipitation/precipitation.ts +108 -0
  637. package/src/modules/geometry/sketch-stroke/sketch-stroke.ts +160 -0
  638. package/src/modules/geospatial/dggs/dggs-wgsl.ts +2284 -0
  639. package/src/modules/geospatial/dggs/dggs.ts +12 -0
  640. package/src/modules/lighting/area-lighting/area-light-types.ts +71 -0
  641. package/src/modules/lighting/area-lighting/area-lighting-shaders.ts +72 -0
  642. package/src/modules/lighting/area-lighting/area-lighting.ts +63 -0
  643. package/src/modules/lighting/area-lighting/ltc-shaders.ts +163 -0
  644. package/src/modules/lighting/atmosphere/README.md +25 -0
  645. package/src/modules/lighting/atmosphere/atmosphere.ts +246 -0
  646. package/src/modules/lighting/clouds/README.md +24 -0
  647. package/src/modules/lighting/clouds/clouds.ts +216 -0
  648. package/src/modules/lighting/firefly/firefly.ts +64 -0
  649. package/src/modules/lighting/globe-clouds/globe-clouds.ts +124 -0
  650. package/src/modules/lighting/gouraud-material/gouraud-material.ts +55 -0
  651. package/src/modules/lighting/height-fog/README.md +36 -0
  652. package/src/modules/lighting/height-fog/height-fog-functions.ts +116 -0
  653. package/src/modules/lighting/height-fog/height-fog.ts +96 -0
  654. package/src/modules/lighting/ibl/ibl.ts +43 -0
  655. package/src/modules/lighting/lambert-material/lambert-material.ts +42 -0
  656. package/src/modules/lighting/lambert-material/lambert-shaders-glsl.ts +61 -0
  657. package/src/modules/lighting/lambert-material/lambert-shaders-wgsl.ts +73 -0
  658. package/src/modules/lighting/lights/lighting-glsl.ts +92 -0
  659. package/src/modules/lighting/lights/lighting-wgsl.ts +91 -0
  660. package/src/modules/lighting/lights/lighting.ts +385 -0
  661. package/src/modules/lighting/no-material/dirlight.ts +101 -0
  662. package/src/modules/lighting/pbr-material/pbr-material-glsl.ts +1748 -0
  663. package/src/modules/lighting/pbr-material/pbr-material-wgsl.ts +2043 -0
  664. package/src/modules/lighting/pbr-material/pbr-material.ts +517 -0
  665. package/src/modules/lighting/pbr-material/pbr-projection.ts +50 -0
  666. package/src/modules/lighting/pbr-material/pbr-scene.ts +112 -0
  667. package/src/modules/lighting/phong-material/phong-material.ts +53 -0
  668. package/src/modules/lighting/phong-material/phong-shaders-glsl.ts +73 -0
  669. package/src/modules/lighting/phong-material/phong-shaders-wgsl.ts +129 -0
  670. package/src/modules/lighting/surface-weather/README.md +28 -0
  671. package/src/modules/lighting/surface-weather/surface-weather.ts +198 -0
  672. package/src/modules/lighting/water-material/river-water-material.ts +58 -0
  673. package/src/modules/lighting/water-material/river-water-shaders.ts +234 -0
  674. package/src/modules/lighting/water-material/water-material.ts +234 -0
  675. package/src/modules/lighting/water-material/water-shaders-glsl.ts +233 -0
  676. package/src/modules/lighting/water-material/water-shaders-wgsl.ts +230 -0
  677. package/src/modules/math/fp16/fp16-utils.ts +156 -0
  678. package/src/modules/math/fp32/fp32.ts +291 -0
  679. package/src/modules/math/fp64/fp64-arithmetic-glsl.ts +205 -0
  680. package/src/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.ts +129 -0
  681. package/src/modules/math/fp64/fp64-arithmetic-wgsl-integer.ts +564 -0
  682. package/src/modules/math/fp64/fp64-arithmetic-wgsl.ts +924 -0
  683. package/src/modules/math/fp64/fp64-functions-glsl.ts +675 -0
  684. package/src/modules/math/fp64/fp64-functions-wgsl.ts +157 -0
  685. package/src/modules/math/fp64/fp64-utils.ts +46 -0
  686. package/src/modules/math/fp64/fp64.ts +64 -0
  687. package/src/modules/math/random/random.ts +25 -0
  688. package/src/modules/math/value-noise/value-noise.ts +70 -0
  689. package/src/modules/volume/volume-raymarch.ts +87 -0
  690. package/src/types/align-to.ts +13 -0
  691. package/src/types/primitive-data-types.ts +10 -0
  692. package/src/types/sampler-props.ts +39 -0
  693. package/src/types/shader-block-layout.ts +340 -0
  694. package/src/types/shader-layout.ts +208 -0
  695. package/src/types/shader-type-decoder.ts +285 -0
  696. package/src/types/shader-types.ts +207 -0
  697. package/src/types/texture-formats.ts +157 -0
  698. package/src/types.ts +116 -0
  699. package/src/wgsl.ts +34 -0
@@ -0,0 +1,52 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ /** Adds defines to help identify GPU architecture / platform */
5
+ export function getPlatformShaderDefines(platformInfo) {
6
+ switch (platformInfo?.gpu.toLowerCase()) {
7
+ case 'apple':
8
+ return /* glsl */ `\
9
+ #define APPLE_GPU
10
+ // Apple optimizes away the calculation necessary for emulated fp64
11
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
12
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
13
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
14
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
15
+ `;
16
+ case 'nvidia':
17
+ return /* glsl */ `\
18
+ #define NVIDIA_GPU
19
+ // Nvidia optimizes away the calculation necessary for emulated fp64
20
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
21
+ `;
22
+ case 'intel':
23
+ return /* glsl */ `\
24
+ #define INTEL_GPU
25
+ // Intel optimizes away the calculation necessary for emulated fp64
26
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
27
+ // Intel's built-in 'tan' function doesn't have acceptable precision
28
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
29
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
30
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
31
+ `;
32
+ case 'amd':
33
+ // AMD Does not eliminate fp64 code
34
+ return /* glsl */ `\
35
+ #define AMD_GPU
36
+ `;
37
+ default:
38
+ // We don't know what GPU it is, could be that the GPU driver or
39
+ // browser is not implementing UNMASKED_RENDERER constant and not
40
+ // reporting a correct name
41
+ return /* glsl */ `\
42
+ #define DEFAULT_GPU
43
+ // Prevent driver from optimizing away the calculation necessary for emulated fp64
44
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
45
+ // Headless Chrome's software shader 'tan' function doesn't have acceptable precision
46
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
47
+ // If the GPU doesn't have full 32 bits precision, will causes overflow
48
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
49
+ `;
50
+ }
51
+ }
52
+ //# sourceMappingURL=platform-defines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-defines.js","sourceRoot":"","sources":["../../../src/lib/shader-assembly/platform-defines.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D,gEAAgE;AAChE,MAAM,UAAU,wBAAwB,CAAC,YAA0B;IACjE,QAAQ,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QACxC,KAAK,OAAO;YACV,OAAO,UAAU,CAAC;;;;;;;CAOvB,CAAC;QAEE,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC;;;;CAIvB,CAAC;QAEE,KAAK,OAAO;YACV,OAAO,UAAU,CAAC;;;;;;;;CAQvB,CAAC;QAEE,KAAK,KAAK;YACR,mCAAmC;YACnC,OAAO,UAAU,CAAC;;CAEvB,CAAC;QAEE;YACE,gEAAgE;YAChE,iEAAiE;YACjE,2BAA2B;YAC3B,OAAO,UAAU,CAAC;;;;;;;;CAQvB,CAAC;IACA,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var platform_info_exports = {};
15
+ module.exports = __toCommonJS(platform_info_exports);
@@ -0,0 +1,20 @@
1
+ /**
2
+ * PlatformInfo
3
+ * @note Designed so that it can be easily created from a luma.gl Device instance
4
+ * Without having any actual dependency on `@luma.gl/core`
5
+ */
6
+ export type PlatformInfo = {
7
+ /** Current Web GPU API backend */
8
+ type: 'webgl' | 'webgpu' | 'null' | 'unknown';
9
+ /** Which shader language is supported */
10
+ shaderLanguage: 'glsl' | 'wgsl';
11
+ /** Which shader language version is preferred */
12
+ shaderLanguageVersion: 100 | 300;
13
+ /** string identifying current GPU */
14
+ gpu: string;
15
+ /** Device limits exposed to shader preprocessing decisions such as platform capability defines. */
16
+ limits?: Record<string, number | undefined>;
17
+ /** Feature strings for feature detection */
18
+ features: Set<string>;
19
+ };
20
+ //# sourceMappingURL=platform-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-info.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-assembly/platform-info.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,kCAAkC;IAClC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9C,yCAAyC;IACzC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iDAAiD;IACjD,qBAAqB,EAAE,GAAG,GAAG,GAAG,CAAC;IACjC,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,mGAAmG;IACnG,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,4CAA4C;IAC5C,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ export {};
5
+ //# sourceMappingURL=platform-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-info.js","sourceRoot":"","sources":["../../../src/lib/shader-assembly/platform-info.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D"}
@@ -0,0 +1,96 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var shader_assembly_shared_exports = {};
19
+ __export(shader_assembly_shared_exports, {
20
+ INJECT_SHADER_DECLARATIONS: () => INJECT_SHADER_DECLARATIONS,
21
+ appendInjections: () => appendInjections,
22
+ assembleGetUniforms: () => assembleGetUniforms,
23
+ getShaderModuleSource: () => getShaderModuleSource
24
+ });
25
+ module.exports = __toCommonJS(shader_assembly_shared_exports);
26
+ var import_shader_injections = require("./shader-injections.cjs");
27
+ var import_assert = require("../utils/assert.cjs");
28
+ var import_shader_module_uniform_layout = require("../shader-module/shader-module-uniform-layout.cjs");
29
+ const INJECT_SHADER_DECLARATIONS = `
30
+
31
+ ${import_shader_injections.DECLARATION_INJECT_MARKER}
32
+ `;
33
+ function assembleGetUniforms(modules) {
34
+ return function getUniforms(opts) {
35
+ var _a;
36
+ const uniforms = {};
37
+ for (const module2 of modules) {
38
+ const moduleUniforms = (_a = module2.getUniforms) == null ? void 0 : _a.call(module2, opts, uniforms);
39
+ Object.assign(uniforms, moduleUniforms);
40
+ }
41
+ return uniforms;
42
+ };
43
+ }
44
+ function appendInjections(injections, targetInjections, declInjections, mainInjections) {
45
+ for (const key in injections) {
46
+ const match = /^(v|f)s:(#)?([\w-]+)$/.exec(key);
47
+ if (match) {
48
+ const hash = match[2];
49
+ const name = match[3];
50
+ const injectionType = hash ? name === "decl" ? declInjections : mainInjections : targetInjections;
51
+ injectionType[key] = injectionType[key] || [];
52
+ injectionType[key].push(...injections[key]);
53
+ } else {
54
+ mainInjections[key] = mainInjections[key] || [];
55
+ mainInjections[key].push(...injections[key]);
56
+ }
57
+ }
58
+ }
59
+ function getShaderModuleSource(module2, stage, log) {
60
+ let moduleSource;
61
+ switch (stage) {
62
+ case "vertex":
63
+ moduleSource = module2.vs || "";
64
+ break;
65
+ case "fragment":
66
+ moduleSource = module2.fs || "";
67
+ break;
68
+ case "wgsl":
69
+ moduleSource = module2.source || "";
70
+ break;
71
+ default:
72
+ (0, import_assert.assert)(false);
73
+ }
74
+ if (!module2.name) {
75
+ throw new Error("Shader module must have a name");
76
+ }
77
+ (0, import_shader_module_uniform_layout.validateShaderModuleUniformLayout)(module2, stage, { log });
78
+ const moduleName = module2.name.toUpperCase().replace(/[^0-9a-z]/gi, "_");
79
+ let source = `// ----- MODULE ${module2.name} ---------------
80
+
81
+ `;
82
+ if (stage !== "wgsl") {
83
+ source += `#define MODULE_${moduleName}
84
+ `;
85
+ }
86
+ source += `${moduleSource}
87
+ `;
88
+ return source;
89
+ }
90
+ // Annotate the CommonJS export names for ESM import in node:
91
+ 0 && (module.exports = {
92
+ INJECT_SHADER_DECLARATIONS,
93
+ appendInjections,
94
+ assembleGetUniforms,
95
+ getShaderModuleSource
96
+ });
@@ -0,0 +1,16 @@
1
+ import { type ResolvedShaderInjection } from "./shader-injections.js";
2
+ import { type ShaderModule } from "../shader-module/shader-module.js";
3
+ export declare const INJECT_SHADER_DECLARATIONS = "\n\n__LUMA_INJECT_DECLARATIONS__\n";
4
+ /**
5
+ * Returns a combined `getUniforms` covering the options for all the modules,
6
+ * the created function will pass on options to the inidividual `getUniforms`
7
+ * function of each shader module and combine the results into one object that
8
+ * can be passed to setUniforms.
9
+ * @param modules
10
+ * @returns
11
+ */
12
+ export declare function assembleGetUniforms(modules: ShaderModule[]): (opts: Record<string, any>) => Record<string, any>;
13
+ export declare function appendInjections(injections: Record<string, ResolvedShaderInjection[]>, targetInjections: Record<string, ResolvedShaderInjection[]>, declInjections: Record<string, ResolvedShaderInjection[]>, mainInjections: Record<string, ResolvedShaderInjection[]>): void;
14
+ /** Extracts the source code chunk for the specified shader type from the named shader module */
15
+ export declare function getShaderModuleSource(module: ShaderModule, stage: 'vertex' | 'fragment' | 'wgsl', log?: any): string;
16
+ //# sourceMappingURL=shader-assembly-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-assembly-shared.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-assembly/shader-assembly-shared.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,uBAAuB,EAAC,+BAA4B;AAC5F,OAAO,EAAC,KAAK,YAAY,EAAC,0CAAuC;AAIjE,eAAO,MAAM,0BAA0B,uCAAuC,CAAC;AAE/E;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,IAC7B,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAU5E;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EACrD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAC3D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EACzD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,GACxD,IAAI,CAkBN;AAED,gGAAgG;AAChG,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,EACrC,GAAG,CAAC,EAAE,GAAG,GACR,MAAM,CAgCR"}
@@ -0,0 +1,79 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ import { DECLARATION_INJECT_MARKER } from "./shader-injections.js";
5
+ import { assert } from "../utils/assert.js";
6
+ import { validateShaderModuleUniformLayout } from "../shader-module/shader-module-uniform-layout.js";
7
+ export const INJECT_SHADER_DECLARATIONS = `\n\n${DECLARATION_INJECT_MARKER}\n`;
8
+ /**
9
+ * Returns a combined `getUniforms` covering the options for all the modules,
10
+ * the created function will pass on options to the inidividual `getUniforms`
11
+ * function of each shader module and combine the results into one object that
12
+ * can be passed to setUniforms.
13
+ * @param modules
14
+ * @returns
15
+ */
16
+ export function assembleGetUniforms(modules) {
17
+ return function getUniforms(opts) {
18
+ const uniforms = {};
19
+ for (const module of modules) {
20
+ // `modules` is already sorted by dependency level. This guarantees that
21
+ // modules have access to the uniforms that are generated by their dependencies.
22
+ const moduleUniforms = module.getUniforms?.(opts, uniforms);
23
+ Object.assign(uniforms, moduleUniforms);
24
+ }
25
+ return uniforms;
26
+ };
27
+ }
28
+ export function appendInjections(injections, targetInjections, declInjections, mainInjections) {
29
+ for (const key in injections) {
30
+ const match = /^(v|f)s:(#)?([\w-]+)$/.exec(key);
31
+ if (match) {
32
+ const hash = match[2];
33
+ const name = match[3];
34
+ const injectionType = hash
35
+ ? name === 'decl'
36
+ ? declInjections
37
+ : mainInjections
38
+ : targetInjections;
39
+ injectionType[key] = injectionType[key] || [];
40
+ injectionType[key].push(...injections[key]);
41
+ }
42
+ else {
43
+ mainInjections[key] = mainInjections[key] || [];
44
+ mainInjections[key].push(...injections[key]);
45
+ }
46
+ }
47
+ }
48
+ /** Extracts the source code chunk for the specified shader type from the named shader module */
49
+ export function getShaderModuleSource(module, stage, log) {
50
+ let moduleSource;
51
+ switch (stage) {
52
+ case 'vertex':
53
+ moduleSource = module.vs || '';
54
+ break;
55
+ case 'fragment':
56
+ moduleSource = module.fs || '';
57
+ break;
58
+ case 'wgsl':
59
+ moduleSource = module.source || '';
60
+ break;
61
+ default:
62
+ assert(false);
63
+ }
64
+ if (!module.name) {
65
+ throw new Error('Shader module must have a name');
66
+ }
67
+ validateShaderModuleUniformLayout(module, stage, { log });
68
+ const moduleName = module.name.toUpperCase().replace(/[^0-9a-z]/gi, '_');
69
+ let source = `\
70
+ // ----- MODULE ${module.name} ---------------
71
+
72
+ `;
73
+ if (stage !== 'wgsl') {
74
+ source += `#define MODULE_${moduleName}\n`;
75
+ }
76
+ source += `${moduleSource}\n`;
77
+ return source;
78
+ }
79
+ //# sourceMappingURL=shader-assembly-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-assembly-shared.js","sourceRoot":"","sources":["../../../src/lib/shader-assembly/shader-assembly-shared.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D,OAAO,EAAC,yBAAyB,EAA+B,+BAA4B;AAE5F,OAAO,EAAC,MAAM,EAAC,2BAAwB;AACvC,OAAO,EAAC,iCAAiC,EAAC,yDAAsD;AAEhG,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,yBAAyB,IAAI,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAuB;IACzD,OAAO,SAAS,WAAW,CAAC,IAAyB;QACnD,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,wEAAwE;YACxE,gFAAgF;YAChF,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5D,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAqD,EACrD,gBAA2D,EAC3D,cAAyD,EACzD,cAAyD;IAEzD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,aAAa,GAAG,IAAI;gBACxB,CAAC,CAAC,IAAI,KAAK,MAAM;oBACf,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,cAAc;gBAClB,CAAC,CAAC,gBAAgB,CAAC;YACrB,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9C,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChD,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,qBAAqB,CACnC,MAAoB,EACpB,KAAqC,EACrC,GAAS;IAET,IAAI,YAAY,CAAC;IACjB,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ;YACX,YAAY,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;YAC/B,MAAM;QACR,KAAK,UAAU;YACb,YAAY,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;YAC/B,MAAM;QACR,KAAK,MAAM;YACT,YAAY,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YACnC,MAAM;QACR;YACE,MAAM,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,iCAAiC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACzE,IAAI,MAAM,GAAG;kBACG,MAAM,CAAC,IAAI;;CAE5B,CAAC;IACA,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,kBAAkB,UAAU,IAAI,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,IAAI,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var shader_assembly_types_exports = {};
15
+ module.exports = __toCommonJS(shader_assembly_types_exports);
@@ -0,0 +1,132 @@
1
+ import { type PlatformInfo } from "./platform-info.js";
2
+ import { type ShaderModule } from "../shader-module/shader-module.js";
3
+ import { type ShaderInjectionTarget } from "./shader-injection-targets.js";
4
+ import { type ShaderInjection, type ResolvedShaderInjection } from "./shader-injections.js";
5
+ import { type AttributeShaderType } from "../../types.js";
6
+ import { type ResolvedShaderPluginInterStageVariable } from "../shader-plugin.js";
7
+ export type ShaderAssemblyLog = {
8
+ deprecated?: (...args: unknown[]) => () => unknown;
9
+ removed?: (...args: unknown[]) => () => unknown;
10
+ warn?: (...args: unknown[]) => () => unknown;
11
+ };
12
+ /** Props accepted by `ShaderAssembler` assembly methods. */
13
+ export type AssembleShaderProps = AssembleShaderOptions & {
14
+ platformInfo: PlatformInfo;
15
+ /** WGSL: single shader source. */
16
+ source?: string | null;
17
+ /** GLSL vertex shader source. */
18
+ vs?: string | null;
19
+ /** GLSL fragment shader source. */
20
+ fs?: string | null;
21
+ };
22
+ /** Shared shader assembly options. */
23
+ export type AssembleShaderOptions = {
24
+ /** information about the platform (which shader language & version, extensions etc.) */
25
+ platformInfo: PlatformInfo;
26
+ /** Inject shader id #defines */
27
+ id?: string;
28
+ /** Input language compiled by a registered ShaderAssembler transpiler. Defaults to the target language. */
29
+ sourceLanguage?: string;
30
+ /** Select compute compilation independently of an optional WGSL entry-point name. */
31
+ shaderStage?: 'compute';
32
+ /** WGSL compute entry point selected by the compute pipeline. */
33
+ computeEntryPoint?: string;
34
+ /** Modules to be injected */
35
+ modules?: ShaderModule[];
36
+ /** Boolean or numeric preprocessor defines evaluated before shader assembly. */
37
+ defines?: Record<string, boolean | number>;
38
+ /** GLSL only: Overrides to be injected. In WGSL these are supplied during Pipeline creation time */
39
+ constants?: Record<string, number>;
40
+ /** Per-call injection targets, appended after registered assembler targets; matching names override for this call. */
41
+ injectionTargets?: readonly ShaderInjectionTarget[];
42
+ /** Injection target declarations contributed by resolved plugins. */
43
+ pluginInjectionTargets?: readonly ShaderInjectionTarget[];
44
+ /** Code injections */
45
+ inject?: readonly ShaderInjection[] | Record<string, string | ResolvedShaderInjection>;
46
+ /** Ordered code injections contributed by ShaderPlugin descriptors. */
47
+ pluginInjections?: Record<string, ResolvedShaderInjection[]>;
48
+ /** Vertex inputs contributed by ShaderPlugin descriptors. */
49
+ pluginVertexInputs?: Record<string, AttributeShaderType>;
50
+ /** Inter-stage variables contributed by ShaderPlugin descriptors. */
51
+ pluginInterStageVariables?: Record<string, ResolvedShaderPluginInterStageVariable>;
52
+ /** WGSL vertex entry point selected by the render pipeline. */
53
+ vertexEntryPoint?: string;
54
+ /** Whether WGSL interface scanning should include vertex attributes. */
55
+ scanVertexAttributes?: boolean;
56
+ /** WGSL fragment entry point selected by the render pipeline. */
57
+ fragmentEntryPoint?: string;
58
+ /** Whether to inject prologue */
59
+ prologue?: boolean;
60
+ /** logger object */
61
+ log?: ShaderAssemblyLog;
62
+ };
63
+ export type AssembleStageOptions = {
64
+ /** Inject shader id #defines */
65
+ id?: string;
66
+ /** Vertex shader */
67
+ source: string;
68
+ stage: 'vertex' | 'fragment';
69
+ /** Modules to be injected */
70
+ modules: any[];
71
+ /** Boolean or numeric preprocessor defines evaluated before shader assembly. */
72
+ defines?: Record<string, boolean | number>;
73
+ /** GLSL only: Overrides to be injected. In WGSL these are supplied during Pipeline creation time */
74
+ constants?: Record<string, number>;
75
+ /** Per-call injection targets, appended after registered assembler targets; matching names override for this call. */
76
+ injectionTargets?: readonly ShaderInjectionTarget[];
77
+ /** Injection target declarations contributed by resolved plugins. */
78
+ pluginInjectionTargets?: readonly ShaderInjectionTarget[];
79
+ /** Code injections */
80
+ inject?: readonly ShaderInjection[] | Record<string, string | ResolvedShaderInjection>;
81
+ /** Ordered code injections contributed by ShaderPlugin descriptors. */
82
+ pluginInjections?: Record<string, ResolvedShaderInjection[]>;
83
+ /** Vertex inputs contributed by ShaderPlugin descriptors. */
84
+ pluginVertexInputs?: Record<string, AttributeShaderType>;
85
+ /** Inter-stage variables contributed by ShaderPlugin descriptors. */
86
+ pluginInterStageVariables?: Record<string, ResolvedShaderPluginInterStageVariable>;
87
+ /** WGSL vertex entry point selected by the render pipeline. */
88
+ vertexEntryPoint?: string;
89
+ /** WGSL fragment entry point selected by the render pipeline. */
90
+ fragmentEntryPoint?: string;
91
+ /** Whether to inject prologue */
92
+ prologue?: boolean;
93
+ /** logger object */
94
+ log?: ShaderAssemblyLog;
95
+ /** @internal Stable per-assembler WGSL binding assignments. */
96
+ _bindingRegistry?: Map<string, number>;
97
+ };
98
+ /**
99
+ * getUniforms function returned from the shader module system
100
+ */
101
+ export type GetUniformsFunc = (opts: Record<string, any>) => Record<string, any>;
102
+ export type AssembleWGSLShaderOptions = AssembleShaderOptions & {
103
+ /** Single WGSL shader */
104
+ source: string;
105
+ /** @internal Stable per-assembler WGSL binding assignments. */
106
+ _bindingRegistry?: Map<string, number>;
107
+ };
108
+ export type BindingRelocationContext = {
109
+ usedBindingsByGroup: Map<number, Set<number>>;
110
+ bindingRegistry?: Map<string, number>;
111
+ reservedBindingKeysByGroup: Map<number, Map<number, string>>;
112
+ };
113
+ export type WGSLBindingAssignment = {
114
+ moduleName: string;
115
+ name: string;
116
+ group: number;
117
+ location: number;
118
+ };
119
+ export type WGSLApplicationRelocationState = {
120
+ sawSupportedBindingDeclaration: boolean;
121
+ };
122
+ export type WGSLRelocationState = {
123
+ sawSupportedBindingDeclaration: boolean;
124
+ nextHintedBindingLocation: number | null;
125
+ };
126
+ export type WGSLRelocationParams = {
127
+ module: ShaderModule;
128
+ context: BindingRelocationContext;
129
+ bindingAssignments: WGSLBindingAssignment[];
130
+ relocationState: WGSLRelocationState;
131
+ };
132
+ //# sourceMappingURL=shader-assembly-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-assembly-types.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-assembly/shader-assembly-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ export {};
5
+ //# sourceMappingURL=shader-assembly-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-assembly-types.js","sourceRoot":"","sources":["../../../src/lib/shader-assembly/shader-assembly-types.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D"}
@@ -0,0 +1,103 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var shader_injection_targets_exports = {};
19
+ __export(shader_injection_targets_exports, {
20
+ getShaderInjectionTargets: () => getShaderInjectionTargets,
21
+ isShaderInjectionTargetRegistered: () => isShaderInjectionTargetRegistered,
22
+ normalizeShaderInjectionTargets: () => normalizeShaderInjectionTargets,
23
+ validateShaderInjectionTargetInjections: () => validateShaderInjectionTargetInjections
24
+ });
25
+ module.exports = __toCommonJS(shader_injection_targets_exports);
26
+ function getShaderInjectionTargets(injectionTargets, targetInjections, shaderLanguage = "glsl") {
27
+ let result = "";
28
+ for (const targetName in injectionTargets) {
29
+ const targetFunction = injectionTargets[targetName];
30
+ const returnType = targetFunction.returnType || "void";
31
+ const functionPrefix = shaderLanguage === "wgsl" ? "fn" : returnType;
32
+ const returnSuffix = shaderLanguage === "wgsl" && returnType !== "void" ? ` -> ${returnType}` : "";
33
+ result += `${functionPrefix} ${targetFunction.signature}${returnSuffix} {
34
+ `;
35
+ if (targetFunction.header) {
36
+ result += ` ${targetFunction.header}`;
37
+ }
38
+ if (targetInjections[targetName]) {
39
+ const injections = targetInjections[targetName];
40
+ injections.sort((a, b) => a.order - b.order);
41
+ for (const injection of injections) {
42
+ result += ` ${injection.injection}
43
+ `;
44
+ }
45
+ }
46
+ if (targetFunction.footer) {
47
+ result += ` ${targetFunction.footer}`;
48
+ }
49
+ result += "}\n";
50
+ }
51
+ return result;
52
+ }
53
+ function normalizeShaderInjectionTargets(injectionTargets, pluginInjectionTargets = [], language = "glsl") {
54
+ const result = { vertex: {}, fragment: {} };
55
+ for (const injectionTarget of injectionTargets) {
56
+ const implementation = injectionTarget[language];
57
+ if (implementation) {
58
+ const prefix = injectionTarget.stage === "vertex" ? "vs" : "fs";
59
+ result[injectionTarget.stage][`${prefix}:${injectionTarget.name}`] = {
60
+ ...implementation,
61
+ signature: `${injectionTarget.name}(${implementation.parameters})`
62
+ };
63
+ }
64
+ }
65
+ for (const injectionTarget of pluginInjectionTargets) {
66
+ const selected = normalizeShaderInjectionTargets([injectionTarget], [], language);
67
+ for (const stage of ["vertex", "fragment"]) {
68
+ for (const [name, declaration] of Object.entries(selected[stage])) {
69
+ const existing = result[stage][name];
70
+ if (existing && (existing.signature !== declaration.signature || (existing.returnType || "void") !== (declaration.returnType || "void"))) {
71
+ throw new Error(`Conflicting ShaderPlugin injection target ${name}`);
72
+ }
73
+ result[stage][name] = existing || declaration;
74
+ }
75
+ }
76
+ }
77
+ return result;
78
+ }
79
+ function isShaderInjectionTargetRegistered(registry, targetName) {
80
+ const stageRegistry = targetName.startsWith("vs:") ? registry.vertex : registry.fragment;
81
+ return Boolean(stageRegistry[targetName]);
82
+ }
83
+ function validateShaderInjectionTargetInjections(registry, targetInjections, stage) {
84
+ const stagePrefix = stage === "vertex" ? "vs:" : stage === "fragment" ? "fs:" : null;
85
+ for (const targetName in targetInjections) {
86
+ if (stagePrefix && !targetName.startsWith(stagePrefix)) {
87
+ continue;
88
+ }
89
+ if (!isShaderInjectionTargetRegistered(registry, targetName)) {
90
+ const pluginNames = [
91
+ ...new Set(targetInjections[targetName].map((injection) => injection.pluginName).filter(Boolean))
92
+ ];
93
+ throw new Error(`Unknown shader injection target ${targetName}${pluginNames.length ? ` (plugins: ${pluginNames.join(", ")})` : ""}`);
94
+ }
95
+ }
96
+ }
97
+ // Annotate the CommonJS export names for ESM import in node:
98
+ 0 && (module.exports = {
99
+ getShaderInjectionTargets,
100
+ isShaderInjectionTargetRegistered,
101
+ normalizeShaderInjectionTargets,
102
+ validateShaderInjectionTargetInjections
103
+ });
@@ -0,0 +1,46 @@
1
+ import type { ResolvedShaderInjection } from "./shader-injections.js";
2
+ /** A named callable target for shader source injections. */
3
+ export type ShaderInjectionTarget = {
4
+ /** Function name shared by both shader languages. */
5
+ name: string;
6
+ /** Shader stage that calls the target. */
7
+ stage: 'vertex' | 'fragment';
8
+ /** GLSL signature and source surrounding injected statements. */
9
+ glsl?: {
10
+ parameters: string;
11
+ returnType?: string;
12
+ header?: string;
13
+ footer?: string;
14
+ };
15
+ /** WGSL signature and source surrounding injected statements. */
16
+ wgsl?: {
17
+ parameters: string;
18
+ returnType?: string;
19
+ header?: string;
20
+ footer?: string;
21
+ };
22
+ };
23
+ /** Language-selected target ready for source generation. */
24
+ type ResolvedShaderInjectionTarget = NonNullable<ShaderInjectionTarget['glsl']> & {
25
+ signature: string;
26
+ };
27
+ /** Normalized shader injection targets per shader */
28
+ export type ShaderInjectionTargetRegistry = {
29
+ /** Normalized shader injection targets for vertex shader */
30
+ vertex: Record<string, ResolvedShaderInjectionTarget>;
31
+ /** Normalized shader injection targets for fragment shader */
32
+ fragment: Record<string, ResolvedShaderInjectionTarget>;
33
+ };
34
+ /** Generate injection target source code */
35
+ export declare function getShaderInjectionTargets(injectionTargets: Record<string, ResolvedShaderInjectionTarget>, targetInjections: Record<string, ResolvedShaderInjection[]>, shaderLanguage?: 'glsl' | 'wgsl'): string;
36
+ /** Select language syntax and merge compatible plugin declarations without mutating descriptors. */
37
+ export declare function normalizeShaderInjectionTargets(injectionTargets: readonly ShaderInjectionTarget[], pluginInjectionTargets?: readonly ShaderInjectionTarget[], language?: 'glsl' | 'wgsl'): ShaderInjectionTargetRegistry;
38
+ /** Returns true if a stage-prefixed target name such as `vs:MY_HOOK` is declared. */
39
+ export declare function isShaderInjectionTargetRegistered(registry: ShaderInjectionTargetRegistry, targetName: string): boolean;
40
+ /**
41
+ * Throws if an injection into a named target refers to one that is not declared for this assembly.
42
+ * @param stage Only validate injections for this GLSL stage. WGSL validates both stages.
43
+ */
44
+ export declare function validateShaderInjectionTargetInjections(registry: ShaderInjectionTargetRegistry, targetInjections: Record<string, ResolvedShaderInjection[]>, stage?: 'vertex' | 'fragment'): void;
45
+ export {};
46
+ //# sourceMappingURL=shader-injection-targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-injection-targets.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-assembly/shader-injection-targets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,uBAAuB,EAAC,+BAA4B;AAEjE,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,iEAAiE;IACjE,IAAI,CAAC,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,iEAAiE;IACjE,IAAI,CAAC,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,4DAA4D;AAC5D,KAAK,6BAA6B,GAAG,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG;IAChF,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IACtD,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;CACzD,CAAC;AAEF,4CAA4C;AAC5C,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,EAC/D,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAC3D,cAAc,GAAE,MAAM,GAAG,MAAe,GACvC,MAAM,CA0BR;AAED,oGAAoG;AACpG,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,SAAS,qBAAqB,EAAE,EAClD,sBAAsB,GAAE,SAAS,qBAAqB,EAAO,EAC7D,QAAQ,GAAE,MAAM,GAAG,MAAe,GACjC,6BAA6B,CA6B/B;AAED,qFAAqF;AACrF,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,6BAA6B,EACvC,UAAU,EAAE,MAAM,GACjB,OAAO,CAGT;AAED;;;GAGG;AACH,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,6BAA6B,EACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAC3D,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAC5B,IAAI,CAoBN"}