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

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 (692) hide show
  1. package/README.md +25 -2
  2. package/dist/dist.dev.js +19686 -0
  3. package/dist/dist.min.js +12180 -0
  4. package/dist/glsl.cjs +33 -0
  5. package/dist/glsl.cjs.map +6 -0
  6. package/dist/glsl.d.ts +6 -0
  7. package/dist/glsl.d.ts.map +1 -0
  8. package/dist/glsl.js +7 -0
  9. package/dist/glsl.js.map +1 -0
  10. package/dist/index.cjs +243 -0
  11. package/dist/index.cjs.map +6 -0
  12. package/dist/index.d.ts +91 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +65 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/lib/color/normalize-byte-colors.cjs +50 -0
  17. package/dist/lib/color/normalize-byte-colors.d.ts +23 -0
  18. package/dist/lib/color/normalize-byte-colors.d.ts.map +1 -0
  19. package/dist/lib/color/normalize-byte-colors.js +42 -0
  20. package/dist/lib/color/normalize-byte-colors.js.map +1 -0
  21. package/dist/lib/filters/prop-types.cjs +90 -0
  22. package/dist/lib/filters/prop-types.d.ts +44 -0
  23. package/dist/lib/filters/prop-types.d.ts.map +1 -0
  24. package/dist/lib/filters/prop-types.js +96 -0
  25. package/dist/lib/filters/prop-types.js.map +1 -0
  26. package/dist/lib/glsl-shader-assembler.cjs +50 -0
  27. package/dist/lib/glsl-shader-assembler.d.ts +19 -0
  28. package/dist/lib/glsl-shader-assembler.d.ts.map +1 -0
  29. package/dist/lib/glsl-shader-assembler.js +29 -0
  30. package/dist/lib/glsl-shader-assembler.js.map +1 -0
  31. package/dist/lib/glsl-utils/get-shader-info.cjs +52 -0
  32. package/dist/lib/glsl-utils/get-shader-info.d.ts +9 -0
  33. package/dist/lib/glsl-utils/get-shader-info.d.ts.map +1 -0
  34. package/dist/lib/glsl-utils/get-shader-info.js +33 -0
  35. package/dist/lib/glsl-utils/get-shader-info.js.map +1 -0
  36. package/dist/lib/glsl-utils/shader-utils.cjs +126 -0
  37. package/dist/lib/glsl-utils/shader-utils.d.ts +23 -0
  38. package/dist/lib/glsl-utils/shader-utils.d.ts.map +1 -0
  39. package/dist/lib/glsl-utils/shader-utils.js +92 -0
  40. package/dist/lib/glsl-utils/shader-utils.js.map +1 -0
  41. package/dist/lib/preprocessor/preprocessor.cjs +107 -0
  42. package/dist/lib/preprocessor/preprocessor.d.ts +15 -0
  43. package/dist/lib/preprocessor/preprocessor.d.ts.map +1 -0
  44. package/dist/lib/preprocessor/preprocessor.js +99 -0
  45. package/dist/lib/preprocessor/preprocessor.js.map +1 -0
  46. package/dist/lib/shader-assembler-base.cjs +133 -0
  47. package/dist/lib/shader-assembler-base.d.ts +52 -0
  48. package/dist/lib/shader-assembler-base.d.ts.map +1 -0
  49. package/dist/lib/shader-assembler-base.js +128 -0
  50. package/dist/lib/shader-assembler-base.js.map +1 -0
  51. package/dist/lib/shader-assembler.cjs +33 -0
  52. package/dist/lib/shader-assembler.d.ts +4 -0
  53. package/dist/lib/shader-assembler.d.ts.map +1 -0
  54. package/dist/lib/shader-assembler.js +7 -0
  55. package/dist/lib/shader-assembler.js.map +1 -0
  56. package/dist/lib/shader-assembly/assemble-glsl-shaders.cjs +200 -0
  57. package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts +69 -0
  58. package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts.map +1 -0
  59. package/dist/lib/shader-assembly/assemble-glsl-shaders.js +221 -0
  60. package/dist/lib/shader-assembly/assemble-glsl-shaders.js.map +1 -0
  61. package/dist/lib/shader-assembly/assemble-shaders.cjs +42 -0
  62. package/dist/lib/shader-assembly/assemble-shaders.d.ts +10 -0
  63. package/dist/lib/shader-assembly/assemble-shaders.d.ts.map +1 -0
  64. package/dist/lib/shader-assembly/assemble-shaders.js +10 -0
  65. package/dist/lib/shader-assembly/assemble-shaders.js.map +1 -0
  66. package/dist/lib/shader-assembly/assemble-wgsl-shaders.cjs +501 -0
  67. package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts +71 -0
  68. package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts.map +1 -0
  69. package/dist/lib/shader-assembly/assemble-wgsl-shaders.js +473 -0
  70. package/dist/lib/shader-assembly/assemble-wgsl-shaders.js.map +1 -0
  71. package/dist/lib/shader-assembly/platform-defines.cjs +79 -0
  72. package/dist/lib/shader-assembly/platform-defines.d.ts +4 -0
  73. package/dist/lib/shader-assembly/platform-defines.d.ts.map +1 -0
  74. package/dist/lib/shader-assembly/platform-defines.js +52 -0
  75. package/dist/lib/shader-assembly/platform-defines.js.map +1 -0
  76. package/dist/lib/shader-assembly/platform-info.cjs +15 -0
  77. package/dist/lib/shader-assembly/platform-info.d.ts +20 -0
  78. package/dist/lib/shader-assembly/platform-info.d.ts.map +1 -0
  79. package/dist/lib/shader-assembly/platform-info.js +5 -0
  80. package/dist/lib/shader-assembly/platform-info.js.map +1 -0
  81. package/dist/lib/shader-assembly/shader-assembly-shared.cjs +96 -0
  82. package/dist/lib/shader-assembly/shader-assembly-shared.d.ts +16 -0
  83. package/dist/lib/shader-assembly/shader-assembly-shared.d.ts.map +1 -0
  84. package/dist/lib/shader-assembly/shader-assembly-shared.js +79 -0
  85. package/dist/lib/shader-assembly/shader-assembly-shared.js.map +1 -0
  86. package/dist/lib/shader-assembly/shader-assembly-types.cjs +15 -0
  87. package/dist/lib/shader-assembly/shader-assembly-types.d.ts +128 -0
  88. package/dist/lib/shader-assembly/shader-assembly-types.d.ts.map +1 -0
  89. package/dist/lib/shader-assembly/shader-assembly-types.js +5 -0
  90. package/dist/lib/shader-assembly/shader-assembly-types.js.map +1 -0
  91. package/dist/lib/shader-assembly/shader-hooks.cjs +103 -0
  92. package/dist/lib/shader-assembly/shader-hooks.d.ts +45 -0
  93. package/dist/lib/shader-assembly/shader-hooks.d.ts.map +1 -0
  94. package/dist/lib/shader-assembly/shader-hooks.js +84 -0
  95. package/dist/lib/shader-assembly/shader-hooks.js.map +1 -0
  96. package/dist/lib/shader-assembly/shader-injections.cjs +180 -0
  97. package/dist/lib/shader-assembly/shader-injections.d.ts +34 -0
  98. package/dist/lib/shader-assembly/shader-injections.d.ts.map +1 -0
  99. package/dist/lib/shader-assembly/shader-injections.js +183 -0
  100. package/dist/lib/shader-assembly/shader-injections.js.map +1 -0
  101. package/dist/lib/shader-assembly/shader-plugin-varyings.cjs +417 -0
  102. package/dist/lib/shader-assembly/shader-plugin-varyings.d.ts +15 -0
  103. package/dist/lib/shader-assembly/shader-plugin-varyings.d.ts.map +1 -0
  104. package/dist/lib/shader-assembly/shader-plugin-varyings.js +412 -0
  105. package/dist/lib/shader-assembly/shader-plugin-varyings.js.map +1 -0
  106. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.cjs +254 -0
  107. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.d.ts +12 -0
  108. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.d.ts.map +1 -0
  109. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.js +237 -0
  110. package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.js.map +1 -0
  111. package/dist/lib/shader-assembly/wgsl-binding-debug.cjs +166 -0
  112. package/dist/lib/shader-assembly/wgsl-binding-debug.d.ts +37 -0
  113. package/dist/lib/shader-assembly/wgsl-binding-debug.d.ts.map +1 -0
  114. package/dist/lib/shader-assembly/wgsl-binding-debug.js +144 -0
  115. package/dist/lib/shader-assembly/wgsl-binding-debug.js.map +1 -0
  116. package/dist/lib/shader-assembly/wgsl-binding-scan.cjs +184 -0
  117. package/dist/lib/shader-assembly/wgsl-binding-scan.d.ts +19 -0
  118. package/dist/lib/shader-assembly/wgsl-binding-scan.d.ts.map +1 -0
  119. package/dist/lib/shader-assembly/wgsl-binding-scan.js +151 -0
  120. package/dist/lib/shader-assembly/wgsl-binding-scan.js.map +1 -0
  121. package/dist/lib/shader-assembly/wgsl-interface-scan.cjs +502 -0
  122. package/dist/lib/shader-assembly/wgsl-interface-scan.d.ts +14 -0
  123. package/dist/lib/shader-assembly/wgsl-interface-scan.d.ts.map +1 -0
  124. package/dist/lib/shader-assembly/wgsl-interface-scan.js +498 -0
  125. package/dist/lib/shader-assembly/wgsl-interface-scan.js.map +1 -0
  126. package/dist/lib/shader-generator/generate-shader.cjs +36 -0
  127. package/dist/lib/shader-generator/generate-shader.d.ts +8 -0
  128. package/dist/lib/shader-generator/generate-shader.d.ts.map +1 -0
  129. package/dist/lib/shader-generator/generate-shader.js +15 -0
  130. package/dist/lib/shader-generator/generate-shader.js.map +1 -0
  131. package/dist/lib/shader-generator/glsl/generate-glsl.cjs +94 -0
  132. package/dist/lib/shader-generator/glsl/generate-glsl.d.ts +7 -0
  133. package/dist/lib/shader-generator/glsl/generate-glsl.d.ts.map +1 -0
  134. package/dist/lib/shader-generator/glsl/generate-glsl.js +79 -0
  135. package/dist/lib/shader-generator/glsl/generate-glsl.js.map +1 -0
  136. package/dist/lib/shader-generator/utils/capitalize.cjs +29 -0
  137. package/dist/lib/shader-generator/utils/capitalize.d.ts +7 -0
  138. package/dist/lib/shader-generator/utils/capitalize.d.ts.map +1 -0
  139. package/dist/lib/shader-generator/utils/capitalize.js +12 -0
  140. package/dist/lib/shader-generator/utils/capitalize.js.map +1 -0
  141. package/dist/lib/shader-generator/wgsl/generate-wgsl.cjs +46 -0
  142. package/dist/lib/shader-generator/wgsl/generate-wgsl.d.ts +7 -0
  143. package/dist/lib/shader-generator/wgsl/generate-wgsl.d.ts.map +1 -0
  144. package/dist/lib/shader-generator/wgsl/generate-wgsl.js +23 -0
  145. package/dist/lib/shader-generator/wgsl/generate-wgsl.js.map +1 -0
  146. package/dist/lib/shader-module/composite-shader-pass.cjs +15 -0
  147. package/dist/lib/shader-module/composite-shader-pass.d.ts +41 -0
  148. package/dist/lib/shader-module/composite-shader-pass.d.ts.map +1 -0
  149. package/dist/lib/shader-module/composite-shader-pass.js +5 -0
  150. package/dist/lib/shader-module/composite-shader-pass.js.map +1 -0
  151. package/dist/lib/shader-module/shader-module-dependencies.cjs +83 -0
  152. package/dist/lib/shader-module/shader-module-dependencies.d.ts +39 -0
  153. package/dist/lib/shader-module/shader-module-dependencies.d.ts.map +1 -0
  154. package/dist/lib/shader-module/shader-module-dependencies.js +103 -0
  155. package/dist/lib/shader-module/shader-module-dependencies.js.map +1 -0
  156. package/dist/lib/shader-module/shader-module-uniform-layout.cjs +224 -0
  157. package/dist/lib/shader-module/shader-module-uniform-layout.d.ts +91 -0
  158. package/dist/lib/shader-module/shader-module-uniform-layout.d.ts.map +1 -0
  159. package/dist/lib/shader-module/shader-module-uniform-layout.js +253 -0
  160. package/dist/lib/shader-module/shader-module-uniform-layout.js.map +1 -0
  161. package/dist/lib/shader-module/shader-module.cjs +105 -0
  162. package/dist/lib/shader-module/shader-module.d.ts +98 -0
  163. package/dist/lib/shader-module/shader-module.d.ts.map +1 -0
  164. package/dist/lib/shader-module/shader-module.js +104 -0
  165. package/dist/lib/shader-module/shader-module.js.map +1 -0
  166. package/dist/lib/shader-module/shader-pass.cjs +15 -0
  167. package/dist/lib/shader-module/shader-pass.d.ts +48 -0
  168. package/dist/lib/shader-module/shader-pass.d.ts.map +1 -0
  169. package/dist/lib/shader-module/shader-pass.js +5 -0
  170. package/dist/lib/shader-module/shader-pass.js.map +1 -0
  171. package/dist/lib/shader-plugin.cjs +117 -0
  172. package/dist/lib/shader-plugin.d.ts +68 -0
  173. package/dist/lib/shader-plugin.d.ts.map +1 -0
  174. package/dist/lib/shader-plugin.js +98 -0
  175. package/dist/lib/shader-plugin.js.map +1 -0
  176. package/dist/lib/shader-transpiler/shader-transpiler.cjs +15 -0
  177. package/dist/lib/shader-transpiler/shader-transpiler.d.ts +27 -0
  178. package/dist/lib/shader-transpiler/shader-transpiler.d.ts.map +1 -0
  179. package/dist/lib/shader-transpiler/shader-transpiler.js +5 -0
  180. package/dist/lib/shader-transpiler/shader-transpiler.js.map +1 -0
  181. package/dist/lib/shader-transpiler/transpile-glsl-shader.cjs +71 -0
  182. package/dist/lib/shader-transpiler/transpile-glsl-shader.d.ts +9 -0
  183. package/dist/lib/shader-transpiler/transpile-glsl-shader.d.ts.map +1 -0
  184. package/dist/lib/shader-transpiler/transpile-glsl-shader.js +69 -0
  185. package/dist/lib/shader-transpiler/transpile-glsl-shader.js.map +1 -0
  186. package/dist/lib/utils/assert.cjs +34 -0
  187. package/dist/lib/utils/assert.d.ts +2 -0
  188. package/dist/lib/utils/assert.d.ts.map +1 -0
  189. package/dist/lib/utils/assert.js +13 -0
  190. package/dist/lib/utils/assert.js.map +1 -0
  191. package/dist/lib/utils/uniform-types.cjs +15 -0
  192. package/dist/lib/utils/uniform-types.d.ts +18 -0
  193. package/dist/lib/utils/uniform-types.d.ts.map +1 -0
  194. package/dist/lib/utils/uniform-types.js +5 -0
  195. package/dist/lib/utils/uniform-types.js.map +1 -0
  196. package/dist/lib/wgsl-shader-assembler.cjs +99 -0
  197. package/dist/lib/wgsl-shader-assembler.d.ts +34 -0
  198. package/dist/lib/wgsl-shader-assembler.d.ts.map +1 -0
  199. package/dist/lib/wgsl-shader-assembler.js +84 -0
  200. package/dist/lib/wgsl-shader-assembler.js.map +1 -0
  201. package/dist/module-injectors.cjs +59 -0
  202. package/dist/module-injectors.d.ts +3 -0
  203. package/dist/module-injectors.d.ts.map +1 -0
  204. package/dist/module-injectors.js +31 -0
  205. package/dist/module-injectors.js.map +1 -0
  206. package/dist/modules/color/float-colors.cjs +275 -0
  207. package/dist/modules/color/float-colors.d.ts +132 -0
  208. package/dist/modules/color/float-colors.d.ts.map +1 -0
  209. package/dist/modules/color/float-colors.js +248 -0
  210. package/dist/modules/color/float-colors.js.map +1 -0
  211. package/dist/modules/engine/clip/clip.cjs +152 -0
  212. package/dist/modules/engine/clip/clip.d.ts +12 -0
  213. package/dist/modules/engine/clip/clip.d.ts.map +1 -0
  214. package/dist/modules/engine/clip/clip.js +129 -0
  215. package/dist/modules/engine/clip/clip.js.map +1 -0
  216. package/dist/modules/engine/filter/filter.cjs +111 -0
  217. package/dist/modules/engine/filter/filter.d.ts +12 -0
  218. package/dist/modules/engine/filter/filter.d.ts.map +1 -0
  219. package/dist/modules/engine/filter/filter.js +88 -0
  220. package/dist/modules/engine/filter/filter.js.map +1 -0
  221. package/dist/modules/engine/geometry/geometry.cjs +63 -0
  222. package/dist/modules/engine/geometry/geometry.d.ts +9 -0
  223. package/dist/modules/engine/geometry/geometry.d.ts.map +1 -0
  224. package/dist/modules/engine/geometry/geometry.js +42 -0
  225. package/dist/modules/engine/geometry/geometry.js.map +1 -0
  226. package/dist/modules/engine/gpu-animation/gpu-animation.cjs +255 -0
  227. package/dist/modules/engine/gpu-animation/gpu-animation.d.ts +34 -0
  228. package/dist/modules/engine/gpu-animation/gpu-animation.d.ts.map +1 -0
  229. package/dist/modules/engine/gpu-animation/gpu-animation.js +228 -0
  230. package/dist/modules/engine/gpu-animation/gpu-animation.js.map +1 -0
  231. package/dist/modules/engine/picking/picking.cjs +210 -0
  232. package/dist/modules/engine/picking/picking.d.ts +77 -0
  233. package/dist/modules/engine/picking/picking.d.ts.map +1 -0
  234. package/dist/modules/engine/picking/picking.js +198 -0
  235. package/dist/modules/engine/picking/picking.js.map +1 -0
  236. package/dist/modules/engine/project/project.cjs +138 -0
  237. package/dist/modules/engine/project/project.d.ts +39 -0
  238. package/dist/modules/engine/project/project.d.ts.map +1 -0
  239. package/dist/modules/engine/project/project.js +129 -0
  240. package/dist/modules/engine/project/project.js.map +1 -0
  241. package/dist/modules/engine/skin/skin.cjs +212 -0
  242. package/dist/modules/engine/skin/skin.d.ts +52 -0
  243. package/dist/modules/engine/skin/skin.d.ts.map +1 -0
  244. package/dist/modules/engine/skin/skin.js +179 -0
  245. package/dist/modules/engine/skin/skin.js.map +1 -0
  246. package/dist/modules/engine/transform/transform.cjs +72 -0
  247. package/dist/modules/engine/transform/transform.d.ts +6 -0
  248. package/dist/modules/engine/transform/transform.d.ts.map +1 -0
  249. package/dist/modules/engine/transform/transform.js +49 -0
  250. package/dist/modules/engine/transform/transform.js.map +1 -0
  251. package/dist/modules/geometry/path-dash/path-dash.cjs +93 -0
  252. package/dist/modules/geometry/path-dash/path-dash.d.ts +10 -0
  253. package/dist/modules/geometry/path-dash/path-dash.d.ts.map +1 -0
  254. package/dist/modules/geometry/path-dash/path-dash.js +66 -0
  255. package/dist/modules/geometry/path-dash/path-dash.js.map +1 -0
  256. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.cjs +117 -0
  257. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.d.ts +3 -0
  258. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.d.ts.map +1 -0
  259. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.js +87 -0
  260. package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.js.map +1 -0
  261. package/dist/modules/geometry/pattern-fill/pattern-fill.cjs +64 -0
  262. package/dist/modules/geometry/pattern-fill/pattern-fill.d.ts +14 -0
  263. package/dist/modules/geometry/pattern-fill/pattern-fill.d.ts.map +1 -0
  264. package/dist/modules/geometry/pattern-fill/pattern-fill.js +43 -0
  265. package/dist/modules/geometry/pattern-fill/pattern-fill.js.map +1 -0
  266. package/dist/modules/geometry/point-glow/point-glow.cjs +104 -0
  267. package/dist/modules/geometry/point-glow/point-glow.d.ts +11 -0
  268. package/dist/modules/geometry/point-glow/point-glow.d.ts.map +1 -0
  269. package/dist/modules/geometry/point-glow/point-glow.js +77 -0
  270. package/dist/modules/geometry/point-glow/point-glow.js.map +1 -0
  271. package/dist/modules/geometry/precipitation/precipitation.cjs +122 -0
  272. package/dist/modules/geometry/precipitation/precipitation.d.ts +40 -0
  273. package/dist/modules/geometry/precipitation/precipitation.d.ts.map +1 -0
  274. package/dist/modules/geometry/precipitation/precipitation.js +95 -0
  275. package/dist/modules/geometry/precipitation/precipitation.js.map +1 -0
  276. package/dist/modules/geometry/sketch-stroke/sketch-stroke.cjs +158 -0
  277. package/dist/modules/geometry/sketch-stroke/sketch-stroke.d.ts +60 -0
  278. package/dist/modules/geometry/sketch-stroke/sketch-stroke.d.ts.map +1 -0
  279. package/dist/modules/geometry/sketch-stroke/sketch-stroke.js +137 -0
  280. package/dist/modules/geometry/sketch-stroke/sketch-stroke.js.map +1 -0
  281. package/dist/modules/geospatial/dggs/dggs-wgsl.cjs +2304 -0
  282. package/dist/modules/geospatial/dggs/dggs-wgsl.d.ts +3 -0
  283. package/dist/modules/geospatial/dggs/dggs-wgsl.d.ts.map +1 -0
  284. package/dist/modules/geospatial/dggs/dggs-wgsl.js +2283 -0
  285. package/dist/modules/geospatial/dggs/dggs-wgsl.js.map +1 -0
  286. package/dist/modules/geospatial/dggs/dggs.cjs +31 -0
  287. package/dist/modules/geospatial/dggs/dggs.d.ts +6 -0
  288. package/dist/modules/geospatial/dggs/dggs.d.ts.map +1 -0
  289. package/dist/modules/geospatial/dggs/dggs.js +10 -0
  290. package/dist/modules/geospatial/dggs/dggs.js.map +1 -0
  291. package/dist/modules/lighting/area-lighting/area-light-types.cjs +68 -0
  292. package/dist/modules/lighting/area-lighting/area-light-types.d.ts +34 -0
  293. package/dist/modules/lighting/area-lighting/area-light-types.d.ts.map +1 -0
  294. package/dist/modules/lighting/area-lighting/area-light-types.js +40 -0
  295. package/dist/modules/lighting/area-lighting/area-light-types.js.map +1 -0
  296. package/dist/modules/lighting/area-lighting/area-lighting-shaders.cjs +101 -0
  297. package/dist/modules/lighting/area-lighting/area-lighting-shaders.d.ts +3 -0
  298. package/dist/modules/lighting/area-lighting/area-lighting-shaders.d.ts.map +1 -0
  299. package/dist/modules/lighting/area-lighting/area-lighting-shaders.js +71 -0
  300. package/dist/modules/lighting/area-lighting/area-lighting-shaders.js.map +1 -0
  301. package/dist/modules/lighting/area-lighting/area-lighting.cjs +62 -0
  302. package/dist/modules/lighting/area-lighting/area-lighting.d.ts +89 -0
  303. package/dist/modules/lighting/area-lighting/area-lighting.d.ts.map +1 -0
  304. package/dist/modules/lighting/area-lighting/area-lighting.js +41 -0
  305. package/dist/modules/lighting/area-lighting/area-lighting.js.map +1 -0
  306. package/dist/modules/lighting/area-lighting/ltc-shaders.cjs +192 -0
  307. package/dist/modules/lighting/area-lighting/ltc-shaders.d.ts +3 -0
  308. package/dist/modules/lighting/area-lighting/ltc-shaders.d.ts.map +1 -0
  309. package/dist/modules/lighting/area-lighting/ltc-shaders.js +162 -0
  310. package/dist/modules/lighting/area-lighting/ltc-shaders.js.map +1 -0
  311. package/dist/modules/lighting/atmosphere/atmosphere.cjs +253 -0
  312. package/dist/modules/lighting/atmosphere/atmosphere.d.ts +45 -0
  313. package/dist/modules/lighting/atmosphere/atmosphere.d.ts.map +1 -0
  314. package/dist/modules/lighting/atmosphere/atmosphere.js +228 -0
  315. package/dist/modules/lighting/atmosphere/atmosphere.js.map +1 -0
  316. package/dist/modules/lighting/clouds/clouds.cjs +216 -0
  317. package/dist/modules/lighting/clouds/clouds.d.ts +58 -0
  318. package/dist/modules/lighting/clouds/clouds.d.ts.map +1 -0
  319. package/dist/modules/lighting/clouds/clouds.js +192 -0
  320. package/dist/modules/lighting/clouds/clouds.js.map +1 -0
  321. package/dist/modules/lighting/firefly/firefly.cjs +74 -0
  322. package/dist/modules/lighting/firefly/firefly.d.ts +36 -0
  323. package/dist/modules/lighting/firefly/firefly.d.ts.map +1 -0
  324. package/dist/modules/lighting/firefly/firefly.js +53 -0
  325. package/dist/modules/lighting/firefly/firefly.js.map +1 -0
  326. package/dist/modules/lighting/globe-clouds/globe-clouds.cjs +143 -0
  327. package/dist/modules/lighting/globe-clouds/globe-clouds.d.ts +53 -0
  328. package/dist/modules/lighting/globe-clouds/globe-clouds.d.ts.map +1 -0
  329. package/dist/modules/lighting/globe-clouds/globe-clouds.js +119 -0
  330. package/dist/modules/lighting/globe-clouds/globe-clouds.js.map +1 -0
  331. package/dist/modules/lighting/gouraud-material/gouraud-material.cjs +61 -0
  332. package/dist/modules/lighting/gouraud-material/gouraud-material.d.ts +12 -0
  333. package/dist/modules/lighting/gouraud-material/gouraud-material.d.ts.map +1 -0
  334. package/dist/modules/lighting/gouraud-material/gouraud-material.js +40 -0
  335. package/dist/modules/lighting/gouraud-material/gouraud-material.js.map +1 -0
  336. package/dist/modules/lighting/height-fog/height-fog-functions.cjs +139 -0
  337. package/dist/modules/lighting/height-fog/height-fog-functions.d.ts +14 -0
  338. package/dist/modules/lighting/height-fog/height-fog-functions.d.ts.map +1 -0
  339. package/dist/modules/lighting/height-fog/height-fog-functions.js +114 -0
  340. package/dist/modules/lighting/height-fog/height-fog-functions.js.map +1 -0
  341. package/dist/modules/lighting/height-fog/height-fog.cjs +104 -0
  342. package/dist/modules/lighting/height-fog/height-fog.d.ts +60 -0
  343. package/dist/modules/lighting/height-fog/height-fog.d.ts.map +1 -0
  344. package/dist/modules/lighting/height-fog/height-fog.js +77 -0
  345. package/dist/modules/lighting/height-fog/height-fog.js.map +1 -0
  346. package/dist/modules/lighting/ibl/ibl.cjs +63 -0
  347. package/dist/modules/lighting/ibl/ibl.d.ts +25 -0
  348. package/dist/modules/lighting/ibl/ibl.d.ts.map +1 -0
  349. package/dist/modules/lighting/ibl/ibl.js +33 -0
  350. package/dist/modules/lighting/ibl/ibl.js.map +1 -0
  351. package/dist/modules/lighting/lambert-material/lambert-material.cjs +54 -0
  352. package/dist/modules/lighting/lambert-material/lambert-material.d.ts +10 -0
  353. package/dist/modules/lighting/lambert-material/lambert-material.d.ts.map +1 -0
  354. package/dist/modules/lighting/lambert-material/lambert-material.js +33 -0
  355. package/dist/modules/lighting/lambert-material/lambert-material.js.map +1 -0
  356. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.cjs +88 -0
  357. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.d.ts +3 -0
  358. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.d.ts.map +1 -0
  359. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.js +60 -0
  360. package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.js.map +1 -0
  361. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.cjs +97 -0
  362. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.d.ts +2 -0
  363. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.d.ts.map +1 -0
  364. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.js +73 -0
  365. package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.js.map +1 -0
  366. package/dist/modules/lighting/lights/lighting-glsl.cjs +116 -0
  367. package/dist/modules/lighting/lights/lighting-glsl.d.ts +2 -0
  368. package/dist/modules/lighting/lights/lighting-glsl.d.ts.map +1 -0
  369. package/dist/modules/lighting/lights/lighting-glsl.js +92 -0
  370. package/dist/modules/lighting/lights/lighting-glsl.js.map +1 -0
  371. package/dist/modules/lighting/lights/lighting-wgsl.cjs +115 -0
  372. package/dist/modules/lighting/lights/lighting-wgsl.d.ts +2 -0
  373. package/dist/modules/lighting/lights/lighting-wgsl.d.ts.map +1 -0
  374. package/dist/modules/lighting/lights/lighting-wgsl.js +91 -0
  375. package/dist/modules/lighting/lights/lighting-wgsl.js.map +1 -0
  376. package/dist/modules/lighting/lights/lighting.cjs +210 -0
  377. package/dist/modules/lighting/lights/lighting.d.ts +163 -0
  378. package/dist/modules/lighting/lights/lighting.d.ts.map +1 -0
  379. package/dist/modules/lighting/lights/lighting.js +208 -0
  380. package/dist/modules/lighting/lights/lighting.js.map +1 -0
  381. package/dist/modules/lighting/no-material/dirlight.cjs +112 -0
  382. package/dist/modules/lighting/no-material/dirlight.d.ts +33 -0
  383. package/dist/modules/lighting/no-material/dirlight.d.ts.map +1 -0
  384. package/dist/modules/lighting/no-material/dirlight.js +86 -0
  385. package/dist/modules/lighting/no-material/dirlight.js.map +1 -0
  386. package/dist/modules/lighting/pbr-material/pbr-material-glsl.cjs +1767 -0
  387. package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts +3 -0
  388. package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts.map +1 -0
  389. package/dist/modules/lighting/pbr-material/pbr-material-glsl.js +1745 -0
  390. package/dist/modules/lighting/pbr-material/pbr-material-glsl.js.map +1 -0
  391. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.cjs +2062 -0
  392. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts +3 -0
  393. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts.map +1 -0
  394. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js +2040 -0
  395. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js.map +1 -0
  396. package/dist/modules/lighting/pbr-material/pbr-material.cjs +315 -0
  397. package/dist/modules/lighting/pbr-material/pbr-material.d.ts +516 -0
  398. package/dist/modules/lighting/pbr-material/pbr-material.d.ts.map +1 -0
  399. package/dist/modules/lighting/pbr-material/pbr-material.js +292 -0
  400. package/dist/modules/lighting/pbr-material/pbr-material.js.map +1 -0
  401. package/dist/modules/lighting/pbr-material/pbr-projection.cjs +63 -0
  402. package/dist/modules/lighting/pbr-material/pbr-projection.d.ts +10 -0
  403. package/dist/modules/lighting/pbr-material/pbr-projection.d.ts.map +1 -0
  404. package/dist/modules/lighting/pbr-material/pbr-projection.js +37 -0
  405. package/dist/modules/lighting/pbr-material/pbr-projection.js.map +1 -0
  406. package/dist/modules/lighting/pbr-material/pbr-scene.cjs +109 -0
  407. package/dist/modules/lighting/pbr-material/pbr-scene.d.ts +52 -0
  408. package/dist/modules/lighting/pbr-material/pbr-scene.d.ts.map +1 -0
  409. package/dist/modules/lighting/pbr-material/pbr-scene.js +83 -0
  410. package/dist/modules/lighting/pbr-material/pbr-scene.js.map +1 -0
  411. package/dist/modules/lighting/phong-material/phong-material.cjs +61 -0
  412. package/dist/modules/lighting/phong-material/phong-material.d.ts +13 -0
  413. package/dist/modules/lighting/phong-material/phong-material.d.ts.map +1 -0
  414. package/dist/modules/lighting/phong-material/phong-material.js +40 -0
  415. package/dist/modules/lighting/phong-material/phong-material.js.map +1 -0
  416. package/dist/modules/lighting/phong-material/phong-shaders-glsl.cjs +100 -0
  417. package/dist/modules/lighting/phong-material/phong-shaders-glsl.d.ts +3 -0
  418. package/dist/modules/lighting/phong-material/phong-shaders-glsl.d.ts.map +1 -0
  419. package/dist/modules/lighting/phong-material/phong-shaders-glsl.js +72 -0
  420. package/dist/modules/lighting/phong-material/phong-shaders-glsl.js.map +1 -0
  421. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.cjs +153 -0
  422. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.d.ts +2 -0
  423. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.d.ts.map +1 -0
  424. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.js +129 -0
  425. package/dist/modules/lighting/phong-material/phong-shaders-wgsl.js.map +1 -0
  426. package/dist/modules/lighting/surface-weather/surface-weather.cjs +199 -0
  427. package/dist/modules/lighting/surface-weather/surface-weather.d.ts +54 -0
  428. package/dist/modules/lighting/surface-weather/surface-weather.d.ts.map +1 -0
  429. package/dist/modules/lighting/surface-weather/surface-weather.js +175 -0
  430. package/dist/modules/lighting/surface-weather/surface-weather.js.map +1 -0
  431. package/dist/modules/lighting/water-material/river-water-material.cjs +56 -0
  432. package/dist/modules/lighting/water-material/river-water-material.d.ts +21 -0
  433. package/dist/modules/lighting/water-material/river-water-material.d.ts.map +1 -0
  434. package/dist/modules/lighting/water-material/river-water-material.js +36 -0
  435. package/dist/modules/lighting/water-material/river-water-material.js.map +1 -0
  436. package/dist/modules/lighting/water-material/river-water-shaders.cjs +261 -0
  437. package/dist/modules/lighting/water-material/river-water-shaders.d.ts +3 -0
  438. package/dist/modules/lighting/water-material/river-water-shaders.d.ts.map +1 -0
  439. package/dist/modules/lighting/water-material/river-water-shaders.js +233 -0
  440. package/dist/modules/lighting/water-material/river-water-shaders.js.map +1 -0
  441. package/dist/modules/lighting/water-material/water-material.cjs +188 -0
  442. package/dist/modules/lighting/water-material/water-material.d.ts +28 -0
  443. package/dist/modules/lighting/water-material/water-material.d.ts.map +1 -0
  444. package/dist/modules/lighting/water-material/water-material.js +179 -0
  445. package/dist/modules/lighting/water-material/water-material.js.map +1 -0
  446. package/dist/modules/lighting/water-material/water-shaders-glsl.cjs +260 -0
  447. package/dist/modules/lighting/water-material/water-shaders-glsl.d.ts +3 -0
  448. package/dist/modules/lighting/water-material/water-shaders-glsl.d.ts.map +1 -0
  449. package/dist/modules/lighting/water-material/water-shaders-glsl.js +232 -0
  450. package/dist/modules/lighting/water-material/water-shaders-glsl.js.map +1 -0
  451. package/dist/modules/lighting/water-material/water-shaders-wgsl.cjs +254 -0
  452. package/dist/modules/lighting/water-material/water-shaders-wgsl.d.ts +2 -0
  453. package/dist/modules/lighting/water-material/water-shaders-wgsl.d.ts.map +1 -0
  454. package/dist/modules/lighting/water-material/water-shaders-wgsl.js +230 -0
  455. package/dist/modules/lighting/water-material/water-shaders-wgsl.js.map +1 -0
  456. package/dist/modules/math/fp16/fp16-utils.cjs +112 -0
  457. package/dist/modules/math/fp16/fp16-utils.d.ts +13 -0
  458. package/dist/modules/math/fp16/fp16-utils.d.ts.map +1 -0
  459. package/dist/modules/math/fp16/fp16-utils.js +118 -0
  460. package/dist/modules/math/fp16/fp16-utils.js.map +1 -0
  461. package/dist/modules/math/fp32/fp32.cjs +310 -0
  462. package/dist/modules/math/fp32/fp32.d.ts +9 -0
  463. package/dist/modules/math/fp32/fp32.d.ts.map +1 -0
  464. package/dist/modules/math/fp32/fp32.js +288 -0
  465. package/dist/modules/math/fp32/fp32.js.map +1 -0
  466. package/dist/modules/math/fp64/fp64-arithmetic-glsl.cjs +229 -0
  467. package/dist/modules/math/fp64/fp64-arithmetic-glsl.d.ts +2 -0
  468. package/dist/modules/math/fp64/fp64-arithmetic-glsl.d.ts.map +1 -0
  469. package/dist/modules/math/fp64/fp64-arithmetic-glsl.js +205 -0
  470. package/dist/modules/math/fp64/fp64-arithmetic-glsl.js.map +1 -0
  471. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.cjs +144 -0
  472. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.d.ts +10 -0
  473. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.d.ts.map +1 -0
  474. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.js +128 -0
  475. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.js.map +1 -0
  476. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.cjs +583 -0
  477. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.d.ts +11 -0
  478. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.d.ts.map +1 -0
  479. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.js +563 -0
  480. package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.js.map +1 -0
  481. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.cjs +946 -0
  482. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.d.ts +3 -0
  483. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.d.ts.map +1 -0
  484. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.js +923 -0
  485. package/dist/modules/math/fp64/fp64-arithmetic-wgsl.js.map +1 -0
  486. package/dist/modules/math/fp64/fp64-functions-glsl.cjs +699 -0
  487. package/dist/modules/math/fp64/fp64-functions-glsl.d.ts +2 -0
  488. package/dist/modules/math/fp64/fp64-functions-glsl.d.ts.map +1 -0
  489. package/dist/modules/math/fp64/fp64-functions-glsl.js +675 -0
  490. package/dist/modules/math/fp64/fp64-functions-glsl.js.map +1 -0
  491. package/dist/modules/math/fp64/fp64-functions-wgsl.cjs +180 -0
  492. package/dist/modules/math/fp64/fp64-functions-wgsl.d.ts +3 -0
  493. package/dist/modules/math/fp64/fp64-functions-wgsl.d.ts.map +1 -0
  494. package/dist/modules/math/fp64/fp64-functions-wgsl.js +157 -0
  495. package/dist/modules/math/fp64/fp64-functions-wgsl.js.map +1 -0
  496. package/dist/modules/math/fp64/fp64-utils.cjs +50 -0
  497. package/dist/modules/math/fp64/fp64-utils.d.ts +22 -0
  498. package/dist/modules/math/fp64/fp64-utils.d.ts.map +1 -0
  499. package/dist/modules/math/fp64/fp64-utils.js +42 -0
  500. package/dist/modules/math/fp64/fp64-utils.js.map +1 -0
  501. package/dist/modules/math/fp64/fp64.cjs +68 -0
  502. package/dist/modules/math/fp64/fp64.d.ts +24 -0
  503. package/dist/modules/math/fp64/fp64.d.ts.map +1 -0
  504. package/dist/modules/math/fp64/fp64.js +46 -0
  505. package/dist/modules/math/fp64/fp64.js.map +1 -0
  506. package/dist/modules/math/random/random.cjs +46 -0
  507. package/dist/modules/math/random/random.d.ts +7 -0
  508. package/dist/modules/math/random/random.d.ts.map +1 -0
  509. package/dist/modules/math/random/random.js +21 -0
  510. package/dist/modules/math/random/random.js.map +1 -0
  511. package/dist/modules/math/value-noise/value-noise.cjs +95 -0
  512. package/dist/modules/math/value-noise/value-noise.d.ts +7 -0
  513. package/dist/modules/math/value-noise/value-noise.d.ts.map +1 -0
  514. package/dist/modules/math/value-noise/value-noise.js +68 -0
  515. package/dist/modules/math/value-noise/value-noise.js.map +1 -0
  516. package/dist/modules/volume/volume-raymarch.cjs +107 -0
  517. package/dist/modules/volume/volume-raymarch.d.ts +6 -0
  518. package/dist/modules/volume/volume-raymarch.d.ts.map +1 -0
  519. package/dist/modules/volume/volume-raymarch.js +84 -0
  520. package/dist/modules/volume/volume-raymarch.js.map +1 -0
  521. package/dist/types/align-to.cjs +38 -0
  522. package/dist/types/align-to.d.ts +3 -0
  523. package/dist/types/align-to.d.ts.map +1 -0
  524. package/dist/types/align-to.js +13 -0
  525. package/dist/types/align-to.js.map +1 -0
  526. package/dist/types/primitive-data-types.cjs +15 -0
  527. package/dist/types/primitive-data-types.d.ts +7 -0
  528. package/dist/types/primitive-data-types.d.ts.map +1 -0
  529. package/dist/types/primitive-data-types.js +5 -0
  530. package/dist/types/primitive-data-types.js.map +1 -0
  531. package/dist/types/sampler-props.cjs +15 -0
  532. package/dist/types/sampler-props.d.ts +26 -0
  533. package/dist/types/sampler-props.d.ts.map +1 -0
  534. package/dist/types/sampler-props.js +5 -0
  535. package/dist/types/sampler-props.js.map +1 -0
  536. package/dist/types/shader-block-layout.cjs +184 -0
  537. package/dist/types/shader-block-layout.d.ts +72 -0
  538. package/dist/types/shader-block-layout.d.ts.map +1 -0
  539. package/dist/types/shader-block-layout.js +209 -0
  540. package/dist/types/shader-block-layout.js.map +1 -0
  541. package/dist/types/shader-layout.cjs +15 -0
  542. package/dist/types/shader-layout.d.ts +178 -0
  543. package/dist/types/shader-layout.d.ts.map +1 -0
  544. package/dist/types/shader-layout.js +5 -0
  545. package/dist/types/shader-layout.js.map +1 -0
  546. package/dist/types/shader-type-decoder.cjs +240 -0
  547. package/dist/types/shader-type-decoder.d.ts +41 -0
  548. package/dist/types/shader-type-decoder.d.ts.map +1 -0
  549. package/dist/types/shader-type-decoder.js +210 -0
  550. package/dist/types/shader-type-decoder.js.map +1 -0
  551. package/dist/types/shader-types.cjs +15 -0
  552. package/dist/types/shader-types.d.ts +101 -0
  553. package/dist/types/shader-types.d.ts.map +1 -0
  554. package/dist/types/shader-types.js +30 -0
  555. package/dist/types/shader-types.js.map +1 -0
  556. package/dist/types/texture-formats.cjs +15 -0
  557. package/dist/types/texture-formats.d.ts +24 -0
  558. package/dist/types/texture-formats.d.ts.map +1 -0
  559. package/dist/types/texture-formats.js +5 -0
  560. package/dist/types/texture-formats.js.map +1 -0
  561. package/dist/types.cjs +42 -0
  562. package/dist/types.cjs.map +6 -0
  563. package/dist/types.d.ts +14 -0
  564. package/dist/types.d.ts.map +1 -0
  565. package/dist/types.js +12 -0
  566. package/dist/types.js.map +1 -0
  567. package/dist/wgsl.cjs +39 -0
  568. package/dist/wgsl.cjs.map +6 -0
  569. package/dist/wgsl.d.ts +8 -0
  570. package/dist/wgsl.d.ts.map +1 -0
  571. package/dist/wgsl.js +9 -0
  572. package/dist/wgsl.js.map +1 -0
  573. package/package.json +65 -4
  574. package/src/glsl.ts +13 -0
  575. package/src/index.ts +259 -0
  576. package/src/lib/color/normalize-byte-colors.ts +57 -0
  577. package/src/lib/filters/prop-types.ts +150 -0
  578. package/src/lib/glsl-shader-assembler.ts +39 -0
  579. package/src/lib/glsl-utils/get-shader-info.ts +42 -0
  580. package/src/lib/glsl-utils/shader-utils.ts +110 -0
  581. package/src/lib/preprocessor/preprocessor.ts +132 -0
  582. package/src/lib/shader-assembler-base.ts +170 -0
  583. package/src/lib/shader-assembler.ts +7 -0
  584. package/src/lib/shader-assembly/assemble-glsl-shaders.ts +305 -0
  585. package/src/lib/shader-assembly/assemble-shaders.ts +13 -0
  586. package/src/lib/shader-assembly/assemble-wgsl-shaders.ts +801 -0
  587. package/src/lib/shader-assembly/platform-defines.ts +58 -0
  588. package/src/lib/shader-assembly/platform-info.ts +23 -0
  589. package/src/lib/shader-assembly/shader-assembly-shared.ts +95 -0
  590. package/src/lib/shader-assembly/shader-assembly-types.ts +142 -0
  591. package/src/lib/shader-assembly/shader-hooks.ts +141 -0
  592. package/src/lib/shader-assembly/shader-injections.ts +250 -0
  593. package/src/lib/shader-assembly/shader-plugin-varyings.ts +524 -0
  594. package/src/lib/shader-assembly/shader-plugin-vertex-inputs.ts +279 -0
  595. package/src/lib/shader-assembly/wgsl-binding-debug.ts +227 -0
  596. package/src/lib/shader-assembly/wgsl-binding-scan.ts +228 -0
  597. package/src/lib/shader-assembly/wgsl-interface-scan.ts +676 -0
  598. package/src/lib/shader-generator/generate-shader.ts +27 -0
  599. package/src/lib/shader-generator/glsl/generate-glsl.ts +101 -0
  600. package/src/lib/shader-generator/utils/capitalize.ts +12 -0
  601. package/src/lib/shader-generator/wgsl/generate-wgsl.ts +40 -0
  602. package/src/lib/shader-module/composite-shader-pass.ts +47 -0
  603. package/src/lib/shader-module/shader-module-dependencies.ts +128 -0
  604. package/src/lib/shader-module/shader-module-uniform-layout.ts +420 -0
  605. package/src/lib/shader-module/shader-module.ts +244 -0
  606. package/src/lib/shader-module/shader-pass.ts +69 -0
  607. package/src/lib/shader-plugin.ts +214 -0
  608. package/src/lib/shader-transpiler/shader-transpiler.ts +34 -0
  609. package/src/lib/shader-transpiler/transpile-glsl-shader.ts +78 -0
  610. package/src/lib/utils/assert.ts +13 -0
  611. package/src/lib/utils/uniform-types.ts +89 -0
  612. package/src/lib/wgsl-shader-assembler.ts +122 -0
  613. package/src/module-injectors.ts +32 -0
  614. package/src/modules/color/float-colors.ts +334 -0
  615. package/src/modules/engine/clip/clip.ts +149 -0
  616. package/src/modules/engine/filter/filter.ts +107 -0
  617. package/src/modules/engine/geometry/geometry.ts +45 -0
  618. package/src/modules/engine/gpu-animation/gpu-animation.ts +244 -0
  619. package/src/modules/engine/picking/README.md +88 -0
  620. package/src/modules/engine/picking/picking.ts +252 -0
  621. package/src/modules/engine/project/project.ts +166 -0
  622. package/src/modules/engine/skin/skin.ts +233 -0
  623. package/src/modules/engine/transform/transform.ts +50 -0
  624. package/src/modules/geometry/path-dash/path-dash.ts +68 -0
  625. package/src/modules/geometry/pattern-fill/pattern-fill-shaders.ts +88 -0
  626. package/src/modules/geometry/pattern-fill/pattern-fill.ts +54 -0
  627. package/src/modules/geometry/point-glow/point-glow.ts +87 -0
  628. package/src/modules/geometry/precipitation/README.md +19 -0
  629. package/src/modules/geometry/precipitation/precipitation.ts +108 -0
  630. package/src/modules/geometry/sketch-stroke/sketch-stroke.ts +160 -0
  631. package/src/modules/geospatial/dggs/dggs-wgsl.ts +2284 -0
  632. package/src/modules/geospatial/dggs/dggs.ts +12 -0
  633. package/src/modules/lighting/area-lighting/area-light-types.ts +71 -0
  634. package/src/modules/lighting/area-lighting/area-lighting-shaders.ts +72 -0
  635. package/src/modules/lighting/area-lighting/area-lighting.ts +63 -0
  636. package/src/modules/lighting/area-lighting/ltc-shaders.ts +163 -0
  637. package/src/modules/lighting/atmosphere/README.md +25 -0
  638. package/src/modules/lighting/atmosphere/atmosphere.ts +246 -0
  639. package/src/modules/lighting/clouds/README.md +24 -0
  640. package/src/modules/lighting/clouds/clouds.ts +216 -0
  641. package/src/modules/lighting/firefly/firefly.ts +64 -0
  642. package/src/modules/lighting/globe-clouds/globe-clouds.ts +124 -0
  643. package/src/modules/lighting/gouraud-material/gouraud-material.ts +55 -0
  644. package/src/modules/lighting/height-fog/README.md +36 -0
  645. package/src/modules/lighting/height-fog/height-fog-functions.ts +116 -0
  646. package/src/modules/lighting/height-fog/height-fog.ts +96 -0
  647. package/src/modules/lighting/ibl/ibl.ts +43 -0
  648. package/src/modules/lighting/lambert-material/lambert-material.ts +42 -0
  649. package/src/modules/lighting/lambert-material/lambert-shaders-glsl.ts +61 -0
  650. package/src/modules/lighting/lambert-material/lambert-shaders-wgsl.ts +73 -0
  651. package/src/modules/lighting/lights/lighting-glsl.ts +92 -0
  652. package/src/modules/lighting/lights/lighting-wgsl.ts +91 -0
  653. package/src/modules/lighting/lights/lighting.ts +385 -0
  654. package/src/modules/lighting/no-material/dirlight.ts +101 -0
  655. package/src/modules/lighting/pbr-material/pbr-material-glsl.ts +1748 -0
  656. package/src/modules/lighting/pbr-material/pbr-material-wgsl.ts +2043 -0
  657. package/src/modules/lighting/pbr-material/pbr-material.ts +517 -0
  658. package/src/modules/lighting/pbr-material/pbr-projection.ts +50 -0
  659. package/src/modules/lighting/pbr-material/pbr-scene.ts +112 -0
  660. package/src/modules/lighting/phong-material/phong-material.ts +53 -0
  661. package/src/modules/lighting/phong-material/phong-shaders-glsl.ts +73 -0
  662. package/src/modules/lighting/phong-material/phong-shaders-wgsl.ts +129 -0
  663. package/src/modules/lighting/surface-weather/README.md +28 -0
  664. package/src/modules/lighting/surface-weather/surface-weather.ts +198 -0
  665. package/src/modules/lighting/water-material/river-water-material.ts +58 -0
  666. package/src/modules/lighting/water-material/river-water-shaders.ts +234 -0
  667. package/src/modules/lighting/water-material/water-material.ts +234 -0
  668. package/src/modules/lighting/water-material/water-shaders-glsl.ts +233 -0
  669. package/src/modules/lighting/water-material/water-shaders-wgsl.ts +230 -0
  670. package/src/modules/math/fp16/fp16-utils.ts +156 -0
  671. package/src/modules/math/fp32/fp32.ts +291 -0
  672. package/src/modules/math/fp64/fp64-arithmetic-glsl.ts +205 -0
  673. package/src/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.ts +129 -0
  674. package/src/modules/math/fp64/fp64-arithmetic-wgsl-integer.ts +564 -0
  675. package/src/modules/math/fp64/fp64-arithmetic-wgsl.ts +924 -0
  676. package/src/modules/math/fp64/fp64-functions-glsl.ts +675 -0
  677. package/src/modules/math/fp64/fp64-functions-wgsl.ts +157 -0
  678. package/src/modules/math/fp64/fp64-utils.ts +46 -0
  679. package/src/modules/math/fp64/fp64.ts +64 -0
  680. package/src/modules/math/random/random.ts +25 -0
  681. package/src/modules/math/value-noise/value-noise.ts +70 -0
  682. package/src/modules/volume/volume-raymarch.ts +87 -0
  683. package/src/types/align-to.ts +13 -0
  684. package/src/types/primitive-data-types.ts +10 -0
  685. package/src/types/sampler-props.ts +39 -0
  686. package/src/types/shader-block-layout.ts +340 -0
  687. package/src/types/shader-layout.ts +208 -0
  688. package/src/types/shader-type-decoder.ts +285 -0
  689. package/src/types/shader-types.ts +207 -0
  690. package/src/types/texture-formats.ts +155 -0
  691. package/src/types.ts +48 -0
  692. package/src/wgsl.ts +23 -0
