@luma.gl/webgl 9.0.0-alpha.2 → 9.0.0-alpha.21
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/dist/adapter/converters/device-parameters.d.ts +11 -1
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +17 -35
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/renderbuffer-formats.d.ts +2 -2
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js +2 -7
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +4 -4
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +19 -55
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +13 -66
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +2 -8
- package/dist/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +13 -20
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +1 -4
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +8 -10
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.js +2 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/adapter/helpers/attribute-utils.js +0 -17
- package/dist/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-info.js +25 -0
- package/dist/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +41 -67
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +1 -31
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/uniforms.d.ts +1 -1
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
- package/dist/adapter/helpers/uniforms.js +4 -14
- package/dist/adapter/helpers/uniforms.js.map +1 -1
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +0 -7
- package/dist/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +3 -3
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +6 -22
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +3 -5
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +15 -68
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +6 -6
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +7 -17
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +3 -4
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +18 -49
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +2 -2
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +3 -18
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +3 -3
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +2 -15
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +16 -16
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +17 -75
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +3 -3
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +3 -8
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +5 -5
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +51 -140
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +5 -4
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +5 -13
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +3 -4
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +8 -21
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +26 -26
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +66 -183
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/webgl-canvas-context.d.ts +3 -3
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +6 -19
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +53 -37
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +108 -109
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +1 -1
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +12 -36
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/buffer.d.ts +3 -4
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +30 -87
- package/dist/classic/buffer.js.map +1 -1
- package/dist/classic/typed-array-utils.d.ts +1 -1
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +0 -20
- package/dist/classic/typed-array-utils.js.map +1 -1
- package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
- package/dist/context/context/create-browser-context.d.ts.map +1 -0
- package/dist/context/context/{create-context.js → create-browser-context.js} +19 -15
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +9 -0
- package/dist/context/context/create-headless-context.d.ts.map +1 -0
- package/dist/context/context/create-headless-context.js +42 -0
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/context/webgl-checks.js +0 -3
- package/dist/context/context/webgl-checks.js.map +1 -1
- package/dist/context/debug/spector.d.ts +1 -0
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +7 -19
- package/dist/context/debug/spector.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +8 -32
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +6 -5
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +8 -18
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +103 -103
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +16 -34
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/context-data.d.ts +13 -0
- package/dist/context/polyfill/context-data.d.ts.map +1 -0
- package/dist/context/polyfill/context-data.js +12 -0
- package/dist/context/polyfill/context-data.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js +1 -6
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +20 -28
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +8 -8
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +8 -30
- package/dist/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js +0 -4
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +15 -50
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts +2 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +7 -9
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/dist.dev.js +9204 -0
- package/dist/index.cjs +5948 -0
- package/dist/index.d.ts +19 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -26
- package/dist/index.js.map +1 -1
- package/dist/types/webgl.d.ts +8 -7
- package/dist/types/webgl.d.ts.map +1 -1
- package/dist/types/webgl.js.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist.min.js +36 -0
- package/package.json +18 -9
- package/src/.DS_Store +0 -0
- package/src/adapter/.DS_Store +0 -0
- package/src/adapter/converters/device-parameters.ts +45 -16
- package/src/adapter/converters/renderbuffer-formats.ts +1 -3
- package/src/adapter/converters/sampler-parameters.ts +18 -7
- package/src/adapter/converters/texture-formats.ts +18 -16
- package/src/adapter/converters/vertex-formats.ts +1 -0
- package/src/adapter/device-helpers/device-features.ts +9 -2
- package/src/adapter/device-helpers/device-limits.ts +1 -1
- package/src/adapter/device-helpers/get-device-info.ts +12 -8
- package/src/adapter/helpers/get-shader-info.ts +37 -0
- package/src/adapter/helpers/get-shader-layout.ts +59 -37
- package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
- package/src/adapter/helpers/set-uniform.ts +3 -1
- package/src/adapter/helpers/uniforms.ts +21 -10
- package/src/adapter/objects/constants-to-keys.ts +4 -1
- package/src/adapter/objects/webgl-renderbuffer.ts +8 -8
- package/src/adapter/objects/webgl-resource.ts +8 -13
- package/src/adapter/objects/webgl-vertex-array-object.ts +10 -10
- package/src/adapter/resources/webgl-buffer.ts +16 -16
- package/src/adapter/resources/webgl-command-buffer.ts +3 -3
- package/src/adapter/resources/webgl-command-encoder.ts +8 -8
- package/src/adapter/resources/webgl-external-texture.ts +1 -1
- package/src/adapter/resources/webgl-framebuffer.ts +36 -33
- package/src/adapter/resources/webgl-render-pass.ts +4 -3
- package/src/adapter/resources/webgl-render-pipeline.ts +89 -77
- package/src/adapter/resources/webgl-sampler.ts +12 -6
- package/src/adapter/resources/webgl-shader.ts +10 -9
- package/src/adapter/resources/webgl-texture.ts +55 -45
- package/src/adapter/webgl-canvas-context.ts +8 -9
- package/src/adapter/webgl-device.ts +153 -69
- package/src/classic/accessor.ts +2 -15
- package/src/classic/buffer.ts +18 -25
- package/src/classic/typed-array-utils.ts +4 -2
- package/src/context/.DS_Store +0 -0
- package/src/context/context/{create-context.ts → create-browser-context.ts} +17 -7
- package/src/context/context/create-headless-context.ts +48 -0
- package/src/context/debug/spector.ts +6 -5
- package/src/context/debug/webgl-developer-tools.ts +13 -13
- package/src/context/parameters/unified-parameter-api.ts +18 -12
- package/src/context/parameters/webgl-parameter-tables.ts +113 -94
- package/src/context/polyfill/context-data.ts +27 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +7 -6
- package/src/context/polyfill/polyfill-context.ts +6 -8
- package/src/context/polyfill/polyfill-table.ts +16 -14
- package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +13 -12
- package/src/context/state-tracker/with-parameters.ts +8 -2
- package/src/index.ts +28 -26
- package/src/types/webgl.ts +10 -7
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -5
- package/dist/bundle.js.map +0 -1
- package/dist/context/context/context-state.d.ts +0 -18
- package/dist/context/context/context-state.d.ts.map +0 -1
- package/dist/context/context/context-state.js +0 -26
- package/dist/context/context/context-state.js.map +0 -1
- package/dist/context/context/create-context.d.ts.map +0 -1
- package/dist/context/context/create-context.js.map +0 -1
- package/dist/context/context/device-pixels.d.ts +0 -25
- package/dist/context/context/device-pixels.d.ts.map +0 -1
- package/dist/context/context/device-pixels.js +0 -98
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/es5/adapter/converters/device-parameters.js +0 -170
- package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
- package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/texture-formats.js +0 -1031
- package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -45
- package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-features.js +0 -144
- package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
- package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
- package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -125
- package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/es5/adapter/helpers/uniforms.js +0 -112
- package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
- package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-resource.js +0 -292
- package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
- package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
- package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-shader.js +0 -149
- package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-texture.js +0 -986
- package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -97
- package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/es5/adapter/webgl-device.js +0 -399
- package/dist/es5/adapter/webgl-device.js.map +0 -1
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/classic/accessor.js +0 -181
- package/dist/es5/classic/accessor.js.map +0 -1
- package/dist/es5/classic/buffer.js +0 -470
- package/dist/es5/classic/buffer.js.map +0 -1
- package/dist/es5/classic/typed-array-utils.js +0 -126
- package/dist/es5/classic/typed-array-utils.js.map +0 -1
- package/dist/es5/context/context/context-state.js +0 -31
- package/dist/es5/context/context/context-state.js.map +0 -1
- package/dist/es5/context/context/create-context.js +0 -69
- package/dist/es5/context/context/create-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -115
- package/dist/es5/context/context/device-pixels.js.map +0 -1
- package/dist/es5/context/context/webgl-checks.js +0 -54
- package/dist/es5/context/context/webgl-checks.js.map +0 -1
- package/dist/es5/context/debug/spector.js +0 -133
- package/dist/es5/context/debug/spector.js.map +0 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
- package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
- package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-context.js +0 -135
- package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-table.js +0 -166
- package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/es5/context/state-tracker/track-context-state.js +0 -211
- package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/es5/context/state-tracker/with-parameters.js +0 -44
- package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/es5/index.js +0 -276
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/init.js +0 -10
- package/dist/es5/init.js.map +0 -1
- package/dist/es5/types/webgl.js +0 -6
- package/dist/es5/types/webgl.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/types.js.map +0 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -155
- package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
- package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/texture-formats.js +0 -954
- package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -35
- package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-features.js +0 -102
- package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
- package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
- package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -115
- package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -99
- package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
- package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-resource.js +0 -216
- package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
- package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
- package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-shader.js +0 -75
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -831
- package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -54
- package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/esm/adapter/webgl-device.js +0 -280
- package/dist/esm/adapter/webgl-device.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/classic/accessor.js +0 -144
- package/dist/esm/classic/accessor.js.map +0 -1
- package/dist/esm/classic/buffer.js +0 -384
- package/dist/esm/classic/buffer.js.map +0 -1
- package/dist/esm/classic/typed-array-utils.js +0 -112
- package/dist/esm/classic/typed-array-utils.js.map +0 -1
- package/dist/esm/context/context/context-state.js +0 -26
- package/dist/esm/context/context/context-state.js.map +0 -1
- package/dist/esm/context/context/create-context.js +0 -49
- package/dist/esm/context/context/create-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -98
- package/dist/esm/context/context/device-pixels.js.map +0 -1
- package/dist/esm/context/context/webgl-checks.js +0 -34
- package/dist/esm/context/context/webgl-checks.js.map +0 -1
- package/dist/esm/context/debug/spector.js +0 -76
- package/dist/esm/context/debug/spector.js.map +0 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
- package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
- package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-context.js +0 -92
- package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -160
- package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/esm/context/state-tracker/track-context-state.js +0 -183
- package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -36
- package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/esm/index.js +0 -27
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/init.js +0 -4
- package/dist/esm/init.js.map +0 -1
- package/dist/esm/types/webgl.js +0 -2
- package/dist/esm/types/webgl.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/init.d.ts +0 -2
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -4
- package/dist/init.js.map +0 -1
- package/src/bundle.ts +0 -4
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/device-pixels.ts +0 -152
- package/src/init.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/helpers/get-shader-layout.ts"],"names":["GL","isWebGL2","Accessor","decodeUniformType","decodeAttributeType","getVertexFormat","isSamplerUniform","getShaderLayout","gl","program","programBindings","getProgramBindings","shaderLayout","attributes","bindings","attribute","format","accessor","type","FLOAT","size","push","name","location","stepMode","divisor","uniformBlock","uniformBlocks","uniforms","map","uniform","byteOffset","byteStride","arrayLength","visibility","vertex","fragment","minBindingSize","byteLength","textureUnit","viewDimension","sampleType","getSamplerInfo","filter","length","varyings","config","readAttributeBindings","readUniformBindings","readUniformBlocks","readVaryings","Object","seal","count","getProgramParameter","ACTIVE_ATTRIBUTES","index","compositeType","getActiveAttrib","getAttribLocation","glType","components","test","attributeInfo","sort","a","b","gl2","TRANSFORM_FEEDBACK_VARYINGS","getTransformFeedbackVarying","varying","uniformCount","ACTIVE_UNIFORMS","i","rawName","getActiveUniform","isArray","parseUniformName","webglLocation","getUniformLocation","uniformInfo","j","elementName","arrayElementUniformInfo","getBlockParameter","blockIndex","pname","getActiveUniformBlockParameter","blockCount","ACTIVE_UNIFORM_BLOCKS","blockInfo","getActiveUniformBlockName","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_ACTIVE_UNIFORMS","uniformIndices","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","uniformType","getActiveUniforms","UNIFORM_TYPE","uniformArrayLength","UNIFORM_SIZE","uniformBlockIndex","UNIFORM_BLOCK_INDEX","uniformOffset","UNIFORM_OFFSET","uniformStride","UNIFORM_ARRAY_STRIDE","uniformMatrixStride","UNIFORM_MATRIX_STRIDE","uniformRowMajor","UNIFORM_IS_ROW_MAJOR","matrixStride","rowMajor","SAMPLER_UNIFORMS_GL_TO_GPU","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","sampler","UNIFORM_NAME_REGEXP","matches","match","Error","Boolean"],"mappings":"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","sourcesContent":["import {\n ShaderLayout,\n BindingLayout,\n UniformBinding,\n UniformBlockBinding,\n ProgramBindings,\n AttributeBinding,\n VaryingBinding,\n AttributeLayout,\n AccessorObject\n} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport Accessor from '../../classic/accessor'; // TODO - should NOT depend on classic API\nimport {decodeUniformType, decodeAttributeType} from './uniforms';\nimport {getVertexFormat} from '../converters/vertex-formats';\nimport {isSamplerUniform} from './uniforms';\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram): ShaderLayout {\n const programBindings = getProgramBindings(gl, program);\n\n const shaderLayout: ShaderLayout = {\n attributes: [],\n bindings: []\n };\n\n for (const attribute of programBindings.attributes) {\n const format =\n // attribute.accessor.format ||\n getVertexFormat(attribute.accessor.type || GL.FLOAT, attribute.accessor.size);\n shaderLayout.attributes.push({\n name: attribute.name,\n location: attribute.location,\n format,\n stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'\n });\n }\n\n // Uniform blocks\n for (const uniformBlock of programBindings.uniformBlocks) {\n const uniforms = uniformBlock.uniforms.map((uniform) => ({\n name: uniform.name,\n format: uniform.format,\n byteOffset: uniform.byteOffset,\n byteStride: uniform.byteStride,\n arrayLength: uniform.arrayLength\n }));\n shaderLayout.bindings.push({\n type: 'uniform',\n name: uniformBlock.name,\n location: uniformBlock.location,\n visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),\n minBindingSize: uniformBlock.byteLength,\n uniforms\n });\n }\n\n let textureUnit = 0;\n for (const uniform of programBindings.uniforms) {\n if (isSamplerUniform(uniform.type)) {\n const {viewDimension, sampleType} = getSamplerInfo(uniform.type);\n shaderLayout.bindings.push({\n type: 'texture',\n name: uniform.name,\n location: textureUnit,\n viewDimension,\n sampleType\n });\n\n // @ts-expect-error\n uniform.textureUnit = textureUnit;\n textureUnit += 1;\n }\n }\n\n const uniforms = programBindings.uniforms?.filter((uniform) => uniform.location !== null) || [];\n if (uniforms.length) {\n shaderLayout.uniforms = uniforms;\n }\n if (programBindings.varyings?.length) {\n shaderLayout.varyings = programBindings.varyings;\n }\n\n return shaderLayout;\n}\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getProgramBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): ProgramBindings {\n const config: ProgramBindings = {\n attributes: readAttributeBindings(gl, program),\n uniforms: readUniformBindings(gl, program),\n uniformBlocks: readUniformBlocks(gl, program),\n varyings: readVaryings(gl, program)\n };\n\n Object.seal(config);\n return config;\n // generateWebGPUStyleBindings(bindings);\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readAttributeBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): AttributeBinding[] {\n const attributes: AttributeBinding[] = [];\n\n const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (let index = 0; index < count; index++) {\n const {name, type: compositeType, size} = gl.getActiveAttrib(program, index);\n const location = gl.getAttribLocation(program, name);\n // Add only user provided attributes, for built-in attributes like\n // `gl_InstanceID` locaiton will be < 0\n if (location >= 0) {\n const {glType, components} = decodeAttributeType(compositeType);\n const accessor: AccessorObject = {type: glType, size: size * components};\n // Any attribute name containing the word \"instance\" will be assumed to be instanced\n if (/instance/i.test(name)) {\n accessor.divisor = 1;\n }\n const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values\n attributes.push(attributeInfo);\n }\n }\n\n attributes.sort((a: AttributeBinding, b: AttributeBinding) => a.location - b.location);\n return attributes;\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): VaryingBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const varyings: VaryingBinding[] = [];\n\n const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);\n for (let location = 0; location < count; location++) {\n const {name, type: compositeType, size} = gl2.getTransformFeedbackVarying(program, location);\n const {glType, components} = decodeUniformType(compositeType);\n const accessor = new Accessor({type: glType, size: size * components});\n const varying = {location, name, accessor}; // Base values\n varyings.push(varying);\n }\n\n varyings.sort((a, b) => a.location - b.location);\n return varyings;\n}\n\n/**\n * Extract info about all uniforms\n *\n * Query uniform locations and build name to setter map.\n */\nfunction readUniformBindings(gl: WebGLRenderingContext, program: WebGLProgram): UniformBinding[] {\n const uniforms: UniformBinding[] = [];\n\n const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);\n for (let i = 0; i < uniformCount; i++) {\n const {name: rawName, size, type} = gl.getActiveUniform(program, i);\n const {name, isArray} = parseUniformName(rawName);\n let webglLocation = gl.getUniformLocation(program, name);\n const uniformInfo = {\n // WebGL locations are uniquely typed but just numbers\n location: webglLocation as number,\n name,\n size,\n type,\n isArray\n };\n uniforms.push(uniformInfo);\n\n // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks\n if (uniformInfo.size > 1) {\n for (let j = 0; j < uniformInfo.size; j++) {\n const elementName = `${name}[${j}]`;\n\n webglLocation = gl.getUniformLocation(program, elementName);\n\n const arrayElementUniformInfo = {\n ...uniformInfo,\n name: elementName,\n location: webglLocation as number\n };\n\n uniforms.push(arrayElementUniformInfo);\n }\n }\n }\n return uniforms;\n}\n\n/**\n * Extract info about all \"active\" uniform blocks\n *\n * (\"Active\" just means that unused (aka inactive) blocks may have been\n * optimized away during linking)\n */\nfunction readUniformBlocks(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): UniformBlockBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const getBlockParameter = (blockIndex: number, pname: GL): any =>\n gl2.getActiveUniformBlockParameter(program, blockIndex, pname);\n\n const uniformBlocks: UniformBlockBinding[] = [];\n\n const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {\n const blockInfo = {\n name: gl2.getActiveUniformBlockName(program, blockIndex),\n location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),\n byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),\n vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n uniforms: [] as any[]\n };\n\n const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES);\n\n const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.\n const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.\n const uniformBlockIndex = gl2.getActiveUniforms(\n program,\n uniformIndices,\n GL.UNIFORM_BLOCK_INDEX\n ); // Array of GLint indicating the block indices of the uniforms.\n const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.\n const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.\n const uniformMatrixStride = gl2.getActiveUniforms(\n program,\n uniformIndices,\n GL.UNIFORM_MATRIX_STRIDE\n ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.\n const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);\n for (let i = 0; i < blockInfo.uniformCount; ++i) {\n blockInfo.uniforms.push({\n name: gl2.getActiveUniform(program, uniformIndices[i]).name,\n format: decodeUniformType(uniformType[i]).format,\n type: uniformType[i],\n arrayLength: uniformArrayLength[i],\n byteOffset: uniformOffset[i],\n byteStride: uniformStride[i],\n matrixStride: uniformStride[i],\n rowMajor: uniformRowMajor[i]\n });\n }\n\n uniformBlocks.push(blockInfo);\n }\n\n uniformBlocks.sort((a, b) => a.location - b.location);\n return uniformBlocks;\n}\n\nconst SAMPLER_UNIFORMS_GL_TO_GPU: Record<\n number,\n [\n '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d',\n 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint'\n ]\n> = {\n [GL.SAMPLER_2D]: ['2d', 'float'],\n [GL.SAMPLER_CUBE]: ['cube', 'float'],\n [GL.SAMPLER_3D]: ['3d', 'float'],\n [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],\n [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],\n [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],\n [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],\n [GL.INT_SAMPLER_2D]: ['2d', 'sint'],\n [GL.INT_SAMPLER_3D]: ['3d', 'sint'],\n [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],\n [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']\n};\n\nfunction getSamplerInfo(type: GL):\n | {\n viewDimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';\n sampleType: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint';\n }\n | undefined {\n let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];\n if (sampler) {\n const [viewDimension, sampleType] = sampler;\n return {viewDimension, sampleType};\n }\n return null;\n}\n\n// HELPERS\n\nfunction parseUniformName(name: string): {name: string; length: number; isArray: boolean} {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: matches[2] ? 1 : 0,\n isArray: Boolean(matches[2])\n };\n}\n\n/**\n * TODO - verify this is a copy of above and delete\n * import type {TextureFormat} from '@luma.gl/api';\n* Extract info about all \"active\" uniform blocks\n * (\"Active\" just means that unused (inactive) blocks may have been optimized away during linking)\n *\n function getUniformBlockBindings(gl, program): Binding[] {\n if (!isWebGL2(gl)) {\n return;\n }\n const bindings: Binding[] = [];\n const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < count; blockIndex++) {\n const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n const visibility = (vertex) + (fragment);\n const binding: BufferBinding = {\n location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),\n // name: gl.getActiveUniformBlockName(program, blockIndex),\n type: 'uniform',\n visibility,\n minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),\n // uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n // uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),\n }\n bindings.push(binding);\n }\n return bindings;\n}\n\nfunction setBindings(gl2: WebGL2RenderingContext, program: WebGLProgram, bindings: Binding[][]): void {\n for (const bindGroup of bindings) {\n for (const binding of bindGroup) {\n\n }\n }\n\n // Set up indirection table\n // this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);\n}\n */\n"],"file":"get-shader-layout.js"}
|
|
1
|
+
{"version":3,"file":"get-shader-layout.js","names":["GL","isWebGL2","Accessor","decodeUniformType","decodeAttributeType","getVertexFormat","isSamplerUniform","getShaderLayout","gl","program","_programBindings$unif","_programBindings$vary","programBindings","getProgramBindings","shaderLayout","attributes","bindings","attribute","size","Math","min","accessor","format","type","FLOAT","push","name","location","stepMode","divisor","uniformBlock","uniformBlocks","uniforms","map","uniform","byteOffset","byteStride","arrayLength","visibility","vertex","fragment","minBindingSize","byteLength","textureUnit","viewDimension","sampleType","getSamplerInfo","filter","length","varyings","config","readAttributeBindings","readUniformBindings","readUniformBlocks","readVaryings","Object","seal","count","getProgramParameter","ACTIVE_ATTRIBUTES","index","activeInfo","getActiveAttrib","Error","compositeType","getAttribLocation","glType","components","test","attributeInfo","sort","a","b","gl2","TRANSFORM_FEEDBACK_VARYINGS","getTransformFeedbackVarying","varying","uniformCount","ACTIVE_UNIFORMS","i","getActiveUniform","rawName","isArray","parseUniformName","webglLocation","getUniformLocation","uniformInfo","j","elementName","concat","arrayElementUniformInfo","getBlockParameter","blockIndex","pname","getActiveUniformBlockParameter","blockCount","ACTIVE_UNIFORM_BLOCKS","blockInfo","getActiveUniformBlockName","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_ACTIVE_UNIFORMS","uniformIndices","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","uniformType","getActiveUniforms","UNIFORM_TYPE","uniformArrayLength","UNIFORM_SIZE","uniformOffset","UNIFORM_OFFSET","uniformStride","UNIFORM_ARRAY_STRIDE","SAMPLER_UNIFORMS_GL_TO_GPU","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","sampler","UNIFORM_NAME_REGEXP","matches","exec","Boolean"],"sources":["../../../src/adapter/helpers/get-shader-layout.ts"],"sourcesContent":["// luma.gl, MIT license\n\nimport {\n ShaderLayout,\n // BindingLayout,\n UniformBinding,\n UniformBlockBinding,\n ProgramBindings,\n AttributeBinding,\n VaryingBinding,\n // AttributeLayout,\n AccessorObject\n} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport {Accessor} from '../../classic/accessor'; // TODO - should NOT depend on classic API\nimport {decodeUniformType, decodeAttributeType} from './uniforms';\nimport {getVertexFormat} from '../converters/vertex-formats';\nimport {isSamplerUniform} from './uniforms';\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram): ShaderLayout {\n const programBindings = getProgramBindings(gl, program);\n\n const shaderLayout: ShaderLayout = {\n attributes: [],\n bindings: []\n };\n\n for (const attribute of programBindings.attributes) {\n // TODO - multicolumn attributes like a matrix4 can be up to 16 elts...\n const size = Math.min(attribute.accessor.size, 4);\n const format =\n // attribute.accessor.format ||\n getVertexFormat(attribute.accessor.type || GL.FLOAT, size);\n shaderLayout.attributes.push({\n name: attribute.name,\n location: attribute.location,\n format,\n stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'\n });\n }\n\n // Uniform blocks\n for (const uniformBlock of programBindings.uniformBlocks) {\n const uniforms = uniformBlock.uniforms.map((uniform) => ({\n name: uniform.name,\n format: uniform.format,\n byteOffset: uniform.byteOffset,\n byteStride: uniform.byteStride,\n arrayLength: uniform.arrayLength\n }));\n shaderLayout.bindings.push({\n type: 'uniform',\n name: uniformBlock.name,\n location: uniformBlock.location,\n visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),\n minBindingSize: uniformBlock.byteLength,\n uniforms\n });\n }\n\n let textureUnit = 0;\n for (const uniform of programBindings.uniforms) {\n if (isSamplerUniform(uniform.type)) {\n const {viewDimension, sampleType} = getSamplerInfo(uniform.type);\n shaderLayout.bindings.push({\n type: 'texture',\n name: uniform.name,\n location: textureUnit,\n viewDimension,\n sampleType\n });\n\n // @ts-expect-error\n uniform.textureUnit = textureUnit;\n textureUnit += 1;\n }\n }\n\n const uniforms = programBindings.uniforms?.filter((uniform) => uniform.location !== null) || [];\n if (uniforms.length) {\n shaderLayout.uniforms = uniforms;\n }\n if (programBindings.varyings?.length) {\n shaderLayout.varyings = programBindings.varyings;\n }\n\n return shaderLayout;\n}\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getProgramBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): ProgramBindings {\n const config: ProgramBindings = {\n attributes: readAttributeBindings(gl, program),\n uniforms: readUniformBindings(gl, program),\n uniformBlocks: readUniformBlocks(gl, program),\n varyings: readVaryings(gl, program)\n };\n\n Object.seal(config);\n return config;\n // generateWebGPUStyleBindings(bindings);\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readAttributeBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): AttributeBinding[] {\n const attributes: AttributeBinding[] = [];\n\n const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (let index = 0; index < count; index++) {\n const activeInfo = gl.getActiveAttrib(program, index);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const location = gl.getAttribLocation(program, name);\n // Add only user provided attributes, for built-in attributes like\n // `gl_InstanceID` locaiton will be < 0\n if (location >= 0) {\n const {glType, components} = decodeAttributeType(compositeType);\n const accessor: AccessorObject = {type: glType, size: size * components};\n // Any attribute name containing the word \"instance\" will be assumed to be instanced\n if (/instance/i.test(name)) {\n accessor.divisor = 1;\n }\n const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values\n attributes.push(attributeInfo);\n }\n }\n\n attributes.sort((a: AttributeBinding, b: AttributeBinding) => a.location - b.location);\n return attributes;\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): VaryingBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const varyings: VaryingBinding[] = [];\n\n const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);\n for (let location = 0; location < count; location++) {\n const activeInfo = gl2.getTransformFeedbackVarying(program, location);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const {glType, components} = decodeUniformType(compositeType);\n const accessor = new Accessor({type: glType, size: size * components});\n const varying = {location, name, accessor}; // Base values\n varyings.push(varying);\n }\n\n varyings.sort((a, b) => a.location - b.location);\n return varyings;\n}\n\n/**\n * Extract info about all uniforms\n *\n * Query uniform locations and build name to setter map.\n */\nfunction readUniformBindings(gl: WebGLRenderingContext, program: WebGLProgram): UniformBinding[] {\n const uniforms: UniformBinding[] = [];\n\n const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);\n for (let i = 0; i < uniformCount; i++) {\n const activeInfo = gl.getActiveUniform(program, i);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name: rawName, size, type} = activeInfo;\n const {name, isArray} = parseUniformName(rawName);\n let webglLocation = gl.getUniformLocation(program, name);\n const uniformInfo = {\n // WebGL locations are uniquely typed but just numbers\n location: webglLocation as number,\n name,\n size,\n type,\n isArray\n };\n uniforms.push(uniformInfo);\n\n // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks\n if (uniformInfo.size > 1) {\n for (let j = 0; j < uniformInfo.size; j++) {\n const elementName = `${name}[${j}]`;\n\n webglLocation = gl.getUniformLocation(program, elementName);\n\n const arrayElementUniformInfo = {\n ...uniformInfo,\n name: elementName,\n location: webglLocation as number\n };\n\n uniforms.push(arrayElementUniformInfo);\n }\n }\n }\n return uniforms;\n}\n\n/**\n * Extract info about all \"active\" uniform blocks\n *\n * (\"Active\" just means that unused (aka inactive) blocks may have been\n * optimized away during linking)\n */\nfunction readUniformBlocks(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): UniformBlockBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const getBlockParameter = (blockIndex: number, pname: GL): any =>\n gl2.getActiveUniformBlockParameter(program, blockIndex, pname);\n\n const uniformBlocks: UniformBlockBinding[] = [];\n\n const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {\n const blockInfo: UniformBlockBinding = {\n name: gl2.getActiveUniformBlockName(program, blockIndex) || '',\n location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),\n byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),\n vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n uniforms: [] as any[]\n };\n\n const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) as number[] || [];\n\n const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.\n const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.\n // const uniformBlockIndex = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_BLOCK_INDEX\n // ); // Array of GLint indicating the block indices of the uniforms.\n const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.\n const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.\n // const uniformMatrixStride = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_MATRIX_STRIDE\n // ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.\n // const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);\n for (let i = 0; i < blockInfo.uniformCount; ++i) {\n const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n \n blockInfo.uniforms.push({\n name: activeInfo.name,\n format: decodeUniformType(uniformType[i]).format,\n type: uniformType[i],\n arrayLength: uniformArrayLength[i],\n byteOffset: uniformOffset[i],\n byteStride: uniformStride[i],\n // matrixStride: uniformStride[i],\n // rowMajor: uniformRowMajor[i]\n });\n }\n\n uniformBlocks.push(blockInfo);\n }\n\n uniformBlocks.sort((a, b) => a.location - b.location);\n return uniformBlocks;\n}\n\nconst SAMPLER_UNIFORMS_GL_TO_GPU: Record<\n number,\n [\n '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d',\n 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint'\n ]\n> = {\n [GL.SAMPLER_2D]: ['2d', 'float'],\n [GL.SAMPLER_CUBE]: ['cube', 'float'],\n [GL.SAMPLER_3D]: ['3d', 'float'],\n [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],\n [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],\n [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],\n [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],\n [GL.INT_SAMPLER_2D]: ['2d', 'sint'],\n [GL.INT_SAMPLER_3D]: ['3d', 'sint'],\n [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],\n [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']\n};\n\ntype SamplerInfo = | {\n viewDimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';\n sampleType: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint';\n};\n\nfunction getSamplerInfo(type: GL): SamplerInfo {\n const sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];\n if (!sampler) {\n throw new Error('sampler');\n }\n const [viewDimension, sampleType] = sampler;\n return {viewDimension, sampleType};\n}\n\n// HELPERS\n\nfunction parseUniformName(name: string): {name: string; length: number; isArray: boolean} {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = UNIFORM_NAME_REGEXP.exec(name);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: matches[2] ? 1 : 0,\n isArray: Boolean(matches[2])\n };\n}\n\n/**\n * TODO - verify this is a copy of above and delete\n * import type {TextureFormat} from '@luma.gl/api';\n* Extract info about all \"active\" uniform blocks\n * (\"Active\" just means that unused (inactive) blocks may have been optimized away during linking)\n *\n function getUniformBlockBindings(gl: WebGLRenderingContext, program): Binding[] {\n if (!isWebGL2(gl)) {\n return;\n }\n const bindings: Binding[] = [];\n const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < count; blockIndex++) {\n const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n const visibility = (vertex) + (fragment);\n const binding: BufferBinding = {\n location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),\n // name: gl.getActiveUniformBlockName(program, blockIndex),\n type: 'uniform',\n visibility,\n minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),\n // uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n // uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),\n }\n bindings.push(binding);\n }\n return bindings;\n}\n\nfunction setBindings(gl2: WebGL2RenderingContext, program: WebGLProgram, bindings: Binding[][]): void {\n for (const bindGroup of bindings) {\n for (const binding of bindGroup) {\n\n }\n }\n\n // Set up indirection table\n // this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);\n}\n */\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CompilerMessage } from '@luma.gl/
|
|
1
|
+
import type { CompilerMessage } from '@luma.gl/api';
|
|
2
2
|
/**
|
|
3
3
|
* Parse a WebGL-format GLSL compilation log into an array of WebGPU style message records.
|
|
4
4
|
* This follows documented WebGL conventions for compilation logs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-shader-compiler-log.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/parse-shader-compiler-log.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"parse-shader-compiler-log.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/parse-shader-compiler-log.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAIlD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAI,SAAS,eAAe,EAAE,CAqClF"}
|
|
@@ -2,26 +2,20 @@ const MESSAGE_TYPES = ['warning', 'error', 'info'];
|
|
|
2
2
|
export function parseShaderCompilerLog(errLog) {
|
|
3
3
|
const lines = errLog.split(/\r?\n/);
|
|
4
4
|
const messages = [];
|
|
5
|
-
|
|
6
5
|
for (const line of lines) {
|
|
7
6
|
if (line.length <= 1) {
|
|
8
7
|
continue;
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
const segments = line.split(':');
|
|
12
10
|
const [messageType, linePosition, lineNumber, ...rest] = segments;
|
|
13
11
|
let lineNum = parseInt(lineNumber, 10);
|
|
14
|
-
|
|
15
12
|
if (isNaN(lineNum)) {
|
|
16
13
|
lineNum = 0;
|
|
17
14
|
}
|
|
18
|
-
|
|
19
15
|
let linePos = parseInt(linePosition, 10);
|
|
20
|
-
|
|
21
16
|
if (isNaN(linePos)) {
|
|
22
17
|
linePos = 0;
|
|
23
18
|
}
|
|
24
|
-
|
|
25
19
|
const lowerCaseType = messageType.toLowerCase();
|
|
26
20
|
const type = MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info';
|
|
27
21
|
messages.push({
|
|
@@ -31,7 +25,6 @@ export function parseShaderCompilerLog(errLog) {
|
|
|
31
25
|
linePos
|
|
32
26
|
});
|
|
33
27
|
}
|
|
34
|
-
|
|
35
28
|
return messages;
|
|
36
29
|
}
|
|
37
30
|
//# sourceMappingURL=parse-shader-compiler-log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"parse-shader-compiler-log.js","names":["MESSAGE_TYPES","parseShaderCompilerLog","errLog","lines","split","messages","line","length","segments","messageType","linePosition","lineNumber","rest","lineNum","parseInt","isNaN","linePos","lowerCaseType","toLowerCase","type","includes","push","message","join","trim"],"sources":["../../../src/adapter/helpers/parse-shader-compiler-log.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {CompilerMessage} from '@luma.gl/api';\n\nconst MESSAGE_TYPES = ['warning', 'error', 'info'];\n\n/**\n * Parse a WebGL-format GLSL compilation log into an array of WebGPU style message records.\n * This follows documented WebGL conventions for compilation logs.\n * Based on https://github.com/wwwtyro/gl-format-compiler-error (public domain)\n */\nexport function parseShaderCompilerLog(errLog: string) : readonly CompilerMessage[] {\n // Parse the error - note: browser and driver dependent\n const lines = errLog.split(/\\r?\\n/);\n\n const messages: CompilerMessage[] = [];\n\n for (const line of lines) {\n if (line.length <= 1) {\n continue; // eslint-disable-line no-continue\n }\n\n const segments: string[] = line.split(':');\n const [messageType, linePosition, lineNumber, ...rest] = segments;\n\n let lineNum = parseInt(lineNumber, 10);\n if (isNaN(lineNum)) {\n lineNum = 0;\n }\n\n let linePos = parseInt(linePosition, 10);\n if (isNaN(linePos)) {\n linePos = 0;\n }\n\n // Ensure supported type\n const lowerCaseType = messageType.toLowerCase();\n const type = (MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info') as 'warning' | 'error' | 'info';\n\n messages.push({\n message: rest.join(':').trim(),\n type,\n lineNum,\n linePos // TODO\n })\n }\n\n return messages;\n}\n"],"mappings":"AAGA,MAAMA,aAAa,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AAOlD,OAAO,SAASC,sBAAsBA,CAACC,MAAc,EAA+B;EAElF,MAAMC,KAAK,GAAGD,MAAM,CAACE,KAAK,CAAC,OAAO,CAAC;EAEnC,MAAMC,QAA2B,GAAG,EAAE;EAEtC,KAAK,MAAMC,IAAI,IAAIH,KAAK,EAAE;IACxB,IAAIG,IAAI,CAACC,MAAM,IAAI,CAAC,EAAE;MACpB;IACF;IAEA,MAAMC,QAAkB,GAAGF,IAAI,CAACF,KAAK,CAAC,GAAG,CAAC;IAC1C,MAAM,CAACK,WAAW,EAAEC,YAAY,EAAEC,UAAU,EAAE,GAAGC,IAAI,CAAC,GAAGJ,QAAQ;IAEjE,IAAIK,OAAO,GAAGC,QAAQ,CAACH,UAAU,EAAE,EAAE,CAAC;IACtC,IAAII,KAAK,CAACF,OAAO,CAAC,EAAE;MAClBA,OAAO,GAAG,CAAC;IACb;IAEA,IAAIG,OAAO,GAAGF,QAAQ,CAACJ,YAAY,EAAE,EAAE,CAAC;IACxC,IAAIK,KAAK,CAACC,OAAO,CAAC,EAAE;MAClBA,OAAO,GAAG,CAAC;IACb;IAGA,MAAMC,aAAa,GAAGR,WAAW,CAACS,WAAW,EAAE;IAC/C,MAAMC,IAAI,GAAInB,aAAa,CAACoB,QAAQ,CAACH,aAAa,CAAC,GAAGA,aAAa,GAAG,MAAuC;IAE7GZ,QAAQ,CAACgB,IAAI,CAAC;MACZC,OAAO,EAAEV,IAAI,CAACW,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,EAAE;MAC9BL,IAAI;MACJN,OAAO;MACPG;IACF,CAAC,CAAC;EACJ;EAEA,OAAOX,QAAQ;AACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-uniform.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/set-uniform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"set-uniform.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/set-uniform.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,8DAA8D;AAE9D,wBAAgB,UAAU,CACxB,EAAE,EAAE,qBAAqB,EACzB,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GACtD,IAAI,CA4EN"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
2
|
export function setUniform(gl, location, type, value) {
|
|
3
3
|
const gl2 = gl;
|
|
4
|
-
|
|
5
4
|
if (typeof value === 'number') {
|
|
6
5
|
switch (type) {
|
|
7
6
|
case GL.SAMPLER_2D:
|
|
@@ -22,94 +21,65 @@ export function setUniform(gl, location, type, value) {
|
|
|
22
21
|
return gl.uniform1i(location, value);
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
|
-
|
|
26
24
|
if (value === true) {
|
|
27
25
|
value = 1;
|
|
28
26
|
}
|
|
29
|
-
|
|
30
27
|
if (value === false) {
|
|
31
28
|
value = 1;
|
|
32
29
|
}
|
|
33
|
-
|
|
34
30
|
const arrayValue = typeof value === 'number' ? [value] : value;
|
|
35
|
-
|
|
36
31
|
switch (type) {
|
|
37
32
|
case GL.FLOAT:
|
|
38
33
|
return gl.uniform1fv(location, arrayValue);
|
|
39
|
-
|
|
40
34
|
case GL.FLOAT_VEC2:
|
|
41
35
|
return gl.uniform2fv(location, arrayValue);
|
|
42
|
-
|
|
43
36
|
case GL.FLOAT_VEC3:
|
|
44
37
|
return gl.uniform3fv(location, arrayValue);
|
|
45
|
-
|
|
46
38
|
case GL.FLOAT_VEC4:
|
|
47
39
|
return gl.uniform4fv(location, arrayValue);
|
|
48
|
-
|
|
49
40
|
case GL.INT:
|
|
50
41
|
return gl.uniform1iv(location, arrayValue);
|
|
51
|
-
|
|
52
42
|
case GL.INT_VEC2:
|
|
53
43
|
return gl.uniform2iv(location, arrayValue);
|
|
54
|
-
|
|
55
44
|
case GL.INT_VEC3:
|
|
56
45
|
return gl.uniform3iv(location, arrayValue);
|
|
57
|
-
|
|
58
46
|
case GL.INT_VEC4:
|
|
59
47
|
return gl.uniform4iv(location, arrayValue);
|
|
60
|
-
|
|
61
48
|
case GL.BOOL:
|
|
62
49
|
return gl.uniform1iv(location, arrayValue);
|
|
63
|
-
|
|
64
50
|
case GL.BOOL_VEC2:
|
|
65
51
|
return gl.uniform2iv(location, arrayValue);
|
|
66
|
-
|
|
67
52
|
case GL.BOOL_VEC3:
|
|
68
53
|
return gl.uniform3iv(location, arrayValue);
|
|
69
|
-
|
|
70
54
|
case GL.BOOL_VEC4:
|
|
71
|
-
gl.uniform4iv(location, arrayValue);
|
|
72
|
-
|
|
55
|
+
return gl.uniform4iv(location, arrayValue);
|
|
73
56
|
case GL.UNSIGNED_INT:
|
|
74
57
|
return gl2.uniform1uiv(location, arrayValue, 1);
|
|
75
|
-
|
|
76
58
|
case GL.UNSIGNED_INT_VEC2:
|
|
77
59
|
return gl2.uniform2uiv(location, arrayValue, 2);
|
|
78
|
-
|
|
79
60
|
case GL.UNSIGNED_INT_VEC3:
|
|
80
61
|
return gl2.uniform3uiv(location, arrayValue, 3);
|
|
81
|
-
|
|
82
62
|
case GL.UNSIGNED_INT_VEC4:
|
|
83
63
|
return gl2.uniform4uiv(location, arrayValue, 4);
|
|
84
|
-
|
|
85
64
|
case GL.FLOAT_MAT2:
|
|
86
65
|
return gl.uniformMatrix2fv(location, false, arrayValue);
|
|
87
|
-
|
|
88
66
|
case GL.FLOAT_MAT3:
|
|
89
67
|
return gl.uniformMatrix3fv(location, false, arrayValue);
|
|
90
|
-
|
|
91
68
|
case GL.FLOAT_MAT4:
|
|
92
69
|
return gl.uniformMatrix4fv(location, false, arrayValue);
|
|
93
|
-
|
|
94
70
|
case GL.FLOAT_MAT2x3:
|
|
95
71
|
return gl2.uniformMatrix2x3fv(location, false, arrayValue);
|
|
96
|
-
|
|
97
72
|
case GL.FLOAT_MAT2x4:
|
|
98
73
|
return gl2.uniformMatrix2x4fv(location, false, arrayValue);
|
|
99
|
-
|
|
100
74
|
case GL.FLOAT_MAT3x2:
|
|
101
75
|
return gl2.uniformMatrix3x2fv(location, false, arrayValue);
|
|
102
|
-
|
|
103
76
|
case GL.FLOAT_MAT3x4:
|
|
104
77
|
return gl2.uniformMatrix3x4fv(location, false, arrayValue);
|
|
105
|
-
|
|
106
78
|
case GL.FLOAT_MAT4x2:
|
|
107
79
|
return gl2.uniformMatrix4x2fv(location, false, arrayValue);
|
|
108
|
-
|
|
109
80
|
case GL.FLOAT_MAT4x3:
|
|
110
81
|
return gl2.uniformMatrix4x3fv(location, false, arrayValue);
|
|
111
82
|
}
|
|
112
|
-
|
|
113
83
|
throw new Error('Illegal uniform');
|
|
114
84
|
}
|
|
115
85
|
//# sourceMappingURL=set-uniform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"set-uniform.js","names":["GL","setUniform","gl","location","type","value","gl2","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","uniform1i","arrayValue","FLOAT","uniform1fv","FLOAT_VEC2","uniform2fv","FLOAT_VEC3","uniform3fv","FLOAT_VEC4","uniform4fv","INT","uniform1iv","INT_VEC2","uniform2iv","INT_VEC3","uniform3iv","INT_VEC4","uniform4iv","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","UNSIGNED_INT","uniform1uiv","UNSIGNED_INT_VEC2","uniform2uiv","UNSIGNED_INT_VEC3","uniform3uiv","UNSIGNED_INT_VEC4","uniform4uiv","FLOAT_MAT2","uniformMatrix2fv","FLOAT_MAT3","uniformMatrix3fv","FLOAT_MAT4","uniformMatrix4fv","FLOAT_MAT2x3","uniformMatrix2x3fv","FLOAT_MAT2x4","uniformMatrix2x4fv","FLOAT_MAT3x2","uniformMatrix3x2fv","FLOAT_MAT3x4","uniformMatrix3x4fv","FLOAT_MAT4x2","uniformMatrix4x2fv","FLOAT_MAT4x3","uniformMatrix4x3fv","Error"],"sources":["../../../src/adapter/helpers/set-uniform.ts"],"sourcesContent":["/* eslint-disable */\n\n// Uniforms\nimport GL from '@luma.gl/constants';\n\n/** Set a raw uniform (without type conversion and caching) */\n/* eslint-disable max-len */\nexport function setUniform(\n gl: WebGLRenderingContext,\n location: WebGLUniformLocation,\n type: GL,\n value: number | Float32Array | Int32Array | Uint32Array\n): void {\n const gl2 = gl as WebGL2RenderingContext;\n\n if (typeof value === 'number') {\n // prettier-ignore\n switch (type) {\n // WebGL1 samplers\n case GL.SAMPLER_2D:\n case GL.SAMPLER_CUBE:\n // WebGL2 samplers\n case GL.SAMPLER_3D:\n case GL.SAMPLER_2D_SHADOW:\n case GL.SAMPLER_2D_ARRAY:\n case GL.SAMPLER_2D_ARRAY_SHADOW:\n case GL.SAMPLER_CUBE_SHADOW:\n case GL.INT_SAMPLER_2D:\n case GL.INT_SAMPLER_3D:\n case GL.INT_SAMPLER_CUBE:\n case GL.INT_SAMPLER_2D_ARRAY:\n case GL.UNSIGNED_INT_SAMPLER_2D:\n case GL.UNSIGNED_INT_SAMPLER_3D:\n case GL.UNSIGNED_INT_SAMPLER_CUBE:\n case GL.UNSIGNED_INT_SAMPLER_2D_ARRAY:\n return gl.uniform1i(location, value);\n }\n }\n\n // @ts-expect-error\n if (value === true) {\n value = 1;\n }\n // @ts-expect-error\n if (value === false) {\n value = 1;\n }\n const arrayValue = (typeof value === 'number') ? [value] : value;\n\n // prettier-ignore\n switch (type) {\n case GL.FLOAT: return gl.uniform1fv(location, arrayValue);\n case GL.FLOAT_VEC2: return gl.uniform2fv(location, arrayValue);\n case GL.FLOAT_VEC3: return gl.uniform3fv(location, arrayValue);\n case GL.FLOAT_VEC4: return gl.uniform4fv(location, arrayValue);\n\n case GL.INT: return gl.uniform1iv(location, arrayValue);\n case GL.INT_VEC2: return gl.uniform2iv(location, arrayValue);\n case GL.INT_VEC3: return gl.uniform3iv(location, arrayValue);\n case GL.INT_VEC4: return gl.uniform4iv(location, arrayValue);\n\n case GL.BOOL: return gl.uniform1iv(location, arrayValue);\n case GL.BOOL_VEC2: return gl.uniform2iv(location, arrayValue);\n case GL.BOOL_VEC3: return gl.uniform3iv(location, arrayValue);\n case GL.BOOL_VEC4: return gl.uniform4iv(location, arrayValue);\n\n // WEBGL2 - unsigned integers\n case GL.UNSIGNED_INT: return gl2.uniform1uiv(location, arrayValue, 1);\n case GL.UNSIGNED_INT_VEC2: return gl2.uniform2uiv(location, arrayValue, 2);\n case GL.UNSIGNED_INT_VEC3: return gl2.uniform3uiv(location, arrayValue, 3);\n case GL.UNSIGNED_INT_VEC4: return gl2.uniform4uiv(location, arrayValue, 4);\n\n // WebGL2 - quadratic matrices\n // false: don't transpose the matrix\n case GL.FLOAT_MAT2: return gl.uniformMatrix2fv(location, false, arrayValue);\n case GL.FLOAT_MAT3: return gl.uniformMatrix3fv(location, false, arrayValue);\n case GL.FLOAT_MAT4: return gl.uniformMatrix4fv(location, false, arrayValue);\n\n // WebGL2 - rectangular matrices\n case GL.FLOAT_MAT2x3: return gl2.uniformMatrix2x3fv(location, false, arrayValue);\n case GL.FLOAT_MAT2x4: return gl2.uniformMatrix2x4fv(location, false, arrayValue);\n case GL.FLOAT_MAT3x2: return gl2.uniformMatrix3x2fv(location, false, arrayValue);\n case GL.FLOAT_MAT3x4: return gl2.uniformMatrix3x4fv(location, false, arrayValue);\n case GL.FLOAT_MAT4x2: return gl2.uniformMatrix4x2fv(location, false, arrayValue);\n case GL.FLOAT_MAT4x3: return gl2.uniformMatrix4x3fv(location, false, arrayValue);\n }\n\n throw new Error('Illegal uniform');\n}\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export declare function decodeUniformType(uniformType: GL): {
|
|
|
9
9
|
components: number;
|
|
10
10
|
glType: GLType;
|
|
11
11
|
};
|
|
12
|
-
export declare function decodeAttributeType(
|
|
12
|
+
export declare function decodeAttributeType(attributeType: GL): {
|
|
13
13
|
format: VertexFormat;
|
|
14
14
|
components: number;
|
|
15
15
|
glType: GLType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniforms.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/uniforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpC,OAAO,EAAC,aAAa,EAAiB,eAAe,EAAE,MAAM,EAAC,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"uniforms.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/uniforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpC,OAAO,EAAC,aAAa,EAAiB,eAAe,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAExF,0CAA0C;AAC1C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAE7D;AA0DD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,EAAE,GACd;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAO7D;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,EAAE,GAAG;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAOA;AAED,0FAA0F;AAC1F,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,eAAe,GAC/B;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,CAO3C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,KAAA,GAAG;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,CAkB9F"}
|
|
@@ -32,11 +32,9 @@ const COMPOSITE_GL_TYPES = {
|
|
|
32
32
|
};
|
|
33
33
|
export function decodeUniformType(uniformType) {
|
|
34
34
|
const typeAndSize = COMPOSITE_GL_TYPES[uniformType];
|
|
35
|
-
|
|
36
35
|
if (!typeAndSize) {
|
|
37
|
-
|
|
36
|
+
throw new Error('uniform');
|
|
38
37
|
}
|
|
39
|
-
|
|
40
38
|
const [glType, components,, format] = typeAndSize;
|
|
41
39
|
return {
|
|
42
40
|
format,
|
|
@@ -44,13 +42,11 @@ export function decodeUniformType(uniformType) {
|
|
|
44
42
|
glType
|
|
45
43
|
};
|
|
46
44
|
}
|
|
47
|
-
export function decodeAttributeType(
|
|
48
|
-
const typeAndSize = COMPOSITE_GL_TYPES[
|
|
49
|
-
|
|
45
|
+
export function decodeAttributeType(attributeType) {
|
|
46
|
+
const typeAndSize = COMPOSITE_GL_TYPES[attributeType];
|
|
50
47
|
if (!typeAndSize) {
|
|
51
|
-
|
|
48
|
+
throw new Error('attribute');
|
|
52
49
|
}
|
|
53
|
-
|
|
54
50
|
const [glType, components,,, format] = typeAndSize;
|
|
55
51
|
return {
|
|
56
52
|
format,
|
|
@@ -60,11 +56,9 @@ export function decodeAttributeType(uniformType) {
|
|
|
60
56
|
}
|
|
61
57
|
export function decomposeCompositeGLType(compositeGLType) {
|
|
62
58
|
const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];
|
|
63
|
-
|
|
64
59
|
if (!typeAndSize) {
|
|
65
60
|
return null;
|
|
66
61
|
}
|
|
67
|
-
|
|
68
62
|
const [type, components] = typeAndSize;
|
|
69
63
|
return {
|
|
70
64
|
type,
|
|
@@ -79,13 +73,10 @@ export function getCompositeGLType(type, components) {
|
|
|
79
73
|
case GL.UNSIGNED_SHORT:
|
|
80
74
|
type = GL.FLOAT;
|
|
81
75
|
break;
|
|
82
|
-
|
|
83
76
|
default:
|
|
84
77
|
}
|
|
85
|
-
|
|
86
78
|
for (const glType in COMPOSITE_GL_TYPES) {
|
|
87
79
|
const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];
|
|
88
|
-
|
|
89
80
|
if (compType === type && compComponents === components) {
|
|
90
81
|
return {
|
|
91
82
|
glType: Number(glType),
|
|
@@ -93,7 +84,6 @@ export function getCompositeGLType(type, components) {
|
|
|
93
84
|
};
|
|
94
85
|
}
|
|
95
86
|
}
|
|
96
|
-
|
|
97
87
|
return null;
|
|
98
88
|
}
|
|
99
89
|
//# sourceMappingURL=uniforms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"uniforms.js","names":["GL","isSamplerUniform","type","SAMPLER_TYPES","includes","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","COMPOSITE_GL_TYPES","FLOAT","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT","INT_VEC2","INT_VEC3","INT_VEC4","UNSIGNED_INT","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT2x3","FLOAT_MAT2x4","FLOAT_MAT3x2","FLOAT_MAT3","FLOAT_MAT3x4","FLOAT_MAT4x2","FLOAT_MAT4x3","FLOAT_MAT4","decodeUniformType","uniformType","typeAndSize","Error","glType","components","format","decodeAttributeType","attributeType","decomposeCompositeGLType","compositeGLType","getCompositeGLType","BYTE","UNSIGNED_BYTE","SHORT","UNSIGNED_SHORT","compType","compComponents","name","Number"],"sources":["../../../src/adapter/helpers/uniforms.ts"],"sourcesContent":["import {UniformFormat, VertexFormat} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {GLUniformType, GLSamplerType, GLCompositeType, GLType} from '../../types/webgl';\n\n/** Check is uniform is of sampler type */\nexport function isSamplerUniform(type: GLUniformType): boolean {\n return SAMPLER_TYPES.includes(type as GLSamplerType);\n}\n\nconst SAMPLER_TYPES: GLSamplerType[] = [\n GL.SAMPLER_2D,\n GL.SAMPLER_CUBE,\n GL.SAMPLER_3D,\n GL.SAMPLER_2D_SHADOW,\n GL.SAMPLER_2D_ARRAY,\n GL.SAMPLER_2D_ARRAY_SHADOW,\n GL.SAMPLER_CUBE_SHADOW,\n GL.INT_SAMPLER_2D,\n GL.INT_SAMPLER_3D,\n GL.INT_SAMPLER_CUBE,\n GL.INT_SAMPLER_2D_ARRAY,\n GL.UNSIGNED_INT_SAMPLER_2D,\n GL.UNSIGNED_INT_SAMPLER_3D,\n GL.UNSIGNED_INT_SAMPLER_CUBE,\n GL.UNSIGNED_INT_SAMPLER_2D_ARRAY\n];\n\n// Composite types table\nconst COMPOSITE_GL_TYPES: Record<\n GLCompositeType,\n [GLType, number, string, UniformFormat, VertexFormat?]\n> = {\n [GL.FLOAT]: [GL.FLOAT, 1, 'float', 'f32', 'float32'],\n [GL.FLOAT_VEC2]: [GL.FLOAT, 2, 'vec2', 'vec2<f32>', 'float32x2'],\n [GL.FLOAT_VEC3]: [GL.FLOAT, 3, 'vec3', 'vec3<f32>', 'float32x3'],\n [GL.FLOAT_VEC4]: [GL.FLOAT, 4, 'vec4', 'vec4<f32>', 'float32x4'],\n\n [GL.INT]: [GL.INT, 1, 'int', 'i32', 'sint32'],\n [GL.INT_VEC2]: [GL.INT, 2, 'ivec2', 'vec2<i32>', 'sint32x2'],\n [GL.INT_VEC3]: [GL.INT, 3, 'ivec3', 'vec3<i32>', 'sint32x3'],\n [GL.INT_VEC4]: [GL.INT, 4, 'ivec4', 'vec4<i32>', 'sint32x4'],\n\n [GL.UNSIGNED_INT]: [GL.UNSIGNED_INT, 1, 'uint', 'u32', 'uint32'],\n [GL.UNSIGNED_INT_VEC2]: [GL.UNSIGNED_INT, 2, 'uvec2', 'vec2<u32>', 'uint32x2'],\n [GL.UNSIGNED_INT_VEC3]: [GL.UNSIGNED_INT, 3, 'uvec3', 'vec3<u32>', 'uint32x3'],\n [GL.UNSIGNED_INT_VEC4]: [GL.UNSIGNED_INT, 4, 'uvec4', 'vec4<u32>', 'uint32x4'],\n\n [GL.BOOL]: [GL.FLOAT, 1, 'bool', 'f32', 'float32x2'],\n [GL.BOOL_VEC2]: [GL.FLOAT, 2, 'bvec2', 'vec2<f32>'],\n [GL.BOOL_VEC3]: [GL.FLOAT, 3, 'bvec3', 'vec3<f32>'],\n [GL.BOOL_VEC4]: [GL.FLOAT, 4, 'bvec4', 'vec4<f32>'],\n\n [GL.FLOAT_MAT2]: [GL.FLOAT, 8, 'mat2', 'mat2x2<f32>'], // 4\n [GL.FLOAT_MAT2x3]: [GL.FLOAT, 8, 'mat2x3', 'mat2x3<f32>'], // 6\n [GL.FLOAT_MAT2x4]: [GL.FLOAT, 8, 'mat2x4', 'mat2x4<f32>'], // 8\n\n [GL.FLOAT_MAT3x2]: [GL.FLOAT, 12, 'mat3x2', 'mat3x2<f32>'], // 6\n [GL.FLOAT_MAT3]: [GL.FLOAT, 12, 'mat3', 'mat3x3<f32>'], // 9\n [GL.FLOAT_MAT3x4]: [GL.FLOAT, 12, 'mat3x4', 'mat3x4<f32>'], // 12\n\n [GL.FLOAT_MAT4x2]: [GL.FLOAT, 16, 'mat4x2', 'mat4x2<f32>'], // 8\n [GL.FLOAT_MAT4x3]: [GL.FLOAT, 16, 'mat4x3', 'mat4x3<f32>'], // 12\n [GL.FLOAT_MAT4]: [GL.FLOAT, 16, 'mat4', 'mat4x4<f32>'] // 16\n};\n\n/** Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3) */\nexport function decodeUniformType(\n uniformType: GL\n): {format: UniformFormat; components: number; glType: GLType} {\n const typeAndSize = COMPOSITE_GL_TYPES[uniformType];\n if (!typeAndSize) {\n throw new Error('uniform');\n }\n const [glType, components, , format] = typeAndSize;\n return {format, components, glType};\n}\n\nexport function decodeAttributeType(attributeType: GL): {\n format: VertexFormat;\n components: number;\n glType: GLType;\n} {\n const typeAndSize = COMPOSITE_GL_TYPES[attributeType];\n if (!typeAndSize) {\n throw new Error('attribute')\n }\n const [glType, components, , , format] = typeAndSize;\n return {format, components, glType};\n}\n\n/** Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3) */\nexport function decomposeCompositeGLType(\n compositeGLType: GLCompositeType\n): {type: GLType; components: number} | null {\n const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];\n if (!typeAndSize) {\n return null;\n }\n const [type, components] = typeAndSize;\n return {type, components};\n}\n\nexport function getCompositeGLType(type: GL, components): {glType: GLType; name: string} | null {\n switch (type) {\n case GL.BYTE:\n case GL.UNSIGNED_BYTE:\n case GL.SHORT:\n case GL.UNSIGNED_SHORT:\n type = GL.FLOAT;\n break;\n default:\n }\n\n for (const glType in COMPOSITE_GL_TYPES) {\n const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];\n if (compType === type && compComponents === components) {\n return {glType: Number(glType), name};\n }\n }\n return null;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-to-keys.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGpC,wBAAgB,WAAW,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"constants-to-keys.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGpC,wBAAgB,WAAW,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,CAkB5E;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAWpE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAUxE"}
|
|
@@ -3,13 +3,10 @@ export function getKeyValue(gl, name) {
|
|
|
3
3
|
if (typeof name !== 'string') {
|
|
4
4
|
return name;
|
|
5
5
|
}
|
|
6
|
-
|
|
7
6
|
const number = Number(name);
|
|
8
|
-
|
|
9
7
|
if (!isNaN(number)) {
|
|
10
8
|
return number;
|
|
11
9
|
}
|
|
12
|
-
|
|
13
10
|
name = name.replace(/^.*\./, '');
|
|
14
11
|
const value = gl[name];
|
|
15
12
|
assert(value !== undefined, "Accessing undefined constant GL.".concat(name));
|
|
@@ -18,25 +15,21 @@ export function getKeyValue(gl, name) {
|
|
|
18
15
|
export function getKey(gl, value) {
|
|
19
16
|
gl = gl.gl || gl;
|
|
20
17
|
value = Number(value);
|
|
21
|
-
|
|
22
18
|
for (const key in gl) {
|
|
23
19
|
if (gl[key] === value) {
|
|
24
20
|
return "GL.".concat(key);
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
|
-
|
|
28
23
|
return String(value);
|
|
29
24
|
}
|
|
30
25
|
export function getKeyType(gl, value) {
|
|
31
26
|
assert(value !== undefined, 'undefined key');
|
|
32
27
|
value = Number(value);
|
|
33
|
-
|
|
34
28
|
for (const key in gl) {
|
|
35
29
|
if (gl[key] === value) {
|
|
36
30
|
return "GL.".concat(key);
|
|
37
31
|
}
|
|
38
32
|
}
|
|
39
|
-
|
|
40
33
|
return String(value);
|
|
41
34
|
}
|
|
42
35
|
//# sourceMappingURL=constants-to-keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"constants-to-keys.js","names":["assert","getKeyValue","gl","name","number","Number","isNaN","replace","value","undefined","concat","getKey","key","String","getKeyType"],"sources":["../../../src/adapter/objects/constants-to-keys.ts"],"sourcesContent":["import {assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\n\n// Resolve a WebGL enumeration name (returns itself if already a number)\nexport function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL {\n // If not a string, return (assume number)\n if (typeof name !== 'string') {\n return name;\n }\n\n // If string converts to number, return number\n const number = Number(name);\n if (!isNaN(number)) {\n return number;\n }\n\n // Look up string, after removing any 'GL.' or 'gl.' prefix\n name = name.replace(/^.*\\./, '');\n // @ts-ignore expect-error depends on settings\n const value = gl[name];\n assert(value !== undefined, `Accessing undefined constant GL.${name}`);\n return value;\n}\n\nexport function getKey(gl: WebGLRenderingContext, value: any): string {\n // @ts-ignore expect-error depends on settings \n gl = gl.gl || gl;\n value = Number(value);\n for (const key in gl) {\n // @ts-ignore expect-error depends on settings\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n\nexport function getKeyType(gl: WebGLRenderingContext, value: any): string {\n assert(value !== undefined, 'undefined key');\n value = Number(value);\n for (const key in gl) {\n // @ts-ignore expect-error depends on settings\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n"],"mappings":"AAAA,SAAQA,MAAM,QAAO,cAAc;AAInC,OAAO,SAASC,WAAWA,CAACC,EAAyB,EAAEC,IAAiB,EAAM;EAE5E,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAOA,IAAI;EACb;EAGA,MAAMC,MAAM,GAAGC,MAAM,CAACF,IAAI,CAAC;EAC3B,IAAI,CAACG,KAAK,CAACF,MAAM,CAAC,EAAE;IAClB,OAAOA,MAAM;EACf;EAGAD,IAAI,GAAGA,IAAI,CAACI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;EAEhC,MAAMC,KAAK,GAAGN,EAAE,CAACC,IAAI,CAAC;EACtBH,MAAM,CAACQ,KAAK,KAAKC,SAAS,qCAAAC,MAAA,CAAqCP,IAAI,EAAG;EACtE,OAAOK,KAAK;AACd;AAEA,OAAO,SAASG,MAAMA,CAACT,EAAyB,EAAEM,KAAU,EAAU;EAEpEN,EAAE,GAAGA,EAAE,CAACA,EAAE,IAAIA,EAAE;EAChBM,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAC;EACrB,KAAK,MAAMI,GAAG,IAAIV,EAAE,EAAE;IAEpB,IAAIA,EAAE,CAACU,GAAG,CAAC,KAAKJ,KAAK,EAAE;MACrB,aAAAE,MAAA,CAAaE,GAAG;IAClB;EACF;EACA,OAAOC,MAAM,CAACL,KAAK,CAAC;AACtB;AAEA,OAAO,SAASM,UAAUA,CAACZ,EAAyB,EAAEM,KAAU,EAAU;EACxER,MAAM,CAACQ,KAAK,KAAKC,SAAS,EAAE,eAAe,CAAC;EAC5CD,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAC;EACrB,KAAK,MAAMI,GAAG,IAAIV,EAAE,EAAE;IAEpB,IAAIA,EAAE,CAACU,GAAG,CAAC,KAAKJ,KAAK,EAAE;MACrB,aAAAE,MAAA,CAAaE,GAAG;IAClB;EACF;EACA,OAAOC,MAAM,CAACL,KAAK,CAAC;AACtB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ResourceProps } from '@luma.gl/api';
|
|
2
|
-
import WebGLDevice from '../webgl-device';
|
|
3
|
-
import WebGLResource from './webgl-resource';
|
|
2
|
+
import { WebGLDevice } from '../webgl-device';
|
|
3
|
+
import { WebGLResource } from './webgl-resource';
|
|
4
4
|
export declare type RenderbufferProps = ResourceProps & {
|
|
5
5
|
format: number;
|
|
6
6
|
width?: number;
|
|
@@ -17,7 +17,7 @@ export declare type RenderbufferProps = ResourceProps & {
|
|
|
17
17
|
* use Textures instead.
|
|
18
18
|
* Renderbuffer objects also natively accommodate Multisampling (MSAA).
|
|
19
19
|
*/
|
|
20
|
-
export
|
|
20
|
+
export declare class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {
|
|
21
21
|
get [Symbol.toStringTag](): string;
|
|
22
22
|
get width(): number;
|
|
23
23
|
get height(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-renderbuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,aAAa,EAAC,MAAM,cAAc,CAAC;AAEnD,OAAO,WAAW,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"webgl-renderbuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,aAAa,EAAC,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAK/C,oBAAY,iBAAiB,GAAG,aAAa,GAAG;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAYF;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACrE,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAA2B;IAEtE,IAAI,KAAK,IAAI,MAAM,CAA6B;IAChD,IAAI,MAAM,IAAI,MAAM,CAA8B;IAClD,IAAI,MAAM,IAAI,MAAM,CAA+B;IACnD,IAAI,OAAO,IAAI,MAAM,CAA+B;IAEpD,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO;gBAIvE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB;IAKzD,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAWnD,iEAAiE;IACjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IA0B/C,aAAa;IAIb,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAGtD"}
|