@luma.gl/shaders 0.0.0-stage → 10.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +38 -0
- package/README.md +25 -2
- package/dist/dist.dev.js +19880 -0
- package/dist/dist.min.js +12192 -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 +128 -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 +120 -0
- package/dist/lib/preprocessor/preprocessor.js.map +1 -0
- package/dist/lib/shader-assembler-base.cjs +132 -0
- package/dist/lib/shader-assembler-base.d.ts +51 -0
- package/dist/lib/shader-assembler-base.d.ts.map +1 -0
- package/dist/lib/shader-assembler-base.js +127 -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 +181 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts +70 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts.map +1 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.js +208 -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 +498 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts +70 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts.map +1 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.js +480 -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 +132 -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-injection-targets.cjs +103 -0
- package/dist/lib/shader-assembly/shader-injection-targets.d.ts +46 -0
- package/dist/lib/shader-assembly/shader-injection-targets.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-injection-targets.js +83 -0
- package/dist/lib/shader-assembly/shader-injection-targets.js.map +1 -0
- package/dist/lib/shader-assembly/shader-injections.cjs +204 -0
- package/dist/lib/shader-assembly/shader-injections.d.ts +49 -0
- package/dist/lib/shader-assembly/shader-injections.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-injections.js +207 -0
- package/dist/lib/shader-assembly/shader-injections.js.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.cjs +434 -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 +438 -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-injection-target-names.cjs +163 -0
- package/dist/lib/shader-assembly/wgsl-injection-target-names.d.ts +8 -0
- package/dist/lib/shader-assembly/wgsl-injection-target-names.d.ts.map +1 -0
- package/dist/lib/shader-assembly/wgsl-injection-target-names.js +145 -0
- package/dist/lib/shader-assembly/wgsl-injection-target-names.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 +99 -0
- package/dist/lib/shader-module/shader-module.d.ts +94 -0
- package/dist/lib/shader-module/shader-module.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-module.js +101 -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 +156 -0
- package/dist/lib/shader-plugin.d.ts +61 -0
- package/dist/lib/shader-plugin.d.ts.map +1 -0
- package/dist/lib/shader-plugin.js +147 -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 +142 -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 +119 -0
- package/dist/modules/engine/clip/clip.js.map +1 -0
- package/dist/modules/engine/filter/filter.cjs +103 -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 +80 -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 +53 -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 +7 -0
- package/dist/types.js.map +1 -0
- package/dist/wgsl.cjs +55 -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 +157 -0
- package/src/lib/shader-assembler-base.ts +169 -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 +830 -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 +146 -0
- package/src/lib/shader-assembly/shader-injection-targets.ts +148 -0
- package/src/lib/shader-assembly/shader-injections.ts +298 -0
- package/src/lib/shader-assembly/shader-plugin-varyings.ts +555 -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-injection-target-names.ts +180 -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 +237 -0
- package/src/lib/shader-module/shader-pass.ts +69 -0
- package/src/lib/shader-plugin.ts +236 -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 +139 -0
- package/src/modules/engine/filter/filter.ts +99 -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 +157 -0
- package/src/types.ts +116 -0
- package/src/wgsl.ts +34 -0
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import type {PrimitiveDataType} from './primitive-data-types';
|
|
6
|
+
import type {CompositeShaderType, VariableShaderType} from './shader-types';
|
|
7
|
+
import {alignTo} from './align-to';
|
|
8
|
+
import {getVariableShaderTypeInfo, resolveVariableShaderTypeAlias} from './shader-type-decoder';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Describes the packing for one flattened field in a shader block.
|
|
12
|
+
*
|
|
13
|
+
* Offsets, sizes, and strides are expressed in 32-bit words so the result can
|
|
14
|
+
* be consumed directly by typed-array writers.
|
|
15
|
+
*/
|
|
16
|
+
export type ShaderBlockLayoutEntry = {
|
|
17
|
+
/** Offset in 32-bit words from the start of the block. */
|
|
18
|
+
offset: number;
|
|
19
|
+
/** Occupied size in 32-bit words, excluding external array stride. */
|
|
20
|
+
size: number;
|
|
21
|
+
/** Number of logical scalar components in the declared value. */
|
|
22
|
+
components: number;
|
|
23
|
+
/** Number of matrix columns, or `1` for scalars and vectors. */
|
|
24
|
+
columns: number;
|
|
25
|
+
/** Number of rows in each column, or vector length for vectors. */
|
|
26
|
+
rows: number;
|
|
27
|
+
/** Distance between matrix columns in 32-bit words. */
|
|
28
|
+
columnStride: number;
|
|
29
|
+
/** Canonical shader type after alias resolution. */
|
|
30
|
+
shaderType: VariableShaderType;
|
|
31
|
+
/** Scalar data type used to write the value. */
|
|
32
|
+
type: PrimitiveDataType;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Options for {@link makeShaderBlockLayout}.
|
|
37
|
+
*/
|
|
38
|
+
export type ShaderBlockLayoutOptions = {
|
|
39
|
+
/**
|
|
40
|
+
* Packing rules to apply when building the layout.
|
|
41
|
+
*
|
|
42
|
+
* Defaults to `'std140'`.
|
|
43
|
+
*/
|
|
44
|
+
layout?: 'std140' | 'wgsl-uniform' | 'wgsl-storage';
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Immutable layout metadata for a uniform or storage-style shader block.
|
|
49
|
+
*/
|
|
50
|
+
export type ShaderBlockLayout = {
|
|
51
|
+
/** Packing rules used when this layout was created. */
|
|
52
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage';
|
|
53
|
+
/** Exact number of packed bytes required by the block. */
|
|
54
|
+
byteLength: number;
|
|
55
|
+
/** Original composite shader type declarations keyed by top-level field. */
|
|
56
|
+
uniformTypes: Record<string, CompositeShaderType>;
|
|
57
|
+
/** Flattened leaf field layouts keyed by field path. */
|
|
58
|
+
fields: Record<string, ShaderBlockLayoutEntry>;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Builds a deterministic shader-block layout from composite shader type declarations.
|
|
63
|
+
*
|
|
64
|
+
* The returned value is pure layout metadata. It records the packed field
|
|
65
|
+
* offsets and exact packed byte length, but it does not allocate buffers or
|
|
66
|
+
* serialize values.
|
|
67
|
+
*/
|
|
68
|
+
export function makeShaderBlockLayout(
|
|
69
|
+
uniformTypes: Readonly<Record<string, CompositeShaderType>>,
|
|
70
|
+
options: ShaderBlockLayoutOptions = {}
|
|
71
|
+
): ShaderBlockLayout {
|
|
72
|
+
const copiedUniformTypes = {...uniformTypes};
|
|
73
|
+
const layout = options.layout ?? 'std140';
|
|
74
|
+
const fields: Record<string, ShaderBlockLayoutEntry> = {};
|
|
75
|
+
|
|
76
|
+
let size = 0;
|
|
77
|
+
for (const [key, uniformType] of Object.entries(copiedUniformTypes)) {
|
|
78
|
+
size = addToLayout(fields, key, uniformType, size, layout);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
size = alignTo(size, getTypeAlignment(copiedUniformTypes, layout));
|
|
82
|
+
|
|
83
|
+
return {
|
|
84
|
+
layout,
|
|
85
|
+
byteLength: size * 4,
|
|
86
|
+
uniformTypes: copiedUniformTypes,
|
|
87
|
+
fields
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Returns the layout metadata for a scalar, vector, or matrix leaf type.
|
|
93
|
+
*
|
|
94
|
+
* The result includes both the occupied size in 32-bit words and the alignment
|
|
95
|
+
* requirement that must be applied before placing the value in a shader block.
|
|
96
|
+
*/
|
|
97
|
+
export function getLeafLayoutInfo(
|
|
98
|
+
type: VariableShaderType,
|
|
99
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'
|
|
100
|
+
): Omit<ShaderBlockLayoutEntry, 'offset'> & {alignment: 1 | 2 | 4} {
|
|
101
|
+
const resolvedType = resolveVariableShaderTypeAlias(type);
|
|
102
|
+
const decodedType = getVariableShaderTypeInfo(resolvedType);
|
|
103
|
+
const matrixMatch = /^mat(\d)x(\d)<.+>$/.exec(resolvedType);
|
|
104
|
+
|
|
105
|
+
if (matrixMatch) {
|
|
106
|
+
const columns = Number(matrixMatch[1]);
|
|
107
|
+
const rows = Number(matrixMatch[2]);
|
|
108
|
+
const columnInfo = getVectorLayoutInfo(
|
|
109
|
+
rows as 2 | 3 | 4,
|
|
110
|
+
resolvedType,
|
|
111
|
+
decodedType.type,
|
|
112
|
+
layout
|
|
113
|
+
);
|
|
114
|
+
const columnStride = getMatrixColumnStride(columnInfo.size, columnInfo.alignment, layout);
|
|
115
|
+
|
|
116
|
+
return {
|
|
117
|
+
alignment: columnInfo.alignment,
|
|
118
|
+
size: columns * columnStride,
|
|
119
|
+
components: columns * rows,
|
|
120
|
+
columns,
|
|
121
|
+
rows,
|
|
122
|
+
columnStride,
|
|
123
|
+
shaderType: resolvedType,
|
|
124
|
+
type: decodedType.type
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
const vectorMatch = /^vec(\d)<.+>$/.exec(resolvedType);
|
|
129
|
+
if (vectorMatch) {
|
|
130
|
+
return getVectorLayoutInfo(
|
|
131
|
+
Number(vectorMatch[1]) as 2 | 3 | 4,
|
|
132
|
+
resolvedType,
|
|
133
|
+
decodedType.type,
|
|
134
|
+
layout
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return {
|
|
139
|
+
alignment: 1,
|
|
140
|
+
size: 1,
|
|
141
|
+
components: 1,
|
|
142
|
+
columns: 1,
|
|
143
|
+
rows: 1,
|
|
144
|
+
columnStride: 1,
|
|
145
|
+
shaderType: resolvedType,
|
|
146
|
+
type: decodedType.type
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Type guard for composite struct declarations.
|
|
152
|
+
*/
|
|
153
|
+
export function isCompositeShaderTypeStruct(
|
|
154
|
+
value: CompositeShaderType
|
|
155
|
+
): value is Record<string, CompositeShaderType> {
|
|
156
|
+
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Recursively adds a composite type to the flattened field map.
|
|
161
|
+
*
|
|
162
|
+
* @returns The next free 32-bit-word offset after the inserted type.
|
|
163
|
+
*/
|
|
164
|
+
function addToLayout(
|
|
165
|
+
fields: Record<string, ShaderBlockLayoutEntry>,
|
|
166
|
+
name: string,
|
|
167
|
+
type: CompositeShaderType,
|
|
168
|
+
offset: number,
|
|
169
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'
|
|
170
|
+
): number {
|
|
171
|
+
if (typeof type === 'string') {
|
|
172
|
+
const info = getLeafLayoutInfo(type, layout);
|
|
173
|
+
const alignedOffset = alignTo(offset, info.alignment);
|
|
174
|
+
fields[name] = {
|
|
175
|
+
offset: alignedOffset,
|
|
176
|
+
...info
|
|
177
|
+
};
|
|
178
|
+
return alignedOffset + info.size;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (Array.isArray(type)) {
|
|
182
|
+
if (Array.isArray(type[0])) {
|
|
183
|
+
throw new Error(`Nested arrays are not supported for ${name}`);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const elementType = type[0] as CompositeShaderType;
|
|
187
|
+
const length = type[1] as number;
|
|
188
|
+
const stride = getArrayStride(elementType, layout);
|
|
189
|
+
const arrayOffset = alignTo(offset, getTypeAlignment(type, layout));
|
|
190
|
+
|
|
191
|
+
for (let i = 0; i < length; i++) {
|
|
192
|
+
addToLayout(fields, `${name}[${i}]`, elementType, arrayOffset + i * stride, layout);
|
|
193
|
+
}
|
|
194
|
+
return arrayOffset + stride * length;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (isCompositeShaderTypeStruct(type)) {
|
|
198
|
+
const structAlignment = getTypeAlignment(type, layout);
|
|
199
|
+
let structOffset = alignTo(offset, structAlignment);
|
|
200
|
+
for (const [memberName, memberType] of Object.entries(type)) {
|
|
201
|
+
structOffset = addToLayout(fields, `${name}.${memberName}`, memberType, structOffset, layout);
|
|
202
|
+
}
|
|
203
|
+
return alignTo(structOffset, structAlignment);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
throw new Error(`Unsupported CompositeShaderType for ${name}`);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Returns the occupied size of a composite type in 32-bit words.
|
|
211
|
+
*/
|
|
212
|
+
function getTypeSize(
|
|
213
|
+
type: CompositeShaderType,
|
|
214
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'
|
|
215
|
+
): number {
|
|
216
|
+
if (typeof type === 'string') {
|
|
217
|
+
return getLeafLayoutInfo(type, layout).size;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
if (Array.isArray(type)) {
|
|
221
|
+
const elementType = type[0] as CompositeShaderType;
|
|
222
|
+
const length = type[1] as number;
|
|
223
|
+
|
|
224
|
+
if (Array.isArray(elementType)) {
|
|
225
|
+
throw new Error('Nested arrays are not supported');
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return getArrayStride(elementType, layout) * length;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
let size = 0;
|
|
232
|
+
for (const memberType of Object.values(type)) {
|
|
233
|
+
const compositeMemberType = memberType as CompositeShaderType;
|
|
234
|
+
size = alignTo(size, getTypeAlignment(compositeMemberType, layout));
|
|
235
|
+
size += getTypeSize(compositeMemberType, layout);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
return alignTo(size, getTypeAlignment(type, layout));
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Returns the required alignment of a composite type in 32-bit words.
|
|
243
|
+
*/
|
|
244
|
+
function getTypeAlignment(
|
|
245
|
+
type: CompositeShaderType,
|
|
246
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'
|
|
247
|
+
): 1 | 2 | 4 {
|
|
248
|
+
if (typeof type === 'string') {
|
|
249
|
+
return getLeafLayoutInfo(type, layout).alignment;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (Array.isArray(type)) {
|
|
253
|
+
const elementType = type[0] as CompositeShaderType;
|
|
254
|
+
const elementAlignment = getTypeAlignment(elementType, layout);
|
|
255
|
+
return uses16ByteArrayAlignment(layout)
|
|
256
|
+
? (Math.max(elementAlignment, 4) as 1 | 2 | 4)
|
|
257
|
+
: elementAlignment;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
let maxAlignment: 1 | 2 | 4 = 1;
|
|
261
|
+
for (const memberType of Object.values(type)) {
|
|
262
|
+
const memberAlignment = getTypeAlignment(memberType as CompositeShaderType, layout);
|
|
263
|
+
maxAlignment = Math.max(maxAlignment, memberAlignment) as 1 | 2 | 4;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return uses16ByteStructAlignment(layout)
|
|
267
|
+
? (Math.max(maxAlignment, 4) as 1 | 2 | 4)
|
|
268
|
+
: maxAlignment;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Returns the layout metadata for a vector leaf type.
|
|
273
|
+
*/
|
|
274
|
+
function getVectorLayoutInfo(
|
|
275
|
+
components: 2 | 3 | 4,
|
|
276
|
+
shaderType: VariableShaderType,
|
|
277
|
+
type: PrimitiveDataType,
|
|
278
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'
|
|
279
|
+
): Omit<ShaderBlockLayoutEntry, 'offset'> & {alignment: 1 | 2 | 4} {
|
|
280
|
+
return {
|
|
281
|
+
alignment: components === 2 ? 2 : 4,
|
|
282
|
+
size: components === 3 ? 3 : components,
|
|
283
|
+
components,
|
|
284
|
+
columns: 1,
|
|
285
|
+
rows: components,
|
|
286
|
+
columnStride: components === 3 ? 3 : components,
|
|
287
|
+
shaderType,
|
|
288
|
+
type
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Returns the stride of an array element in 32-bit words.
|
|
294
|
+
*
|
|
295
|
+
* This includes any layout-specific padding between adjacent array elements.
|
|
296
|
+
*/
|
|
297
|
+
function getArrayStride(
|
|
298
|
+
elementType: CompositeShaderType,
|
|
299
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'
|
|
300
|
+
): number {
|
|
301
|
+
const elementSize = getTypeSize(elementType, layout);
|
|
302
|
+
const elementAlignment = getTypeAlignment(elementType, layout);
|
|
303
|
+
return getArrayLikeStride(elementSize, elementAlignment, layout);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Returns the common stride rule shared by array-like elements in the target layout.
|
|
308
|
+
*/
|
|
309
|
+
function getArrayLikeStride(
|
|
310
|
+
size: number,
|
|
311
|
+
alignment: 1 | 2 | 4,
|
|
312
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'
|
|
313
|
+
): number {
|
|
314
|
+
return alignTo(size, uses16ByteArrayAlignment(layout) ? 4 : alignment);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Returns the stride of a matrix column in 32-bit words.
|
|
319
|
+
*/
|
|
320
|
+
function getMatrixColumnStride(
|
|
321
|
+
size: number,
|
|
322
|
+
alignment: 1 | 2 | 4,
|
|
323
|
+
layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'
|
|
324
|
+
): number {
|
|
325
|
+
return layout === 'std140' ? 4 : alignTo(size, alignment);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Returns `true` when arrays must be rounded up to 16-byte boundaries.
|
|
330
|
+
*/
|
|
331
|
+
function uses16ByteArrayAlignment(layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'): boolean {
|
|
332
|
+
return layout === 'std140' || layout === 'wgsl-uniform';
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Returns `true` when structs must be rounded up to 16-byte boundaries.
|
|
337
|
+
*/
|
|
338
|
+
function uses16ByteStructAlignment(layout: 'std140' | 'wgsl-uniform' | 'wgsl-storage'): boolean {
|
|
339
|
+
return layout === 'std140' || layout === 'wgsl-uniform';
|
|
340
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import type {TextureFormat} from './texture-formats';
|
|
6
|
+
import type {CompositeShaderType, VariableShaderType, AttributeShaderType} from './shader-types';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Describes all shader binding points for a `RenderPipeline` or `ComputePipeline`
|
|
10
|
+
* A ShaderLayout describes the static structure of a shader pipeline.
|
|
11
|
+
* It also allows the numeric locations in the shader to accessed with the same variable names
|
|
12
|
+
* used in the shader.
|
|
13
|
+
* @note A ShaderLayout needs to be complemented by a BufferLayout that describes
|
|
14
|
+
* the actual memory layout of the buffers that will be used with the pipeline.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```
|
|
18
|
+
device.createRenderPipeline({
|
|
19
|
+
shaderLayout: [
|
|
20
|
+
attributes: [
|
|
21
|
+
{name: 'instancePositions', location: 0, format: 'vec3<f32>', stepMode: 'instance'},
|
|
22
|
+
{name: 'instanceVelocities', location: 1, format: 'vec3<f32>', stepMode: 'instance'},
|
|
23
|
+
{name: 'vertexPositions', location: 2, format: 'vec3<f32>', stepMode: 'vertex'}
|
|
24
|
+
],
|
|
25
|
+
bindings: [...]
|
|
26
|
+
]
|
|
27
|
+
})
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export type ShaderLayout = {
|
|
31
|
+
/** All attributes, their locations, and basic type information. Also an auto-deduced step mode */
|
|
32
|
+
attributes: AttributeDeclaration[];
|
|
33
|
+
/** All binding points (textures, samplers, uniform buffers) with their locations and type */
|
|
34
|
+
bindings: BindingDeclaration[];
|
|
35
|
+
/** WebGL only (WebGPU use bindings and uniform buffers) */
|
|
36
|
+
uniforms?: any[];
|
|
37
|
+
/** WebGL2 only (WebGPU use compute shaders) */
|
|
38
|
+
varyings?: VaryingBinding[];
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export type ComputeShaderLayout = {
|
|
42
|
+
/** All binding points (textures, samplers, uniform buffers) with their locations and type */
|
|
43
|
+
bindings: BindingDeclaration[];
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Declares one for attributes
|
|
48
|
+
*/
|
|
49
|
+
export type AttributeDeclaration = {
|
|
50
|
+
/** The name of this attribute in the shader */
|
|
51
|
+
name: string;
|
|
52
|
+
/** The index into the GPU's vertex array buffer bank (usually between 0-15) */
|
|
53
|
+
location: number;
|
|
54
|
+
/** WebGPU-style shader type. The declared format of the attribute in the shader code. Buffer's vertex format needs to map to this. */
|
|
55
|
+
type: AttributeShaderType;
|
|
56
|
+
/** Inferred from attribute name. @note Technically not part of static structure of shader */
|
|
57
|
+
stepMode?: 'vertex' | 'instance';
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// BINDING LAYOUT TYPES
|
|
61
|
+
|
|
62
|
+
/** ShaderLayout for bindings */
|
|
63
|
+
export type BindingDeclaration =
|
|
64
|
+
| UniformBufferBindingLayout
|
|
65
|
+
| StorageBufferBindingLayout
|
|
66
|
+
| TextureBindingLayout
|
|
67
|
+
| ExternalTextureBindingLayout
|
|
68
|
+
| SamplerBindingLayout
|
|
69
|
+
| StorageTextureBindingLayout;
|
|
70
|
+
|
|
71
|
+
export type UniformBufferBindingLayout = {
|
|
72
|
+
type: 'uniform';
|
|
73
|
+
/** Name of the binding. Used by luma to map bindings by name */
|
|
74
|
+
name: string;
|
|
75
|
+
/** Bind group index. Always 0 in WebGL */
|
|
76
|
+
group: number;
|
|
77
|
+
/** Binding index within the bind group */
|
|
78
|
+
location: number;
|
|
79
|
+
/** Which shader stages can access this binding */
|
|
80
|
+
visibility?: number;
|
|
81
|
+
hasDynamicOffset?: boolean;
|
|
82
|
+
minBindingSize?: number;
|
|
83
|
+
/** The uniforms in this uniform buffer */
|
|
84
|
+
uniforms?: UniformInfo[];
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/** Host-side std140 metadata for a named GLSL uniform block. */
|
|
88
|
+
export type UniformBlockLayout = {
|
|
89
|
+
/** GLSL uniform block name. */
|
|
90
|
+
name: string;
|
|
91
|
+
/** Ordered member types used to derive the std140 layout. */
|
|
92
|
+
uniformTypes: Readonly<Record<string, CompositeShaderType>>;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export type UniformInfo = {
|
|
96
|
+
name: string;
|
|
97
|
+
format: VariableShaderType;
|
|
98
|
+
type?: string;
|
|
99
|
+
arrayLength: number;
|
|
100
|
+
byteOffset: number;
|
|
101
|
+
byteStride: number;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export type StorageBufferBindingLayout = {
|
|
105
|
+
type: 'storage' | 'read-only-storage';
|
|
106
|
+
/** Name of the binding. Used by luma to map bindings by name */
|
|
107
|
+
name: string;
|
|
108
|
+
/** Bind group index. Always 0 in WebGL */
|
|
109
|
+
group: number;
|
|
110
|
+
/** Binding index within the bind group */
|
|
111
|
+
location: number;
|
|
112
|
+
/** Which shader stages can access this binding */
|
|
113
|
+
visibility?: number;
|
|
114
|
+
hasDynamicOffset?: boolean;
|
|
115
|
+
minBindingSize?: number;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
export type TextureBindingLayout = {
|
|
119
|
+
type: 'texture';
|
|
120
|
+
/** Name of the binding. Used by luma to map bindings by name */
|
|
121
|
+
name: string;
|
|
122
|
+
/** Bind group index. Always 0 in WebGL */
|
|
123
|
+
group: number;
|
|
124
|
+
/** Binding index within the bind group */
|
|
125
|
+
location: number;
|
|
126
|
+
/** Which shader stages can access this binding */
|
|
127
|
+
visibility?: number;
|
|
128
|
+
viewDimension?: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d'; // default: '2d'
|
|
129
|
+
sampleType?: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint'; // default: 'float'
|
|
130
|
+
multisampled?: boolean;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/** Shader binding declaration for a WebGPU `texture_external` slot. */
|
|
134
|
+
export type ExternalTextureBindingLayout = {
|
|
135
|
+
type: 'external-texture';
|
|
136
|
+
/** Name of the binding. Used by luma to map bindings by name */
|
|
137
|
+
name: string;
|
|
138
|
+
/** Bind group index. Always 0 in WebGL */
|
|
139
|
+
group: number;
|
|
140
|
+
/** Binding index within the bind group */
|
|
141
|
+
location: number;
|
|
142
|
+
/** Which shader stages can access this binding */
|
|
143
|
+
visibility?: number;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export type SamplerBindingLayout = {
|
|
147
|
+
type: 'sampler';
|
|
148
|
+
/** Name of the binding. Used by luma to map bindings by name */
|
|
149
|
+
name: string;
|
|
150
|
+
/** Bind group index. Always 0 in WebGL */
|
|
151
|
+
group: number;
|
|
152
|
+
/** Binding index within the bind group */
|
|
153
|
+
location: number;
|
|
154
|
+
/** Which shader stages can access this binding */
|
|
155
|
+
visibility?: number;
|
|
156
|
+
samplerType?: 'filtering' | 'non-filtering' | 'comparison'; // default: filtering
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
export type StorageTextureBindingLayout = {
|
|
160
|
+
type: 'storage';
|
|
161
|
+
/** Name of the binding. Used by luma to map bindings by name */
|
|
162
|
+
name: string;
|
|
163
|
+
/** Bind group index. Always 0 in WebGL */
|
|
164
|
+
group: number;
|
|
165
|
+
/** Binding index within the bind group */
|
|
166
|
+
location: number;
|
|
167
|
+
/** Which shader stages can access this binding */
|
|
168
|
+
visibility?: number;
|
|
169
|
+
access?: 'write-only' | 'read-only' | 'read-write';
|
|
170
|
+
format: TextureFormat;
|
|
171
|
+
viewDimension?: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
// SHADER LAYOUTS
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Describes a varying binding for a program
|
|
178
|
+
* @deprecated Varyings are WebGL-only
|
|
179
|
+
*/
|
|
180
|
+
export type VaryingBinding = {
|
|
181
|
+
location: number;
|
|
182
|
+
name: string;
|
|
183
|
+
type: AttributeShaderType;
|
|
184
|
+
size: number;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
// Uniform bindings
|
|
188
|
+
|
|
189
|
+
/** Describes a uniform block binding for a program */
|
|
190
|
+
export type UniformBlockBinding = {
|
|
191
|
+
location: number;
|
|
192
|
+
name: string;
|
|
193
|
+
byteLength: number;
|
|
194
|
+
vertex: boolean;
|
|
195
|
+
fragment: boolean;
|
|
196
|
+
uniformCount: number;
|
|
197
|
+
uniformIndices?: number[];
|
|
198
|
+
uniforms: UniformInfo[];
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
/** Describes a uniform (sampler etc) binding for a program */
|
|
202
|
+
export type UniformBinding = {
|
|
203
|
+
location: number;
|
|
204
|
+
name: string;
|
|
205
|
+
size: number;
|
|
206
|
+
type: number;
|
|
207
|
+
isArray: boolean;
|
|
208
|
+
};
|