@@ -0,0 +1,84 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ import { ShaderAssembler } from "./shader-assembler-base.js";
5
+ import { assembleWGSLSource } from "./shader-assembly/assemble-wgsl-shaders.js";
6
+ import { getShaderBindingDebugRowsFromWGSL } from "./shader-assembly/wgsl-binding-debug.js";
7
+ import { preprocess } from "./preprocessor/preprocessor.js";
8
+ import { scanWGSLInterface } from "./shader-assembly/wgsl-interface-scan.js";
9
+ /** Stateful assembler for unified WGSL shaders. */
10
+ export class WGSLShaderAssembler extends ShaderAssembler {
11
+ shaderLanguage = 'wgsl';
12
+ /** Stable per-run WGSL auto-binding assignments keyed by group/module/binding. */
13
+ _wgslBindingRegistry = new Map();
14
+ /**
15
+ * Assemble a WGSL unified shader.
16
+ * @param props WGSL source, platform information, shader modules, defines, and injections.
17
+ * @returns Assembled WGSL source, resolved modules, uniforms, and binding debug metadata.
18
+ */
19
+ assembleWGSLShader(props) {
20
+ const modules = this._getModuleList(props.modules); // Combine with default modules
21
+ const hookFunctions = this._hookFunctions; // TODO - combine with default hook functions
22
+ const translated = this._transpileShader(props, modules, props.source, props.shaderStage ?? (props.computeEntryPoint ? 'compute' : undefined));
23
+ const entryPoints = {
24
+ vertex: translated.entryPoints?.vertex ?? props.vertexEntryPoint,
25
+ fragment: translated.entryPoints?.fragment ?? props.fragmentEntryPoint,
26
+ compute: translated.entryPoints?.compute ?? props.computeEntryPoint
27
+ };
28
+ const defines = WGSLShaderAssembler.getShaderPreprocessorDefines(props, modules);
29
+ const preprocessedApplicationSource = props.platformInfo.shaderLanguage === 'wgsl' && translated.code
30
+ ? preprocess(translated.code, { defines })
31
+ : translated.code;
32
+ const { source: assembledSource, getUniforms, bindingAssignments } = assembleWGSLSource({
33
+ ...props,
34
+ source: preprocessedApplicationSource,
35
+ vertexEntryPoint: entryPoints.vertex,
36
+ fragmentEntryPoint: entryPoints.fragment,
37
+ defines,
38
+ _bindingRegistry: this._wgslBindingRegistry,
39
+ modules: translated.modules,
40
+ hookFunctions
41
+ });
42
+ // WGSL does not have built-in preprocessing support (just compile time constants)
43
+ const preprocessedSource = props.platformInfo.shaderLanguage === 'wgsl'
44
+ ? preprocess(assembledSource, { defines })
45
+ : assembledSource;
46
+ return {
47
+ source: preprocessedSource,
48
+ entryPoints,
49
+ getUniforms,
50
+ modules,
51
+ bindingAssignments,
52
+ bindingTable: getShaderBindingDebugRowsFromWGSL(preprocessedSource, bindingAssignments),
53
+ shaderLayout: scanWGSLInterface(preprocessedSource, {
54
+ vertexEntryPoint: entryPoints.vertex,
55
+ scanVertexAttributes: props.scanVertexAttributes
56
+ })
57
+ };
58
+ }
59
+ static getShaderPreprocessorDefines(props, modules) {
60
+ return {
61
+ ...WGSLShaderAssembler.getPlatformPreprocessorDefines(props.platformInfo),
62
+ ...modules.reduce((accumulator, module) => {
63
+ Object.assign(accumulator, module.defines);
64
+ return accumulator;
65
+ }, {}),
66
+ ...props.defines
67
+ };
68
+ }
69
+ static getPlatformPreprocessorDefines(platformInfo) {
70
+ const limits = platformInfo.limits || {};
71
+ return {
72
+ LUMA_SUPPORTS_VERTEX_STORAGE_BUFFERS: platformInfo.type === 'webgpu' && (limits['maxStorageBuffersInVertexStage'] || 0) > 0,
73
+ // Native tan() does not provide enough precision on all WebGPU implementations.
74
+ LUMA_FP32_TAN_PRECISION_WORKAROUND: platformInfo.type === 'webgpu' &&
75
+ platformInfo.gpu.toLowerCase() !== 'nvidia' &&
76
+ platformInfo.gpu.toLowerCase() !== 'amd',
77
+ // Metal may reassociate the floating-point transforms used by classic
78
+ // double-single arithmetic. The integer path makes each rounding point
79
+ // explicit while preserving the public vec2<f32> representation.
80
+ LUMA_FP64_INTEGER_ARITHMETIC: platformInfo.type === 'webgpu' && platformInfo.gpu.toLowerCase() === 'apple'
81
+ };
82
+ }
83
+ }
84
+ //# sourceMappingURL=wgsl-shader-assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgsl-shader-assembler.js","sourceRoot":"","sources":["../../src/lib/wgsl-shader-assembler.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D,OAAO,EAAC,eAAe,EAAC,mCAAgC;AAGxD,OAAO,EAAC,kBAAkB,EAAC,mDAAgD;AAC3E,OAAO,EACL,iCAAiC,EAElC,gDAA6C;AAC9C,OAAO,EAAC,UAAU,EAAC,uCAAoC;AACvD,OAAO,EAAC,iBAAiB,EAAC,iDAA8C;AAIxE,mDAAmD;AACnD,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC7C,cAAc,GAAW,MAAM,CAAC;IACzC,kFAAkF;IACjE,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElE;;;;OAIG;IACH,kBAAkB,CAAC,KAA0B;QAS3C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;QACnF,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,6CAA6C;QACxF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,KAAK,EACL,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CACvE,CAAC;QACF,MAAM,WAAW,GAAG;YAClB,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB;YAChE,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,QAAQ,IAAI,KAAK,CAAC,kBAAkB;YACtE,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE,OAAO,IAAI,KAAK,CAAC,iBAAiB;SACpE,CAAC;QACF,MAAM,OAAO,GAAG,mBAAmB,CAAC,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,6BAA6B,GACjC,KAAK,CAAC,YAAY,CAAC,cAAc,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI;YAC7D,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,EAAC,OAAO,EAAC,CAAC;YACxC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QACtB,MAAM,EACJ,MAAM,EAAE,eAAe,EACvB,WAAW,EACX,kBAAkB,EACnB,GAAG,kBAAkB,CAAC;YACrB,GAAG,KAAK;YACR,MAAM,EAAE,6BAA6B;YACrC,gBAAgB,EAAE,WAAW,CAAC,MAAM;YACpC,kBAAkB,EAAE,WAAW,CAAC,QAAQ;YACxC,OAAO;YACP,gBAAgB,EAAE,IAAI,CAAC,oBAAoB;YAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,aAAa;SACd,CAAC,CAAC;QACH,kFAAkF;QAClF,MAAM,kBAAkB,GACtB,KAAK,CAAC,YAAY,CAAC,cAAc,KAAK,MAAM;YAC1C,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,EAAC,OAAO,EAAC,CAAC;YACxC,CAAC,CAAC,eAAe,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,WAAW;YACX,WAAW;YACX,OAAO;YACP,kBAAkB;YAClB,YAAY,EAAE,iCAAiC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;YACvF,YAAY,EAAE,iBAAiB,CAAC,kBAAkB,EAAE;gBAClD,gBAAgB,EAAE,WAAW,CAAC,MAAM;gBACpC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;aACjD,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,4BAA4B,CACzC,KAA0B,EAC1B,OAAuB;QAEvB,OAAO;YACL,GAAG,mBAAmB,CAAC,8BAA8B,CAAC,KAAK,CAAC,YAAY,CAAC;YACzE,GAAG,OAAO,CAAC,MAAM,CAAmC,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;gBAC1E,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3C,OAAO,WAAW,CAAC;YACrB,CAAC,EAAE,EAAE,CAAC;YACN,GAAG,KAAK,CAAC,OAAO;SACjB,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,8BAA8B,CAC3C,YAAiD;QAEjD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC;QACzC,OAAO;YACL,oCAAoC,EAClC,YAAY,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;YACvF,gFAAgF;YAChF,kCAAkC,EAChC,YAAY,CAAC,IAAI,KAAK,QAAQ;gBAC9B,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ;gBAC3C,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,KAAK;YAC1C,sEAAsE;YACtE,uEAAuE;YACvE,iEAAiE;YACjE,4BAA4B,EAC1B,YAAY,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO;SAC/E,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,59 @@
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 module_injectors_exports = {};
19
+ __export(module_injectors_exports, {
20
+ MODULE_INJECTORS_FS: () => MODULE_INJECTORS_FS,
21
+ MODULE_INJECTORS_VS: () => MODULE_INJECTORS_VS
22
+ });
23
+ module.exports = __toCommonJS(module_injectors_exports);
24
+ const MODULE_INJECTORS_VS = (
25
+ /* glsl */
26
+ `#ifdef MODULE_LOGDEPTH
27
+ logdepth_adjustPosition(gl_Position);
28
+ #endif
29
+ `
30
+ );
31
+ const MODULE_INJECTORS_FS = (
32
+ /* glsl */
33
+ `#ifdef MODULE_MATERIAL
34
+ fragColor = material_filterColor(fragColor);
35
+ #endif
36
+
37
+ #ifdef MODULE_LIGHTING
38
+ fragColor = lighting_filterColor(fragColor);
39
+ #endif
40
+
41
+ #ifdef MODULE_FOG
42
+ fragColor = fog_filterColor(fragColor);
43
+ #endif
44
+
45
+ #ifdef MODULE_PICKING
46
+ fragColor = picking_filterHighlightColor(fragColor);
47
+ fragColor = picking_filterPickingColor(fragColor);
48
+ #endif
49
+
50
+ #ifdef MODULE_LOGDEPTH
51
+ logdepth_setFragDepth();
52
+ #endif
53
+ `
54
+ );
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ MODULE_INJECTORS_FS,
58
+ MODULE_INJECTORS_VS
59
+ });
@@ -0,0 +1,3 @@
1
+ export declare const MODULE_INJECTORS_VS = "#ifdef MODULE_LOGDEPTH\n logdepth_adjustPosition(gl_Position);\n#endif\n";
2
+ export declare const MODULE_INJECTORS_FS = "#ifdef MODULE_MATERIAL\n fragColor = material_filterColor(fragColor);\n#endif\n\n#ifdef MODULE_LIGHTING\n fragColor = lighting_filterColor(fragColor);\n#endif\n\n#ifdef MODULE_FOG\n fragColor = fog_filterColor(fragColor);\n#endif\n\n#ifdef MODULE_PICKING\n fragColor = picking_filterHighlightColor(fragColor);\n fragColor = picking_filterPickingColor(fragColor);\n#endif\n\n#ifdef MODULE_LOGDEPTH\n logdepth_setFragDepth();\n#endif\n";
3
+ //# sourceMappingURL=module-injectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-injectors.d.ts","sourceRoot":"","sources":["../src/module-injectors.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,8EAI/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,4bAqB/B,CAAC"}
@@ -0,0 +1,31 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ export const MODULE_INJECTORS_VS = /* glsl */ `\
5
+ #ifdef MODULE_LOGDEPTH
6
+ logdepth_adjustPosition(gl_Position);
7
+ #endif
8
+ `;
9
+ export const MODULE_INJECTORS_FS = /* glsl */ `\
10
+ #ifdef MODULE_MATERIAL
11
+ fragColor = material_filterColor(fragColor);
12
+ #endif
13
+
14
+ #ifdef MODULE_LIGHTING
15
+ fragColor = lighting_filterColor(fragColor);
16
+ #endif
17
+
18
+ #ifdef MODULE_FOG
19
+ fragColor = fog_filterColor(fragColor);
20
+ #endif
21
+
22
+ #ifdef MODULE_PICKING
23
+ fragColor = picking_filterHighlightColor(fragColor);
24
+ fragColor = picking_filterPickingColor(fragColor);
25
+ #endif
26
+
27
+ #ifdef MODULE_LOGDEPTH
28
+ logdepth_setFragDepth();
29
+ #endif
30
+ `;
31
+ //# sourceMappingURL=module-injectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-injectors.js","sourceRoot":"","sources":["../src/module-injectors.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;;;;CAI7C,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;CAqB7C,CAAC"}
@@ -0,0 +1,275 @@
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 float_colors_exports = {};
19
+ __export(float_colors_exports, {
20
+ STORAGE_COLOR_DEFAULT_BYTE_STRIDES: () => STORAGE_COLOR_DEFAULT_BYTE_STRIDES,
21
+ STORAGE_COLOR_FORMAT: () => STORAGE_COLOR_FORMAT,
22
+ STORAGE_COLOR_FORMAT_BYTE_LENGTHS: () => STORAGE_COLOR_FORMAT_BYTE_LENGTHS,
23
+ colors: () => colors,
24
+ floatColors: () => floatColors,
25
+ storageColors: () => storageColors
26
+ });
27
+ module.exports = __toCommonJS(float_colors_exports);
28
+ const STORAGE_COLOR_FORMAT = {
29
+ RGBA8UNORM: 0,
30
+ RGBA16FLOAT: 1,
31
+ RGBA32FLOAT: 2
32
+ };
33
+ const STORAGE_COLOR_FORMAT_BYTE_LENGTHS = {
34
+ rgba8unorm: 4,
35
+ rgba16float: 8,
36
+ rgba32float: 16
37
+ };
38
+ const STORAGE_COLOR_DEFAULT_BYTE_STRIDES = {
39
+ ...STORAGE_COLOR_FORMAT_BYTE_LENGTHS
40
+ };
41
+ const STORAGE_COLOR_FORMAT_BY_NAME = {
42
+ rgba8unorm: STORAGE_COLOR_FORMAT.RGBA8UNORM,
43
+ rgba16float: STORAGE_COLOR_FORMAT.RGBA16FLOAT,
44
+ rgba32float: STORAGE_COLOR_FORMAT.RGBA32FLOAT
45
+ };
46
+ const STORAGE_COLOR_FORMAT_NAME_BY_VALUE = {
47
+ [STORAGE_COLOR_FORMAT.RGBA8UNORM]: "rgba8unorm",
48
+ [STORAGE_COLOR_FORMAT.RGBA16FLOAT]: "rgba16float",
49
+ [STORAGE_COLOR_FORMAT.RGBA32FLOAT]: "rgba32float"
50
+ };
51
+ const COLORS_UNIFORM_TYPES = {
52
+ useByteColors: "f32"
53
+ };
54
+ const COLORS_DEFAULT_UNIFORMS = {
55
+ useByteColors: true
56
+ };
57
+ const STORAGE_COLORS_UNIFORM_TYPES = {
58
+ format: "u32",
59
+ wordStride: "u32",
60
+ wordOffset: "u32",
61
+ _padding: "u32"
62
+ };
63
+ const STORAGE_COLORS_DEFAULT_UNIFORMS = {
64
+ format: STORAGE_COLOR_FORMAT.RGBA8UNORM,
65
+ wordStride: STORAGE_COLOR_DEFAULT_BYTE_STRIDES.rgba8unorm / Uint32Array.BYTES_PER_ELEMENT,
66
+ wordOffset: 0,
67
+ _padding: 0
68
+ };
69
+ const COLORS_GLSL = buildGLSLColorModuleSource("colors");
70
+ const FLOAT_COLORS_GLSL = buildGLSLColorModuleSource("floatColors");
71
+ const COLORS_WGSL = buildWGSLColorModuleSource("colors");
72
+ const FLOAT_COLORS_WGSL = buildWGSLColorModuleSource("floatColors");
73
+ const STORAGE_COLORS_WGSL = (
74
+ /* wgsl */
75
+ `struct storageColorsUniforms {
76
+ format: u32,
77
+ wordStride: u32,
78
+ wordOffset: u32,
79
+ _padding: u32
80
+ };
81
+
82
+ @group(0) @binding(auto) var<uniform> storageColors : storageColorsUniforms;
83
+ @group(0) @binding(auto) var<storage, read> storageColorsBuffer : array<u32>;
84
+
85
+ const STORAGE_COLOR_FORMAT_RGBA8UNORM : u32 = ${STORAGE_COLOR_FORMAT.RGBA8UNORM}u;
86
+ const STORAGE_COLOR_FORMAT_RGBA16FLOAT : u32 = ${STORAGE_COLOR_FORMAT.RGBA16FLOAT}u;
87
+
88
+ fn storageColors_getWordIndex(rowIndex: u32) -> u32 {
89
+ return storageColors.wordOffset + rowIndex * storageColors.wordStride;
90
+ }
91
+
92
+ fn storageColors_readRgba8UnormColor(wordIndex: u32) -> vec4<f32> {
93
+ return unpack4x8unorm(storageColorsBuffer[wordIndex]);
94
+ }
95
+
96
+ fn storageColors_readRgba16FloatColor(wordIndex: u32) -> vec4<f32> {
97
+ let redGreen = unpack2x16float(storageColorsBuffer[wordIndex]);
98
+ let blueAlpha = unpack2x16float(storageColorsBuffer[wordIndex + 1u]);
99
+ return vec4<f32>(redGreen.x, redGreen.y, blueAlpha.x, blueAlpha.y);
100
+ }
101
+
102
+ fn storageColors_readRgba32FloatColor(wordIndex: u32) -> vec4<f32> {
103
+ return vec4<f32>(
104
+ bitcast<f32>(storageColorsBuffer[wordIndex]),
105
+ bitcast<f32>(storageColorsBuffer[wordIndex + 1u]),
106
+ bitcast<f32>(storageColorsBuffer[wordIndex + 2u]),
107
+ bitcast<f32>(storageColorsBuffer[wordIndex + 3u])
108
+ );
109
+ }
110
+
111
+ fn storageColors_readColor(rowIndex: u32) -> vec4<f32> {
112
+ let wordIndex = storageColors_getWordIndex(rowIndex);
113
+ if (storageColors.format == STORAGE_COLOR_FORMAT_RGBA8UNORM) {
114
+ return storageColors_readRgba8UnormColor(wordIndex);
115
+ }
116
+ if (storageColors.format == STORAGE_COLOR_FORMAT_RGBA16FLOAT) {
117
+ return storageColors_readRgba16FloatColor(wordIndex);
118
+ }
119
+ return storageColors_readRgba32FloatColor(wordIndex);
120
+ }
121
+ `
122
+ );
123
+ function buildGLSLColorModuleSource(primaryPrefix) {
124
+ return (
125
+ /* glsl */
126
+ `layout(std140) uniform ${primaryPrefix}Uniforms {
127
+ float useByteColors;
128
+ } ${primaryPrefix};
129
+
130
+ vec3 ${primaryPrefix}_normalize(vec3 inputColor) {
131
+ return ${primaryPrefix}.useByteColors > 0.5 ? inputColor / 255.0 : inputColor;
132
+ }
133
+
134
+ vec4 ${primaryPrefix}_normalize(vec4 inputColor) {
135
+ return ${primaryPrefix}.useByteColors > 0.5 ? inputColor / 255.0 : inputColor;
136
+ }
137
+
138
+ vec4 ${primaryPrefix}_premultiplyAlpha(vec4 inputColor) {
139
+ return vec4(inputColor.rgb * inputColor.a, inputColor.a);
140
+ }
141
+
142
+ vec4 ${primaryPrefix}_unpremultiplyAlpha(vec4 inputColor) {
143
+ return inputColor.a > 0.0 ? vec4(inputColor.rgb / inputColor.a, inputColor.a) : vec4(0.0);
144
+ }
145
+
146
+ vec4 ${primaryPrefix}_premultiply_alpha(vec4 inputColor) {
147
+ return ${primaryPrefix}_premultiplyAlpha(inputColor);
148
+ }
149
+
150
+ vec4 ${primaryPrefix}_unpremultiply_alpha(vec4 inputColor) {
151
+ return ${primaryPrefix}_unpremultiplyAlpha(inputColor);
152
+ }
153
+ `
154
+ );
155
+ }
156
+ function buildWGSLColorModuleSource(primaryPrefix) {
157
+ return (
158
+ /* wgsl */
159
+ `struct ${primaryPrefix}Uniforms {
160
+ useByteColors: f32
161
+ };
162
+
163
+ @group(0) @binding(auto) var<uniform> ${primaryPrefix} : ${primaryPrefix}Uniforms;
164
+
165
+ fn ${primaryPrefix}_normalize(inputColor: vec3<f32>) -> vec3<f32> {
166
+ return select(inputColor, inputColor / 255.0, ${primaryPrefix}.useByteColors > 0.5);
167
+ }
168
+
169
+ fn ${primaryPrefix}_normalize4(inputColor: vec4<f32>) -> vec4<f32> {
170
+ return select(inputColor, inputColor / 255.0, ${primaryPrefix}.useByteColors > 0.5);
171
+ }
172
+
173
+ fn ${primaryPrefix}_premultiplyAlpha(inputColor: vec4<f32>) -> vec4<f32> {
174
+ return vec4<f32>(inputColor.rgb * inputColor.a, inputColor.a);
175
+ }
176
+
177
+ fn ${primaryPrefix}_unpremultiplyAlpha(inputColor: vec4<f32>) -> vec4<f32> {
178
+ return select(
179
+ vec4<f32>(0.0),
180
+ vec4<f32>(inputColor.rgb / inputColor.a, inputColor.a),
181
+ inputColor.a > 0.0
182
+ );
183
+ }
184
+
185
+ fn ${primaryPrefix}_premultiply_alpha(inputColor: vec4<f32>) -> vec4<f32> {
186
+ return ${primaryPrefix}_premultiplyAlpha(inputColor);
187
+ }
188
+
189
+ fn ${primaryPrefix}_unpremultiply_alpha(inputColor: vec4<f32>) -> vec4<f32> {
190
+ return ${primaryPrefix}_unpremultiplyAlpha(inputColor);
191
+ }
192
+ `
193
+ );
194
+ }
195
+ function getStorageColorsUniforms(props = {}) {
196
+ const format = resolveStorageColorFormat(props.format);
197
+ const formatName = STORAGE_COLOR_FORMAT_NAME_BY_VALUE[format];
198
+ const byteStride = props.byteStride ?? STORAGE_COLOR_DEFAULT_BYTE_STRIDES[formatName];
199
+ const byteOffset = props.byteOffset ?? 0;
200
+ const minimumByteStride = STORAGE_COLOR_FORMAT_BYTE_LENGTHS[formatName];
201
+ validateStorageColorByteAlignment("byteStride", byteStride);
202
+ validateStorageColorByteAlignment("byteOffset", byteOffset);
203
+ if (byteStride < minimumByteStride) {
204
+ throw new Error(`storageColors byteStride must be at least ${minimumByteStride} for ${formatName}`);
205
+ }
206
+ return {
207
+ format,
208
+ wordStride: byteStride / Uint32Array.BYTES_PER_ELEMENT,
209
+ wordOffset: byteOffset / Uint32Array.BYTES_PER_ELEMENT,
210
+ _padding: 0
211
+ };
212
+ }
213
+ function resolveStorageColorFormat(format = "rgba8unorm") {
214
+ if (typeof format === "number") {
215
+ if (format in STORAGE_COLOR_FORMAT_NAME_BY_VALUE) {
216
+ return format;
217
+ }
218
+ } else if (format in STORAGE_COLOR_FORMAT_BY_NAME) {
219
+ return STORAGE_COLOR_FORMAT_BY_NAME[format];
220
+ }
221
+ throw new Error(`storageColors format must be one of ${Object.keys(STORAGE_COLOR_FORMAT_BY_NAME).join(", ")}`);
222
+ }
223
+ function validateStorageColorByteAlignment(name, value) {
224
+ if (!Number.isInteger(value) || value < 0 || value % Uint32Array.BYTES_PER_ELEMENT !== 0) {
225
+ throw new Error(`storageColors ${name} must be a non-negative 4-byte aligned integer`);
226
+ }
227
+ }
228
+ const colors = {
229
+ name: "colors",
230
+ props: {},
231
+ uniforms: {},
232
+ vs: COLORS_GLSL,
233
+ fs: COLORS_GLSL,
234
+ source: COLORS_WGSL,
235
+ uniformTypes: COLORS_UNIFORM_TYPES,
236
+ defaultUniforms: COLORS_DEFAULT_UNIFORMS
237
+ };
238
+ const floatColors = {
239
+ name: "floatColors",
240
+ props: {},
241
+ uniforms: {},
242
+ vs: FLOAT_COLORS_GLSL,
243
+ fs: FLOAT_COLORS_GLSL,
244
+ source: FLOAT_COLORS_WGSL,
245
+ uniformTypes: COLORS_UNIFORM_TYPES,
246
+ defaultUniforms: COLORS_DEFAULT_UNIFORMS
247
+ };
248
+ const storageColors = {
249
+ name: "storageColors",
250
+ props: {},
251
+ uniforms: {},
252
+ bindings: {},
253
+ source: STORAGE_COLORS_WGSL,
254
+ uniformTypes: STORAGE_COLORS_UNIFORM_TYPES,
255
+ defaultUniforms: STORAGE_COLORS_DEFAULT_UNIFORMS,
256
+ bindingLayout: [
257
+ { name: "storageColors", group: 0 },
258
+ { name: "storageColorsBuffer", group: 0 }
259
+ ],
260
+ getUniforms(props = {}) {
261
+ return {
262
+ ...getStorageColorsUniforms(props),
263
+ ...props.colorBuffer ? { storageColorsBuffer: props.colorBuffer } : {}
264
+ };
265
+ }
266
+ };
267
+ // Annotate the CommonJS export names for ESM import in node:
268
+ 0 && (module.exports = {
269
+ STORAGE_COLOR_DEFAULT_BYTE_STRIDES,
270
+ STORAGE_COLOR_FORMAT,
271
+ STORAGE_COLOR_FORMAT_BYTE_LENGTHS,
272
+ colors,
273
+ floatColors,
274
+ storageColors
275
+ });
@@ -0,0 +1,132 @@
1
+ import type { ShaderBinding as Binding } from "../../types.js";
2
+ /** Props for semantic color normalization helpers. */
3
+ export type ColorsProps = {
4
+ /**
5
+ * When true, semantic colors are interpreted as 0-255 byte-style values and normalized in shader code.
6
+ * When false, semantic colors are interpreted directly as floats.
7
+ */
8
+ useByteColors?: boolean;
9
+ };
10
+ /** Uniforms consumed by semantic color normalization helpers. */
11
+ export type ColorsUniforms = {
12
+ /** Controls whether shader helpers normalize semantic colors from byte space. */
13
+ useByteColors: boolean;
14
+ };
15
+ /** Backward-compatible props alias for shaders that import `floatColors`. */
16
+ export type FloatColorsProps = ColorsProps;
17
+ /** Backward-compatible uniform alias for shaders that import `floatColors`. */
18
+ export type FloatColorsUniforms = ColorsUniforms;
19
+ /** Packed storage color formats decoded by `storageColors`. */
20
+ export type StorageColorFormat = 'rgba8unorm' | 'rgba16float' | 'rgba32float';
21
+ /** Numeric WGSL tags written to `storageColors.format`. */
22
+ export declare const STORAGE_COLOR_FORMAT: {
23
+ readonly RGBA8UNORM: 0;
24
+ readonly RGBA16FLOAT: 1;
25
+ readonly RGBA32FLOAT: 2;
26
+ };
27
+ /** Numeric WGSL tag for one packed storage color format. */
28
+ export type StorageColorFormatValue = (typeof STORAGE_COLOR_FORMAT)[keyof typeof STORAGE_COLOR_FORMAT];
29
+ /** Bytes occupied by one tightly packed storage color row. */
30
+ export declare const STORAGE_COLOR_FORMAT_BYTE_LENGTHS: Record<StorageColorFormat, number>;
31
+ /** Default byte stride for one tightly packed storage color row. */
32
+ export declare const STORAGE_COLOR_DEFAULT_BYTE_STRIDES: Record<StorageColorFormat, number>;
33
+ /** Props for reading packed color rows from a read-only storage buffer. */
34
+ export type StorageColorsProps = {
35
+ /** Storage buffer containing raw packed color words. */
36
+ colorBuffer?: Binding;
37
+ /** Per-row storage color representation. Defaults to `rgba8unorm`. */
38
+ format?: StorageColorFormat | StorageColorFormatValue;
39
+ /** Byte offset to the first color. Must be 4-byte aligned. Defaults to `0`. */
40
+ byteOffset?: number;
41
+ /** Bytes between color rows. Must be 4-byte aligned. Defaults to the packed format size. */
42
+ byteStride?: number;
43
+ };
44
+ /** Uniforms consumed by the packed storage color reader. */
45
+ export type StorageColorsUniforms = {
46
+ /** Numeric `STORAGE_COLOR_FORMAT` tag used by WGSL. */
47
+ format: StorageColorFormatValue;
48
+ /** Uint32 words between storage color rows. */
49
+ wordStride: number;
50
+ /** Uint32 word offset to the first storage color row. */
51
+ wordOffset: number;
52
+ /** Reserved field retaining a 16-byte uniform block. */
53
+ _padding: number;
54
+ };
55
+ /** Bindings consumed by the packed storage color reader. */
56
+ export type StorageColorsBindings = {
57
+ /** Raw packed storage color buffer exposed as `array<u32>`. */
58
+ storageColorsBuffer?: Binding;
59
+ };
60
+ /** Semantic color normalization helpers named `colors_*`. */
61
+ export declare const colors: {
62
+ readonly name: "colors";
63
+ readonly props: ColorsProps;
64
+ readonly uniforms: ColorsUniforms;
65
+ readonly vs: string;
66
+ readonly fs: string;
67
+ readonly source: string;
68
+ readonly uniformTypes: {
69
+ readonly useByteColors: "f32";
70
+ };
71
+ readonly defaultUniforms: {
72
+ readonly useByteColors: true;
73
+ };
74
+ };
75
+ /** Legacy semantic color normalization helpers named `floatColors_*`. */
76
+ export declare const floatColors: {
77
+ readonly name: "floatColors";
78
+ readonly props: FloatColorsProps;
79
+ readonly uniforms: FloatColorsUniforms;
80
+ readonly vs: string;
81
+ readonly fs: string;
82
+ readonly source: string;
83
+ readonly uniformTypes: {
84
+ readonly useByteColors: "f32";
85
+ };
86
+ readonly defaultUniforms: {
87
+ readonly useByteColors: true;
88
+ };
89
+ };
90
+ /**
91
+ * WGSL reader for packed RGBA storage rows.
92
+ *
93
+ * Include {@link colors} separately when semantic color normalization helpers are also needed.
94
+ */
95
+ export declare const storageColors: {
96
+ readonly name: "storageColors";
97
+ readonly props: StorageColorsProps;
98
+ readonly uniforms: StorageColorsUniforms;
99
+ readonly bindings: StorageColorsBindings;
100
+ readonly source: string;
101
+ readonly uniformTypes: {
102
+ readonly format: "u32";
103
+ readonly wordStride: "u32";
104
+ readonly wordOffset: "u32";
105
+ readonly _padding: "u32";
106
+ };
107
+ readonly defaultUniforms: {
108
+ readonly format: 0;
109
+ readonly wordStride: number;
110
+ readonly wordOffset: 0;
111
+ readonly _padding: 0;
112
+ };
113
+ readonly bindingLayout: readonly [{
114
+ readonly name: "storageColors";
115
+ readonly group: 0;
116
+ }, {
117
+ readonly name: "storageColorsBuffer";
118
+ readonly group: 0;
119
+ }];
120
+ readonly getUniforms: (props?: StorageColorsProps) => {
121
+ storageColorsBuffer?: {} | undefined;
122
+ /** Numeric `STORAGE_COLOR_FORMAT` tag used by WGSL. */
123
+ format: StorageColorFormatValue;
124
+ /** Uint32 words between storage color rows. */
125
+ wordStride: number;
126
+ /** Uint32 word offset to the first storage color row. */
127
+ wordOffset: number;
128
+ /** Reserved field retaining a 16-byte uniform block. */
129
+ _padding: number;
130
+ };
131
+ };
132
+ //# sourceMappingURL=float-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float-colors.d.ts","sourceRoot":"","sources":["../../../src/modules/color/float-colors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,IAAI,OAAO,EAAC,uBAAoB;AAG1D,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,cAAc,GAAG;IAC3B,iFAAiF;IACjF,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC3C,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,+DAA+D;AAC/D,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC;AAE9E,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX,4DAA4D;AAC5D,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE,8DAA8D;AAC9D,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAIhF,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAEjF,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sEAAsE;IACtE,MAAM,CAAC,EAAE,kBAAkB,GAAG,uBAAuB,CAAC;IACtD,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,uDAAuD;IACvD,MAAM,EAAE,uBAAuB,CAAC;IAChC,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AA6MF,6DAA6D;AAC7D,eAAO,MAAM,MAAM;;oBAEJ,WAAW;uBACR,cAAc;;;;;;;;;;CAM8B,CAAC;AAE/D,yEAAyE;AACzE,eAAO,MAAM,WAAW;;oBAET,gBAAgB;uBACb,mBAAmB;;;;;;;;;;CAMmC,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,aAAa;;oBAEX,kBAAkB;uBACf,qBAAqB;uBACrB,qBAAqB;;;;;;;;;;;;;;;;;;;;;mCAQlB,kBAAkB;;QApQrC,uDAAuD;gBAC/C,uBAAuB;QAC/B,+CAA+C;oBACnC,MAAM;QAClB,yDAAyD;oBAC7C,MAAM;QAClB,wDAAwD;kBAC9C,MAAM;;CAmQiF,CAAC"}