@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,180 @@
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 fp64_functions_wgsl_exports = {};
19
+ __export(fp64_functions_wgsl_exports, {
20
+ fp64functionsWGSL: () => fp64functionsWGSL
21
+ });
22
+ module.exports = __toCommonJS(fp64_functions_wgsl_exports);
23
+ const fp64functionsWGSL = (
24
+ /* wgsl */
25
+ `const E_FP64 = vec2f(2.7182817459106445, 8.254840366817007e-8);
26
+ const LOG2_FP64 = vec2f(0.6931471824645996, -1.9046542121259336e-9);
27
+ const PI_FP64 = vec2f(3.1415927410125732, -8.742278012618954e-8);
28
+ const TWO_PI_FP64 = vec2f(6.2831854820251465, -1.7484556025237907e-7);
29
+ const PI_2_FP64 = vec2f(1.5707963705062866, -4.371139006309477e-8);
30
+ const PI_4_FP64 = vec2f(0.7853981852531433, -2.1855695031547384e-8);
31
+ const PI_180_FP64 = vec2f(0.01745329238474369, 1.3519960498364902e-10);
32
+
33
+ // High/low splits of 1/n!, 1/(2n+1)!, and 1/(2n)! respectively.
34
+ const FP64_EXP_COEFFICIENTS = array<vec2f, 17>(
35
+ vec2f(1.0, 0.0),
36
+ vec2f(1.0, 0.0),
37
+ vec2f(0.5, 0.0),
38
+ vec2f(0.1666666716337204, -4.967053879312289e-09),
39
+ vec2f(0.0416666679084301, -1.2417634698280722e-09),
40
+ vec2f(0.008333333767950535, -4.34617203337595e-10),
41
+ vec2f(0.0013888889225199819, -3.3631094437103215e-11),
42
+ vec2f(0.00019841270113829523, -2.725596874933456e-12),
43
+ vec2f(2.4801587642286904e-05, -3.40699609366682e-13),
44
+ vec2f(2.7557318844628753e-06, 3.793571224297229e-14),
45
+ vec2f(2.755731998149713e-07, -7.575112209051195e-15),
46
+ vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),
47
+ vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),
48
+ vec2f(1.6059044372074283e-10, -5.352526511562726e-18),
49
+ vec2f(1.147074536050896e-11, 2.372207689231238e-19),
50
+ vec2f(7.647163609812713e-13, 1.2200710471178288e-20),
51
+ vec2f(4.7794772561329454e-14, 7.62544404448643e-22)
52
+ );
53
+ const FP64_SIN_COEFFICIENTS = array<vec2f, 9>(
54
+ vec2f(1.0, 0.0),
55
+ vec2f(0.1666666716337204, -4.967053879312289e-09),
56
+ vec2f(0.008333333767950535, -4.34617203337595e-10),
57
+ vec2f(0.00019841270113829523, -2.725596874933456e-12),
58
+ vec2f(2.7557318844628753e-06, 3.793571224297229e-14),
59
+ vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),
60
+ vec2f(1.6059044372074283e-10, -5.352526511562726e-18),
61
+ vec2f(7.647163609812713e-13, 1.2200710471178288e-20),
62
+ vec2f(2.8114573589663704e-15, -1.0462084739763658e-22)
63
+ );
64
+ const FP64_COS_COEFFICIENTS = array<vec2f, 9>(
65
+ vec2f(1.0, 0.0),
66
+ vec2f(0.5, 0.0),
67
+ vec2f(0.0416666679084301, -1.2417634698280722e-09),
68
+ vec2f(0.0013888889225199819, -3.3631094437103215e-11),
69
+ vec2f(2.4801587642286904e-05, -3.40699609366682e-13),
70
+ vec2f(2.755731998149713e-07, -7.575112209051195e-15),
71
+ vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),
72
+ vec2f(1.147074536050896e-11, 2.372207689231238e-19),
73
+ vec2f(4.7794772561329454e-14, 7.62544404448643e-22)
74
+ );
75
+
76
+ // Reduce by log(2) before evaluating the exponential. Horner evaluation uses split
77
+ // coefficients to retain low terms without repeatedly expanding double-single division.
78
+ fn exp_fp64(value: vec2f) -> vec2f {
79
+ let a = normalize_fp64(value);
80
+ if (is_nan_fp64(a)) { return a; }
81
+ // WGSL rejects non-finite constant expressions; construct infinity from runtime bits.
82
+ if (a.x > 88.72283905206835) { return vec2f(bitcast<f32>(0x7f800000u | (bitcast<u32>(a.x) & 0x80000000u)), 0.0); }
83
+ if (a.x < -103.9720770839918) { return vec2f(0.0); }
84
+ let exponent = min(127.0, floor(a.x / LOG2_FP64.x + 0.5));
85
+ let remainder = sub_fp64(a, mul_fp64(LOG2_FP64, vec2f(exponent, 0.0)));
86
+ var result = FP64_EXP_COEFFICIENTS[16];
87
+ for (var i = 15; i >= 0; i--) {
88
+ result = sum_fp64(FP64_EXP_COEFFICIENTS[i], mul_fp64(remainder, result));
89
+ }
90
+ return fp64_scale_fp64(result, i32(exponent));
91
+ }
92
+
93
+ fn log_fp64(value: vec2f) -> vec2f {
94
+ let a = normalize_fp64(value);
95
+ if (is_nan_fp64(a)) { return a; }
96
+ // Match the GLSL helper's domain: zero and negative inputs return NaN.
97
+ if (sign_fp64(a) <= 0) { return vec2f(fp64_nan(a.x), 0.0); }
98
+ if (!is_finite_fp64(a)) { return a; }
99
+ // Normalize the magnitude before Newton refinement so exp(estimate) cannot overflow
100
+ // for large inputs or underflow for tiny inputs. Bit extraction also handles subnormals.
101
+ let exponent = max(-126, i32((bitcast<u32>(a.x) >> 23u) & 255u) - 127);
102
+ let mantissa = fp64_scale_fp64(a, -exponent);
103
+ var result = vec2f(log(mantissa.x), 0.0);
104
+ // Newton correction, written as (a - exp(x)) / exp(x), preserves tiny log(1 + low).
105
+ // Two iterations remove the error in the native f32 starting estimate.
106
+ for (var i = 0; i < 2; i++) {
107
+ let estimate = exp_fp64(result);
108
+ result = sum_fp64(result, div_fp64(sub_fp64(mantissa, estimate), estimate));
109
+ }
110
+ return sum_fp64(result, mul_fp64(LOG2_FP64, vec2f(f32(exponent), 0.0)));
111
+ }
112
+
113
+ struct Fp64SinCos {
114
+ sine: vec2f,
115
+ cosine: vec2f,
116
+ };
117
+
118
+ fn fp64_sincos(value: vec2f) -> Fp64SinCos {
119
+ let a = normalize_fp64(value);
120
+ // The projection use case stays within one turn. Bound conversion to an integer quadrant;
121
+ // this is not a large-argument Payne-Hanek trigonometric range reducer.
122
+ if (!is_finite_fp64(a) || abs(a.x) > 1000000.0) {
123
+ return Fp64SinCos(vec2f(fp64_nan(a.x), 0.0), vec2f(fp64_nan(a.x), 0.0));
124
+ }
125
+ let quadrant = i32(floor(a.x / PI_2_FP64.x + 0.5));
126
+ let remainder = sub_fp64(a, mul_fp64(PI_2_FP64, vec2f(f32(quadrant), 0.0)));
127
+ let negativeSquare = -mul_fp64(remainder, remainder);
128
+ var sinePolynomial = FP64_SIN_COEFFICIENTS[8];
129
+ var cosine = FP64_COS_COEFFICIENTS[8];
130
+ for (var i = 7; i >= 0; i--) {
131
+ sinePolynomial = sum_fp64(FP64_SIN_COEFFICIENTS[i], mul_fp64(negativeSquare, sinePolynomial));
132
+ cosine = sum_fp64(FP64_COS_COEFFICIENTS[i], mul_fp64(negativeSquare, cosine));
133
+ }
134
+ let sine = mul_fp64(remainder, sinePolynomial);
135
+ switch ((quadrant % 4 + 4) % 4) {
136
+ case 0: { return Fp64SinCos(sine, cosine); }
137
+ case 1: { return Fp64SinCos(cosine, -sine); }
138
+ case 2: { return Fp64SinCos(-sine, -cosine); }
139
+ default: { return Fp64SinCos(-cosine, sine); }
140
+ }
141
+ }
142
+
143
+ fn sin_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).sine; }
144
+ fn cos_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).cosine; }
145
+ fn tan_fp64(a: vec2f) -> vec2f {
146
+ let result = fp64_sincos(a);
147
+ return div_fp64(result.sine, result.cosine);
148
+ }
149
+
150
+ fn radians_fp64(degree: vec2f) -> vec2f { return mul_fp64(degree, PI_180_FP64); }
151
+ fn mix_fp64(a: vec2f, b: vec2f, x: f32) -> vec2f {
152
+ return sum_fp64(a, mul_fp64(sub_fp64(b, a), vec2f(x, 0.0)));
153
+ }
154
+
155
+ // WGSL returns arrays in place of GLSL out parameters. Each vec2f stores [high, low].
156
+ fn vec4_fp64(a: vec4f) -> array<vec2f, 4> {
157
+ return array<vec2f, 4>(vec2f(a.x, 0.0), vec2f(a.y, 0.0), vec2f(a.z, 0.0), vec2f(a.w, 0.0));
158
+ }
159
+
160
+ fn vec4_dot_fp64(a: array<vec2f, 4>, b: array<vec2f, 4>) -> vec2f {
161
+ return sum_fp64(
162
+ sum_fp64(mul_fp64(a[0], b[0]), mul_fp64(a[1], b[1])),
163
+ sum_fp64(mul_fp64(a[2], b[2]), mul_fp64(a[3], b[3])));
164
+ }
165
+
166
+ // Same row-major pair ordering as the GLSL helper: result[i] = dot(matrix[i * 4..], a).
167
+ fn mat4_vec4_mul_fp64(matrix: array<vec2f, 16>, a: array<vec2f, 4>) -> array<vec2f, 4> {
168
+ var result: array<vec2f, 4>;
169
+ for (var i = 0; i < 4; i++) {
170
+ let row = array<vec2f, 4>(matrix[i * 4], matrix[i * 4 + 1], matrix[i * 4 + 2], matrix[i * 4 + 3]);
171
+ result[i] = vec4_dot_fp64(a, row);
172
+ }
173
+ return result;
174
+ }
175
+ `
176
+ );
177
+ // Annotate the CommonJS export names for ESM import in node:
178
+ 0 && (module.exports = {
179
+ fp64functionsWGSL
180
+ });
@@ -0,0 +1,3 @@
1
+ /** WGSL double-single functions used by geographic projection. */
2
+ export declare const fp64functionsWGSL = "const E_FP64 = vec2f(2.7182817459106445, 8.254840366817007e-8);\nconst LOG2_FP64 = vec2f(0.6931471824645996, -1.9046542121259336e-9);\nconst PI_FP64 = vec2f(3.1415927410125732, -8.742278012618954e-8);\nconst TWO_PI_FP64 = vec2f(6.2831854820251465, -1.7484556025237907e-7);\nconst PI_2_FP64 = vec2f(1.5707963705062866, -4.371139006309477e-8);\nconst PI_4_FP64 = vec2f(0.7853981852531433, -2.1855695031547384e-8);\nconst PI_180_FP64 = vec2f(0.01745329238474369, 1.3519960498364902e-10);\n\n// High/low splits of 1/n!, 1/(2n+1)!, and 1/(2n)! respectively.\nconst FP64_EXP_COEFFICIENTS = array<vec2f, 17>(\n vec2f(1.0, 0.0),\n vec2f(1.0, 0.0),\n vec2f(0.5, 0.0),\n vec2f(0.1666666716337204, -4.967053879312289e-09),\n vec2f(0.0416666679084301, -1.2417634698280722e-09),\n vec2f(0.008333333767950535, -4.34617203337595e-10),\n vec2f(0.0013888889225199819, -3.3631094437103215e-11),\n vec2f(0.00019841270113829523, -2.725596874933456e-12),\n vec2f(2.4801587642286904e-05, -3.40699609366682e-13),\n vec2f(2.7557318844628753e-06, 3.793571224297229e-14),\n vec2f(2.755731998149713e-07, -7.575112209051195e-15),\n vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),\n vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),\n vec2f(1.6059044372074283e-10, -5.352526511562726e-18),\n vec2f(1.147074536050896e-11, 2.372207689231238e-19),\n vec2f(7.647163609812713e-13, 1.2200710471178288e-20),\n vec2f(4.7794772561329454e-14, 7.62544404448643e-22)\n);\nconst FP64_SIN_COEFFICIENTS = array<vec2f, 9>(\n vec2f(1.0, 0.0),\n vec2f(0.1666666716337204, -4.967053879312289e-09),\n vec2f(0.008333333767950535, -4.34617203337595e-10),\n vec2f(0.00019841270113829523, -2.725596874933456e-12),\n vec2f(2.7557318844628753e-06, 3.793571224297229e-14),\n vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),\n vec2f(1.6059044372074283e-10, -5.352526511562726e-18),\n vec2f(7.647163609812713e-13, 1.2200710471178288e-20),\n vec2f(2.8114573589663704e-15, -1.0462084739763658e-22)\n);\nconst FP64_COS_COEFFICIENTS = array<vec2f, 9>(\n vec2f(1.0, 0.0),\n vec2f(0.5, 0.0),\n vec2f(0.0416666679084301, -1.2417634698280722e-09),\n vec2f(0.0013888889225199819, -3.3631094437103215e-11),\n vec2f(2.4801587642286904e-05, -3.40699609366682e-13),\n vec2f(2.755731998149713e-07, -7.575112209051195e-15),\n vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),\n vec2f(1.147074536050896e-11, 2.372207689231238e-19),\n vec2f(4.7794772561329454e-14, 7.62544404448643e-22)\n);\n\n// Reduce by log(2) before evaluating the exponential. Horner evaluation uses split\n// coefficients to retain low terms without repeatedly expanding double-single division.\nfn exp_fp64(value: vec2f) -> vec2f {\n let a = normalize_fp64(value);\n if (is_nan_fp64(a)) { return a; }\n // WGSL rejects non-finite constant expressions; construct infinity from runtime bits.\n if (a.x > 88.72283905206835) { return vec2f(bitcast<f32>(0x7f800000u | (bitcast<u32>(a.x) & 0x80000000u)), 0.0); }\n if (a.x < -103.9720770839918) { return vec2f(0.0); }\n let exponent = min(127.0, floor(a.x / LOG2_FP64.x + 0.5));\n let remainder = sub_fp64(a, mul_fp64(LOG2_FP64, vec2f(exponent, 0.0)));\n var result = FP64_EXP_COEFFICIENTS[16];\n for (var i = 15; i >= 0; i--) {\n result = sum_fp64(FP64_EXP_COEFFICIENTS[i], mul_fp64(remainder, result));\n }\n return fp64_scale_fp64(result, i32(exponent));\n}\n\nfn log_fp64(value: vec2f) -> vec2f {\n let a = normalize_fp64(value);\n if (is_nan_fp64(a)) { return a; }\n // Match the GLSL helper's domain: zero and negative inputs return NaN.\n if (sign_fp64(a) <= 0) { return vec2f(fp64_nan(a.x), 0.0); }\n if (!is_finite_fp64(a)) { return a; }\n // Normalize the magnitude before Newton refinement so exp(estimate) cannot overflow\n // for large inputs or underflow for tiny inputs. Bit extraction also handles subnormals.\n let exponent = max(-126, i32((bitcast<u32>(a.x) >> 23u) & 255u) - 127);\n let mantissa = fp64_scale_fp64(a, -exponent);\n var result = vec2f(log(mantissa.x), 0.0);\n // Newton correction, written as (a - exp(x)) / exp(x), preserves tiny log(1 + low).\n // Two iterations remove the error in the native f32 starting estimate.\n for (var i = 0; i < 2; i++) {\n let estimate = exp_fp64(result);\n result = sum_fp64(result, div_fp64(sub_fp64(mantissa, estimate), estimate));\n }\n return sum_fp64(result, mul_fp64(LOG2_FP64, vec2f(f32(exponent), 0.0)));\n}\n\nstruct Fp64SinCos {\n sine: vec2f,\n cosine: vec2f,\n};\n\nfn fp64_sincos(value: vec2f) -> Fp64SinCos {\n let a = normalize_fp64(value);\n // The projection use case stays within one turn. Bound conversion to an integer quadrant;\n // this is not a large-argument Payne-Hanek trigonometric range reducer.\n if (!is_finite_fp64(a) || abs(a.x) > 1000000.0) {\n return Fp64SinCos(vec2f(fp64_nan(a.x), 0.0), vec2f(fp64_nan(a.x), 0.0));\n }\n let quadrant = i32(floor(a.x / PI_2_FP64.x + 0.5));\n let remainder = sub_fp64(a, mul_fp64(PI_2_FP64, vec2f(f32(quadrant), 0.0)));\n let negativeSquare = -mul_fp64(remainder, remainder);\n var sinePolynomial = FP64_SIN_COEFFICIENTS[8];\n var cosine = FP64_COS_COEFFICIENTS[8];\n for (var i = 7; i >= 0; i--) {\n sinePolynomial = sum_fp64(FP64_SIN_COEFFICIENTS[i], mul_fp64(negativeSquare, sinePolynomial));\n cosine = sum_fp64(FP64_COS_COEFFICIENTS[i], mul_fp64(negativeSquare, cosine));\n }\n let sine = mul_fp64(remainder, sinePolynomial);\n switch ((quadrant % 4 + 4) % 4) {\n case 0: { return Fp64SinCos(sine, cosine); }\n case 1: { return Fp64SinCos(cosine, -sine); }\n case 2: { return Fp64SinCos(-sine, -cosine); }\n default: { return Fp64SinCos(-cosine, sine); }\n }\n}\n\nfn sin_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).sine; }\nfn cos_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).cosine; }\nfn tan_fp64(a: vec2f) -> vec2f {\n let result = fp64_sincos(a);\n return div_fp64(result.sine, result.cosine);\n}\n\nfn radians_fp64(degree: vec2f) -> vec2f { return mul_fp64(degree, PI_180_FP64); }\nfn mix_fp64(a: vec2f, b: vec2f, x: f32) -> vec2f {\n return sum_fp64(a, mul_fp64(sub_fp64(b, a), vec2f(x, 0.0)));\n}\n\n// WGSL returns arrays in place of GLSL out parameters. Each vec2f stores [high, low].\nfn vec4_fp64(a: vec4f) -> array<vec2f, 4> {\n return array<vec2f, 4>(vec2f(a.x, 0.0), vec2f(a.y, 0.0), vec2f(a.z, 0.0), vec2f(a.w, 0.0));\n}\n\nfn vec4_dot_fp64(a: array<vec2f, 4>, b: array<vec2f, 4>) -> vec2f {\n return sum_fp64(\n sum_fp64(mul_fp64(a[0], b[0]), mul_fp64(a[1], b[1])),\n sum_fp64(mul_fp64(a[2], b[2]), mul_fp64(a[3], b[3])));\n}\n\n// Same row-major pair ordering as the GLSL helper: result[i] = dot(matrix[i * 4..], a).\nfn mat4_vec4_mul_fp64(matrix: array<vec2f, 16>, a: array<vec2f, 4>) -> array<vec2f, 4> {\n var result: array<vec2f, 4>;\n for (var i = 0; i < 4; i++) {\n let row = array<vec2f, 4>(matrix[i * 4], matrix[i * 4 + 1], matrix[i * 4 + 2], matrix[i * 4 + 3]);\n result[i] = vec4_dot_fp64(a, row);\n }\n return result;\n}\n";
3
+ //# sourceMappingURL=fp64-functions-wgsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp64-functions-wgsl.d.ts","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64-functions-wgsl.ts"],"names":[],"mappings":"AAIA,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,o1NAuJ7B,CAAC"}
@@ -0,0 +1,157 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ /** WGSL double-single functions used by geographic projection. */
5
+ export const fp64functionsWGSL = /* wgsl */ `\
6
+ const E_FP64 = vec2f(2.7182817459106445, 8.254840366817007e-8);
7
+ const LOG2_FP64 = vec2f(0.6931471824645996, -1.9046542121259336e-9);
8
+ const PI_FP64 = vec2f(3.1415927410125732, -8.742278012618954e-8);
9
+ const TWO_PI_FP64 = vec2f(6.2831854820251465, -1.7484556025237907e-7);
10
+ const PI_2_FP64 = vec2f(1.5707963705062866, -4.371139006309477e-8);
11
+ const PI_4_FP64 = vec2f(0.7853981852531433, -2.1855695031547384e-8);
12
+ const PI_180_FP64 = vec2f(0.01745329238474369, 1.3519960498364902e-10);
13
+
14
+ // High/low splits of 1/n!, 1/(2n+1)!, and 1/(2n)! respectively.
15
+ const FP64_EXP_COEFFICIENTS = array<vec2f, 17>(
16
+ vec2f(1.0, 0.0),
17
+ vec2f(1.0, 0.0),
18
+ vec2f(0.5, 0.0),
19
+ vec2f(0.1666666716337204, -4.967053879312289e-09),
20
+ vec2f(0.0416666679084301, -1.2417634698280722e-09),
21
+ vec2f(0.008333333767950535, -4.34617203337595e-10),
22
+ vec2f(0.0013888889225199819, -3.3631094437103215e-11),
23
+ vec2f(0.00019841270113829523, -2.725596874933456e-12),
24
+ vec2f(2.4801587642286904e-05, -3.40699609366682e-13),
25
+ vec2f(2.7557318844628753e-06, 3.793571224297229e-14),
26
+ vec2f(2.755731998149713e-07, -7.575112209051195e-15),
27
+ vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),
28
+ vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),
29
+ vec2f(1.6059044372074283e-10, -5.352526511562726e-18),
30
+ vec2f(1.147074536050896e-11, 2.372207689231238e-19),
31
+ vec2f(7.647163609812713e-13, 1.2200710471178288e-20),
32
+ vec2f(4.7794772561329454e-14, 7.62544404448643e-22)
33
+ );
34
+ const FP64_SIN_COEFFICIENTS = array<vec2f, 9>(
35
+ vec2f(1.0, 0.0),
36
+ vec2f(0.1666666716337204, -4.967053879312289e-09),
37
+ vec2f(0.008333333767950535, -4.34617203337595e-10),
38
+ vec2f(0.00019841270113829523, -2.725596874933456e-12),
39
+ vec2f(2.7557318844628753e-06, 3.793571224297229e-14),
40
+ vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),
41
+ vec2f(1.6059044372074283e-10, -5.352526511562726e-18),
42
+ vec2f(7.647163609812713e-13, 1.2200710471178288e-20),
43
+ vec2f(2.8114573589663704e-15, -1.0462084739763658e-22)
44
+ );
45
+ const FP64_COS_COEFFICIENTS = array<vec2f, 9>(
46
+ vec2f(1.0, 0.0),
47
+ vec2f(0.5, 0.0),
48
+ vec2f(0.0416666679084301, -1.2417634698280722e-09),
49
+ vec2f(0.0013888889225199819, -3.3631094437103215e-11),
50
+ vec2f(2.4801587642286904e-05, -3.40699609366682e-13),
51
+ vec2f(2.755731998149713e-07, -7.575112209051195e-15),
52
+ vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),
53
+ vec2f(1.147074536050896e-11, 2.372207689231238e-19),
54
+ vec2f(4.7794772561329454e-14, 7.62544404448643e-22)
55
+ );
56
+
57
+ // Reduce by log(2) before evaluating the exponential. Horner evaluation uses split
58
+ // coefficients to retain low terms without repeatedly expanding double-single division.
59
+ fn exp_fp64(value: vec2f) -> vec2f {
60
+ let a = normalize_fp64(value);
61
+ if (is_nan_fp64(a)) { return a; }
62
+ // WGSL rejects non-finite constant expressions; construct infinity from runtime bits.
63
+ if (a.x > 88.72283905206835) { return vec2f(bitcast<f32>(0x7f800000u | (bitcast<u32>(a.x) & 0x80000000u)), 0.0); }
64
+ if (a.x < -103.9720770839918) { return vec2f(0.0); }
65
+ let exponent = min(127.0, floor(a.x / LOG2_FP64.x + 0.5));
66
+ let remainder = sub_fp64(a, mul_fp64(LOG2_FP64, vec2f(exponent, 0.0)));
67
+ var result = FP64_EXP_COEFFICIENTS[16];
68
+ for (var i = 15; i >= 0; i--) {
69
+ result = sum_fp64(FP64_EXP_COEFFICIENTS[i], mul_fp64(remainder, result));
70
+ }
71
+ return fp64_scale_fp64(result, i32(exponent));
72
+ }
73
+
74
+ fn log_fp64(value: vec2f) -> vec2f {
75
+ let a = normalize_fp64(value);
76
+ if (is_nan_fp64(a)) { return a; }
77
+ // Match the GLSL helper's domain: zero and negative inputs return NaN.
78
+ if (sign_fp64(a) <= 0) { return vec2f(fp64_nan(a.x), 0.0); }
79
+ if (!is_finite_fp64(a)) { return a; }
80
+ // Normalize the magnitude before Newton refinement so exp(estimate) cannot overflow
81
+ // for large inputs or underflow for tiny inputs. Bit extraction also handles subnormals.
82
+ let exponent = max(-126, i32((bitcast<u32>(a.x) >> 23u) & 255u) - 127);
83
+ let mantissa = fp64_scale_fp64(a, -exponent);
84
+ var result = vec2f(log(mantissa.x), 0.0);
85
+ // Newton correction, written as (a - exp(x)) / exp(x), preserves tiny log(1 + low).
86
+ // Two iterations remove the error in the native f32 starting estimate.
87
+ for (var i = 0; i < 2; i++) {
88
+ let estimate = exp_fp64(result);
89
+ result = sum_fp64(result, div_fp64(sub_fp64(mantissa, estimate), estimate));
90
+ }
91
+ return sum_fp64(result, mul_fp64(LOG2_FP64, vec2f(f32(exponent), 0.0)));
92
+ }
93
+
94
+ struct Fp64SinCos {
95
+ sine: vec2f,
96
+ cosine: vec2f,
97
+ };
98
+
99
+ fn fp64_sincos(value: vec2f) -> Fp64SinCos {
100
+ let a = normalize_fp64(value);
101
+ // The projection use case stays within one turn. Bound conversion to an integer quadrant;
102
+ // this is not a large-argument Payne-Hanek trigonometric range reducer.
103
+ if (!is_finite_fp64(a) || abs(a.x) > 1000000.0) {
104
+ return Fp64SinCos(vec2f(fp64_nan(a.x), 0.0), vec2f(fp64_nan(a.x), 0.0));
105
+ }
106
+ let quadrant = i32(floor(a.x / PI_2_FP64.x + 0.5));
107
+ let remainder = sub_fp64(a, mul_fp64(PI_2_FP64, vec2f(f32(quadrant), 0.0)));
108
+ let negativeSquare = -mul_fp64(remainder, remainder);
109
+ var sinePolynomial = FP64_SIN_COEFFICIENTS[8];
110
+ var cosine = FP64_COS_COEFFICIENTS[8];
111
+ for (var i = 7; i >= 0; i--) {
112
+ sinePolynomial = sum_fp64(FP64_SIN_COEFFICIENTS[i], mul_fp64(negativeSquare, sinePolynomial));
113
+ cosine = sum_fp64(FP64_COS_COEFFICIENTS[i], mul_fp64(negativeSquare, cosine));
114
+ }
115
+ let sine = mul_fp64(remainder, sinePolynomial);
116
+ switch ((quadrant % 4 + 4) % 4) {
117
+ case 0: { return Fp64SinCos(sine, cosine); }
118
+ case 1: { return Fp64SinCos(cosine, -sine); }
119
+ case 2: { return Fp64SinCos(-sine, -cosine); }
120
+ default: { return Fp64SinCos(-cosine, sine); }
121
+ }
122
+ }
123
+
124
+ fn sin_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).sine; }
125
+ fn cos_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).cosine; }
126
+ fn tan_fp64(a: vec2f) -> vec2f {
127
+ let result = fp64_sincos(a);
128
+ return div_fp64(result.sine, result.cosine);
129
+ }
130
+
131
+ fn radians_fp64(degree: vec2f) -> vec2f { return mul_fp64(degree, PI_180_FP64); }
132
+ fn mix_fp64(a: vec2f, b: vec2f, x: f32) -> vec2f {
133
+ return sum_fp64(a, mul_fp64(sub_fp64(b, a), vec2f(x, 0.0)));
134
+ }
135
+
136
+ // WGSL returns arrays in place of GLSL out parameters. Each vec2f stores [high, low].
137
+ fn vec4_fp64(a: vec4f) -> array<vec2f, 4> {
138
+ return array<vec2f, 4>(vec2f(a.x, 0.0), vec2f(a.y, 0.0), vec2f(a.z, 0.0), vec2f(a.w, 0.0));
139
+ }
140
+
141
+ fn vec4_dot_fp64(a: array<vec2f, 4>, b: array<vec2f, 4>) -> vec2f {
142
+ return sum_fp64(
143
+ sum_fp64(mul_fp64(a[0], b[0]), mul_fp64(a[1], b[1])),
144
+ sum_fp64(mul_fp64(a[2], b[2]), mul_fp64(a[3], b[3])));
145
+ }
146
+
147
+ // Same row-major pair ordering as the GLSL helper: result[i] = dot(matrix[i * 4..], a).
148
+ fn mat4_vec4_mul_fp64(matrix: array<vec2f, 16>, a: array<vec2f, 4>) -> array<vec2f, 4> {
149
+ var result: array<vec2f, 4>;
150
+ for (var i = 0; i < 4; i++) {
151
+ let row = array<vec2f, 4>(matrix[i * 4], matrix[i * 4 + 1], matrix[i * 4 + 2], matrix[i * 4 + 3]);
152
+ result[i] = vec4_dot_fp64(a, row);
153
+ }
154
+ return result;
155
+ }
156
+ `;
157
+ //# sourceMappingURL=fp64-functions-wgsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp64-functions-wgsl.js","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64-functions-wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJ3C,CAAC"}
@@ -0,0 +1,50 @@
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 fp64_utils_exports = {};
19
+ __export(fp64_utils_exports, {
20
+ fp64LowPart: () => fp64LowPart,
21
+ fp64ify: () => fp64ify,
22
+ fp64ifyMatrix4: () => fp64ifyMatrix4
23
+ });
24
+ module.exports = __toCommonJS(fp64_utils_exports);
25
+ function fp64ify(a, out = [], startIndex = 0) {
26
+ const hiPart = Math.fround(a);
27
+ const loPart = a - hiPart;
28
+ out[startIndex] = hiPart;
29
+ out[startIndex + 1] = loPart;
30
+ return out;
31
+ }
32
+ function fp64LowPart(a) {
33
+ return a - Math.fround(a);
34
+ }
35
+ function fp64ifyMatrix4(matrix) {
36
+ const matrixFP64 = new Float32Array(32);
37
+ for (let i = 0; i < 4; ++i) {
38
+ for (let j = 0; j < 4; ++j) {
39
+ const index = i * 4 + j;
40
+ fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);
41
+ }
42
+ }
43
+ return matrixFP64;
44
+ }
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ fp64LowPart,
48
+ fp64ify,
49
+ fp64ifyMatrix4
50
+ });
@@ -0,0 +1,22 @@
1
+ import type { NumericArray } from '@math.gl/core';
2
+ /**
3
+ * Calculate WebGL 64 bit float
4
+ * @param a - the input float number
5
+ * @param out - the output array. If not supplied, a new array is created.
6
+ * @param startIndex - the index in the output array to fill from. Default 0.
7
+ * @returns - the fp64 representation of the input number
8
+ */
9
+ export declare function fp64ify(a: number, out?: NumericArray, startIndex?: number): NumericArray;
10
+ /**
11
+ * Calculate the low part of a WebGL 64 bit float
12
+ * @param a the input float number
13
+ * @returns the lower 32 bit of the number
14
+ */
15
+ export declare function fp64LowPart(a: number): number;
16
+ /**
17
+ * Calculate WebGL 64 bit matrix (transposed "Float64Array")
18
+ * @param matrix the input matrix
19
+ * @returns the fp64 representation of the input matrix
20
+ */
21
+ export declare function fp64ifyMatrix4(matrix: NumericArray): Float32Array;
22
+ //# sourceMappingURL=fp64-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp64-utils.d.ts","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,YAAiB,EAAE,UAAU,GAAE,MAAU,GAAG,YAAY,CAM/F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAUjE"}
@@ -0,0 +1,42 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ /**
5
+ * Calculate WebGL 64 bit float
6
+ * @param a - the input float number
7
+ * @param out - the output array. If not supplied, a new array is created.
8
+ * @param startIndex - the index in the output array to fill from. Default 0.
9
+ * @returns - the fp64 representation of the input number
10
+ */
11
+ export function fp64ify(a, out = [], startIndex = 0) {
12
+ const hiPart = Math.fround(a);
13
+ const loPart = a - hiPart;
14
+ out[startIndex] = hiPart;
15
+ out[startIndex + 1] = loPart;
16
+ return out;
17
+ }
18
+ /**
19
+ * Calculate the low part of a WebGL 64 bit float
20
+ * @param a the input float number
21
+ * @returns the lower 32 bit of the number
22
+ */
23
+ export function fp64LowPart(a) {
24
+ return a - Math.fround(a);
25
+ }
26
+ /**
27
+ * Calculate WebGL 64 bit matrix (transposed "Float64Array")
28
+ * @param matrix the input matrix
29
+ * @returns the fp64 representation of the input matrix
30
+ */
31
+ export function fp64ifyMatrix4(matrix) {
32
+ // Transpose the projection matrix to column major for GLSL.
33
+ const matrixFP64 = new Float32Array(32);
34
+ for (let i = 0; i < 4; ++i) {
35
+ for (let j = 0; j < 4; ++j) {
36
+ const index = i * 4 + j;
37
+ fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);
38
+ }
39
+ }
40
+ return matrixFP64;
41
+ }
42
+ //# sourceMappingURL=fp64-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp64-utils.js","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,MAAoB,EAAE,EAAE,aAAqB,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,68 @@
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 fp64_exports = {};
19
+ __export(fp64_exports, {
20
+ fp64: () => fp64,
21
+ fp64LowPart: () => import_fp64_utils.fp64LowPart,
22
+ fp64arithmetic: () => fp64arithmetic,
23
+ fp64ify: () => import_fp64_utils.fp64ify,
24
+ fp64ifyMatrix4: () => import_fp64_utils.fp64ifyMatrix4
25
+ });
26
+ module.exports = __toCommonJS(fp64_exports);
27
+ var import_fp64_utils = require("../../../modules/math/fp64/fp64-utils.cjs");
28
+ var import_fp64_arithmetic_glsl = require("./fp64-arithmetic-glsl.cjs");
29
+ var import_fp64_arithmetic_wgsl = require("./fp64-arithmetic-wgsl.cjs");
30
+ var import_fp64_functions_glsl = require("./fp64-functions-glsl.cjs");
31
+ var import_fp64_functions_wgsl = require("./fp64-functions-wgsl.cjs");
32
+ const defaultUniforms = {
33
+ // Used in LUMA_FP64_CODE_ELIMINATION_WORKAROUND
34
+ ONE: 1,
35
+ // Runtime split factor for Dekker splitting. Keeping this as a uniform helps
36
+ // prevent aggressive constant folding in shader compilers.
37
+ SPLIT: 4097
38
+ };
39
+ const fp64arithmetic = {
40
+ name: "fp64arithmetic",
41
+ source: import_fp64_arithmetic_wgsl.fp64arithmeticWGSL,
42
+ fs: import_fp64_arithmetic_glsl.fp64arithmeticShader,
43
+ vs: import_fp64_arithmetic_glsl.fp64arithmeticShader,
44
+ defaultUniforms,
45
+ uniformTypes: { ONE: "f32", SPLIT: "f32" },
46
+ // Additional Functions
47
+ fp64ify: import_fp64_utils.fp64ify,
48
+ fp64LowPart: import_fp64_utils.fp64LowPart,
49
+ fp64ifyMatrix4: import_fp64_utils.fp64ifyMatrix4
50
+ };
51
+ const fp64 = {
52
+ name: "fp64",
53
+ source: import_fp64_functions_wgsl.fp64functionsWGSL,
54
+ vs: import_fp64_functions_glsl.fp64functionShader,
55
+ dependencies: [fp64arithmetic],
56
+ // Additional Functions
57
+ fp64ify: import_fp64_utils.fp64ify,
58
+ fp64LowPart: import_fp64_utils.fp64LowPart,
59
+ fp64ifyMatrix4: import_fp64_utils.fp64ifyMatrix4
60
+ };
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ fp64,
64
+ fp64LowPart,
65
+ fp64arithmetic,
66
+ fp64ify,
67
+ fp64ifyMatrix4
68
+ });
@@ -0,0 +1,24 @@
1
+ import { ShaderModule } from "../../../lib/shader-module/shader-module.js";
2
+ import { fp64ify, fp64LowPart, fp64ifyMatrix4 } from "../../../modules/math/fp64/fp64-utils.js";
3
+ type FP64Props = {};
4
+ type FP64Uniforms = {
5
+ ONE: number;
6
+ SPLIT: number;
7
+ };
8
+ type FP64Bindings = {};
9
+ type FP64Utilities = {
10
+ fp64ify: typeof fp64ify;
11
+ fp64LowPart: typeof fp64LowPart;
12
+ fp64ifyMatrix4: typeof fp64ifyMatrix4;
13
+ };
14
+ /**
15
+ * 64bit arithmetic: add, sub, mul, div (small subset of fp64 module)
16
+ */
17
+ export declare const fp64arithmetic: ShaderModule<FP64Props, FP64Uniforms, FP64Bindings> & FP64Utilities;
18
+ /**
19
+ * Double-single math: full GLSL library and WGSL projection functions.
20
+ * WGSL vector/matrix helpers return arrays instead of using GLSL out parameters.
21
+ */
22
+ export declare const fp64: ShaderModule<{}> & FP64Utilities;
23
+ export { fp64ify, fp64LowPart, fp64ifyMatrix4 };
24
+ //# sourceMappingURL=fp64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp64.d.ts","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,oDAAiD;AAEtE,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAC,iDAA8C;AAM3F,KAAK,SAAS,GAAG,EAAE,CAAC;AACpB,KAAK,YAAY,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC;AACjD,KAAK,YAAY,GAAG,EAAE,CAAC;AAEvB,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,cAAc,EAAE,OAAO,cAAc,CAAC;CACvC,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,aAYlF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,aAUrC,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ import { fp64ify, fp64LowPart, fp64ifyMatrix4 } from "../../../modules/math/fp64/fp64-utils.js";
5
+ import { fp64arithmeticShader } from "./fp64-arithmetic-glsl.js";
6
+ import { fp64arithmeticWGSL } from "./fp64-arithmetic-wgsl.js";
7
+ import { fp64functionShader } from "./fp64-functions-glsl.js";
8
+ import { fp64functionsWGSL } from "./fp64-functions-wgsl.js";
9
+ const defaultUniforms = {
10
+ // Used in LUMA_FP64_CODE_ELIMINATION_WORKAROUND
11
+ ONE: 1.0,
12
+ // Runtime split factor for Dekker splitting. Keeping this as a uniform helps
13
+ // prevent aggressive constant folding in shader compilers.
14
+ SPLIT: 4097.0
15
+ };
16
+ /**
17
+ * 64bit arithmetic: add, sub, mul, div (small subset of fp64 module)
18
+ */
19
+ export const fp64arithmetic = {
20
+ name: 'fp64arithmetic',
21
+ source: fp64arithmeticWGSL,
22
+ fs: fp64arithmeticShader,
23
+ vs: fp64arithmeticShader,
24
+ defaultUniforms,
25
+ uniformTypes: { ONE: 'f32', SPLIT: 'f32' },
26
+ // Additional Functions
27
+ fp64ify,
28
+ fp64LowPart,
29
+ fp64ifyMatrix4
30
+ };
31
+ /**
32
+ * Double-single math: full GLSL library and WGSL projection functions.
33
+ * WGSL vector/matrix helpers return arrays instead of using GLSL out parameters.
34
+ */
35
+ export const fp64 = {
36
+ name: 'fp64',
37
+ source: fp64functionsWGSL,
38
+ vs: fp64functionShader,
39
+ dependencies: [fp64arithmetic],
40
+ // Additional Functions
41
+ fp64ify,
42
+ fp64LowPart,
43
+ fp64ifyMatrix4
44
+ };
45
+ export { fp64ify, fp64LowPart, fp64ifyMatrix4 };
46
+ //# sourceMappingURL=fp64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp64.js","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAC,iDAA8C;AAC3F,OAAO,EAAC,oBAAoB,EAAC,kCAA+B;AAC5D,OAAO,EAAC,kBAAkB,EAAC,kCAA+B;AAC1D,OAAO,EAAC,kBAAkB,EAAC,iCAA8B;AACzD,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAYxD,MAAM,eAAe,GAAiB;IACpC,gDAAgD;IAChD,GAAG,EAAE,GAAG;IACR,6EAA6E;IAC7E,2DAA2D;IAC3D,KAAK,EAAE,MAAM;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwE;IACjG,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,kBAAkB;IAC1B,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,eAAe;IACf,YAAY,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC;IAExC,uBAAuB;IACvB,OAAO;IACP,WAAW;IACX,cAAc;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAqC;IACpD,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,iBAAiB;IACzB,EAAE,EAAE,kBAAkB;IACtB,YAAY,EAAE,CAAC,cAAc,CAAC;IAE9B,uBAAuB;IACvB,OAAO;IACP,WAAW;IACX,cAAc;CACf,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC"}