@luma.gl/webgl 9.0.0-alpha.2 → 9.0.0-alpha.20
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.js +1 -5
- 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.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +5 -21
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +2 -4
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +14 -67
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +6 -16
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +1 -2
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +17 -48
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +2 -17
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +1 -14
- 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 +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +9 -67
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +2 -7
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +50 -139
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +3 -2
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +4 -12
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +1 -2
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +7 -20
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +23 -23
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +65 -182
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +5 -18
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +45 -29
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +107 -108
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +11 -35
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/buffer.d.ts +0 -1
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +29 -86
- 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 +9205 -0
- package/dist/index.cjs +5948 -0
- package/dist/index.d.ts +6 -6
- 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/adapter/converters/device-parameters.ts +44 -15
- 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 +58 -36
- 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 +5 -5
- package/src/adapter/objects/webgl-resource.ts +7 -12
- package/src/adapter/objects/webgl-vertex-array-object.ts +5 -5
- package/src/adapter/resources/webgl-buffer.ts +14 -14
- package/src/adapter/resources/webgl-command-encoder.ts +5 -5
- package/src/adapter/resources/webgl-framebuffer.ts +14 -11
- package/src/adapter/resources/webgl-render-pass.ts +2 -1
- package/src/adapter/resources/webgl-render-pipeline.ts +83 -71
- package/src/adapter/resources/webgl-sampler.ts +10 -4
- package/src/adapter/resources/webgl-shader.ts +9 -8
- package/src/adapter/resources/webgl-texture.ts +51 -41
- package/src/adapter/webgl-canvas-context.ts +5 -6
- package/src/adapter/webgl-device.ts +144 -60
- package/src/classic/accessor.ts +1 -14
- package/src/classic/buffer.ts +14 -21
- package/src/classic/typed-array-utils.ts +4 -2
- 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 +17 -11
- 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 +14 -12
- 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,13 +1,11 @@
|
|
|
1
|
-
import { isWebGL2 } from
|
|
2
|
-
import { isOldIE } from
|
|
3
|
-
import { getTextureFeatures, _checkFloat32ColorAttachment } from
|
|
1
|
+
import { isWebGL2 } from "../../context/context/webgl-checks.js";
|
|
2
|
+
import { isOldIE } from "./is-old-ie.js";
|
|
3
|
+
import { getTextureFeatures, _checkFloat32ColorAttachment } from "../converters/texture-formats.js";
|
|
4
4
|
export function getDeviceFeatures(gl) {
|
|
5
5
|
const features = getWebGLFeatures(gl);
|
|
6
|
-
|
|
7
6
|
for (const textureFeature of getTextureFeatures(gl)) {
|
|
8
7
|
features.add(textureFeature);
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
return features;
|
|
12
10
|
}
|
|
13
11
|
export function getWebGLFeatures(gl) {
|
|
@@ -15,58 +13,53 @@ export function getWebGLFeatures(gl) {
|
|
|
15
13
|
gl.getExtension('WEBGL_color_buffer_float');
|
|
16
14
|
gl.getExtension('EXT_float_blend');
|
|
17
15
|
const features = new Set();
|
|
18
|
-
|
|
19
16
|
for (const feature of Object.keys(WEBGL_FEATURES)) {
|
|
20
17
|
if (isFeatureSupported(gl, feature)) {
|
|
21
18
|
features.add(feature);
|
|
22
19
|
}
|
|
23
20
|
}
|
|
24
|
-
|
|
25
21
|
return features;
|
|
26
22
|
}
|
|
27
|
-
|
|
28
23
|
function isFeatureSupported(gl, feature) {
|
|
29
|
-
const
|
|
30
|
-
|
|
24
|
+
const featureInfo = WEBGL_FEATURES[feature];
|
|
25
|
+
if (!featureInfo) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
const [webgl1Feature, webgl2Feature] = featureInfo || [];
|
|
31
29
|
const featureDefinition = isWebGL2(gl) ? webgl2Feature : webgl1Feature;
|
|
32
|
-
|
|
33
30
|
if (typeof featureDefinition === 'boolean') {
|
|
34
31
|
return featureDefinition;
|
|
35
32
|
}
|
|
36
|
-
|
|
37
33
|
switch (feature) {
|
|
38
34
|
case 'texture-renderable-rgba32float-webgl':
|
|
39
35
|
return isWebGL2(gl) ? Boolean(gl.getExtension(featureDefinition)) : _checkFloat32ColorAttachment(gl);
|
|
40
|
-
|
|
41
36
|
case 'glsl-derivatives':
|
|
42
37
|
return canCompileGLSLExtension(gl, featureDefinition);
|
|
43
|
-
|
|
44
38
|
case 'glsl-frag-data':
|
|
45
39
|
return canCompileGLSLExtension(gl, featureDefinition, {
|
|
46
40
|
behavior: 'require'
|
|
47
41
|
});
|
|
48
|
-
|
|
49
42
|
case 'glsl-frag-depth':
|
|
50
43
|
return canCompileGLSLExtension(gl, featureDefinition);
|
|
51
|
-
|
|
52
44
|
default:
|
|
53
45
|
return Boolean(gl.getExtension(featureDefinition));
|
|
54
46
|
}
|
|
55
47
|
}
|
|
56
|
-
|
|
57
48
|
const compiledGLSLExtensions = {};
|
|
58
|
-
export function canCompileGLSLExtension(gl, extensionName
|
|
49
|
+
export function canCompileGLSLExtension(gl, extensionName) {
|
|
50
|
+
let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
59
51
|
if (!isOldIE(opts)) {
|
|
60
52
|
return true;
|
|
61
53
|
}
|
|
62
|
-
|
|
63
54
|
if (extensionName in compiledGLSLExtensions) {
|
|
64
55
|
return compiledGLSLExtensions[extensionName];
|
|
65
56
|
}
|
|
66
|
-
|
|
67
57
|
const behavior = opts.behavior || 'enable';
|
|
68
58
|
const source = "#extension GL_".concat(extensionName, " : ").concat(behavior, "\nvoid main(void) {}");
|
|
69
59
|
const shader = gl.createShader(gl.VERTEX_SHADER);
|
|
60
|
+
if (!shader) {
|
|
61
|
+
throw new Error('shader');
|
|
62
|
+
}
|
|
70
63
|
gl.shaderSource(shader, source);
|
|
71
64
|
gl.compileShader(shader);
|
|
72
65
|
const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/device-helpers/device-features.ts"],"names":["isWebGL2","isOldIE","getTextureFeatures","_checkFloat32ColorAttachment","getDeviceFeatures","gl","features","getWebGLFeatures","textureFeature","add","getExtension","Set","feature","Object","keys","WEBGL_FEATURES","isFeatureSupported","webgl1Feature","webgl2Feature","featureDefinition","Boolean","canCompileGLSLExtension","behavior","compiledGLSLExtensions","extensionName","opts","source","shader","createShader","VERTEX_SHADER","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"mappings":"AAMA,SAAQA,QAAR,QAAuB,oCAAvB;AACA,SAAQC,OAAR,QAAsB,aAAtB;AACA,SAAQC,kBAAR,EAA4BC,4BAA5B,QAA+D,+BAA/D;AAGA,OAAO,SAASC,iBAAT,CAA2BC,EAA3B,EAA0E;AAC/E,QAAMC,QAAQ,GAAGC,gBAAgB,CAACF,EAAD,CAAjC;;AAIA,OAAK,MAAMG,cAAX,IAA6BN,kBAAkB,CAACG,EAAD,CAA/C,EAAqD;AACnDC,IAAAA,QAAQ,CAACG,GAAT,CAAaD,cAAb;AACD;;AASD,SAAOF,QAAP;AACD;AAGD,OAAO,SAASC,gBAAT,CAA0BF,EAA1B,EAAyE;AAE9EA,EAAAA,EAAE,CAACK,YAAH,CAAgB,wBAAhB;AACAL,EAAAA,EAAE,CAACK,YAAH,CAAgB,0BAAhB;AACAL,EAAAA,EAAE,CAACK,YAAH,CAAgB,iBAAhB;AAEA,QAAMJ,QAAQ,GAAG,IAAIK,GAAJ,EAAjB;;AACA,OAAK,MAAMC,OAAX,IAAsBC,MAAM,CAACC,IAAP,CAAYC,cAAZ,CAAtB,EAAmD;AAEjD,QAAIC,kBAAkB,CAACX,EAAD,EAAKO,OAAL,CAAtB,EAAqC;AAEnCN,MAAAA,QAAQ,CAACG,GAAT,CAAaG,OAAb;AACD;AACF;;AACD,SAAON,QAAP;AACD;;AAED,SAASU,kBAAT,CAA4BX,EAA5B,EAAuDO,OAAvD,EAAwF;AACtF,QAAM,CAACK,aAAD,EAAgBC,aAAhB,IAAiCH,cAAc,CAACH,OAAD,CAArD;AAA+D;AAG/D,QAAMO,iBAAiB,GAAGnB,QAAQ,CAACK,EAAD,CAAR,GAAea,aAAf,GAA+BD,aAAzD;;AAGA,MAAI,OAAOE,iBAAP,KAA6B,SAAjC,EAA4C;AAC1C,WAAOA,iBAAP;AACD;;AAED,UAAQP,OAAR;AACE,SAAK,sCAAL;AACE,aAAOZ,QAAQ,CAACK,EAAD,CAAR,GAAee,OAAO,CAACf,EAAE,CAACK,YAAH,CAAgBS,iBAAhB,CAAD,CAAtB,GACLhB,4BAA4B,CAACE,EAAD,CAD9B;;AAEF,SAAK,kBAAL;AACE,aAAOgB,uBAAuB,CAAChB,EAAD,EAAKc,iBAAL,CAA9B;;AACF,SAAK,gBAAL;AACE,aAAOE,uBAAuB,CAAChB,EAAD,EAAKc,iBAAL,EAAwB;AAACG,QAAAA,QAAQ,EAAE;AAAX,OAAxB,CAA9B;;AACF,SAAK,iBAAL;AACE,aAAOD,uBAAuB,CAAChB,EAAD,EAAKc,iBAAL,CAA9B;;AACF;AACE,aAAOC,OAAO,CAACf,EAAE,CAACK,YAAH,CAAgBS,iBAAhB,CAAD,CAAd;AAXJ;AAaD;;AAED,MAAMI,sBAA+C,GAAG,EAAxD;AAeA,OAAO,SAASF,uBAAT,CAAiChB,EAAjC,EAA4DmB,aAA5D,EAA2EC,IAAiB,GAAG,EAA/F,EAAmG;AACxG,MAAI,CAACxB,OAAO,CAACwB,IAAD,CAAZ,EAAoB;AAClB,WAAO,IAAP;AACD;;AAED,MAAID,aAAa,IAAID,sBAArB,EAA6C;AAC3C,WAAOA,sBAAsB,CAACC,aAAD,CAA7B;AACD;;AAED,QAAMF,QAAQ,GAAGG,IAAI,CAACH,QAAL,IAAiB,QAAlC;AACA,QAAMI,MAAM,2BAAoBF,aAApB,gBAAuCF,QAAvC,yBAAZ;AAEA,QAAMK,MAAM,GAAGtB,EAAE,CAACuB,YAAH,CAAgBvB,EAAE,CAACwB,aAAnB,CAAf;AACAxB,EAAAA,EAAE,CAACyB,YAAH,CAAgBH,MAAhB,EAAwBD,MAAxB;AACArB,EAAAA,EAAE,CAAC0B,aAAH,CAAiBJ,MAAjB;AACA,QAAMK,UAAU,GAAG3B,EAAE,CAAC4B,kBAAH,CAAsBN,MAAtB,EAA8BtB,EAAE,CAAC6B,cAAjC,CAAnB;AACA7B,EAAAA,EAAE,CAAC8B,YAAH,CAAgBR,MAAhB;AACAJ,EAAAA,sBAAsB,CAACC,aAAD,CAAtB,GAAwCQ,UAAxC;AACA,SAAOA,UAAP;AACD;AAKD,MAAMjB,cAAoF,GAAG;AAC3F,WAAS,CAAC,IAAD,EAAO,IAAP,CADkF;AAE3F,YAAU,CAAC,KAAD,EAAQ,IAAR,CAFiF;AAI3F,uBAAqB,CAAC,0BAAD,EAA6B,iCAA7B,CAJsE;AAO3F,gCAA8B,CAAC,yBAAD,EAA4B,IAA5B,CAP6D;AAQ3F,gCAA8B,CAAC,wBAAD,EAA2B,IAA3B,CAR6D;AAS3F,oCAAkC,CAAC,oBAAD,EAAuB,IAAvB,CATyD;AAU3F,yBAAuB,CAAC,wBAAD,EAA2B,IAA3B,CAVoE;AAW3F,yBAAuB,CAAC,kBAAD,EAAqB,IAArB,CAXoE;AAY3F,gCAA8B,CAAC,iBAAD,EAAoB,iBAApB,CAZ6D;AAe3F,iCAA+B,CAAC,UAAD,EAAa,IAAb,CAf4D;AAkB3F,kCAAgC,CAAC,qBAAD,EAAwB,IAAxB,CAlB2D;AAmB3F,oCAAkC,CAAC,mBAAD,EAAsB,IAAtB,CAnByD;AAoB3F,oCAAkC,CAAC,wBAAD,EAA2B,IAA3B,CApByD;AAsB3F,yCAAuC,CAAC,0BAAD,EAA6B,0BAA7B,CAtBoD;AAuB3F,yCAAuC,CAAC,+BAAD,EAAkC,+BAAlC,CAvBoD;AAwB3F,sCAAoC,CAAC,gCAAD,EAAmC,gCAAnC,CAxBuD;AA2B3F,0CAAwC,CAAC,0BAAD,EAA6B,wBAA7B,CA3BmD;AA4B3F,sCAAoC,CAAC,KAAD,EAAQ,wBAAR,CA5BuD;AA6B3F,sCAAoC,CAAC,6BAAD,EAAgC,6BAAhC,CA7BuD;AAgC3F,oBAAkB,CAAC,oBAAD,EAAuB,IAAvB,CAhCyE;AAiC3F,qBAAmB,CAAC,gBAAD,EAAmB,IAAnB,CAjCwE;AAkC3F,sBAAoB,CAAC,0BAAD,EAA6B,IAA7B,CAlCuE;AAmC3F,sBAAoB,CAAC,wBAAD,EAA2B,IAA3B;AAnCuE,CAA7F","sourcesContent":["// Feature detection for WebGL\n// Provides a function that enables simple checking of which WebGL features are\n// available in an WebGL1 or WebGL2 environment.\n\nimport {DeviceFeature} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport {isOldIE} from './is-old-ie';\nimport {getTextureFeatures, _checkFloat32ColorAttachment} from '../converters/texture-formats';\n\n/** Get WebGPU style feature strings */\nexport function getDeviceFeatures(gl: WebGLRenderingContext): Set<DeviceFeature> {\n const features = getWebGLFeatures(gl);\n\n // texture features\n // features.add('texture-compression-bc'); \n for (const textureFeature of getTextureFeatures(gl)) {\n features.add(textureFeature);\n }\n\n // TODO\n // features.add('depth-clip-control'); // GPUPrimitiveState.clampDepth\n // features.add('depth24unorm-stencil8'); // GPUTextureFormat 'depth24unorm-stencil8'.\n // features.add('depth32float-stencil8'); // GPUTextureFormat 'depth32float-stencil8'.\n // features.add('timestamp-query'); // GPUQueryType \"timestamp-query\"\n // \"indirect-first-instance\"\n\n return features;\n}\n\n/** Extract all WebGL features */\nexport function getWebGLFeatures(gl: WebGLRenderingContext): Set<DeviceFeature> {\n // Enables EXT_float_blend first: https://developer.mozilla.org/en-US/docs/Web/API/EXT_float_blend\n gl.getExtension('EXT_color_buffer_float');\n gl.getExtension('WEBGL_color_buffer_float');\n gl.getExtension('EXT_float_blend');\n\n const features = new Set<DeviceFeature>();\n for (const feature of Object.keys(WEBGL_FEATURES)) {\n // @ts-expect-error\n if (isFeatureSupported(gl, feature)) {\n // @ts-expect-error\n features.add(feature);\n }\n }\n return features;\n}\n\nfunction isFeatureSupported(gl: WebGLRenderingContext, feature: DeviceFeature): boolean {\n const [webgl1Feature, webgl2Feature] = WEBGL_FEATURES[feature];;\n\n // Get extension name from table\n const featureDefinition = isWebGL2(gl) ? webgl2Feature : webgl1Feature;\n\n // Check if the value is dependent on checking one or more extensions\n if (typeof featureDefinition === 'boolean') {\n return featureDefinition;\n }\n\n switch (feature) {\n case 'texture-renderable-rgba32float-webgl':\n return isWebGL2(gl) ? Boolean(gl.getExtension(featureDefinition)) :\n _checkFloat32ColorAttachment(gl);\n case 'glsl-derivatives':\n return canCompileGLSLExtension(gl, featureDefinition); // TODO options\n case 'glsl-frag-data':\n return canCompileGLSLExtension(gl, featureDefinition, {behavior: 'require'}); // TODO options\n case 'glsl-frag-depth':\n return canCompileGLSLExtension(gl, featureDefinition); // TODO options\n default:\n return Boolean(gl.getExtension(featureDefinition));\n }\n}\n\nconst compiledGLSLExtensions: Record<string, boolean> = {};\n\n/*\n * Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n * but fail to compile when the extension is enabled in the shader. Specifically,\n * the OES_standard_derivatives and WEBGL_draw_buffers extensions fails to compile in IE11 even though its included\n * in the list of supported extensions.\n * opts allows user agent to be overridden for testing\n * Inputs :\n * gl : WebGL context\n * cap : Key of WEBGL_FEATURES object identifying the extension\n * opts :\n * behavior : behavior of extension to be tested, by defualt `enable` is used\n * Returns : true, if shader is compiled successfully, false otherwise\n */\nexport function canCompileGLSLExtension(gl: WebGLRenderingContext, extensionName, opts: {behavior?} = {}) {\n if (!isOldIE(opts)) {\n return true;\n }\n\n if (extensionName in compiledGLSLExtensions) {\n return compiledGLSLExtensions[extensionName];\n }\n\n const behavior = opts.behavior || 'enable';\n const source = `#extension GL_${extensionName} : ${behavior}\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGLSLExtensions[extensionName] = canCompile;\n return canCompile;\n}\n\n/** Defines luma.gl \"feature\" names and semantics\n * Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension\n */\nconst WEBGL_FEATURES: Partial<Record<DeviceFeature, [boolean | string, boolean | string]>> = {\n 'webgl': [true, true],\n 'webgl2': [false, true],\n\n 'timer-query-webgl': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n\n // WEBGL1 SUPPORT\n 'vertex-array-object-webgl1': ['OES_vertex_array_object', true],\n 'instanced-rendering-webgl1': ['ANGLE_instanced_arrays', true],\n 'multiple-render-targets-webgl1': ['WEBGL_draw_buffers', true],\n 'index-uint32-webgl1': ['OES_element_index_uint', true],\n 'blend-minmax-webgl1': ['EXT_blend_minmax', true],\n 'texture-blend-float-webgl1': ['EXT_float_blend', 'EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n 'texture-formats-srgb-webgl1': ['EXT_sRGB', true],\n\n // TEXTURES\n 'texture-formats-depth-webgl1': ['WEBGL_depth_texture', true],\n 'texture-formats-float32-webgl1': ['OES_texture_float', true],\n 'texture-formats-float16-webgl1': ['OES_texture_half_float', true],\n\n 'texture-filter-linear-float32-webgl': ['OES_texture_float_linear', 'OES_texture_float_linear'],\n 'texture-filter-linear-float16-webgl': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],\n 'texture-filter-anisotropic-webgl': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n 'texture-renderable-rgba32float-webgl': ['WEBGL_color_buffer_float', 'EXT_color_buffer_float'], // Note override check\n 'texture-renderable-float32-webgl': [false, 'EXT_color_buffer_float'],\n 'texture-renderable-float16-webgl': ['EXT_color_buffer_half_float', 'EXT_color_buffer_half_float'],\n\n // GLSL extensions\n 'glsl-frag-data': ['WEBGL_draw_buffers', true],\n 'glsl-frag-depth': ['EXT_frag_depth', true],\n 'glsl-derivatives': ['OES_standard_derivatives', true],\n 'glsl-texture-lod': ['EXT_shader_texture_lod', true]\n};\n"],"file":"device-features.js"}
|
|
1
|
+
{"version":3,"file":"device-features.js","names":["isWebGL2","isOldIE","getTextureFeatures","_checkFloat32ColorAttachment","getDeviceFeatures","gl","features","getWebGLFeatures","textureFeature","add","getExtension","Set","feature","Object","keys","WEBGL_FEATURES","isFeatureSupported","featureInfo","webgl1Feature","webgl2Feature","featureDefinition","Boolean","canCompileGLSLExtension","behavior","compiledGLSLExtensions","extensionName","opts","arguments","length","undefined","source","concat","shader","createShader","VERTEX_SHADER","Error","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"sources":["../../../src/adapter/device-helpers/device-features.ts"],"sourcesContent":["// Feature detection for WebGL\n// Provides a function that enables simple checking of which WebGL features are\n// available in an WebGL1 or WebGL2 environment.\n\nimport {DeviceFeature} from '@luma.gl/api';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport {isOldIE} from './is-old-ie';\nimport {getTextureFeatures, _checkFloat32ColorAttachment} from '../converters/texture-formats';\n\n/** Get WebGPU style feature strings */\nexport function getDeviceFeatures(gl: WebGLRenderingContext): Set<DeviceFeature> {\n const features = getWebGLFeatures(gl);\n\n // texture features\n // features.add('texture-compression-bc'); \n for (const textureFeature of getTextureFeatures(gl)) {\n features.add(textureFeature);\n }\n\n // TODO\n // features.add('depth-clip-control'); // GPUPrimitiveState.clampDepth\n // features.add('depth24unorm-stencil8'); // GPUTextureFormat 'depth24unorm-stencil8'.\n // features.add('depth32float-stencil8'); // GPUTextureFormat 'depth32float-stencil8'.\n // features.add('timestamp-query'); // GPUQueryType \"timestamp-query\"\n // \"indirect-first-instance\"\n\n return features;\n}\n\n/** Extract all WebGL features */\nexport function getWebGLFeatures(gl: WebGLRenderingContext): Set<DeviceFeature> {\n // Enables EXT_float_blend first: https://developer.mozilla.org/en-US/docs/Web/API/EXT_float_blend\n gl.getExtension('EXT_color_buffer_float');\n gl.getExtension('WEBGL_color_buffer_float');\n gl.getExtension('EXT_float_blend');\n\n const features = new Set<DeviceFeature>();\n for (const feature of Object.keys(WEBGL_FEATURES)) {\n // @ts-expect-error\n if (isFeatureSupported(gl, feature)) {\n // @ts-expect-error\n features.add(feature);\n }\n }\n return features;\n}\n\nfunction isFeatureSupported(gl: WebGLRenderingContext, feature: DeviceFeature): boolean {\n const featureInfo = WEBGL_FEATURES[feature];\n if (!featureInfo) {\n return false;\n }\n\n const [webgl1Feature, webgl2Feature] = featureInfo || [];\n\n // Get extension name from table\n const featureDefinition = isWebGL2(gl) ? webgl2Feature : webgl1Feature;\n\n // Check if the value is dependent on checking one or more extensions\n if (typeof featureDefinition === 'boolean') {\n return featureDefinition;\n }\n\n switch (feature) {\n case 'texture-renderable-rgba32float-webgl':\n return isWebGL2(gl) ? Boolean(gl.getExtension(featureDefinition)) :\n _checkFloat32ColorAttachment(gl);\n case 'glsl-derivatives':\n return canCompileGLSLExtension(gl, featureDefinition); // TODO options\n case 'glsl-frag-data':\n return canCompileGLSLExtension(gl, featureDefinition, {behavior: 'require'}); // TODO options\n case 'glsl-frag-depth':\n return canCompileGLSLExtension(gl, featureDefinition); // TODO options\n default:\n return Boolean(gl.getExtension(featureDefinition));\n }\n}\n\nconst compiledGLSLExtensions: Record<string, boolean> = {};\n\n/*\n * Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n * but fail to compile when the extension is enabled in the shader. Specifically,\n * the OES_standard_derivatives and WEBGL_draw_buffers extensions fails to compile in IE11 even though its included\n * in the list of supported extensions.\n * opts allows user agent to be overridden for testing\n * Inputs :\n * gl : WebGL context\n * cap : Key of WEBGL_FEATURES object identifying the extension\n * opts :\n * behavior : behavior of extension to be tested, by defualt `enable` is used\n * Returns : true, if shader is compiled successfully, false otherwise\n */\nexport function canCompileGLSLExtension(gl: WebGLRenderingContext, extensionName, opts: {behavior?} = {}) {\n if (!isOldIE(opts)) {\n return true;\n }\n\n if (extensionName in compiledGLSLExtensions) {\n return compiledGLSLExtensions[extensionName];\n }\n\n const behavior = opts.behavior || 'enable';\n const source = `#extension GL_${extensionName} : ${behavior}\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n if (!shader) {\n throw new Error('shader');\n }\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGLSLExtensions[extensionName] = canCompile;\n return canCompile;\n}\n\n/** Defines luma.gl \"feature\" names and semantics\n * Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension\n */\nconst WEBGL_FEATURES: Partial<Record<DeviceFeature, [boolean | string, boolean | string]>> = {\n 'webgl': [true, true],\n 'webgl2': [false, true],\n\n 'timer-query-webgl': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n\n // WEBGL1 SUPPORT\n 'vertex-array-object-webgl1': ['OES_vertex_array_object', true],\n 'instanced-rendering-webgl1': ['ANGLE_instanced_arrays', true],\n 'multiple-render-targets-webgl1': ['WEBGL_draw_buffers', true],\n 'index-uint32-webgl1': ['OES_element_index_uint', true],\n 'blend-minmax-webgl1': ['EXT_blend_minmax', true],\n 'texture-blend-float-webgl1': ['EXT_float_blend', 'EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n 'texture-formats-srgb-webgl1': ['EXT_sRGB', true],\n\n // TEXTURES\n 'texture-formats-depth-webgl1': ['WEBGL_depth_texture', true],\n 'texture-formats-float32-webgl1': ['OES_texture_float', true],\n 'texture-formats-float16-webgl1': ['OES_texture_half_float', true],\n\n 'texture-filter-linear-float32-webgl': ['OES_texture_float_linear', 'OES_texture_float_linear'],\n 'texture-filter-linear-float16-webgl': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],\n 'texture-filter-anisotropic-webgl': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n 'texture-renderable-rgba32float-webgl': ['WEBGL_color_buffer_float', 'EXT_color_buffer_float'], // Note override check\n 'texture-renderable-float32-webgl': [false, 'EXT_color_buffer_float'],\n 'texture-renderable-float16-webgl': ['EXT_color_buffer_half_float', 'EXT_color_buffer_half_float'],\n\n // GLSL extensions\n 'glsl-frag-data': ['WEBGL_draw_buffers', true],\n 'glsl-frag-depth': ['EXT_frag_depth', true],\n 'glsl-derivatives': ['OES_standard_derivatives', true],\n 'glsl-texture-lod': ['EXT_shader_texture_lod', true]\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import { getWebGL2Context } from
|
|
2
|
+
import { getWebGL2Context } from "../../context/context/webgl-checks.js";
|
|
3
3
|
export function getDeviceLimits(gl) {
|
|
4
4
|
const gl2 = getWebGL2Context(gl);
|
|
5
5
|
return {
|
|
@@ -33,15 +33,12 @@ export function getDeviceLimits(gl) {
|
|
|
33
33
|
}
|
|
34
34
|
export function getWebGLLimits(gl) {
|
|
35
35
|
const gl2 = getWebGL2Context(gl);
|
|
36
|
-
|
|
37
36
|
function get(pname) {
|
|
38
37
|
return gl.getParameter(pname);
|
|
39
38
|
}
|
|
40
|
-
|
|
41
39
|
function get2(pname, defaultValue) {
|
|
42
40
|
return gl2 ? gl2.getParameter(pname) : defaultValue || 0;
|
|
43
41
|
}
|
|
44
|
-
|
|
45
42
|
return {
|
|
46
43
|
[GL.ALIASED_LINE_WIDTH_RANGE]: get(GL.ALIASED_LINE_WIDTH_RANGE),
|
|
47
44
|
[GL.ALIASED_POINT_SIZE_RANGE]: get(GL.ALIASED_POINT_SIZE_RANGE),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/device-helpers/device-limits.ts"],"names":["GL","getWebGL2Context","getDeviceLimits","gl","gl2","maxTextureDimension1D","maxTextureDimension2D","getParameter","MAX_TEXTURE_SIZE","maxTextureDimension3D","MAX_3D_TEXTURE_SIZE","maxTextureArrayLayers","MAX_ARRAY_TEXTURE_LAYERS","maxBindGroups","maxDynamicUniformBuffersPerPipelineLayout","maxDynamicStorageBuffersPerPipelineLayout","maxSampledTexturesPerShaderStage","MAX_VERTEX_TEXTURE_IMAGE_UNITS","maxSamplersPerShaderStage","MAX_COMBINED_TEXTURE_IMAGE_UNITS","maxStorageBuffersPerShaderStage","maxStorageTexturesPerShaderStage","maxUniformBuffersPerShaderStage","MAX_UNIFORM_BUFFER_BINDINGS","maxUniformBufferBindingSize","MAX_UNIFORM_BLOCK_SIZE","maxStorageBufferBindingSize","minUniformBufferOffsetAlignment","UNIFORM_BUFFER_OFFSET_ALIGNMENT","minStorageBufferOffsetAlignment","maxVertexBuffers","maxVertexAttributes","MAX_VERTEX_ATTRIBS","maxVertexBufferArrayStride","maxInterStageShaderComponents","MAX_VARYING_COMPONENTS","maxComputeWorkgroupStorageSize","maxComputeInvocationsPerWorkgroup","maxComputeWorkgroupSizeX","maxComputeWorkgroupSizeY","maxComputeWorkgroupSizeZ","maxComputeWorkgroupsPerDimension","getWebGLLimits","get","pname","get2","defaultValue","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_TEXTURE_IMAGE_UNITS","MAX_RENDERBUFFER_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_UNIFORM_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_CLIENT_WAIT_TIMEOUT_WEBGL","MAX_COLOR_ATTACHMENTS","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_DRAW_BUFFERS","MAX_ELEMENT_INDEX","MAX_ELEMENTS_INDICES","MAX_ELEMENTS_VERTICES","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_SAMPLES","MAX_SERVER_WAIT_TIMEOUT","MAX_TEXTURE_LOD_BIAS","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_VERTEX_UNIFORM_BLOCKS","MAX_VERTEX_UNIFORM_COMPONENTS","MIN_PROGRAM_TEXEL_OFFSET","MAX_PROGRAM_TEXEL_OFFSET"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport type {DeviceLimits} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getWebGL2Context} from '../../context/context/webgl-checks';\n\n/** Populate a WebGPU style device limits */\nexport function getDeviceLimits(gl: WebGLRenderingContext): DeviceLimits {\n const gl2: WebGL2RenderingContext = getWebGL2Context(gl);\n return {\n maxTextureDimension1D: 0, // WebGL does not support 1D textures\n maxTextureDimension2D: gl.getParameter(GL.MAX_TEXTURE_SIZE),\n maxTextureDimension3D: gl2 ? gl2.getParameter(GL.MAX_3D_TEXTURE_SIZE) : 0,\n maxTextureArrayLayers: gl2 ? gl2.getParameter(GL.MAX_ARRAY_TEXTURE_LAYERS) : 0,\n maxBindGroups: 1, // TBD\n maxDynamicUniformBuffersPerPipelineLayout: 0, // TBD\n maxDynamicStorageBuffersPerPipelineLayout: 0, // TBD\n maxSampledTexturesPerShaderStage: gl.getParameter(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // TBD\n maxSamplersPerShaderStage: gl.getParameter(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n maxStorageBuffersPerShaderStage: 0, // TBD\n maxStorageTexturesPerShaderStage: 0, // TBD\n maxUniformBuffersPerShaderStage: gl2 ? gl2.getParameter(GL.MAX_UNIFORM_BUFFER_BINDINGS) : 0,\n maxUniformBufferBindingSize: gl2 ? gl2.getParameter(GL.MAX_UNIFORM_BLOCK_SIZE) : 0,\n maxStorageBufferBindingSize: 0,\n minUniformBufferOffsetAlignment: gl2 ? gl2.getParameter(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) : 0,\n minStorageBufferOffsetAlignment: 0, // TBD\n maxVertexBuffers: 0,\n maxVertexAttributes: gl.getParameter(GL.MAX_VERTEX_ATTRIBS),\n maxVertexBufferArrayStride: 2048, // TBD, this is just the default value from WebGPU\n maxInterStageShaderComponents: gl2 ? gl2.getParameter(GL.MAX_VARYING_COMPONENTS) : 0,\n maxComputeWorkgroupStorageSize: 0, // WebGL does not support compute shaders\n maxComputeInvocationsPerWorkgroup: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeX: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeY: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeZ: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupsPerDimension: 0, // WebGL does not support compute shaders\n }\n}\n\n/** WebGL context limits */\nexport type WebGLLimits = {\n [GL.ALIASED_LINE_WIDTH_RANGE]: [number, number];\n [GL.ALIASED_POINT_SIZE_RANGE]: [number, number];\n [GL.MAX_TEXTURE_SIZE]: number;\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: number;\n [GL.MAX_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_RENDERBUFFER_SIZE]: number;\n [GL.MAX_VARYING_VECTORS]: number;\n [GL.MAX_VERTEX_ATTRIBS]: number;\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: number;\n [GL.MAX_VIEWPORT_DIMS]: [number, number];\n\n // Extensions\n [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: number;\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: number;\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: number;\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: number;\n [GL.MAX_COLOR_ATTACHMENTS]: number;\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: number;\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: number;\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: number;\n [GL.MAX_DRAW_BUFFERS]: number;\n [GL.MAX_ELEMENT_INDEX]: number;\n [GL.MAX_ELEMENTS_INDICES]: number;\n [GL.MAX_ELEMENTS_VERTICES]: number;\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: number;\n [GL.MAX_SAMPLES]: number;\n [GL.MAX_SERVER_WAIT_TIMEOUT]: number;\n [GL.MAX_TEXTURE_LOD_BIAS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: number;\n [GL.MAX_UNIFORM_BLOCK_SIZE]: number;\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: number;\n [GL.MAX_VARYING_COMPONENTS]: number;\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: number;\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: number;\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: number;\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: number;\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: number;\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: number;\n};\n\n\nexport function getWebGLLimits(gl: WebGLRenderingContext): WebGLLimits {\n const gl2 = getWebGL2Context(gl);\n function get<T = number>(pname: number): T {\n return gl.getParameter(pname) as T;\n }\n function get2(pname: number, defaultValue?: number): number;\n function get2<T>(pname: number, defaultValue: T): T;\n function get2<T>(pname: number, defaultValue: T): T {\n return gl2 ? gl2.getParameter(pname) as T : (defaultValue || 0) as T;\n }\n // function getMaxAnistropy() {\n // const extension = gl.getExtension('EXT_texture_filter_anisotropic');\n // }\n return {\n [GL.ALIASED_LINE_WIDTH_RANGE]: get(GL.ALIASED_LINE_WIDTH_RANGE),\n [GL.ALIASED_POINT_SIZE_RANGE]: get(GL.ALIASED_POINT_SIZE_RANGE),\n [GL.MAX_TEXTURE_SIZE]: get(GL.MAX_TEXTURE_SIZE),\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: get(GL.MAX_CUBE_MAP_TEXTURE_SIZE), // GLint\n [GL.MAX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: get(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_RENDERBUFFER_SIZE]: get(GL.MAX_RENDERBUFFER_SIZE), // GLint\n [GL.MAX_VARYING_VECTORS]: get(GL.MAX_VARYING_VECTORS), // GLint\n [GL.MAX_VERTEX_ATTRIBS]: get(GL.MAX_VERTEX_ATTRIBS), // GLint\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: get(GL.MAX_VERTEX_UNIFORM_VECTORS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: get(GL.MAX_FRAGMENT_UNIFORM_VECTORS), // GLint\n [GL.MAX_VIEWPORT_DIMS]: get(GL.MAX_VIEWPORT_DIMS),\n\n // Extensions\n [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: get(GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT), // getMaxAnistropy(),\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: get2(GL.MAX_3D_TEXTURE_SIZE), // GLint\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: get2(GL.MAX_ARRAY_TEXTURE_LAYERS), // GLint\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: get2(GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL), // GLint64\n [GL.MAX_COLOR_ATTACHMENTS]: get2(GL.MAX_COLOR_ATTACHMENTS), // GLint\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS), // GLint64\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: get2(GL.MAX_COMBINED_UNIFORM_BLOCKS), // GLint\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS), // GLint64\n [GL.MAX_DRAW_BUFFERS]: get2(GL.MAX_DRAW_BUFFERS), // GLint\n [GL.MAX_ELEMENT_INDEX]: get2(GL.MAX_ELEMENT_INDEX), // GLint64\n [GL.MAX_ELEMENTS_INDICES]: get2(GL.MAX_ELEMENTS_INDICES), // GLint\n [GL.MAX_ELEMENTS_VERTICES]: get2(GL.MAX_ELEMENTS_VERTICES), // GLint\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: get2(GL.MAX_FRAGMENT_INPUT_COMPONENTS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: get2(GL.MAX_FRAGMENT_UNIFORM_BLOCKS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_FRAGMENT_UNIFORM_COMPONENTS), // GLint\n [GL.MAX_SAMPLES]: get2(GL.MAX_SAMPLES), // GLint\n [GL.MAX_SERVER_WAIT_TIMEOUT]: get2(GL.MAX_SERVER_WAIT_TIMEOUT), // GLint64\n [GL.MAX_TEXTURE_LOD_BIAS]: get2(GL.MAX_TEXTURE_LOD_BIAS), // GLfloat\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS), // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS), // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS), // GLint\n [GL.MAX_UNIFORM_BLOCK_SIZE]: get2(GL.MAX_UNIFORM_BLOCK_SIZE), // GLint64\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: get2(GL.MAX_UNIFORM_BUFFER_BINDINGS), // GLint\n [GL.MAX_VARYING_COMPONENTS]: get2(GL.MAX_VARYING_COMPONENTS), // GLint\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: get2(GL.MAX_VERTEX_OUTPUT_COMPONENTS), // GLint\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: get2(GL.MAX_VERTEX_UNIFORM_BLOCKS), // GLint\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_VERTEX_UNIFORM_COMPONENTS), // GLint\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: get2(GL.MIN_PROGRAM_TEXEL_OFFSET), // GLint\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: get2(GL.MAX_PROGRAM_TEXEL_OFFSET), // GLint\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: get2(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) // GLint\n };\n}\n"],"file":"device-limits.js"}
|
|
1
|
+
{"version":3,"file":"device-limits.js","names":["GL","getWebGL2Context","getDeviceLimits","gl","gl2","maxTextureDimension1D","maxTextureDimension2D","getParameter","MAX_TEXTURE_SIZE","maxTextureDimension3D","MAX_3D_TEXTURE_SIZE","maxTextureArrayLayers","MAX_ARRAY_TEXTURE_LAYERS","maxBindGroups","maxDynamicUniformBuffersPerPipelineLayout","maxDynamicStorageBuffersPerPipelineLayout","maxSampledTexturesPerShaderStage","MAX_VERTEX_TEXTURE_IMAGE_UNITS","maxSamplersPerShaderStage","MAX_COMBINED_TEXTURE_IMAGE_UNITS","maxStorageBuffersPerShaderStage","maxStorageTexturesPerShaderStage","maxUniformBuffersPerShaderStage","MAX_UNIFORM_BUFFER_BINDINGS","maxUniformBufferBindingSize","MAX_UNIFORM_BLOCK_SIZE","maxStorageBufferBindingSize","minUniformBufferOffsetAlignment","UNIFORM_BUFFER_OFFSET_ALIGNMENT","minStorageBufferOffsetAlignment","maxVertexBuffers","maxVertexAttributes","MAX_VERTEX_ATTRIBS","maxVertexBufferArrayStride","maxInterStageShaderComponents","MAX_VARYING_COMPONENTS","maxComputeWorkgroupStorageSize","maxComputeInvocationsPerWorkgroup","maxComputeWorkgroupSizeX","maxComputeWorkgroupSizeY","maxComputeWorkgroupSizeZ","maxComputeWorkgroupsPerDimension","getWebGLLimits","get","pname","get2","defaultValue","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_TEXTURE_IMAGE_UNITS","MAX_RENDERBUFFER_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_UNIFORM_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_CLIENT_WAIT_TIMEOUT_WEBGL","MAX_COLOR_ATTACHMENTS","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_DRAW_BUFFERS","MAX_ELEMENT_INDEX","MAX_ELEMENTS_INDICES","MAX_ELEMENTS_VERTICES","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_SAMPLES","MAX_SERVER_WAIT_TIMEOUT","MAX_TEXTURE_LOD_BIAS","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_VERTEX_UNIFORM_BLOCKS","MAX_VERTEX_UNIFORM_COMPONENTS","MIN_PROGRAM_TEXEL_OFFSET","MAX_PROGRAM_TEXEL_OFFSET"],"sources":["../../../src/adapter/device-helpers/device-limits.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {DeviceLimits} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getWebGL2Context} from '../../context/context/webgl-checks';\n\n/** Populate a WebGPU style device limits */\nexport function getDeviceLimits(gl: WebGLRenderingContext): DeviceLimits {\n const gl2: WebGL2RenderingContext | null = getWebGL2Context(gl);\n return {\n maxTextureDimension1D: 0, // WebGL does not support 1D textures\n maxTextureDimension2D: gl.getParameter(GL.MAX_TEXTURE_SIZE),\n maxTextureDimension3D: gl2 ? gl2.getParameter(GL.MAX_3D_TEXTURE_SIZE) : 0,\n maxTextureArrayLayers: gl2 ? gl2.getParameter(GL.MAX_ARRAY_TEXTURE_LAYERS) : 0,\n maxBindGroups: 1, // TBD\n maxDynamicUniformBuffersPerPipelineLayout: 0, // TBD\n maxDynamicStorageBuffersPerPipelineLayout: 0, // TBD\n maxSampledTexturesPerShaderStage: gl.getParameter(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // TBD\n maxSamplersPerShaderStage: gl.getParameter(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n maxStorageBuffersPerShaderStage: 0, // TBD\n maxStorageTexturesPerShaderStage: 0, // TBD\n maxUniformBuffersPerShaderStage: gl2 ? gl2.getParameter(GL.MAX_UNIFORM_BUFFER_BINDINGS) : 0,\n maxUniformBufferBindingSize: gl2 ? gl2.getParameter(GL.MAX_UNIFORM_BLOCK_SIZE) : 0,\n maxStorageBufferBindingSize: 0,\n minUniformBufferOffsetAlignment: gl2 ? gl2.getParameter(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) : 0,\n minStorageBufferOffsetAlignment: 0, // TBD\n maxVertexBuffers: 0,\n maxVertexAttributes: gl.getParameter(GL.MAX_VERTEX_ATTRIBS),\n maxVertexBufferArrayStride: 2048, // TBD, this is just the default value from WebGPU\n maxInterStageShaderComponents: gl2 ? gl2.getParameter(GL.MAX_VARYING_COMPONENTS) : 0,\n maxComputeWorkgroupStorageSize: 0, // WebGL does not support compute shaders\n maxComputeInvocationsPerWorkgroup: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeX: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeY: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeZ: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupsPerDimension: 0, // WebGL does not support compute shaders\n }\n}\n\n/** WebGL context limits */\nexport type WebGLLimits = {\n [GL.ALIASED_LINE_WIDTH_RANGE]: [number, number];\n [GL.ALIASED_POINT_SIZE_RANGE]: [number, number];\n [GL.MAX_TEXTURE_SIZE]: number;\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: number;\n [GL.MAX_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_RENDERBUFFER_SIZE]: number;\n [GL.MAX_VARYING_VECTORS]: number;\n [GL.MAX_VERTEX_ATTRIBS]: number;\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: number;\n [GL.MAX_VIEWPORT_DIMS]: [number, number];\n\n // Extensions\n [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: number;\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: number;\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: number;\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: number;\n [GL.MAX_COLOR_ATTACHMENTS]: number;\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: number;\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: number;\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: number;\n [GL.MAX_DRAW_BUFFERS]: number;\n [GL.MAX_ELEMENT_INDEX]: number;\n [GL.MAX_ELEMENTS_INDICES]: number;\n [GL.MAX_ELEMENTS_VERTICES]: number;\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: number;\n [GL.MAX_SAMPLES]: number;\n [GL.MAX_SERVER_WAIT_TIMEOUT]: number;\n [GL.MAX_TEXTURE_LOD_BIAS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: number;\n [GL.MAX_UNIFORM_BLOCK_SIZE]: number;\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: number;\n [GL.MAX_VARYING_COMPONENTS]: number;\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: number;\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: number;\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: number;\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: number;\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: number;\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: number;\n};\n\n\nexport function getWebGLLimits(gl: WebGLRenderingContext): WebGLLimits {\n const gl2 = getWebGL2Context(gl);\n function get<T = number>(pname: number): T {\n return gl.getParameter(pname) as T;\n }\n function get2(pname: number, defaultValue?: number): number;\n function get2<T>(pname: number, defaultValue: T): T;\n function get2<T>(pname: number, defaultValue: T): T {\n return gl2 ? gl2.getParameter(pname) as T : (defaultValue || 0) as T;\n }\n // function getMaxAnistropy() {\n // const extension = gl.getExtension('EXT_texture_filter_anisotropic');\n // }\n return {\n [GL.ALIASED_LINE_WIDTH_RANGE]: get(GL.ALIASED_LINE_WIDTH_RANGE),\n [GL.ALIASED_POINT_SIZE_RANGE]: get(GL.ALIASED_POINT_SIZE_RANGE),\n [GL.MAX_TEXTURE_SIZE]: get(GL.MAX_TEXTURE_SIZE),\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: get(GL.MAX_CUBE_MAP_TEXTURE_SIZE), // GLint\n [GL.MAX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: get(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_RENDERBUFFER_SIZE]: get(GL.MAX_RENDERBUFFER_SIZE), // GLint\n [GL.MAX_VARYING_VECTORS]: get(GL.MAX_VARYING_VECTORS), // GLint\n [GL.MAX_VERTEX_ATTRIBS]: get(GL.MAX_VERTEX_ATTRIBS), // GLint\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: get(GL.MAX_VERTEX_UNIFORM_VECTORS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: get(GL.MAX_FRAGMENT_UNIFORM_VECTORS), // GLint\n [GL.MAX_VIEWPORT_DIMS]: get(GL.MAX_VIEWPORT_DIMS),\n\n // Extensions\n [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: get(GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT), // getMaxAnistropy(),\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: get2(GL.MAX_3D_TEXTURE_SIZE), // GLint\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: get2(GL.MAX_ARRAY_TEXTURE_LAYERS), // GLint\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: get2(GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL), // GLint64\n [GL.MAX_COLOR_ATTACHMENTS]: get2(GL.MAX_COLOR_ATTACHMENTS), // GLint\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS), // GLint64\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: get2(GL.MAX_COMBINED_UNIFORM_BLOCKS), // GLint\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS), // GLint64\n [GL.MAX_DRAW_BUFFERS]: get2(GL.MAX_DRAW_BUFFERS), // GLint\n [GL.MAX_ELEMENT_INDEX]: get2(GL.MAX_ELEMENT_INDEX), // GLint64\n [GL.MAX_ELEMENTS_INDICES]: get2(GL.MAX_ELEMENTS_INDICES), // GLint\n [GL.MAX_ELEMENTS_VERTICES]: get2(GL.MAX_ELEMENTS_VERTICES), // GLint\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: get2(GL.MAX_FRAGMENT_INPUT_COMPONENTS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: get2(GL.MAX_FRAGMENT_UNIFORM_BLOCKS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_FRAGMENT_UNIFORM_COMPONENTS), // GLint\n [GL.MAX_SAMPLES]: get2(GL.MAX_SAMPLES), // GLint\n [GL.MAX_SERVER_WAIT_TIMEOUT]: get2(GL.MAX_SERVER_WAIT_TIMEOUT), // GLint64\n [GL.MAX_TEXTURE_LOD_BIAS]: get2(GL.MAX_TEXTURE_LOD_BIAS), // GLfloat\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS), // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS), // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS), // GLint\n [GL.MAX_UNIFORM_BLOCK_SIZE]: get2(GL.MAX_UNIFORM_BLOCK_SIZE), // GLint64\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: get2(GL.MAX_UNIFORM_BUFFER_BINDINGS), // GLint\n [GL.MAX_VARYING_COMPONENTS]: get2(GL.MAX_VARYING_COMPONENTS), // GLint\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: get2(GL.MAX_VERTEX_OUTPUT_COMPONENTS), // GLint\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: get2(GL.MAX_VERTEX_UNIFORM_BLOCKS), // GLint\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_VERTEX_UNIFORM_COMPONENTS), // GLint\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: get2(GL.MIN_PROGRAM_TEXEL_OFFSET), // GLint\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: get2(GL.MAX_PROGRAM_TEXEL_OFFSET), // GLint\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: get2(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) // GLint\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import { isWebGL2 } from
|
|
2
|
+
import { isWebGL2 } from "../../context/context/webgl-checks.js";
|
|
3
3
|
export function getDeviceInfo(gl) {
|
|
4
4
|
const vendorMasked = gl.getParameter(GL.VENDOR);
|
|
5
5
|
const rendererMasked = gl.getParameter(GL.RENDERER);
|
|
@@ -21,24 +21,22 @@ export function getDeviceInfo(gl) {
|
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
|
|
25
24
|
function identifyGPUVendor(vendor, renderer) {
|
|
26
|
-
if (
|
|
25
|
+
if (/NVIDIA/i.exec(vendor) || /NVIDIA/i.exec(renderer)) {
|
|
27
26
|
return 'nvidia';
|
|
28
27
|
}
|
|
29
|
-
|
|
30
|
-
if (vendor.match(/INTEL/i) || renderer.match(/INTEL/i)) {
|
|
28
|
+
if (/INTEL/i.exec(vendor) || /INTEL/i.exec(renderer)) {
|
|
31
29
|
return 'intel';
|
|
32
30
|
}
|
|
33
|
-
|
|
34
|
-
if (vendor.match(/Apple/i) || renderer.match(/Apple/i)) {
|
|
31
|
+
if (/Apple/i.exec(vendor) || /Apple/i.exec(renderer)) {
|
|
35
32
|
return 'apple';
|
|
36
33
|
}
|
|
37
|
-
|
|
38
|
-
if (vendor.match(/AMD/i) || renderer.match(/AMD/i) || vendor.match(/ATI/i) || renderer.match(/ATI/i)) {
|
|
34
|
+
if (/AMD/i.exec(vendor) || /AMD/i.exec(renderer) || /ATI/i.exec(vendor) || /ATI/i.exec(renderer)) {
|
|
39
35
|
return 'amd';
|
|
40
36
|
}
|
|
41
|
-
|
|
37
|
+
if (/SwiftShader/i.exec(vendor) || /SwiftShader/i.exec(renderer)) {
|
|
38
|
+
return 'software';
|
|
39
|
+
}
|
|
42
40
|
return 'unknown';
|
|
43
41
|
}
|
|
44
42
|
//# sourceMappingURL=get-device-info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"get-device-info.js","names":["GL","isWebGL2","getDeviceInfo","gl","vendorMasked","getParameter","VENDOR","rendererMasked","RENDERER","ext","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","vendor","renderer","gpu","identifyGPUVendor","type","version","VERSION","shadingLanguages","shadingLanguageVersions","SHADING_LANGUAGE_VERSION","exec"],"sources":["../../../src/adapter/device-helpers/get-device-info.ts"],"sourcesContent":["import {DeviceInfo} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\n/** @returns strings identifying the GPU vendor and driver. */\nexport function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo {\n const vendorMasked = gl.getParameter(GL.VENDOR);\n const rendererMasked = gl.getParameter(GL.RENDERER);\n // Get unmasked strings if available\n // https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/\n const ext = gl.getExtension('WEBGL_debug_renderer_info');\n const vendorUnmasked = gl.getParameter(ext ? ext.UNMASKED_VENDOR_WEBGL : GL.VENDOR);\n const rendererUnmasked = gl.getParameter(ext ? ext.UNMASKED_RENDERER_WEBGL : GL.RENDERER);\n const vendor = vendorUnmasked || vendorMasked;\n const renderer = rendererUnmasked || rendererMasked;\n const gpu = identifyGPUVendor(vendor, renderer);\n return {\n type: isWebGL2(gl) ? 'webgl2' : 'webgl',\n gpu,\n vendor: vendorUnmasked || vendorMasked,\n renderer: rendererUnmasked || rendererMasked,\n version: gl.getParameter(GL.VERSION),\n shadingLanguages: ['glsl'],\n shadingLanguageVersions: {\n 'glsl': gl.getParameter(GL.SHADING_LANGUAGE_VERSION) as string\n }\n };\n}\n\nfunction identifyGPUVendor(vendor: string, renderer: string): 'nvidia' | 'intel' | 'apple' | 'amd' | 'software' | 'unknown' {\n if ((/NVIDIA/i.exec(vendor)) || (/NVIDIA/i.exec(renderer))) {\n return 'nvidia';\n }\n if ((/INTEL/i.exec(vendor)) || (/INTEL/i.exec(renderer))) {\n return 'intel';\n }\n if ((/Apple/i.exec(vendor)) || (/Apple/i.exec(renderer))) {\n return 'apple';\n }\n if (\n (/AMD/i.exec(vendor)) ||\n (/AMD/i.exec(renderer)) ||\n (/ATI/i.exec(vendor)) ||\n (/ATI/i.exec(renderer))\n ) {\n return 'amd';\n }\n if ((/SwiftShader/i.exec(vendor)) || (/SwiftShader/i.exec(renderer))) {\n return 'software';\n }\n \n return 'unknown';\n}\n"],"mappings":"AACA,OAAOA,EAAE,MAAM,oBAAoB;AAAC,SAC5BC,QAAQ;AAGhB,OAAO,SAASC,aAAaA,CAACC,EAAyB,EAAc;EACnE,MAAMC,YAAY,GAAGD,EAAE,CAACE,YAAY,CAACL,EAAE,CAACM,MAAM,CAAC;EAC/C,MAAMC,cAAc,GAAGJ,EAAE,CAACE,YAAY,CAACL,EAAE,CAACQ,QAAQ,CAAC;EAGnD,MAAMC,GAAG,GAAGN,EAAE,CAACO,YAAY,CAAC,2BAA2B,CAAC;EACxD,MAAMC,cAAc,GAAGR,EAAE,CAACE,YAAY,CAACI,GAAG,GAAGA,GAAG,CAACG,qBAAqB,GAAGZ,EAAE,CAACM,MAAM,CAAC;EACnF,MAAMO,gBAAgB,GAAGV,EAAE,CAACE,YAAY,CAACI,GAAG,GAAGA,GAAG,CAACK,uBAAuB,GAAGd,EAAE,CAACQ,QAAQ,CAAC;EACzF,MAAMO,MAAM,GAAGJ,cAAc,IAAIP,YAAY;EAC7C,MAAMY,QAAQ,GAAGH,gBAAgB,IAAIN,cAAc;EACnD,MAAMU,GAAG,GAAGC,iBAAiB,CAACH,MAAM,EAAEC,QAAQ,CAAC;EAC/C,OAAO;IACLG,IAAI,EAAElB,QAAQ,CAACE,EAAE,CAAC,GAAG,QAAQ,GAAG,OAAO;IACvCc,GAAG;IACHF,MAAM,EAAEJ,cAAc,IAAIP,YAAY;IACtCY,QAAQ,EAAEH,gBAAgB,IAAIN,cAAc;IAC5Ca,OAAO,EAAEjB,EAAE,CAACE,YAAY,CAACL,EAAE,CAACqB,OAAO,CAAC;IACpCC,gBAAgB,EAAE,CAAC,MAAM,CAAC;IAC1BC,uBAAuB,EAAE;MACvB,MAAM,EAAEpB,EAAE,CAACE,YAAY,CAACL,EAAE,CAACwB,wBAAwB;IACrD;EACF,CAAC;AACH;AAEA,SAASN,iBAAiBA,CAACH,MAAc,EAAEC,QAAgB,EAAiE;EAC1H,IAAK,SAAS,CAACS,IAAI,CAACV,MAAM,CAAC,IAAM,SAAS,CAACU,IAAI,CAACT,QAAQ,CAAE,EAAE;IAC1D,OAAO,QAAQ;EACjB;EACA,IAAK,QAAQ,CAACS,IAAI,CAACV,MAAM,CAAC,IAAM,QAAQ,CAACU,IAAI,CAACT,QAAQ,CAAE,EAAE;IACxD,OAAO,OAAO;EAChB;EACA,IAAK,QAAQ,CAACS,IAAI,CAACV,MAAM,CAAC,IAAM,QAAQ,CAACU,IAAI,CAACT,QAAQ,CAAE,EAAE;IACxD,OAAO,OAAO;EAChB;EACA,IACG,MAAM,CAACS,IAAI,CAACV,MAAM,CAAC,IACnB,MAAM,CAACU,IAAI,CAACT,QAAQ,CAAE,IACtB,MAAM,CAACS,IAAI,CAACV,MAAM,CAAE,IACpB,MAAM,CAACU,IAAI,CAACT,QAAQ,CAAE,EACvB;IACA,OAAO,KAAK;EACd;EACA,IAAK,cAAc,CAACS,IAAI,CAACV,MAAM,CAAC,IAAM,cAAc,CAACU,IAAI,CAACT,QAAQ,CAAE,EAAE;IACpE,OAAO,UAAU;EACnB;EAEA,OAAO,SAAS;AAClB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export function isOldIE(
|
|
1
|
+
export function isOldIE() {
|
|
2
|
+
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
2
3
|
const navigator = typeof window !== 'undefined' ? window.navigator || {} : {};
|
|
3
4
|
const userAgent = opts.userAgent || navigator.userAgent || '';
|
|
4
5
|
const isMSIE = userAgent.indexOf('MSIE ') !== -1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"is-old-ie.js","names":["isOldIE","opts","arguments","length","undefined","navigator","window","userAgent","isMSIE","indexOf","isTrident"],"sources":["../../../src/adapter/device-helpers/is-old-ie.ts"],"sourcesContent":["// opts allows user agent to be overridden for testing\nexport function isOldIE(opts = {}) {\n const navigator = typeof window !== 'undefined' ? window.navigator || {} : {};\n // @ts-expect-error\n const userAgent = opts.userAgent || navigator.userAgent || '';\n // We only care about older versions of IE (IE 11 and below). Newer versions of IE (Edge)\n // have much better web standards support.\n const isMSIE = userAgent.indexOf('MSIE ') !== -1;\n const isTrident = userAgent.indexOf('Trident/') !== -1;\n return isMSIE || isTrident;\n}\n"],"mappings":"AACA,OAAO,SAASA,OAAOA,CAAA,EAAY;EAAA,IAAXC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC/B,MAAMG,SAAS,GAAG,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,CAACD,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;EAE7E,MAAME,SAAS,GAAGN,IAAI,CAACM,SAAS,IAAIF,SAAS,CAACE,SAAS,IAAI,EAAE;EAG7D,MAAMC,MAAM,GAAGD,SAAS,CAACE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;EAChD,MAAMC,SAAS,GAAGH,SAAS,CAACE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;EACtD,OAAOD,MAAM,IAAIE,SAAS;AAC5B"}
|
|
@@ -3,25 +3,18 @@ export function getPrimitiveDrawMode(drawMode) {
|
|
|
3
3
|
switch (drawMode) {
|
|
4
4
|
case GL.POINTS:
|
|
5
5
|
return GL.POINTS;
|
|
6
|
-
|
|
7
6
|
case GL.LINES:
|
|
8
7
|
return GL.LINES;
|
|
9
|
-
|
|
10
8
|
case GL.LINE_STRIP:
|
|
11
9
|
return GL.LINES;
|
|
12
|
-
|
|
13
10
|
case GL.LINE_LOOP:
|
|
14
11
|
return GL.LINES;
|
|
15
|
-
|
|
16
12
|
case GL.TRIANGLES:
|
|
17
13
|
return GL.TRIANGLES;
|
|
18
|
-
|
|
19
14
|
case GL.TRIANGLE_STRIP:
|
|
20
15
|
return GL.TRIANGLES;
|
|
21
|
-
|
|
22
16
|
case GL.TRIANGLE_FAN:
|
|
23
17
|
return GL.TRIANGLES;
|
|
24
|
-
|
|
25
18
|
default:
|
|
26
19
|
throw new Error('drawMode');
|
|
27
20
|
}
|
|
@@ -31,25 +24,19 @@ export function getPrimitiveCount(options) {
|
|
|
31
24
|
drawMode,
|
|
32
25
|
vertexCount
|
|
33
26
|
} = options;
|
|
34
|
-
|
|
35
27
|
switch (drawMode) {
|
|
36
28
|
case GL.POINTS:
|
|
37
29
|
case GL.LINE_LOOP:
|
|
38
30
|
return vertexCount;
|
|
39
|
-
|
|
40
31
|
case GL.LINES:
|
|
41
32
|
return vertexCount / 2;
|
|
42
|
-
|
|
43
33
|
case GL.LINE_STRIP:
|
|
44
34
|
return vertexCount - 1;
|
|
45
|
-
|
|
46
35
|
case GL.TRIANGLES:
|
|
47
36
|
return vertexCount / 3;
|
|
48
|
-
|
|
49
37
|
case GL.TRIANGLE_STRIP:
|
|
50
38
|
case GL.TRIANGLE_FAN:
|
|
51
39
|
return vertexCount - 2;
|
|
52
|
-
|
|
53
40
|
default:
|
|
54
41
|
throw new Error('drawMode');
|
|
55
42
|
}
|
|
@@ -63,17 +50,13 @@ export function getVertexCount(options) {
|
|
|
63
50
|
drawMode,
|
|
64
51
|
vertexCount
|
|
65
52
|
});
|
|
66
|
-
|
|
67
53
|
switch (getPrimitiveDrawMode(drawMode)) {
|
|
68
54
|
case GL.POINTS:
|
|
69
55
|
return primitiveCount;
|
|
70
|
-
|
|
71
56
|
case GL.LINES:
|
|
72
57
|
return primitiveCount * 2;
|
|
73
|
-
|
|
74
58
|
case GL.TRIANGLES:
|
|
75
59
|
return primitiveCount * 3;
|
|
76
|
-
|
|
77
60
|
default:
|
|
78
61
|
throw new Error('drawMode');
|
|
79
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"attribute-utils.js","names":["GL","getPrimitiveDrawMode","drawMode","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","Error","getPrimitiveCount","options","vertexCount","getVertexCount","primitiveCount"],"sources":["../../../src/adapter/helpers/attribute-utils.ts"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {GLDrawMode, GLPrimitive} from '../../types/webgl';\n\n// Counts the number of complete primitives given a number of vertices and a drawMode\nexport function getPrimitiveDrawMode(drawMode: GLDrawMode): GLPrimitive {\n switch (drawMode) {\n case GL.POINTS:\n return GL.POINTS;\n case GL.LINES:\n return GL.LINES;\n case GL.LINE_STRIP:\n return GL.LINES;\n case GL.LINE_LOOP:\n return GL.LINES;\n case GL.TRIANGLES:\n return GL.TRIANGLES;\n case GL.TRIANGLE_STRIP:\n return GL.TRIANGLES;\n case GL.TRIANGLE_FAN:\n return GL.TRIANGLES;\n default:\n throw new Error('drawMode');\n }\n}\n\n// Counts the number of complete \"primitives\" given a number of vertices and a drawMode\nexport function getPrimitiveCount(options: {drawMode: GLDrawMode, vertexCount: number}): number {\n const {drawMode, vertexCount} = options;\n switch (drawMode) {\n case GL.POINTS:\n case GL.LINE_LOOP:\n return vertexCount;\n case GL.LINES:\n return vertexCount / 2;\n case GL.LINE_STRIP:\n return vertexCount - 1;\n case GL.TRIANGLES:\n return vertexCount / 3;\n case GL.TRIANGLE_STRIP:\n case GL.TRIANGLE_FAN:\n return vertexCount - 2;\n default:\n throw new Error('drawMode');\n }\n}\n\n// Counts the number of vertices after splitting the vertex stream into separate \"primitives\"\nexport function getVertexCount(options: {drawMode: GLDrawMode, vertexCount: number}): number {\n const {drawMode, vertexCount} = options;\n const primitiveCount = getPrimitiveCount({drawMode, vertexCount});\n switch (getPrimitiveDrawMode(drawMode)) {\n case GL.POINTS:\n return primitiveCount;\n case GL.LINES:\n return primitiveCount * 2;\n case GL.TRIANGLES:\n return primitiveCount * 3;\n default:\n throw new Error('drawMode');\n }\n}\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,oBAAoB;AAInC,OAAO,SAASC,oBAAoBA,CAACC,QAAoB,EAAe;EACtE,QAAQA,QAAQ;IACd,KAAKF,EAAE,CAACG,MAAM;MACZ,OAAOH,EAAE,CAACG,MAAM;IAClB,KAAKH,EAAE,CAACI,KAAK;MACX,OAAOJ,EAAE,CAACI,KAAK;IACjB,KAAKJ,EAAE,CAACK,UAAU;MAChB,OAAOL,EAAE,CAACI,KAAK;IACjB,KAAKJ,EAAE,CAACM,SAAS;MACf,OAAON,EAAE,CAACI,KAAK;IACjB,KAAKJ,EAAE,CAACO,SAAS;MACf,OAAOP,EAAE,CAACO,SAAS;IACrB,KAAKP,EAAE,CAACQ,cAAc;MACpB,OAAOR,EAAE,CAACO,SAAS;IACrB,KAAKP,EAAE,CAACS,YAAY;MAClB,OAAOT,EAAE,CAACO,SAAS;IACrB;MACE,MAAM,IAAIG,KAAK,CAAC,UAAU,CAAC;EAAC;AAElC;AAGA,OAAO,SAASC,iBAAiBA,CAACC,OAAoD,EAAU;EAC9F,MAAM;IAACV,QAAQ;IAAEW;EAAW,CAAC,GAAGD,OAAO;EACvC,QAAQV,QAAQ;IACd,KAAKF,EAAE,CAACG,MAAM;IACd,KAAKH,EAAE,CAACM,SAAS;MACf,OAAOO,WAAW;IACpB,KAAKb,EAAE,CAACI,KAAK;MACX,OAAOS,WAAW,GAAG,CAAC;IACxB,KAAKb,EAAE,CAACK,UAAU;MAChB,OAAOQ,WAAW,GAAG,CAAC;IACxB,KAAKb,EAAE,CAACO,SAAS;MACf,OAAOM,WAAW,GAAG,CAAC;IACxB,KAAKb,EAAE,CAACQ,cAAc;IACtB,KAAKR,EAAE,CAACS,YAAY;MAClB,OAAOI,WAAW,GAAG,CAAC;IACxB;MACE,MAAM,IAAIH,KAAK,CAAC,UAAU,CAAC;EAAC;AAElC;AAGA,OAAO,SAASI,cAAcA,CAACF,OAAoD,EAAU;EAC3F,MAAM;IAACV,QAAQ;IAAEW;EAAW,CAAC,GAAGD,OAAO;EACvC,MAAMG,cAAc,GAAGJ,iBAAiB,CAAC;IAACT,QAAQ;IAAEW;EAAW,CAAC,CAAC;EACjE,QAAQZ,oBAAoB,CAACC,QAAQ,CAAC;IACpC,KAAKF,EAAE,CAACG,MAAM;MACZ,OAAOY,cAAc;IACvB,KAAKf,EAAE,CAACI,KAAK;MACX,OAAOW,cAAc,GAAG,CAAC;IAC3B,KAAKf,EAAE,CAACO,SAAS;MACf,OAAOQ,cAAc,GAAG,CAAC;IAC3B;MACE,MAAM,IAAIL,KAAK,CAAC,UAAU,CAAC;EAAC;AAElC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Information extracted from shader source code */
|
|
2
|
+
export declare type ShaderInfo = {
|
|
3
|
+
name: string;
|
|
4
|
+
language: 'glsl' | 'wgsl';
|
|
5
|
+
version: number;
|
|
6
|
+
};
|
|
7
|
+
/** Extracts information from shader source code */
|
|
8
|
+
export declare function getShaderInfo(source: string, defaultName?: string): ShaderInfo;
|
|
9
|
+
//# sourceMappingURL=get-shader-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-shader-info.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-shader-info.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,oBAAY,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAM9E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function getShaderInfo(source, defaultName) {
|
|
2
|
+
return {
|
|
3
|
+
name: getShaderName(source, defaultName),
|
|
4
|
+
language: 'glsl',
|
|
5
|
+
version: getShaderVersion(source)
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function getShaderName(shader) {
|
|
9
|
+
let defaultName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'unnamed';
|
|
10
|
+
const SHADER_NAME_REGEXP = /#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/;
|
|
11
|
+
const match = SHADER_NAME_REGEXP.exec(shader);
|
|
12
|
+
return match ? match[1] : defaultName;
|
|
13
|
+
}
|
|
14
|
+
function getShaderVersion(source) {
|
|
15
|
+
let version = 100;
|
|
16
|
+
const words = source.match(/[^\s]+/g);
|
|
17
|
+
if (words && words.length >= 2 && words[0] === '#version') {
|
|
18
|
+
const v = parseInt(words[1], 10);
|
|
19
|
+
if (Number.isFinite(v)) {
|
|
20
|
+
version = v;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return version;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=get-shader-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-shader-info.js","names":["getShaderInfo","source","defaultName","name","getShaderName","language","version","getShaderVersion","shader","arguments","length","undefined","SHADER_NAME_REGEXP","match","exec","words","v","parseInt","Number","isFinite"],"sources":["../../../src/adapter/helpers/get-shader-info.ts"],"sourcesContent":["// luma.gl, MIT license\n\n/** Information extracted from shader source code */\nexport type ShaderInfo = {\n name: string;\n language: 'glsl' | 'wgsl';\n version: number;\n};\n\n/** Extracts information from shader source code */\nexport function getShaderInfo(source: string, defaultName?: string): ShaderInfo {\n return {\n name: getShaderName(source, defaultName),\n language: 'glsl',\n version: getShaderVersion(source)\n };\n}\n\n/** Extracts GLSLIFY style naming of shaders: `#define SHADER_NAME ...` */\nfunction getShaderName(shader: string, defaultName: string = 'unnamed'): string {\n const SHADER_NAME_REGEXP = /#define[\\s*]SHADER_NAME[\\s*]([A-Za-z0-9_-]+)[\\s*]/;\n const match = SHADER_NAME_REGEXP.exec(shader);\n return match ? match[1] : defaultName;\n}\n\n/** returns GLSL shader version of given shader string */\nfunction getShaderVersion(source: string): number {\n let version = 100;\n const words = source.match(/[^\\s]+/g);\n if (words && words.length >= 2 && words[0] === '#version') {\n const v = parseInt(words[1], 10);\n if (Number.isFinite(v)) {\n version = v;\n }\n }\n return version;\n}\n"],"mappings":"AAUA,OAAO,SAASA,aAAaA,CAACC,MAAc,EAAEC,WAAoB,EAAc;EAC9E,OAAO;IACLC,IAAI,EAAEC,aAAa,CAACH,MAAM,EAAEC,WAAW,CAAC;IACxCG,QAAQ,EAAE,MAAM;IAChBC,OAAO,EAAEC,gBAAgB,CAACN,MAAM;EAClC,CAAC;AACH;AAGA,SAASG,aAAaA,CAACI,MAAc,EAA2C;EAAA,IAAzCN,WAAmB,GAAAO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EACpE,MAAMG,kBAAkB,GAAG,mDAAmD;EAC9E,MAAMC,KAAK,GAAGD,kBAAkB,CAACE,IAAI,CAACN,MAAM,CAAC;EAC7C,OAAOK,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAGX,WAAW;AACvC;AAGA,SAASK,gBAAgBA,CAACN,MAAc,EAAU;EAChD,IAAIK,OAAO,GAAG,GAAG;EACjB,MAAMS,KAAK,GAAGd,MAAM,CAACY,KAAK,CAAC,SAAS,CAAC;EACrC,IAAIE,KAAK,IAAIA,KAAK,CAACL,MAAM,IAAI,CAAC,IAAIK,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;IACzD,MAAMC,CAAC,GAAGC,QAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChC,IAAIG,MAAM,CAACC,QAAQ,CAACH,CAAC,CAAC,EAAE;MACtBV,OAAO,GAAGU,CAAC;IACb;EACF;EACA,OAAOV,OAAO;AAChB"}
|
|
@@ -17,7 +17,7 @@ export declare function getProgramBindings(gl: WebGLRenderingContext, program: W
|
|
|
17
17
|
* Extract info about all "active" uniform blocks
|
|
18
18
|
* ("Active" just means that unused (inactive) blocks may have been optimized away during linking)
|
|
19
19
|
*
|
|
20
|
-
function getUniformBlockBindings(gl, program): Binding[] {
|
|
20
|
+
function getUniformBlockBindings(gl: WebGLRenderingContext, program): Binding[] {
|
|
21
21
|
if (!isWebGL2(gl)) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-shader-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-shader-layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-shader-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-shader-layout.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAIZ,eAAe,EAKhB,MAAM,cAAc,CAAC;AAQtB;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CAoE9F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,qBAAqB,EACzB,OAAO,EAAE,YAAY,GACpB,eAAe,CAWjB;AA+PD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG"}
|