@luma.gl/shaders 0.0.0-stage → 10.0.0-alpha.6
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.
- package/LICENSE +38 -0
- package/README.md +25 -2
- package/dist/dist.dev.js +19686 -0
- package/dist/dist.min.js +12180 -0
- package/dist/glsl.cjs +33 -0
- package/dist/glsl.cjs.map +6 -0
- package/dist/glsl.d.ts +6 -0
- package/dist/glsl.d.ts.map +1 -0
- package/dist/glsl.js +7 -0
- package/dist/glsl.js.map +1 -0
- package/dist/index.cjs +243 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +91 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/color/normalize-byte-colors.cjs +50 -0
- package/dist/lib/color/normalize-byte-colors.d.ts +23 -0
- package/dist/lib/color/normalize-byte-colors.d.ts.map +1 -0
- package/dist/lib/color/normalize-byte-colors.js +42 -0
- package/dist/lib/color/normalize-byte-colors.js.map +1 -0
- package/dist/lib/filters/prop-types.cjs +90 -0
- package/dist/lib/filters/prop-types.d.ts +44 -0
- package/dist/lib/filters/prop-types.d.ts.map +1 -0
- package/dist/lib/filters/prop-types.js +96 -0
- package/dist/lib/filters/prop-types.js.map +1 -0
- package/dist/lib/glsl-shader-assembler.cjs +50 -0
- package/dist/lib/glsl-shader-assembler.d.ts +19 -0
- package/dist/lib/glsl-shader-assembler.d.ts.map +1 -0
- package/dist/lib/glsl-shader-assembler.js +29 -0
- package/dist/lib/glsl-shader-assembler.js.map +1 -0
- package/dist/lib/glsl-utils/get-shader-info.cjs +52 -0
- package/dist/lib/glsl-utils/get-shader-info.d.ts +9 -0
- package/dist/lib/glsl-utils/get-shader-info.d.ts.map +1 -0
- package/dist/lib/glsl-utils/get-shader-info.js +33 -0
- package/dist/lib/glsl-utils/get-shader-info.js.map +1 -0
- package/dist/lib/glsl-utils/shader-utils.cjs +126 -0
- package/dist/lib/glsl-utils/shader-utils.d.ts +23 -0
- package/dist/lib/glsl-utils/shader-utils.d.ts.map +1 -0
- package/dist/lib/glsl-utils/shader-utils.js +92 -0
- package/dist/lib/glsl-utils/shader-utils.js.map +1 -0
- package/dist/lib/preprocessor/preprocessor.cjs +107 -0
- package/dist/lib/preprocessor/preprocessor.d.ts +15 -0
- package/dist/lib/preprocessor/preprocessor.d.ts.map +1 -0
- package/dist/lib/preprocessor/preprocessor.js +99 -0
- package/dist/lib/preprocessor/preprocessor.js.map +1 -0
- package/dist/lib/shader-assembler-base.cjs +133 -0
- package/dist/lib/shader-assembler-base.d.ts +52 -0
- package/dist/lib/shader-assembler-base.d.ts.map +1 -0
- package/dist/lib/shader-assembler-base.js +128 -0
- package/dist/lib/shader-assembler-base.js.map +1 -0
- package/dist/lib/shader-assembler.cjs +33 -0
- package/dist/lib/shader-assembler.d.ts +4 -0
- package/dist/lib/shader-assembler.d.ts.map +1 -0
- package/dist/lib/shader-assembler.js +7 -0
- package/dist/lib/shader-assembler.js.map +1 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.cjs +200 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts +69 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts.map +1 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.js +221 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.js.map +1 -0
- package/dist/lib/shader-assembly/assemble-shaders.cjs +42 -0
- package/dist/lib/shader-assembly/assemble-shaders.d.ts +10 -0
- package/dist/lib/shader-assembly/assemble-shaders.d.ts.map +1 -0
- package/dist/lib/shader-assembly/assemble-shaders.js +10 -0
- package/dist/lib/shader-assembly/assemble-shaders.js.map +1 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.cjs +501 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts +71 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts.map +1 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.js +473 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.js.map +1 -0
- package/dist/lib/shader-assembly/platform-defines.cjs +79 -0
- package/dist/lib/shader-assembly/platform-defines.d.ts +4 -0
- package/dist/lib/shader-assembly/platform-defines.d.ts.map +1 -0
- package/dist/lib/shader-assembly/platform-defines.js +52 -0
- package/dist/lib/shader-assembly/platform-defines.js.map +1 -0
- package/dist/lib/shader-assembly/platform-info.cjs +15 -0
- package/dist/lib/shader-assembly/platform-info.d.ts +20 -0
- package/dist/lib/shader-assembly/platform-info.d.ts.map +1 -0
- package/dist/lib/shader-assembly/platform-info.js +5 -0
- package/dist/lib/shader-assembly/platform-info.js.map +1 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.cjs +96 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.d.ts +16 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.js +79 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.js.map +1 -0
- package/dist/lib/shader-assembly/shader-assembly-types.cjs +15 -0
- package/dist/lib/shader-assembly/shader-assembly-types.d.ts +128 -0
- package/dist/lib/shader-assembly/shader-assembly-types.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-assembly-types.js +5 -0
- package/dist/lib/shader-assembly/shader-assembly-types.js.map +1 -0
- package/dist/lib/shader-assembly/shader-hooks.cjs +103 -0
- package/dist/lib/shader-assembly/shader-hooks.d.ts +45 -0
- package/dist/lib/shader-assembly/shader-hooks.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-hooks.js +84 -0
- package/dist/lib/shader-assembly/shader-hooks.js.map +1 -0
- package/dist/lib/shader-assembly/shader-injections.cjs +180 -0
- package/dist/lib/shader-assembly/shader-injections.d.ts +34 -0
- package/dist/lib/shader-assembly/shader-injections.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-injections.js +183 -0
- package/dist/lib/shader-assembly/shader-injections.js.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.cjs +417 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.d.ts +15 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.js +412 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.js.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.cjs +254 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.d.ts +12 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.js +237 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.js.map +1 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.cjs +166 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.d.ts +37 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.d.ts.map +1 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.js +144 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.js.map +1 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.cjs +184 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.d.ts +19 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.d.ts.map +1 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.js +151 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.js.map +1 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.cjs +502 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.d.ts +14 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.d.ts.map +1 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.js +498 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.js.map +1 -0
- package/dist/lib/shader-generator/generate-shader.cjs +36 -0
- package/dist/lib/shader-generator/generate-shader.d.ts +8 -0
- package/dist/lib/shader-generator/generate-shader.d.ts.map +1 -0
- package/dist/lib/shader-generator/generate-shader.js +15 -0
- package/dist/lib/shader-generator/generate-shader.js.map +1 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.cjs +94 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.d.ts +7 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.d.ts.map +1 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.js +79 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.js.map +1 -0
- package/dist/lib/shader-generator/utils/capitalize.cjs +29 -0
- package/dist/lib/shader-generator/utils/capitalize.d.ts +7 -0
- package/dist/lib/shader-generator/utils/capitalize.d.ts.map +1 -0
- package/dist/lib/shader-generator/utils/capitalize.js +12 -0
- package/dist/lib/shader-generator/utils/capitalize.js.map +1 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.cjs +46 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.d.ts +7 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.d.ts.map +1 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.js +23 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.js.map +1 -0
- package/dist/lib/shader-module/composite-shader-pass.cjs +15 -0
- package/dist/lib/shader-module/composite-shader-pass.d.ts +41 -0
- package/dist/lib/shader-module/composite-shader-pass.d.ts.map +1 -0
- package/dist/lib/shader-module/composite-shader-pass.js +5 -0
- package/dist/lib/shader-module/composite-shader-pass.js.map +1 -0
- package/dist/lib/shader-module/shader-module-dependencies.cjs +83 -0
- package/dist/lib/shader-module/shader-module-dependencies.d.ts +39 -0
- package/dist/lib/shader-module/shader-module-dependencies.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-module-dependencies.js +103 -0
- package/dist/lib/shader-module/shader-module-dependencies.js.map +1 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.cjs +224 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.d.ts +91 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.js +253 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.js.map +1 -0
- package/dist/lib/shader-module/shader-module.cjs +105 -0
- package/dist/lib/shader-module/shader-module.d.ts +98 -0
- package/dist/lib/shader-module/shader-module.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-module.js +104 -0
- package/dist/lib/shader-module/shader-module.js.map +1 -0
- package/dist/lib/shader-module/shader-pass.cjs +15 -0
- package/dist/lib/shader-module/shader-pass.d.ts +48 -0
- package/dist/lib/shader-module/shader-pass.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-pass.js +5 -0
- package/dist/lib/shader-module/shader-pass.js.map +1 -0
- package/dist/lib/shader-plugin.cjs +117 -0
- package/dist/lib/shader-plugin.d.ts +68 -0
- package/dist/lib/shader-plugin.d.ts.map +1 -0
- package/dist/lib/shader-plugin.js +98 -0
- package/dist/lib/shader-plugin.js.map +1 -0
- package/dist/lib/shader-transpiler/shader-transpiler.cjs +15 -0
- package/dist/lib/shader-transpiler/shader-transpiler.d.ts +27 -0
- package/dist/lib/shader-transpiler/shader-transpiler.d.ts.map +1 -0
- package/dist/lib/shader-transpiler/shader-transpiler.js +5 -0
- package/dist/lib/shader-transpiler/shader-transpiler.js.map +1 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.cjs +71 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.d.ts +9 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.d.ts.map +1 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.js +69 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.js.map +1 -0
- package/dist/lib/utils/assert.cjs +34 -0
- package/dist/lib/utils/assert.d.ts +2 -0
- package/dist/lib/utils/assert.d.ts.map +1 -0
- package/dist/lib/utils/assert.js +13 -0
- package/dist/lib/utils/assert.js.map +1 -0
- package/dist/lib/utils/uniform-types.cjs +15 -0
- package/dist/lib/utils/uniform-types.d.ts +18 -0
- package/dist/lib/utils/uniform-types.d.ts.map +1 -0
- package/dist/lib/utils/uniform-types.js +5 -0
- package/dist/lib/utils/uniform-types.js.map +1 -0
- package/dist/lib/wgsl-shader-assembler.cjs +99 -0
- package/dist/lib/wgsl-shader-assembler.d.ts +34 -0
- package/dist/lib/wgsl-shader-assembler.d.ts.map +1 -0
- package/dist/lib/wgsl-shader-assembler.js +84 -0
- package/dist/lib/wgsl-shader-assembler.js.map +1 -0
- package/dist/module-injectors.cjs +59 -0
- package/dist/module-injectors.d.ts +3 -0
- package/dist/module-injectors.d.ts.map +1 -0
- package/dist/module-injectors.js +31 -0
- package/dist/module-injectors.js.map +1 -0
- package/dist/modules/color/float-colors.cjs +275 -0
- package/dist/modules/color/float-colors.d.ts +132 -0
- package/dist/modules/color/float-colors.d.ts.map +1 -0
- package/dist/modules/color/float-colors.js +248 -0
- package/dist/modules/color/float-colors.js.map +1 -0
- package/dist/modules/engine/clip/clip.cjs +152 -0
- package/dist/modules/engine/clip/clip.d.ts +12 -0
- package/dist/modules/engine/clip/clip.d.ts.map +1 -0
- package/dist/modules/engine/clip/clip.js +129 -0
- package/dist/modules/engine/clip/clip.js.map +1 -0
- package/dist/modules/engine/filter/filter.cjs +111 -0
- package/dist/modules/engine/filter/filter.d.ts +12 -0
- package/dist/modules/engine/filter/filter.d.ts.map +1 -0
- package/dist/modules/engine/filter/filter.js +88 -0
- package/dist/modules/engine/filter/filter.js.map +1 -0
- package/dist/modules/engine/geometry/geometry.cjs +63 -0
- package/dist/modules/engine/geometry/geometry.d.ts +9 -0
- package/dist/modules/engine/geometry/geometry.d.ts.map +1 -0
- package/dist/modules/engine/geometry/geometry.js +42 -0
- package/dist/modules/engine/geometry/geometry.js.map +1 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.cjs +255 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.d.ts +34 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.d.ts.map +1 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.js +228 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.js.map +1 -0
- package/dist/modules/engine/picking/picking.cjs +210 -0
- package/dist/modules/engine/picking/picking.d.ts +77 -0
- package/dist/modules/engine/picking/picking.d.ts.map +1 -0
- package/dist/modules/engine/picking/picking.js +198 -0
- package/dist/modules/engine/picking/picking.js.map +1 -0
- package/dist/modules/engine/project/project.cjs +138 -0
- package/dist/modules/engine/project/project.d.ts +39 -0
- package/dist/modules/engine/project/project.d.ts.map +1 -0
- package/dist/modules/engine/project/project.js +129 -0
- package/dist/modules/engine/project/project.js.map +1 -0
- package/dist/modules/engine/skin/skin.cjs +212 -0
- package/dist/modules/engine/skin/skin.d.ts +52 -0
- package/dist/modules/engine/skin/skin.d.ts.map +1 -0
- package/dist/modules/engine/skin/skin.js +179 -0
- package/dist/modules/engine/skin/skin.js.map +1 -0
- package/dist/modules/engine/transform/transform.cjs +72 -0
- package/dist/modules/engine/transform/transform.d.ts +6 -0
- package/dist/modules/engine/transform/transform.d.ts.map +1 -0
- package/dist/modules/engine/transform/transform.js +49 -0
- package/dist/modules/engine/transform/transform.js.map +1 -0
- package/dist/modules/geometry/path-dash/path-dash.cjs +93 -0
- package/dist/modules/geometry/path-dash/path-dash.d.ts +10 -0
- package/dist/modules/geometry/path-dash/path-dash.d.ts.map +1 -0
- package/dist/modules/geometry/path-dash/path-dash.js +66 -0
- package/dist/modules/geometry/path-dash/path-dash.js.map +1 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.cjs +117 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.d.ts +3 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.d.ts.map +1 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.js +87 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.js.map +1 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.cjs +64 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.d.ts +14 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.d.ts.map +1 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.js +43 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.js.map +1 -0
- package/dist/modules/geometry/point-glow/point-glow.cjs +104 -0
- package/dist/modules/geometry/point-glow/point-glow.d.ts +11 -0
- package/dist/modules/geometry/point-glow/point-glow.d.ts.map +1 -0
- package/dist/modules/geometry/point-glow/point-glow.js +77 -0
- package/dist/modules/geometry/point-glow/point-glow.js.map +1 -0
- package/dist/modules/geometry/precipitation/precipitation.cjs +122 -0
- package/dist/modules/geometry/precipitation/precipitation.d.ts +40 -0
- package/dist/modules/geometry/precipitation/precipitation.d.ts.map +1 -0
- package/dist/modules/geometry/precipitation/precipitation.js +95 -0
- package/dist/modules/geometry/precipitation/precipitation.js.map +1 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.cjs +158 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.d.ts +60 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.d.ts.map +1 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.js +137 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.js.map +1 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.cjs +2304 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.d.ts +3 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.d.ts.map +1 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.js +2283 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.js.map +1 -0
- package/dist/modules/geospatial/dggs/dggs.cjs +31 -0
- package/dist/modules/geospatial/dggs/dggs.d.ts +6 -0
- package/dist/modules/geospatial/dggs/dggs.d.ts.map +1 -0
- package/dist/modules/geospatial/dggs/dggs.js +10 -0
- package/dist/modules/geospatial/dggs/dggs.js.map +1 -0
- package/dist/modules/lighting/area-lighting/area-light-types.cjs +68 -0
- package/dist/modules/lighting/area-lighting/area-light-types.d.ts +34 -0
- package/dist/modules/lighting/area-lighting/area-light-types.d.ts.map +1 -0
- package/dist/modules/lighting/area-lighting/area-light-types.js +40 -0
- package/dist/modules/lighting/area-lighting/area-light-types.js.map +1 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.cjs +101 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.d.ts +3 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.d.ts.map +1 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.js +71 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.js.map +1 -0
- package/dist/modules/lighting/area-lighting/area-lighting.cjs +62 -0
- package/dist/modules/lighting/area-lighting/area-lighting.d.ts +89 -0
- package/dist/modules/lighting/area-lighting/area-lighting.d.ts.map +1 -0
- package/dist/modules/lighting/area-lighting/area-lighting.js +41 -0
- package/dist/modules/lighting/area-lighting/area-lighting.js.map +1 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.cjs +192 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.d.ts +3 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.d.ts.map +1 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.js +162 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.js.map +1 -0
- package/dist/modules/lighting/atmosphere/atmosphere.cjs +253 -0
- package/dist/modules/lighting/atmosphere/atmosphere.d.ts +45 -0
- package/dist/modules/lighting/atmosphere/atmosphere.d.ts.map +1 -0
- package/dist/modules/lighting/atmosphere/atmosphere.js +228 -0
- package/dist/modules/lighting/atmosphere/atmosphere.js.map +1 -0
- package/dist/modules/lighting/clouds/clouds.cjs +216 -0
- package/dist/modules/lighting/clouds/clouds.d.ts +58 -0
- package/dist/modules/lighting/clouds/clouds.d.ts.map +1 -0
- package/dist/modules/lighting/clouds/clouds.js +192 -0
- package/dist/modules/lighting/clouds/clouds.js.map +1 -0
- package/dist/modules/lighting/firefly/firefly.cjs +74 -0
- package/dist/modules/lighting/firefly/firefly.d.ts +36 -0
- package/dist/modules/lighting/firefly/firefly.d.ts.map +1 -0
- package/dist/modules/lighting/firefly/firefly.js +53 -0
- package/dist/modules/lighting/firefly/firefly.js.map +1 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.cjs +143 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.d.ts +53 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.d.ts.map +1 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.js +119 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.js.map +1 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.cjs +61 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.d.ts +12 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.d.ts.map +1 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.js +40 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.js.map +1 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.cjs +139 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.d.ts +14 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.d.ts.map +1 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.js +114 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.js.map +1 -0
- package/dist/modules/lighting/height-fog/height-fog.cjs +104 -0
- package/dist/modules/lighting/height-fog/height-fog.d.ts +60 -0
- package/dist/modules/lighting/height-fog/height-fog.d.ts.map +1 -0
- package/dist/modules/lighting/height-fog/height-fog.js +77 -0
- package/dist/modules/lighting/height-fog/height-fog.js.map +1 -0
- package/dist/modules/lighting/ibl/ibl.cjs +63 -0
- package/dist/modules/lighting/ibl/ibl.d.ts +25 -0
- package/dist/modules/lighting/ibl/ibl.d.ts.map +1 -0
- package/dist/modules/lighting/ibl/ibl.js +33 -0
- package/dist/modules/lighting/ibl/ibl.js.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-material.cjs +54 -0
- package/dist/modules/lighting/lambert-material/lambert-material.d.ts +10 -0
- package/dist/modules/lighting/lambert-material/lambert-material.d.ts.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-material.js +33 -0
- package/dist/modules/lighting/lambert-material/lambert-material.js.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.cjs +88 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.d.ts +3 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.js +60 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.js.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.cjs +97 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.d.ts +2 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.js +73 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.js.map +1 -0
- package/dist/modules/lighting/lights/lighting-glsl.cjs +116 -0
- package/dist/modules/lighting/lights/lighting-glsl.d.ts +2 -0
- package/dist/modules/lighting/lights/lighting-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/lights/lighting-glsl.js +92 -0
- package/dist/modules/lighting/lights/lighting-glsl.js.map +1 -0
- package/dist/modules/lighting/lights/lighting-wgsl.cjs +115 -0
- package/dist/modules/lighting/lights/lighting-wgsl.d.ts +2 -0
- package/dist/modules/lighting/lights/lighting-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/lights/lighting-wgsl.js +91 -0
- package/dist/modules/lighting/lights/lighting-wgsl.js.map +1 -0
- package/dist/modules/lighting/lights/lighting.cjs +210 -0
- package/dist/modules/lighting/lights/lighting.d.ts +163 -0
- package/dist/modules/lighting/lights/lighting.d.ts.map +1 -0
- package/dist/modules/lighting/lights/lighting.js +208 -0
- package/dist/modules/lighting/lights/lighting.js.map +1 -0
- package/dist/modules/lighting/no-material/dirlight.cjs +112 -0
- package/dist/modules/lighting/no-material/dirlight.d.ts +33 -0
- package/dist/modules/lighting/no-material/dirlight.d.ts.map +1 -0
- package/dist/modules/lighting/no-material/dirlight.js +86 -0
- package/dist/modules/lighting/no-material/dirlight.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.cjs +1767 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts +3 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.js +1745 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.cjs +2062 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts +3 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js +2040 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material.cjs +315 -0
- package/dist/modules/lighting/pbr-material/pbr-material.d.ts +516 -0
- package/dist/modules/lighting/pbr-material/pbr-material.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material.js +292 -0
- package/dist/modules/lighting/pbr-material/pbr-material.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.cjs +63 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.d.ts +10 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.js +37 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.cjs +109 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.d.ts +52 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.js +83 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.js.map +1 -0
- package/dist/modules/lighting/phong-material/phong-material.cjs +61 -0
- package/dist/modules/lighting/phong-material/phong-material.d.ts +13 -0
- package/dist/modules/lighting/phong-material/phong-material.d.ts.map +1 -0
- package/dist/modules/lighting/phong-material/phong-material.js +40 -0
- package/dist/modules/lighting/phong-material/phong-material.js.map +1 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.cjs +100 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.d.ts +3 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.js +72 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.js.map +1 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.cjs +153 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.d.ts +2 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.js +129 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.js.map +1 -0
- package/dist/modules/lighting/surface-weather/surface-weather.cjs +199 -0
- package/dist/modules/lighting/surface-weather/surface-weather.d.ts +54 -0
- package/dist/modules/lighting/surface-weather/surface-weather.d.ts.map +1 -0
- package/dist/modules/lighting/surface-weather/surface-weather.js +175 -0
- package/dist/modules/lighting/surface-weather/surface-weather.js.map +1 -0
- package/dist/modules/lighting/water-material/river-water-material.cjs +56 -0
- package/dist/modules/lighting/water-material/river-water-material.d.ts +21 -0
- package/dist/modules/lighting/water-material/river-water-material.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/river-water-material.js +36 -0
- package/dist/modules/lighting/water-material/river-water-material.js.map +1 -0
- package/dist/modules/lighting/water-material/river-water-shaders.cjs +261 -0
- package/dist/modules/lighting/water-material/river-water-shaders.d.ts +3 -0
- package/dist/modules/lighting/water-material/river-water-shaders.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/river-water-shaders.js +233 -0
- package/dist/modules/lighting/water-material/river-water-shaders.js.map +1 -0
- package/dist/modules/lighting/water-material/water-material.cjs +188 -0
- package/dist/modules/lighting/water-material/water-material.d.ts +28 -0
- package/dist/modules/lighting/water-material/water-material.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/water-material.js +179 -0
- package/dist/modules/lighting/water-material/water-material.js.map +1 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.cjs +260 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.d.ts +3 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.js +232 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.js.map +1 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.cjs +254 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.d.ts +2 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.js +230 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.js.map +1 -0
- package/dist/modules/math/fp16/fp16-utils.cjs +112 -0
- package/dist/modules/math/fp16/fp16-utils.d.ts +13 -0
- package/dist/modules/math/fp16/fp16-utils.d.ts.map +1 -0
- package/dist/modules/math/fp16/fp16-utils.js +118 -0
- package/dist/modules/math/fp16/fp16-utils.js.map +1 -0
- package/dist/modules/math/fp32/fp32.cjs +310 -0
- package/dist/modules/math/fp32/fp32.d.ts +9 -0
- package/dist/modules/math/fp32/fp32.d.ts.map +1 -0
- package/dist/modules/math/fp32/fp32.js +288 -0
- package/dist/modules/math/fp32/fp32.js.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.cjs +229 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.d.ts +2 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.js +205 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.js.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.cjs +144 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.d.ts +10 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.js +128 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.js.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.cjs +583 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.d.ts +11 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.js +563 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.js.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.cjs +946 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.d.ts +3 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.js +923 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.js.map +1 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.cjs +699 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.d.ts +2 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.js +675 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.js.map +1 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.cjs +180 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.d.ts +3 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.js +157 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.js.map +1 -0
- package/dist/modules/math/fp64/fp64-utils.cjs +50 -0
- package/dist/modules/math/fp64/fp64-utils.d.ts +22 -0
- package/dist/modules/math/fp64/fp64-utils.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-utils.js +42 -0
- package/dist/modules/math/fp64/fp64-utils.js.map +1 -0
- package/dist/modules/math/fp64/fp64.cjs +68 -0
- package/dist/modules/math/fp64/fp64.d.ts +24 -0
- package/dist/modules/math/fp64/fp64.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64.js +46 -0
- package/dist/modules/math/fp64/fp64.js.map +1 -0
- package/dist/modules/math/random/random.cjs +46 -0
- package/dist/modules/math/random/random.d.ts +7 -0
- package/dist/modules/math/random/random.d.ts.map +1 -0
- package/dist/modules/math/random/random.js +21 -0
- package/dist/modules/math/random/random.js.map +1 -0
- package/dist/modules/math/value-noise/value-noise.cjs +95 -0
- package/dist/modules/math/value-noise/value-noise.d.ts +7 -0
- package/dist/modules/math/value-noise/value-noise.d.ts.map +1 -0
- package/dist/modules/math/value-noise/value-noise.js +68 -0
- package/dist/modules/math/value-noise/value-noise.js.map +1 -0
- package/dist/modules/volume/volume-raymarch.cjs +107 -0
- package/dist/modules/volume/volume-raymarch.d.ts +6 -0
- package/dist/modules/volume/volume-raymarch.d.ts.map +1 -0
- package/dist/modules/volume/volume-raymarch.js +84 -0
- package/dist/modules/volume/volume-raymarch.js.map +1 -0
- package/dist/types/align-to.cjs +38 -0
- package/dist/types/align-to.d.ts +3 -0
- package/dist/types/align-to.d.ts.map +1 -0
- package/dist/types/align-to.js +13 -0
- package/dist/types/align-to.js.map +1 -0
- package/dist/types/primitive-data-types.cjs +15 -0
- package/dist/types/primitive-data-types.d.ts +7 -0
- package/dist/types/primitive-data-types.d.ts.map +1 -0
- package/dist/types/primitive-data-types.js +5 -0
- package/dist/types/primitive-data-types.js.map +1 -0
- package/dist/types/sampler-props.cjs +15 -0
- package/dist/types/sampler-props.d.ts +26 -0
- package/dist/types/sampler-props.d.ts.map +1 -0
- package/dist/types/sampler-props.js +5 -0
- package/dist/types/sampler-props.js.map +1 -0
- package/dist/types/shader-block-layout.cjs +184 -0
- package/dist/types/shader-block-layout.d.ts +72 -0
- package/dist/types/shader-block-layout.d.ts.map +1 -0
- package/dist/types/shader-block-layout.js +209 -0
- package/dist/types/shader-block-layout.js.map +1 -0
- package/dist/types/shader-layout.cjs +15 -0
- package/dist/types/shader-layout.d.ts +178 -0
- package/dist/types/shader-layout.d.ts.map +1 -0
- package/dist/types/shader-layout.js +5 -0
- package/dist/types/shader-layout.js.map +1 -0
- package/dist/types/shader-type-decoder.cjs +240 -0
- package/dist/types/shader-type-decoder.d.ts +41 -0
- package/dist/types/shader-type-decoder.d.ts.map +1 -0
- package/dist/types/shader-type-decoder.js +210 -0
- package/dist/types/shader-type-decoder.js.map +1 -0
- package/dist/types/shader-types.cjs +15 -0
- package/dist/types/shader-types.d.ts +101 -0
- package/dist/types/shader-types.d.ts.map +1 -0
- package/dist/types/shader-types.js +30 -0
- package/dist/types/shader-types.js.map +1 -0
- package/dist/types/texture-formats.cjs +15 -0
- package/dist/types/texture-formats.d.ts +24 -0
- package/dist/types/texture-formats.d.ts.map +1 -0
- package/dist/types/texture-formats.js +5 -0
- package/dist/types/texture-formats.js.map +1 -0
- package/dist/types.cjs +42 -0
- package/dist/types.cjs.map +6 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/dist/wgsl.cjs +39 -0
- package/dist/wgsl.cjs.map +6 -0
- package/dist/wgsl.d.ts +8 -0
- package/dist/wgsl.d.ts.map +1 -0
- package/dist/wgsl.js +9 -0
- package/dist/wgsl.js.map +1 -0
- package/package.json +65 -4
- package/src/glsl.ts +13 -0
- package/src/index.ts +259 -0
- package/src/lib/color/normalize-byte-colors.ts +57 -0
- package/src/lib/filters/prop-types.ts +150 -0
- package/src/lib/glsl-shader-assembler.ts +39 -0
- package/src/lib/glsl-utils/get-shader-info.ts +42 -0
- package/src/lib/glsl-utils/shader-utils.ts +110 -0
- package/src/lib/preprocessor/preprocessor.ts +132 -0
- package/src/lib/shader-assembler-base.ts +170 -0
- package/src/lib/shader-assembler.ts +7 -0
- package/src/lib/shader-assembly/assemble-glsl-shaders.ts +305 -0
- package/src/lib/shader-assembly/assemble-shaders.ts +13 -0
- package/src/lib/shader-assembly/assemble-wgsl-shaders.ts +801 -0
- package/src/lib/shader-assembly/platform-defines.ts +58 -0
- package/src/lib/shader-assembly/platform-info.ts +23 -0
- package/src/lib/shader-assembly/shader-assembly-shared.ts +95 -0
- package/src/lib/shader-assembly/shader-assembly-types.ts +142 -0
- package/src/lib/shader-assembly/shader-hooks.ts +141 -0
- package/src/lib/shader-assembly/shader-injections.ts +250 -0
- package/src/lib/shader-assembly/shader-plugin-varyings.ts +524 -0
- package/src/lib/shader-assembly/shader-plugin-vertex-inputs.ts +279 -0
- package/src/lib/shader-assembly/wgsl-binding-debug.ts +227 -0
- package/src/lib/shader-assembly/wgsl-binding-scan.ts +228 -0
- package/src/lib/shader-assembly/wgsl-interface-scan.ts +676 -0
- package/src/lib/shader-generator/generate-shader.ts +27 -0
- package/src/lib/shader-generator/glsl/generate-glsl.ts +101 -0
- package/src/lib/shader-generator/utils/capitalize.ts +12 -0
- package/src/lib/shader-generator/wgsl/generate-wgsl.ts +40 -0
- package/src/lib/shader-module/composite-shader-pass.ts +47 -0
- package/src/lib/shader-module/shader-module-dependencies.ts +128 -0
- package/src/lib/shader-module/shader-module-uniform-layout.ts +420 -0
- package/src/lib/shader-module/shader-module.ts +244 -0
- package/src/lib/shader-module/shader-pass.ts +69 -0
- package/src/lib/shader-plugin.ts +214 -0
- package/src/lib/shader-transpiler/shader-transpiler.ts +34 -0
- package/src/lib/shader-transpiler/transpile-glsl-shader.ts +78 -0
- package/src/lib/utils/assert.ts +13 -0
- package/src/lib/utils/uniform-types.ts +89 -0
- package/src/lib/wgsl-shader-assembler.ts +122 -0
- package/src/module-injectors.ts +32 -0
- package/src/modules/color/float-colors.ts +334 -0
- package/src/modules/engine/clip/clip.ts +149 -0
- package/src/modules/engine/filter/filter.ts +107 -0
- package/src/modules/engine/geometry/geometry.ts +45 -0
- package/src/modules/engine/gpu-animation/gpu-animation.ts +244 -0
- package/src/modules/engine/picking/README.md +88 -0
- package/src/modules/engine/picking/picking.ts +252 -0
- package/src/modules/engine/project/project.ts +166 -0
- package/src/modules/engine/skin/skin.ts +233 -0
- package/src/modules/engine/transform/transform.ts +50 -0
- package/src/modules/geometry/path-dash/path-dash.ts +68 -0
- package/src/modules/geometry/pattern-fill/pattern-fill-shaders.ts +88 -0
- package/src/modules/geometry/pattern-fill/pattern-fill.ts +54 -0
- package/src/modules/geometry/point-glow/point-glow.ts +87 -0
- package/src/modules/geometry/precipitation/README.md +19 -0
- package/src/modules/geometry/precipitation/precipitation.ts +108 -0
- package/src/modules/geometry/sketch-stroke/sketch-stroke.ts +160 -0
- package/src/modules/geospatial/dggs/dggs-wgsl.ts +2284 -0
- package/src/modules/geospatial/dggs/dggs.ts +12 -0
- package/src/modules/lighting/area-lighting/area-light-types.ts +71 -0
- package/src/modules/lighting/area-lighting/area-lighting-shaders.ts +72 -0
- package/src/modules/lighting/area-lighting/area-lighting.ts +63 -0
- package/src/modules/lighting/area-lighting/ltc-shaders.ts +163 -0
- package/src/modules/lighting/atmosphere/README.md +25 -0
- package/src/modules/lighting/atmosphere/atmosphere.ts +246 -0
- package/src/modules/lighting/clouds/README.md +24 -0
- package/src/modules/lighting/clouds/clouds.ts +216 -0
- package/src/modules/lighting/firefly/firefly.ts +64 -0
- package/src/modules/lighting/globe-clouds/globe-clouds.ts +124 -0
- package/src/modules/lighting/gouraud-material/gouraud-material.ts +55 -0
- package/src/modules/lighting/height-fog/README.md +36 -0
- package/src/modules/lighting/height-fog/height-fog-functions.ts +116 -0
- package/src/modules/lighting/height-fog/height-fog.ts +96 -0
- package/src/modules/lighting/ibl/ibl.ts +43 -0
- package/src/modules/lighting/lambert-material/lambert-material.ts +42 -0
- package/src/modules/lighting/lambert-material/lambert-shaders-glsl.ts +61 -0
- package/src/modules/lighting/lambert-material/lambert-shaders-wgsl.ts +73 -0
- package/src/modules/lighting/lights/lighting-glsl.ts +92 -0
- package/src/modules/lighting/lights/lighting-wgsl.ts +91 -0
- package/src/modules/lighting/lights/lighting.ts +385 -0
- package/src/modules/lighting/no-material/dirlight.ts +101 -0
- package/src/modules/lighting/pbr-material/pbr-material-glsl.ts +1748 -0
- package/src/modules/lighting/pbr-material/pbr-material-wgsl.ts +2043 -0
- package/src/modules/lighting/pbr-material/pbr-material.ts +517 -0
- package/src/modules/lighting/pbr-material/pbr-projection.ts +50 -0
- package/src/modules/lighting/pbr-material/pbr-scene.ts +112 -0
- package/src/modules/lighting/phong-material/phong-material.ts +53 -0
- package/src/modules/lighting/phong-material/phong-shaders-glsl.ts +73 -0
- package/src/modules/lighting/phong-material/phong-shaders-wgsl.ts +129 -0
- package/src/modules/lighting/surface-weather/README.md +28 -0
- package/src/modules/lighting/surface-weather/surface-weather.ts +198 -0
- package/src/modules/lighting/water-material/river-water-material.ts +58 -0
- package/src/modules/lighting/water-material/river-water-shaders.ts +234 -0
- package/src/modules/lighting/water-material/water-material.ts +234 -0
- package/src/modules/lighting/water-material/water-shaders-glsl.ts +233 -0
- package/src/modules/lighting/water-material/water-shaders-wgsl.ts +230 -0
- package/src/modules/math/fp16/fp16-utils.ts +156 -0
- package/src/modules/math/fp32/fp32.ts +291 -0
- package/src/modules/math/fp64/fp64-arithmetic-glsl.ts +205 -0
- package/src/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.ts +129 -0
- package/src/modules/math/fp64/fp64-arithmetic-wgsl-integer.ts +564 -0
- package/src/modules/math/fp64/fp64-arithmetic-wgsl.ts +924 -0
- package/src/modules/math/fp64/fp64-functions-glsl.ts +675 -0
- package/src/modules/math/fp64/fp64-functions-wgsl.ts +157 -0
- package/src/modules/math/fp64/fp64-utils.ts +46 -0
- package/src/modules/math/fp64/fp64.ts +64 -0
- package/src/modules/math/random/random.ts +25 -0
- package/src/modules/math/value-noise/value-noise.ts +70 -0
- package/src/modules/volume/volume-raymarch.ts +87 -0
- package/src/types/align-to.ts +13 -0
- package/src/types/primitive-data-types.ts +10 -0
- package/src/types/sampler-props.ts +39 -0
- package/src/types/shader-block-layout.ts +340 -0
- package/src/types/shader-layout.ts +208 -0
- package/src/types/shader-type-decoder.ts +285 -0
- package/src/types/shader-types.ts +207 -0
- package/src/types/texture-formats.ts +155 -0
- package/src/types.ts +48 -0
- package/src/wgsl.ts +23 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var generate_glsl_exports = {};
|
|
19
|
+
__export(generate_glsl_exports, {
|
|
20
|
+
generateGLSLForModule: () => generateGLSLForModule
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(generate_glsl_exports);
|
|
23
|
+
var import_capitalize = require("../utils/capitalize.cjs");
|
|
24
|
+
function generateGLSLForModule(module2, options) {
|
|
25
|
+
return generateGLSLUniformDeclarations(module2, options);
|
|
26
|
+
}
|
|
27
|
+
function generateGLSLUniformDeclarations(module2, options) {
|
|
28
|
+
const glsl = [];
|
|
29
|
+
switch (options.uniforms) {
|
|
30
|
+
case "scoped-interface-blocks":
|
|
31
|
+
case "unscoped-interface-blocks":
|
|
32
|
+
glsl.push(`layout(std140) uniform ${(0, import_capitalize.capitalize)(module2.name)} {`);
|
|
33
|
+
break;
|
|
34
|
+
case "uniforms":
|
|
35
|
+
}
|
|
36
|
+
for (const [uniformName, uniformFormat] of Object.entries(module2.uniformTypes || {})) {
|
|
37
|
+
if (typeof uniformFormat !== "string") {
|
|
38
|
+
throw new Error(`Composite uniform types are not supported by GLSL shader generation: ${module2.name}.${uniformName}`);
|
|
39
|
+
}
|
|
40
|
+
const glslUniformType = getGLSLUniformType(uniformFormat);
|
|
41
|
+
switch (options.uniforms) {
|
|
42
|
+
case "scoped-interface-blocks":
|
|
43
|
+
glsl.push(` ${glslUniformType} ${uniformName};`);
|
|
44
|
+
break;
|
|
45
|
+
case "unscoped-interface-blocks":
|
|
46
|
+
glsl.push(` ${glslUniformType} ${module2.name}_${uniformName};`);
|
|
47
|
+
break;
|
|
48
|
+
case "uniforms":
|
|
49
|
+
glsl.push(`uniform ${glslUniformType} ${module2.name}_${uniformName};`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
switch (options.uniforms) {
|
|
53
|
+
case "scoped-interface-blocks":
|
|
54
|
+
glsl.push(`} ${module2.name};`);
|
|
55
|
+
break;
|
|
56
|
+
case "unscoped-interface-blocks":
|
|
57
|
+
glsl.push("};");
|
|
58
|
+
break;
|
|
59
|
+
case "uniforms":
|
|
60
|
+
}
|
|
61
|
+
glsl.push("");
|
|
62
|
+
return glsl.join("\n");
|
|
63
|
+
}
|
|
64
|
+
function getGLSLUniformType(uniformFormat) {
|
|
65
|
+
const UNIFORM_TYPE_TO_GLSL = {
|
|
66
|
+
f32: "float",
|
|
67
|
+
i32: "int",
|
|
68
|
+
u32: "uint",
|
|
69
|
+
"vec2<f32>": "vec2",
|
|
70
|
+
"vec3<f32>": "vec3",
|
|
71
|
+
"vec4<f32>": "vec4",
|
|
72
|
+
"vec2<i32>": "ivec2",
|
|
73
|
+
"vec3<i32>": "ivec3",
|
|
74
|
+
"vec4<i32>": "ivec4",
|
|
75
|
+
"vec2<u32>": "uvec2",
|
|
76
|
+
"vec3<u32>": "uvec3",
|
|
77
|
+
"vec4<u32>": "uvec4",
|
|
78
|
+
"mat2x2<f32>": "mat2",
|
|
79
|
+
"mat2x3<f32>": "mat2x3",
|
|
80
|
+
"mat2x4<f32>": "mat2x4",
|
|
81
|
+
"mat3x2<f32>": "mat3x2",
|
|
82
|
+
"mat3x3<f32>": "mat3",
|
|
83
|
+
"mat3x4<f32>": "mat3x4",
|
|
84
|
+
"mat4x2<f32>": "mat4x2",
|
|
85
|
+
"mat4x3<f32>": "mat4x3",
|
|
86
|
+
"mat4x4<f32>": "mat4"
|
|
87
|
+
};
|
|
88
|
+
const glsl = UNIFORM_TYPE_TO_GLSL[uniformFormat];
|
|
89
|
+
return glsl;
|
|
90
|
+
}
|
|
91
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
92
|
+
0 && (module.exports = {
|
|
93
|
+
generateGLSLForModule
|
|
94
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ShaderModule } from "../../../lib/shader-module/shader-module.js";
|
|
2
|
+
export type GLSLGenerationOptions = {
|
|
3
|
+
shaderLanguage: 'glsl';
|
|
4
|
+
uniforms: 'scoped-interface-blocks' | 'unscoped-interface-blocks' | 'uniforms';
|
|
5
|
+
};
|
|
6
|
+
export declare function generateGLSLForModule(module: ShaderModule, options: GLSLGenerationOptions): string;
|
|
7
|
+
//# sourceMappingURL=generate-glsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-glsl.d.ts","sourceRoot":"","sources":["../../../../src/lib/shader-generator/glsl/generate-glsl.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,oDAAiD;AAGtE,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,yBAAyB,GAAG,2BAA2B,GAAG,UAAU,CAAC;CAChF,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,UAEzF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
import { capitalize } from "../utils/capitalize.js";
|
|
5
|
+
export function generateGLSLForModule(module, options) {
|
|
6
|
+
return generateGLSLUniformDeclarations(module, options);
|
|
7
|
+
}
|
|
8
|
+
function generateGLSLUniformDeclarations(module, options) {
|
|
9
|
+
const glsl = [];
|
|
10
|
+
// => layout(std140) uniform UniformBlockName {
|
|
11
|
+
switch (options.uniforms) {
|
|
12
|
+
case 'scoped-interface-blocks':
|
|
13
|
+
case 'unscoped-interface-blocks':
|
|
14
|
+
glsl.push(`layout(std140) uniform ${capitalize(module.name)} {`);
|
|
15
|
+
break;
|
|
16
|
+
case 'uniforms':
|
|
17
|
+
// ignore
|
|
18
|
+
}
|
|
19
|
+
for (const [uniformName, uniformFormat] of Object.entries(module.uniformTypes || {})) {
|
|
20
|
+
if (typeof uniformFormat !== 'string') {
|
|
21
|
+
throw new Error(`Composite uniform types are not supported by GLSL shader generation: ${module.name}.${uniformName}`);
|
|
22
|
+
}
|
|
23
|
+
const glslUniformType = getGLSLUniformType(uniformFormat);
|
|
24
|
+
switch (options.uniforms) {
|
|
25
|
+
case 'scoped-interface-blocks':
|
|
26
|
+
// => layout(std140) uniform UniformBlockName {
|
|
27
|
+
glsl.push(` ${glslUniformType} ${uniformName};`);
|
|
28
|
+
break;
|
|
29
|
+
case 'unscoped-interface-blocks':
|
|
30
|
+
// => layout(std140) uniform UniformBlockName {
|
|
31
|
+
glsl.push(` ${glslUniformType} ${module.name}_${uniformName};`);
|
|
32
|
+
break;
|
|
33
|
+
case 'uniforms':
|
|
34
|
+
glsl.push(`uniform ${glslUniformType} ${module.name}_${uniformName};`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
switch (options.uniforms) {
|
|
38
|
+
case 'scoped-interface-blocks':
|
|
39
|
+
glsl.push(`} ${module.name};`);
|
|
40
|
+
break;
|
|
41
|
+
case 'unscoped-interface-blocks':
|
|
42
|
+
glsl.push('};');
|
|
43
|
+
break;
|
|
44
|
+
case 'uniforms':
|
|
45
|
+
// ignore
|
|
46
|
+
}
|
|
47
|
+
// final new line
|
|
48
|
+
glsl.push('');
|
|
49
|
+
return glsl.join('\n');
|
|
50
|
+
}
|
|
51
|
+
/** Map a luma.gl WebGPU style uniform type to GLSL */
|
|
52
|
+
function getGLSLUniformType(uniformFormat) {
|
|
53
|
+
const UNIFORM_TYPE_TO_GLSL = {
|
|
54
|
+
f32: 'float',
|
|
55
|
+
i32: 'int',
|
|
56
|
+
u32: 'uint',
|
|
57
|
+
'vec2<f32>': 'vec2',
|
|
58
|
+
'vec3<f32>': 'vec3',
|
|
59
|
+
'vec4<f32>': 'vec4',
|
|
60
|
+
'vec2<i32>': 'ivec2',
|
|
61
|
+
'vec3<i32>': 'ivec3',
|
|
62
|
+
'vec4<i32>': 'ivec4',
|
|
63
|
+
'vec2<u32>': 'uvec2',
|
|
64
|
+
'vec3<u32>': 'uvec3',
|
|
65
|
+
'vec4<u32>': 'uvec4',
|
|
66
|
+
'mat2x2<f32>': 'mat2',
|
|
67
|
+
'mat2x3<f32>': 'mat2x3',
|
|
68
|
+
'mat2x4<f32>': 'mat2x4',
|
|
69
|
+
'mat3x2<f32>': 'mat3x2',
|
|
70
|
+
'mat3x3<f32>': 'mat3',
|
|
71
|
+
'mat3x4<f32>': 'mat3x4',
|
|
72
|
+
'mat4x2<f32>': 'mat4x2',
|
|
73
|
+
'mat4x3<f32>': 'mat4x3',
|
|
74
|
+
'mat4x4<f32>': 'mat4'
|
|
75
|
+
};
|
|
76
|
+
const glsl = UNIFORM_TYPE_TO_GLSL[uniformFormat];
|
|
77
|
+
return glsl;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=generate-glsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-glsl.js","sourceRoot":"","sources":["../../../../src/lib/shader-generator/glsl/generate-glsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D,OAAO,EAAC,UAAU,EAAC,+BAA4B;AAO/C,MAAM,UAAU,qBAAqB,CAAC,MAAoB,EAAE,OAA8B;IACxF,OAAO,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,+BAA+B,CACtC,MAAoB,EACpB,OAA8B;IAE9B,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,+CAA+C;IAC/C,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,2BAA2B;YAC9B,IAAI,CAAC,IAAI,CAAC,0BAA0B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM;QACR,KAAK,UAAU,CAAC;QAChB,SAAS;IACX,CAAC;IAED,KAAK,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QACrF,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,wEAAwE,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE,CACrG,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,aAA8B,CAAC,CAAC;QAC3E,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,KAAK,yBAAyB;gBAC5B,+CAA+C;gBAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,eAAe,IAAI,WAAW,GAAG,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,2BAA2B;gBAC9B,+CAA+C;gBAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,eAAe,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC;gBACjE,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,IAAI,CAAC,WAAW,eAAe,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,yBAAyB;YAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,2BAA2B;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,UAAU,CAAC;QAChB,SAAS;IACX,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,sDAAsD;AACtD,SAAS,kBAAkB,CAAC,aAA4B;IACtD,MAAM,oBAAoB,GAAkC;QAC1D,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,MAAM;QACX,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,MAAM;QACrB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,MAAM;QACrB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,MAAM;KACtB,CAAC;IAEF,MAAM,IAAI,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var capitalize_exports = {};
|
|
19
|
+
__export(capitalize_exports, {
|
|
20
|
+
capitalize: () => capitalize
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(capitalize_exports);
|
|
23
|
+
function capitalize(str) {
|
|
24
|
+
return typeof str === "string" ? str.charAt(0).toUpperCase() + str.slice(1) : str;
|
|
25
|
+
}
|
|
26
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
27
|
+
0 && (module.exports = {
|
|
28
|
+
capitalize
|
|
29
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.d.ts","sourceRoot":"","sources":["../../../../src/lib/shader-generator/utils/capitalize.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
/**
|
|
5
|
+
* Capitalize first letter of a string
|
|
6
|
+
* @param {string} str
|
|
7
|
+
* @returns {string}
|
|
8
|
+
*/
|
|
9
|
+
export function capitalize(str) {
|
|
10
|
+
return typeof str === 'string' ? str.charAt(0).toUpperCase() + str.slice(1) : str;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=capitalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.js","sourceRoot":"","sources":["../../../../src/lib/shader-generator/utils/capitalize.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var generate_wgsl_exports = {};
|
|
19
|
+
__export(generate_wgsl_exports, {
|
|
20
|
+
generateWGSLForModule: () => generateWGSLForModule,
|
|
21
|
+
generateWGSLUniformDeclarations: () => generateWGSLUniformDeclarations
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(generate_wgsl_exports);
|
|
24
|
+
var import_capitalize = require("../utils/capitalize.cjs");
|
|
25
|
+
function generateWGSLForModule(module2, options) {
|
|
26
|
+
return generateWGSLUniformDeclarations(module2, options);
|
|
27
|
+
}
|
|
28
|
+
function generateWGSLUniformDeclarations(module2, options) {
|
|
29
|
+
const wgsl = [];
|
|
30
|
+
wgsl.push(`struct ${(0, import_capitalize.capitalize)(module2.name)} {`);
|
|
31
|
+
for (const [uniformName, uniformFormat] of Object.entries((module2 == null ? void 0 : module2.uniformTypes) || {})) {
|
|
32
|
+
if (typeof uniformFormat !== "string") {
|
|
33
|
+
throw new Error(`Composite uniform types are not supported by WGSL shader generation: ${module2.name}.${uniformName}`);
|
|
34
|
+
}
|
|
35
|
+
const wgslUniformType = uniformFormat;
|
|
36
|
+
wgsl.push(` ${uniformName} : ${wgslUniformType};`);
|
|
37
|
+
}
|
|
38
|
+
wgsl.push("};");
|
|
39
|
+
wgsl.push(`var<uniform> ${module2.name} : ${(0, import_capitalize.capitalize)(module2.name)};`);
|
|
40
|
+
return wgsl.join("\n");
|
|
41
|
+
}
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
generateWGSLForModule,
|
|
45
|
+
generateWGSLUniformDeclarations
|
|
46
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ShaderModule } from "../../../lib/shader-module/shader-module.js";
|
|
2
|
+
export type WGSLGenerationOptions = {
|
|
3
|
+
shaderLanguage: 'wgsl';
|
|
4
|
+
};
|
|
5
|
+
export declare function generateWGSLForModule(module: ShaderModule, options: WGSLGenerationOptions): string;
|
|
6
|
+
export declare function generateWGSLUniformDeclarations(module: ShaderModule, options: WGSLGenerationOptions): string;
|
|
7
|
+
//# sourceMappingURL=generate-wgsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-wgsl.d.ts","sourceRoot":"","sources":["../../../../src/lib/shader-generator/wgsl/generate-wgsl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,oDAAiD;AAGtE,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,UAEzF;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,qBAAqB,UAsB/B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
import { capitalize } from "../utils/capitalize.js";
|
|
5
|
+
export function generateWGSLForModule(module, options) {
|
|
6
|
+
return generateWGSLUniformDeclarations(module, options);
|
|
7
|
+
}
|
|
8
|
+
export function generateWGSLUniformDeclarations(module, options) {
|
|
9
|
+
const wgsl = [];
|
|
10
|
+
// => uniform UniformBlockName {
|
|
11
|
+
wgsl.push(`struct ${capitalize(module.name)} {`);
|
|
12
|
+
for (const [uniformName, uniformFormat] of Object.entries(module?.uniformTypes || {})) {
|
|
13
|
+
if (typeof uniformFormat !== 'string') {
|
|
14
|
+
throw new Error(`Composite uniform types are not supported by WGSL shader generation: ${module.name}.${uniformName}`);
|
|
15
|
+
}
|
|
16
|
+
const wgslUniformType = uniformFormat;
|
|
17
|
+
wgsl.push(` ${uniformName} : ${wgslUniformType};`);
|
|
18
|
+
}
|
|
19
|
+
wgsl.push('};');
|
|
20
|
+
wgsl.push(`var<uniform> ${module.name} : ${capitalize(module.name)};`);
|
|
21
|
+
return wgsl.join('\n');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=generate-wgsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-wgsl.js","sourceRoot":"","sources":["../../../../src/lib/shader-generator/wgsl/generate-wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAG5D,OAAO,EAAC,UAAU,EAAC,+BAA4B;AAM/C,MAAM,UAAU,qBAAqB,CAAC,MAAoB,EAAE,OAA8B;IACxF,OAAO,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAoB,EACpB,OAA8B;IAE9B,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,gCAAgC;IAChC,IAAI,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjD,KAAK,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QACtF,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,wEAAwE,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE,CACrG,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,aAAa,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,MAAM,eAAe,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,IAAI,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
|
+
var composite_shader_pass_exports = {};
|
|
15
|
+
module.exports = __toCommonJS(composite_shader_pass_exports);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { UniformValue } from "../utils/uniform-types.js";
|
|
2
|
+
import type { ShaderPass, ShaderPassInputSource, ShaderPassRenderTarget } from "./shader-pass.js";
|
|
3
|
+
/** One ordered step in a {@link CompositeShaderPass}. */
|
|
4
|
+
export type CompositeShaderPassStep<TargetNameT extends string = string> = {
|
|
5
|
+
shaderPass: ShaderPass<any, any, any, any>;
|
|
6
|
+
inputs?: Record<string, ShaderPassInputSource<TargetNameT>>;
|
|
7
|
+
output?: 'previous' | TargetNameT;
|
|
8
|
+
uniforms?: Record<string, UniformValue>;
|
|
9
|
+
};
|
|
10
|
+
/** Optional WebGPU compute stage that replaces equivalent fragment-only fallback passes. */
|
|
11
|
+
export type CompositeShaderPassComputeOptimization<TargetNameT extends string = string> = {
|
|
12
|
+
/** Stable identifier used for compute resources and command labels. */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Complete WGSL compute entry point with explicit binding locations. */
|
|
15
|
+
source: string;
|
|
16
|
+
/** Existing fragment module that owns the scalar runtime uniforms. */
|
|
17
|
+
uniformModule: string;
|
|
18
|
+
/** Explicit WGSL uniform-buffer binding name used by the compute entry point. */
|
|
19
|
+
uniformBinding: string;
|
|
20
|
+
/** Scalar uniform packing order used by the compute shader. */
|
|
21
|
+
uniformNames: readonly string[];
|
|
22
|
+
/** Composite-pass scalar defaults layered below per-frame runtime overrides. */
|
|
23
|
+
uniforms: Record<string, number>;
|
|
24
|
+
/** Logical source image consumed by the fused compute dispatch. */
|
|
25
|
+
input: ShaderPassInputSource<TargetNameT>;
|
|
26
|
+
/** Mapping from compute storage-texture names to owned render targets. */
|
|
27
|
+
outputs: Record<string, TargetNameT>;
|
|
28
|
+
/** Fragment pass names removed when the WebGPU optimization is supported. */
|
|
29
|
+
replacedPasses: readonly string[];
|
|
30
|
+
/** Compute workgroup width and height in highest-resolution output texels. */
|
|
31
|
+
workgroupSize: readonly [number, number];
|
|
32
|
+
};
|
|
33
|
+
/** Declarative composition of shader passes with owned targets and optional compute execution. */
|
|
34
|
+
export type CompositeShaderPass<TargetNameT extends string = string> = {
|
|
35
|
+
name: string;
|
|
36
|
+
renderTargets?: Record<TargetNameT, ShaderPassRenderTarget>;
|
|
37
|
+
steps: CompositeShaderPassStep<TargetNameT>[];
|
|
38
|
+
/** Optional fused WebGPU dispatch; existing fragment steps remain the portable fallback. */
|
|
39
|
+
compute?: CompositeShaderPassComputeOptimization<TargetNameT>;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=composite-shader-pass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite-shader-pass.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-module/composite-shader-pass.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,kCAA+B;AACzD,OAAO,KAAK,EAAC,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,EAAC,yBAAsB;AAE7F,yDAAyD;AACzD,MAAM,MAAM,uBAAuB,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,IAAI;IACzE,UAAU,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,sCAAsC,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,IAAI;IACxF,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,mEAAmE;IACnE,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,6EAA6E;IAC7E,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8EAA8E;IAC9E,aAAa,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C,CAAC;AAEF,kGAAkG;AAClG,MAAM,MAAM,mBAAmB,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,IAAI;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAC5D,KAAK,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;IAC9C,4FAA4F;IAC5F,OAAO,CAAC,EAAE,sCAAsC,CAAC,WAAW,CAAC,CAAC;CAC/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite-shader-pass.js","sourceRoot":"","sources":["../../../src/lib/shader-module/composite-shader-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var shader_module_dependencies_exports = {};
|
|
19
|
+
__export(shader_module_dependencies_exports, {
|
|
20
|
+
getShaderDependencies: () => getShaderDependencies,
|
|
21
|
+
getShaderModuleDependencies: () => getShaderModuleDependencies,
|
|
22
|
+
resolveModules: () => resolveModules
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(shader_module_dependencies_exports);
|
|
25
|
+
var import_shader_module = require("./shader-module.cjs");
|
|
26
|
+
var import_assert = require("../utils/assert.cjs");
|
|
27
|
+
function getShaderModuleDependencies(modules) {
|
|
28
|
+
const visited = /* @__PURE__ */ new Set();
|
|
29
|
+
const recursionStack = /* @__PURE__ */ new Set();
|
|
30
|
+
const result = [];
|
|
31
|
+
const nameToModule = /* @__PURE__ */ new Map();
|
|
32
|
+
function checkNameCollision(module2) {
|
|
33
|
+
const existing = nameToModule.get(module2.name);
|
|
34
|
+
if (existing && existing !== module2) {
|
|
35
|
+
throw new Error(`Shader module name collision: Multiple different module objects share the name "${module2.name}". Each module object must have a unique name.`);
|
|
36
|
+
}
|
|
37
|
+
nameToModule.set(module2.name, module2);
|
|
38
|
+
}
|
|
39
|
+
function visit(module2, path) {
|
|
40
|
+
if (recursionStack.has(module2)) {
|
|
41
|
+
const cyclePath = [...path, module2.name].join(" -> ");
|
|
42
|
+
throw new Error(`Shader module dependency cycle detected: ${cyclePath}`);
|
|
43
|
+
}
|
|
44
|
+
if (visited.has(module2)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
checkNameCollision(module2);
|
|
48
|
+
recursionStack.add(module2);
|
|
49
|
+
const newPath = [...path, module2.name];
|
|
50
|
+
if (module2.dependencies) {
|
|
51
|
+
for (const dep of module2.dependencies) {
|
|
52
|
+
visit(dep, newPath);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
recursionStack.delete(module2);
|
|
56
|
+
visited.add(module2);
|
|
57
|
+
result.push(module2);
|
|
58
|
+
}
|
|
59
|
+
for (const module2 of modules) {
|
|
60
|
+
visit(module2, []);
|
|
61
|
+
}
|
|
62
|
+
const interfaceProviders = /* @__PURE__ */ new Set();
|
|
63
|
+
for (const module2 of result) {
|
|
64
|
+
if (module2.implements !== void 0) {
|
|
65
|
+
(0, import_assert.assert)(!interfaceProviders.has(module2.implements));
|
|
66
|
+
interfaceProviders.add(module2.implements);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
(0, import_shader_module.initializeShaderModules)(result);
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
function getShaderDependencies(modules) {
|
|
73
|
+
return getShaderModuleDependencies(modules);
|
|
74
|
+
}
|
|
75
|
+
function resolveModules(modules) {
|
|
76
|
+
return getShaderDependencies(modules);
|
|
77
|
+
}
|
|
78
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
79
|
+
0 && (module.exports = {
|
|
80
|
+
getShaderDependencies,
|
|
81
|
+
getShaderModuleDependencies,
|
|
82
|
+
resolveModules
|
|
83
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ShaderModule } from "./shader-module.js";
|
|
2
|
+
type AbstractModule = {
|
|
3
|
+
name: string;
|
|
4
|
+
implements?: string;
|
|
5
|
+
dependencies?: AbstractModule[];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Takes a list of shader module names and returns a new list of
|
|
9
|
+
* shader module names that includes all dependencies, sorted so
|
|
10
|
+
* that modules that are dependencies of other modules come first.
|
|
11
|
+
*
|
|
12
|
+
* If the shader glsl code from the returned modules is concatenated
|
|
13
|
+
* in the reverse order, it is guaranteed that all functions be resolved and
|
|
14
|
+
* that all function and variable definitions come before use.
|
|
15
|
+
*
|
|
16
|
+
* @param modules - Array of modules (inline modules or module names)
|
|
17
|
+
* @return - Array of modules
|
|
18
|
+
*/
|
|
19
|
+
export declare function getShaderModuleDependencies<T extends AbstractModule>(modules: T[]): T[];
|
|
20
|
+
/**
|
|
21
|
+
* Takes a list of shader module names and returns a new list of
|
|
22
|
+
* shader module names that includes all dependencies, sorted so
|
|
23
|
+
* that modules that are dependencies of other modules come first.
|
|
24
|
+
*
|
|
25
|
+
* If the shader glsl code from the returned modules is concatenated
|
|
26
|
+
* in the reverse order, it is guaranteed that all functions be resolved and
|
|
27
|
+
* that all function and variable definitions come before use.
|
|
28
|
+
*
|
|
29
|
+
* @param modules - Array of modules (inline modules or module names)
|
|
30
|
+
* @return - Array of modules
|
|
31
|
+
*/
|
|
32
|
+
export declare function getShaderDependencies(modules: ShaderModule[]): ShaderModule[];
|
|
33
|
+
/**
|
|
34
|
+
* Instantiate shader modules and resolve any dependencies
|
|
35
|
+
* @deprecated Use getShaderDpendencies
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveModules(modules: ShaderModule[]): ShaderModule[];
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=shader-module-dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-module-dependencies.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-module/shader-module-dependencies.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAA0B,2BAAwB;AAKtE,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CA0EvF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAE7E;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAEtE"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
import { initializeShaderModules } from "./shader-module.js";
|
|
5
|
+
import { assert } from "../utils/assert.js";
|
|
6
|
+
/**
|
|
7
|
+
* Takes a list of shader module names and returns a new list of
|
|
8
|
+
* shader module names that includes all dependencies, sorted so
|
|
9
|
+
* that modules that are dependencies of other modules come first.
|
|
10
|
+
*
|
|
11
|
+
* If the shader glsl code from the returned modules is concatenated
|
|
12
|
+
* in the reverse order, it is guaranteed that all functions be resolved and
|
|
13
|
+
* that all function and variable definitions come before use.
|
|
14
|
+
*
|
|
15
|
+
* @param modules - Array of modules (inline modules or module names)
|
|
16
|
+
* @return - Array of modules
|
|
17
|
+
*/
|
|
18
|
+
export function getShaderModuleDependencies(modules) {
|
|
19
|
+
// Data structures for topological sort
|
|
20
|
+
const visited = new Set(); // Fully processed modules (black nodes)
|
|
21
|
+
const recursionStack = new Set(); // Modules in current DFS path (gray nodes)
|
|
22
|
+
const result = []; // Post-order traversal result
|
|
23
|
+
const nameToModule = new Map(); // Name collision detection
|
|
24
|
+
/**
|
|
25
|
+
* Check for name collisions between distinct module objects
|
|
26
|
+
*/
|
|
27
|
+
function checkNameCollision(module) {
|
|
28
|
+
const existing = nameToModule.get(module.name);
|
|
29
|
+
if (existing && existing !== module) {
|
|
30
|
+
throw new Error(`Shader module name collision: Multiple different module objects share the name "${module.name}". ` +
|
|
31
|
+
`Each module object must have a unique name.`);
|
|
32
|
+
}
|
|
33
|
+
nameToModule.set(module.name, module);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* DFS visit function for topological sort with cycle detection
|
|
37
|
+
*/
|
|
38
|
+
function visit(module, path) {
|
|
39
|
+
// Cycle detection: if module is in recursion stack, we've found a back edge
|
|
40
|
+
if (recursionStack.has(module)) {
|
|
41
|
+
const cyclePath = [...path, module.name].join(' -> ');
|
|
42
|
+
throw new Error(`Shader module dependency cycle detected: ${cyclePath}`);
|
|
43
|
+
}
|
|
44
|
+
// Already processed: skip if visited
|
|
45
|
+
if (visited.has(module)) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Check for name collision before processing
|
|
49
|
+
checkNameCollision(module);
|
|
50
|
+
// Mark as visiting (white -> gray)
|
|
51
|
+
recursionStack.add(module);
|
|
52
|
+
const newPath = [...path, module.name];
|
|
53
|
+
// Recursively visit all dependencies
|
|
54
|
+
if (module.dependencies) {
|
|
55
|
+
for (const dep of module.dependencies) {
|
|
56
|
+
visit(dep, newPath);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Mark as visited (gray -> black)
|
|
60
|
+
recursionStack.delete(module);
|
|
61
|
+
visited.add(module);
|
|
62
|
+
// Post-order: add to result after all dependencies processed
|
|
63
|
+
result.push(module);
|
|
64
|
+
}
|
|
65
|
+
// Start DFS from each root module
|
|
66
|
+
for (const module of modules) {
|
|
67
|
+
visit(module, []);
|
|
68
|
+
}
|
|
69
|
+
const interfaceProviders = new Set();
|
|
70
|
+
for (const module of result) {
|
|
71
|
+
if (module.implements !== undefined) {
|
|
72
|
+
// Distinct modules cannot provide the same exclusive shader interface.
|
|
73
|
+
assert(!interfaceProviders.has(module.implements));
|
|
74
|
+
interfaceProviders.add(module.implements);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
initializeShaderModules(result);
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Takes a list of shader module names and returns a new list of
|
|
82
|
+
* shader module names that includes all dependencies, sorted so
|
|
83
|
+
* that modules that are dependencies of other modules come first.
|
|
84
|
+
*
|
|
85
|
+
* If the shader glsl code from the returned modules is concatenated
|
|
86
|
+
* in the reverse order, it is guaranteed that all functions be resolved and
|
|
87
|
+
* that all function and variable definitions come before use.
|
|
88
|
+
*
|
|
89
|
+
* @param modules - Array of modules (inline modules or module names)
|
|
90
|
+
* @return - Array of modules
|
|
91
|
+
*/
|
|
92
|
+
export function getShaderDependencies(modules) {
|
|
93
|
+
return getShaderModuleDependencies(modules);
|
|
94
|
+
}
|
|
95
|
+
// DEPRECATED
|
|
96
|
+
/**
|
|
97
|
+
* Instantiate shader modules and resolve any dependencies
|
|
98
|
+
* @deprecated Use getShaderDpendencies
|
|
99
|
+
*/
|
|
100
|
+
export function resolveModules(modules) {
|
|
101
|
+
return getShaderDependencies(modules);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=shader-module-dependencies.js.map
|