@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,94 @@
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 generate_glsl_exports = {};
19
+ __export(generate_glsl_exports, {
20
+ generateGLSLForModule: () => generateGLSLForModule
21
+ });
22
+ module.exports = __toCommonJS(generate_glsl_exports);
23
+ var import_capitalize = require("../utils/capitalize.cjs");
24
+ function generateGLSLForModule(module2, options) {
25
+ return generateGLSLUniformDeclarations(module2, options);
26
+ }
27
+ function generateGLSLUniformDeclarations(module2, options) {
28
+ const glsl = [];
29
+ switch (options.uniforms) {
30
+ case "scoped-interface-blocks":
31
+ case "unscoped-interface-blocks":
32
+ glsl.push(`layout(std140) uniform ${(0, import_capitalize.capitalize)(module2.name)} {`);
33
+ break;
34
+ case "uniforms":
35
+ }
36
+ for (const [uniformName, uniformFormat] of Object.entries(module2.uniformTypes || {})) {
37
+ if (typeof uniformFormat !== "string") {
38
+ throw new Error(`Composite uniform types are not supported by GLSL shader generation: ${module2.name}.${uniformName}`);
39
+ }
40
+ const glslUniformType = getGLSLUniformType(uniformFormat);
41
+ switch (options.uniforms) {
42
+ case "scoped-interface-blocks":
43
+ glsl.push(` ${glslUniformType} ${uniformName};`);
44
+ break;
45
+ case "unscoped-interface-blocks":
46
+ glsl.push(` ${glslUniformType} ${module2.name}_${uniformName};`);
47
+ break;
48
+ case "uniforms":
49
+ glsl.push(`uniform ${glslUniformType} ${module2.name}_${uniformName};`);
50
+ }
51
+ }
52
+ switch (options.uniforms) {
53
+ case "scoped-interface-blocks":
54
+ glsl.push(`} ${module2.name};`);
55
+ break;
56
+ case "unscoped-interface-blocks":
57
+ glsl.push("};");
58
+ break;
59
+ case "uniforms":
60
+ }
61
+ glsl.push("");
62
+ return glsl.join("\n");
63
+ }
64
+ function getGLSLUniformType(uniformFormat) {
65
+ const UNIFORM_TYPE_TO_GLSL = {
66
+ f32: "float",
67
+ i32: "int",
68
+ u32: "uint",
69
+ "vec2<f32>": "vec2",
70
+ "vec3<f32>": "vec3",
71
+ "vec4<f32>": "vec4",
72
+ "vec2<i32>": "ivec2",
73
+ "vec3<i32>": "ivec3",
74
+ "vec4<i32>": "ivec4",
75
+ "vec2<u32>": "uvec2",
76
+ "vec3<u32>": "uvec3",
77
+ "vec4<u32>": "uvec4",
78
+ "mat2x2<f32>": "mat2",
79
+ "mat2x3<f32>": "mat2x3",
80
+ "mat2x4<f32>": "mat2x4",
81
+ "mat3x2<f32>": "mat3x2",
82
+ "mat3x3<f32>": "mat3",
83
+ "mat3x4<f32>": "mat3x4",
84
+ "mat4x2<f32>": "mat4x2",
85
+ "mat4x3<f32>": "mat4x3",
86
+ "mat4x4<f32>": "mat4"
87
+ };
88
+ const glsl = UNIFORM_TYPE_TO_GLSL[uniformFormat];
89
+ return glsl;
90
+ }
91
+ // Annotate the CommonJS export names for ESM import in node:
92
+ 0 && (module.exports = {
93
+ generateGLSLForModule
94
+ });
@@ -0,0 +1,7 @@
1
+ import { ShaderModule } from "../../shader-module/shader-module.js";
2
+ export type GLSLGenerationOptions = {
3
+ shaderLanguage: 'glsl';
4
+ uniforms: 'scoped-interface-blocks' | 'unscoped-interface-blocks' | 'uniforms';
5
+ };
6
+ export declare function generateGLSLForModule(module: ShaderModule, options: GLSLGenerationOptions): string;
7
+ //# sourceMappingURL=generate-glsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-glsl.d.ts","sourceRoot":"","sources":["../../../../src/lib/shader-generator/glsl/generate-glsl.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,6CAA0C;AAG/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,yBAAyB,GAAG,2BAA2B,GAAG,UAAU,CAAC;CAChF,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,UAEzF"}
@@ -0,0 +1,79 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ import { capitalize } from "../utils/capitalize.js";
5
+ export function generateGLSLForModule(module, options) {
6
+ return generateGLSLUniformDeclarations(module, options);
7
+ }
8
+ function generateGLSLUniformDeclarations(module, options) {
9
+ const glsl = [];
10
+ // => layout(std140) uniform UniformBlockName {
11
+ switch (options.uniforms) {
12
+ case 'scoped-interface-blocks':
13
+ case 'unscoped-interface-blocks':
14
+ glsl.push(`layout(std140) uniform ${capitalize(module.name)} {`);
15
+ break;
16
+ case 'uniforms':
17
+ // ignore
18
+ }
19
+ for (const [uniformName, uniformFormat] of Object.entries(module.uniformTypes || {})) {
20
+ if (typeof uniformFormat !== 'string') {
21
+ throw new Error(`Composite uniform types are not supported by GLSL shader generation: ${module.name}.${uniformName}`);
22
+ }
23
+ const glslUniformType = getGLSLUniformType(uniformFormat);
24
+ switch (options.uniforms) {
25
+ case 'scoped-interface-blocks':
26
+ // => layout(std140) uniform UniformBlockName {
27
+ glsl.push(` ${glslUniformType} ${uniformName};`);
28
+ break;
29
+ case 'unscoped-interface-blocks':
30
+ // => layout(std140) uniform UniformBlockName {
31
+ glsl.push(` ${glslUniformType} ${module.name}_${uniformName};`);
32
+ break;
33
+ case 'uniforms':
34
+ glsl.push(`uniform ${glslUniformType} ${module.name}_${uniformName};`);
35
+ }
36
+ }
37
+ switch (options.uniforms) {
38
+ case 'scoped-interface-blocks':
39
+ glsl.push(`} ${module.name};`);
40
+ break;
41
+ case 'unscoped-interface-blocks':
42
+ glsl.push('};');
43
+ break;
44
+ case 'uniforms':
45
+ // ignore
46
+ }
47
+ // final new line
48
+ glsl.push('');
49
+ return glsl.join('\n');
50
+ }
51
+ /** Map a luma.gl WebGPU style uniform type to GLSL */
52
+ function getGLSLUniformType(uniformFormat) {
53
+ const UNIFORM_TYPE_TO_GLSL = {
54
+ f32: 'float',
55
+ i32: 'int',
56
+ u32: 'uint',
57
+ 'vec2<f32>': 'vec2',
58
+ 'vec3<f32>': 'vec3',
59
+ 'vec4<f32>': 'vec4',
60
+ 'vec2<i32>': 'ivec2',
61
+ 'vec3<i32>': 'ivec3',
62
+ 'vec4<i32>': 'ivec4',
63
+ 'vec2<u32>': 'uvec2',
64
+ 'vec3<u32>': 'uvec3',
65
+ 'vec4<u32>': 'uvec4',
66
+ 'mat2x2<f32>': 'mat2',
67
+ 'mat2x3<f32>': 'mat2x3',
68
+ 'mat2x4<f32>': 'mat2x4',
69
+ 'mat3x2<f32>': 'mat3x2',
70
+ 'mat3x3<f32>': 'mat3',
71
+ 'mat3x4<f32>': 'mat3x4',
72
+ 'mat4x2<f32>': 'mat4x2',
73
+ 'mat4x3<f32>': 'mat4x3',
74
+ 'mat4x4<f32>': 'mat4'
75
+ };
76
+ const glsl = UNIFORM_TYPE_TO_GLSL[uniformFormat];
77
+ return glsl;
78
+ }
79
+ //# sourceMappingURL=generate-glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-glsl.js","sourceRoot":"","sources":["../../../../src/lib/shader-generator/glsl/generate-glsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D,OAAO,EAAC,UAAU,EAAC,+BAA4B;AAO/C,MAAM,UAAU,qBAAqB,CAAC,MAAoB,EAAE,OAA8B;IACxF,OAAO,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,+BAA+B,CACtC,MAAoB,EACpB,OAA8B;IAE9B,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,+CAA+C;IAC/C,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,2BAA2B;YAC9B,IAAI,CAAC,IAAI,CAAC,0BAA0B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM;QACR,KAAK,UAAU,CAAC;QAChB,SAAS;IACX,CAAC;IAED,KAAK,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QACrF,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,wEAAwE,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE,CACrG,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,aAA8B,CAAC,CAAC;QAC3E,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,KAAK,yBAAyB;gBAC5B,+CAA+C;gBAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,eAAe,IAAI,WAAW,GAAG,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,2BAA2B;gBAC9B,+CAA+C;gBAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,eAAe,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC;gBACjE,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,IAAI,CAAC,WAAW,eAAe,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,yBAAyB;YAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,2BAA2B;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,UAAU,CAAC;QAChB,SAAS;IACX,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,sDAAsD;AACtD,SAAS,kBAAkB,CAAC,aAA4B;IACtD,MAAM,oBAAoB,GAAkC;QAC1D,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,MAAM;QACX,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,MAAM;QACrB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,MAAM;QACrB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,MAAM;KACtB,CAAC;IAEF,MAAM,IAAI,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,29 @@
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 capitalize_exports = {};
19
+ __export(capitalize_exports, {
20
+ capitalize: () => capitalize
21
+ });
22
+ module.exports = __toCommonJS(capitalize_exports);
23
+ function capitalize(str) {
24
+ return typeof str === "string" ? str.charAt(0).toUpperCase() + str.slice(1) : str;
25
+ }
26
+ // Annotate the CommonJS export names for ESM import in node:
27
+ 0 && (module.exports = {
28
+ capitalize
29
+ });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Capitalize first letter of a string
3
+ * @param {string} str
4
+ * @returns {string}
5
+ */
6
+ export declare function capitalize(str: string): string;
7
+ //# sourceMappingURL=capitalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capitalize.d.ts","sourceRoot":"","sources":["../../../../src/lib/shader-generator/utils/capitalize.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C"}
@@ -0,0 +1,12 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ /**
5
+ * Capitalize first letter of a string
6
+ * @param {string} str
7
+ * @returns {string}
8
+ */
9
+ export function capitalize(str) {
10
+ return typeof str === 'string' ? str.charAt(0).toUpperCase() + str.slice(1) : str;
11
+ }
12
+ //# sourceMappingURL=capitalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capitalize.js","sourceRoot":"","sources":["../../../../src/lib/shader-generator/utils/capitalize.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpF,CAAC"}
@@ -0,0 +1,46 @@
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 generate_wgsl_exports = {};
19
+ __export(generate_wgsl_exports, {
20
+ generateWGSLForModule: () => generateWGSLForModule,
21
+ generateWGSLUniformDeclarations: () => generateWGSLUniformDeclarations
22
+ });
23
+ module.exports = __toCommonJS(generate_wgsl_exports);
24
+ var import_capitalize = require("../utils/capitalize.cjs");
25
+ function generateWGSLForModule(module2, options) {
26
+ return generateWGSLUniformDeclarations(module2, options);
27
+ }
28
+ function generateWGSLUniformDeclarations(module2, options) {
29
+ const wgsl = [];
30
+ wgsl.push(`struct ${(0, import_capitalize.capitalize)(module2.name)} {`);
31
+ for (const [uniformName, uniformFormat] of Object.entries((module2 == null ? void 0 : module2.uniformTypes) || {})) {
32
+ if (typeof uniformFormat !== "string") {
33
+ throw new Error(`Composite uniform types are not supported by WGSL shader generation: ${module2.name}.${uniformName}`);
34
+ }
35
+ const wgslUniformType = uniformFormat;
36
+ wgsl.push(` ${uniformName} : ${wgslUniformType};`);
37
+ }
38
+ wgsl.push("};");
39
+ wgsl.push(`var<uniform> ${module2.name} : ${(0, import_capitalize.capitalize)(module2.name)};`);
40
+ return wgsl.join("\n");
41
+ }
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ generateWGSLForModule,
45
+ generateWGSLUniformDeclarations
46
+ });
@@ -0,0 +1,7 @@
1
+ import { ShaderModule } from "../../shader-module/shader-module.js";
2
+ export type WGSLGenerationOptions = {
3
+ shaderLanguage: 'wgsl';
4
+ };
5
+ export declare function generateWGSLForModule(module: ShaderModule, options: WGSLGenerationOptions): string;
6
+ export declare function generateWGSLUniformDeclarations(module: ShaderModule, options: WGSLGenerationOptions): string;
7
+ //# sourceMappingURL=generate-wgsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-wgsl.d.ts","sourceRoot":"","sources":["../../../../src/lib/shader-generator/wgsl/generate-wgsl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,6CAA0C;AAG/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,UAEzF;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,qBAAqB,UAsB/B"}
@@ -0,0 +1,23 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ import { capitalize } from "../utils/capitalize.js";
5
+ export function generateWGSLForModule(module, options) {
6
+ return generateWGSLUniformDeclarations(module, options);
7
+ }
8
+ export function generateWGSLUniformDeclarations(module, options) {
9
+ const wgsl = [];
10
+ // => uniform UniformBlockName {
11
+ wgsl.push(`struct ${capitalize(module.name)} {`);
12
+ for (const [uniformName, uniformFormat] of Object.entries(module?.uniformTypes || {})) {
13
+ if (typeof uniformFormat !== 'string') {
14
+ throw new Error(`Composite uniform types are not supported by WGSL shader generation: ${module.name}.${uniformName}`);
15
+ }
16
+ const wgslUniformType = uniformFormat;
17
+ wgsl.push(` ${uniformName} : ${wgslUniformType};`);
18
+ }
19
+ wgsl.push('};');
20
+ wgsl.push(`var<uniform> ${module.name} : ${capitalize(module.name)};`);
21
+ return wgsl.join('\n');
22
+ }
23
+ //# sourceMappingURL=generate-wgsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-wgsl.js","sourceRoot":"","sources":["../../../../src/lib/shader-generator/wgsl/generate-wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAG5D,OAAO,EAAC,UAAU,EAAC,+BAA4B;AAM/C,MAAM,UAAU,qBAAqB,CAAC,MAAoB,EAAE,OAA8B;IACxF,OAAO,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,OAA8B;IAE9B,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,gCAAgC;IAChC,IAAI,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjD,KAAK,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QACtF,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,wEAAwE,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE,CACrG,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,aAAa,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,MAAM,eAAe,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,IAAI,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,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 composite_shader_pass_exports = {};
15
+ module.exports = __toCommonJS(composite_shader_pass_exports);
@@ -0,0 +1,41 @@
1
+ import type { UniformValue } from "../utils/uniform-types.js";
2
+ import type { ShaderPass, ShaderPassInputSource, ShaderPassRenderTarget } from "./shader-pass.js";
3
+ /** One ordered step in a {@link CompositeShaderPass}. */
4
+ export type CompositeShaderPassStep<TargetNameT extends string = string> = {
5
+ shaderPass: ShaderPass<any, any, any, any>;
6
+ inputs?: Record<string, ShaderPassInputSource<TargetNameT>>;
7
+ output?: 'previous' | TargetNameT;
8
+ uniforms?: Record<string, UniformValue>;
9
+ };
10
+ /** Optional WebGPU compute stage that replaces equivalent fragment-only fallback passes. */
11
+ export type CompositeShaderPassComputeOptimization<TargetNameT extends string = string> = {
12
+ /** Stable identifier used for compute resources and command labels. */
13
+ name: string;
14
+ /** Complete WGSL compute entry point with explicit binding locations. */
15
+ source: string;
16
+ /** Existing fragment module that owns the scalar runtime uniforms. */
17
+ uniformModule: string;
18
+ /** Explicit WGSL uniform-buffer binding name used by the compute entry point. */
19
+ uniformBinding: string;
20
+ /** Scalar uniform packing order used by the compute shader. */
21
+ uniformNames: readonly string[];
22
+ /** Composite-pass scalar defaults layered below per-frame runtime overrides. */
23
+ uniforms: Record<string, number>;
24
+ /** Logical source image consumed by the fused compute dispatch. */
25
+ input: ShaderPassInputSource<TargetNameT>;
26
+ /** Mapping from compute storage-texture names to owned render targets. */
27
+ outputs: Record<string, TargetNameT>;
28
+ /** Fragment pass names removed when the WebGPU optimization is supported. */
29
+ replacedPasses: readonly string[];
30
+ /** Compute workgroup width and height in highest-resolution output texels. */
31
+ workgroupSize: readonly [number, number];
32
+ };
33
+ /** Declarative composition of shader passes with owned targets and optional compute execution. */
34
+ export type CompositeShaderPass<TargetNameT extends string = string> = {
35
+ name: string;
36
+ renderTargets?: Record<TargetNameT, ShaderPassRenderTarget>;
37
+ steps: CompositeShaderPassStep<TargetNameT>[];
38
+ /** Optional fused WebGPU dispatch; existing fragment steps remain the portable fallback. */
39
+ compute?: CompositeShaderPassComputeOptimization<TargetNameT>;
40
+ };
41
+ //# sourceMappingURL=composite-shader-pass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-shader-pass.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-module/composite-shader-pass.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,kCAA+B;AACzD,OAAO,KAAK,EAAC,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,EAAC,yBAAsB;AAE7F,yDAAyD;AACzD,MAAM,MAAM,uBAAuB,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,IAAI;IACzE,UAAU,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,sCAAsC,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,IAAI;IACxF,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,mEAAmE;IACnE,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,6EAA6E;IAC7E,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8EAA8E;IAC9E,aAAa,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C,CAAC;AAEF,kGAAkG;AAClG,MAAM,MAAM,mBAAmB,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,IAAI;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAC5D,KAAK,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;IAC9C,4FAA4F;IAC5F,OAAO,CAAC,EAAE,sCAAsC,CAAC,WAAW,CAAC,CAAC;CAC/D,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=composite-shader-pass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-shader-pass.js","sourceRoot":"","sources":["../../../src/lib/shader-module/composite-shader-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D"}
@@ -0,0 +1,83 @@
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_module_dependencies_exports = {};
19
+ __export(shader_module_dependencies_exports, {
20
+ getShaderDependencies: () => getShaderDependencies,
21
+ getShaderModuleDependencies: () => getShaderModuleDependencies,
22
+ resolveModules: () => resolveModules
23
+ });
24
+ module.exports = __toCommonJS(shader_module_dependencies_exports);
25
+ var import_shader_module = require("./shader-module.cjs");
26
+ var import_assert = require("../utils/assert.cjs");
27
+ function getShaderModuleDependencies(modules) {
28
+ const visited = /* @__PURE__ */ new Set();
29
+ const recursionStack = /* @__PURE__ */ new Set();
30
+ const result = [];
31
+ const nameToModule = /* @__PURE__ */ new Map();
32
+ function checkNameCollision(module2) {
33
+ const existing = nameToModule.get(module2.name);
34
+ if (existing && existing !== module2) {
35
+ throw new Error(`Shader module name collision: Multiple different module objects share the name "${module2.name}". Each module object must have a unique name.`);
36
+ }
37
+ nameToModule.set(module2.name, module2);
38
+ }
39
+ function visit(module2, path) {
40
+ if (recursionStack.has(module2)) {
41
+ const cyclePath = [...path, module2.name].join(" -> ");
42
+ throw new Error(`Shader module dependency cycle detected: ${cyclePath}`);
43
+ }
44
+ if (visited.has(module2)) {
45
+ return;
46
+ }
47
+ checkNameCollision(module2);
48
+ recursionStack.add(module2);
49
+ const newPath = [...path, module2.name];
50
+ if (module2.dependencies) {
51
+ for (const dep of module2.dependencies) {
52
+ visit(dep, newPath);
53
+ }
54
+ }
55
+ recursionStack.delete(module2);
56
+ visited.add(module2);
57
+ result.push(module2);
58
+ }
59
+ for (const module2 of modules) {
60
+ visit(module2, []);
61
+ }
62
+ const interfaceProviders = /* @__PURE__ */ new Set();
63
+ for (const module2 of result) {
64
+ if (module2.implements !== void 0) {
65
+ (0, import_assert.assert)(!interfaceProviders.has(module2.implements));
66
+ interfaceProviders.add(module2.implements);
67
+ }
68
+ }
69
+ (0, import_shader_module.initializeShaderModules)(result);
70
+ return result;
71
+ }
72
+ function getShaderDependencies(modules) {
73
+ return getShaderModuleDependencies(modules);
74
+ }
75
+ function resolveModules(modules) {
76
+ return getShaderDependencies(modules);
77
+ }
78
+ // Annotate the CommonJS export names for ESM import in node:
79
+ 0 && (module.exports = {
80
+ getShaderDependencies,
81
+ getShaderModuleDependencies,
82
+ resolveModules
83
+ });
@@ -0,0 +1,39 @@
1
+ import { ShaderModule } from "./shader-module.js";
2
+ type AbstractModule = {
3
+ name: string;
4
+ implements?: string;
5
+ dependencies?: AbstractModule[];
6
+ };
7
+ /**
8
+ * Takes a list of shader module names and returns a new list of
9
+ * shader module names that includes all dependencies, sorted so
10
+ * that modules that are dependencies of other modules come first.
11
+ *
12
+ * If the shader glsl code from the returned modules is concatenated
13
+ * in the reverse order, it is guaranteed that all functions be resolved and
14
+ * that all function and variable definitions come before use.
15
+ *
16
+ * @param modules - Array of modules (inline modules or module names)
17
+ * @return - Array of modules
18
+ */
19
+ export declare function getShaderModuleDependencies<T extends AbstractModule>(modules: T[]): T[];
20
+ /**
21
+ * Takes a list of shader module names and returns a new list of
22
+ * shader module names that includes all dependencies, sorted so
23
+ * that modules that are dependencies of other modules come first.
24
+ *
25
+ * If the shader glsl code from the returned modules is concatenated
26
+ * in the reverse order, it is guaranteed that all functions be resolved and
27
+ * that all function and variable definitions come before use.
28
+ *
29
+ * @param modules - Array of modules (inline modules or module names)
30
+ * @return - Array of modules
31
+ */
32
+ export declare function getShaderDependencies(modules: ShaderModule[]): ShaderModule[];
33
+ /**
34
+ * Instantiate shader modules and resolve any dependencies
35
+ * @deprecated Use getShaderDpendencies
36
+ */
37
+ export declare function resolveModules(modules: ShaderModule[]): ShaderModule[];
38
+ export {};
39
+ //# sourceMappingURL=shader-module-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-module-dependencies.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-module/shader-module-dependencies.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAA0B,2BAAwB;AAKtE,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CA0EvF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAE7E;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAEtE"}
@@ -0,0 +1,103 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ import { initializeShaderModules } from "./shader-module.js";
5
+ import { assert } from "../utils/assert.js";
6
+ /**
7
+ * Takes a list of shader module names and returns a new list of
8
+ * shader module names that includes all dependencies, sorted so
9
+ * that modules that are dependencies of other modules come first.
10
+ *
11
+ * If the shader glsl code from the returned modules is concatenated
12
+ * in the reverse order, it is guaranteed that all functions be resolved and
13
+ * that all function and variable definitions come before use.
14
+ *
15
+ * @param modules - Array of modules (inline modules or module names)
16
+ * @return - Array of modules
17
+ */
18
+ export function getShaderModuleDependencies(modules) {
19
+ // Data structures for topological sort
20
+ const visited = new Set(); // Fully processed modules (black nodes)
21
+ const recursionStack = new Set(); // Modules in current DFS path (gray nodes)
22
+ const result = []; // Post-order traversal result
23
+ const nameToModule = new Map(); // Name collision detection
24
+ /**
25
+ * Check for name collisions between distinct module objects
26
+ */
27
+ function checkNameCollision(module) {
28
+ const existing = nameToModule.get(module.name);
29
+ if (existing && existing !== module) {
30
+ throw new Error(`Shader module name collision: Multiple different module objects share the name "${module.name}". ` +
31
+ `Each module object must have a unique name.`);
32
+ }
33
+ nameToModule.set(module.name, module);
34
+ }
35
+ /**
36
+ * DFS visit function for topological sort with cycle detection
37
+ */
38
+ function visit(module, path) {
39
+ // Cycle detection: if module is in recursion stack, we've found a back edge
40
+ if (recursionStack.has(module)) {
41
+ const cyclePath = [...path, module.name].join(' -> ');
42
+ throw new Error(`Shader module dependency cycle detected: ${cyclePath}`);
43
+ }
44
+ // Already processed: skip if visited
45
+ if (visited.has(module)) {
46
+ return;
47
+ }
48
+ // Check for name collision before processing
49
+ checkNameCollision(module);
50
+ // Mark as visiting (white -> gray)
51
+ recursionStack.add(module);
52
+ const newPath = [...path, module.name];
53
+ // Recursively visit all dependencies
54
+ if (module.dependencies) {
55
+ for (const dep of module.dependencies) {
56
+ visit(dep, newPath);
57
+ }
58
+ }
59
+ // Mark as visited (gray -> black)
60
+ recursionStack.delete(module);
61
+ visited.add(module);
62
+ // Post-order: add to result after all dependencies processed
63
+ result.push(module);
64
+ }
65
+ // Start DFS from each root module
66
+ for (const module of modules) {
67
+ visit(module, []);
68
+ }
69
+ const interfaceProviders = new Set();
70
+ for (const module of result) {
71
+ if (module.implements !== undefined) {
72
+ // Distinct modules cannot provide the same exclusive shader interface.
73
+ assert(!interfaceProviders.has(module.implements));
74
+ interfaceProviders.add(module.implements);
75
+ }
76
+ }
77
+ initializeShaderModules(result);
78
+ return result;
79
+ }
80
+ /**
81
+ * Takes a list of shader module names and returns a new list of
82
+ * shader module names that includes all dependencies, sorted so
83
+ * that modules that are dependencies of other modules come first.
84
+ *
85
+ * If the shader glsl code from the returned modules is concatenated
86
+ * in the reverse order, it is guaranteed that all functions be resolved and
87
+ * that all function and variable definitions come before use.
88
+ *
89
+ * @param modules - Array of modules (inline modules or module names)
90
+ * @return - Array of modules
91
+ */
92
+ export function getShaderDependencies(modules) {
93
+ return getShaderModuleDependencies(modules);
94
+ }
95
+ // DEPRECATED
96
+ /**
97
+ * Instantiate shader modules and resolve any dependencies
98
+ * @deprecated Use getShaderDpendencies
99
+ */
100
+ export function resolveModules(modules) {
101
+ return getShaderDependencies(modules);
102
+ }
103
+ //# sourceMappingURL=shader-module-dependencies.js.map