@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
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luma.gl/webgl",
|
|
3
|
-
"version": "9.0.0-alpha.
|
|
3
|
+
"version": "9.0.0-alpha.21",
|
|
4
4
|
"description": "WebGL2 adapter for the luma.gl API",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"license": "MIT",
|
|
6
7
|
"publishConfig": {
|
|
7
8
|
"access": "public"
|
|
@@ -16,12 +17,20 @@
|
|
|
16
17
|
"animation",
|
|
17
18
|
"3d"
|
|
18
19
|
],
|
|
19
|
-
"types": "
|
|
20
|
-
"main": "dist/index.
|
|
20
|
+
"types": "dist/index.d.ts",
|
|
21
|
+
"main": "dist/index.cjs",
|
|
21
22
|
"module": "dist/index.js",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"import": "./dist/index.js",
|
|
26
|
+
"require": "./dist/index.cjs",
|
|
27
|
+
"types": "./dist/index.d.ts"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
22
30
|
"files": [
|
|
23
31
|
"src",
|
|
24
32
|
"dist",
|
|
33
|
+
"dist.min.js",
|
|
25
34
|
"README.md"
|
|
26
35
|
],
|
|
27
36
|
"sideEffects": false,
|
|
@@ -30,14 +39,14 @@
|
|
|
30
39
|
"gl/wrap": false
|
|
31
40
|
},
|
|
32
41
|
"scripts": {
|
|
33
|
-
"
|
|
34
|
-
"build
|
|
42
|
+
"build-bundle": "ocular-bundle ./src/index.ts",
|
|
43
|
+
"pre-build": "npm run build-bundle && npm run build-bundle -- --env=dev"
|
|
35
44
|
},
|
|
36
45
|
"dependencies": {
|
|
37
46
|
"@babel/runtime": "^7.0.0",
|
|
38
|
-
"@luma.gl/api": "9.0.0-alpha.
|
|
39
|
-
"@luma.gl/constants": "9.0.0-alpha.
|
|
40
|
-
"@probe.gl/env": "^
|
|
47
|
+
"@luma.gl/api": "9.0.0-alpha.21",
|
|
48
|
+
"@luma.gl/constants": "9.0.0-alpha.21",
|
|
49
|
+
"@probe.gl/env": "^4.0.2"
|
|
41
50
|
},
|
|
42
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "7ee95470a6a2f62753201beb0c36b00e37c70455"
|
|
43
52
|
}
|
package/src/.DS_Store
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -3,7 +3,9 @@ import GL from '@luma.gl/constants';
|
|
|
3
3
|
import type { GLParameters } from '../../types/webgl';
|
|
4
4
|
import {pushContextState, popContextState} from '../../context/state-tracker/track-context-state';
|
|
5
5
|
import {setParameters} from '../../context/parameters/unified-parameter-api';
|
|
6
|
-
import WebGLDevice from '../webgl-device';
|
|
6
|
+
import {WebGLDevice} from '../webgl-device';
|
|
7
|
+
|
|
8
|
+
/* eslint-disable no-unused-expressions */ // For expression ? gl.enable() : gl.disable()
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Execute a function with a set of temporary WebGL parameter overrides
|
|
@@ -12,8 +14,9 @@ import WebGLDevice from '../webgl-device';
|
|
|
12
14
|
* - Executes supplied function
|
|
13
15
|
* - Restores parameters
|
|
14
16
|
* - Returns the return value of the supplied function
|
|
17
|
+
* @deprecated use withDeviceParameters instead
|
|
15
18
|
*/
|
|
16
|
-
export function
|
|
19
|
+
export function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T {
|
|
17
20
|
if (isObjectEmpty(parameters)) {
|
|
18
21
|
// Avoid setting state if no parameters provided. Just call and return
|
|
19
22
|
return func(device);
|
|
@@ -24,6 +27,31 @@ export function withDeviceParameters<T = unknown>(device: Device, parameters: Pa
|
|
|
24
27
|
pushContextState(device.gl);
|
|
25
28
|
try {
|
|
26
29
|
setParameters(device, parameters);
|
|
30
|
+
return func(device);
|
|
31
|
+
} finally {
|
|
32
|
+
// @ts-expect-error
|
|
33
|
+
popContextState(device.gl);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Execute a function with a set of temporary WebGL parameter overrides
|
|
39
|
+
* - Saves current "global" WebGL context settings
|
|
40
|
+
* - Sets the supplies WebGL context parameters,
|
|
41
|
+
* - Executes supplied function
|
|
42
|
+
* - Restores parameters
|
|
43
|
+
* - Returns the return value of the supplied function
|
|
44
|
+
*/
|
|
45
|
+
export function withDeviceParameters<T = unknown>(device: Device, parameters: Parameters, func: (device?: Device) => T): T {
|
|
46
|
+
if (isObjectEmpty(parameters)) {
|
|
47
|
+
// Avoid setting state if no parameters provided. Just call and return
|
|
48
|
+
return func(device);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Wrap in a try-catch to ensure that parameters are restored on exceptions
|
|
52
|
+
// @ts-expect-error
|
|
53
|
+
pushContextState(device.gl);
|
|
54
|
+
try {
|
|
27
55
|
setDeviceParameters(device, parameters);
|
|
28
56
|
return func(device);
|
|
29
57
|
} finally {
|
|
@@ -36,7 +64,7 @@ export function withDeviceParameters<T = unknown>(device: Device, parameters: Pa
|
|
|
36
64
|
/** Set WebGPU Style Parameters */
|
|
37
65
|
export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
38
66
|
const webglDevice = WebGLDevice.attach(device);
|
|
39
|
-
const {gl
|
|
67
|
+
const {gl} = webglDevice;
|
|
40
68
|
|
|
41
69
|
// RASTERIZATION SETTINGS
|
|
42
70
|
if (parameters.cullMode) {
|
|
@@ -76,7 +104,8 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
|
76
104
|
gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
|
|
77
105
|
}
|
|
78
106
|
|
|
79
|
-
|
|
107
|
+
if (parameters.depthCompare) {
|
|
108
|
+
|
|
80
109
|
parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);
|
|
81
110
|
gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
|
|
82
111
|
}
|
|
@@ -101,7 +130,7 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
|
101
130
|
gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);
|
|
102
131
|
}
|
|
103
132
|
|
|
104
|
-
if (parameters.stencilPassOperation) {
|
|
133
|
+
if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {
|
|
105
134
|
const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);
|
|
106
135
|
const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);
|
|
107
136
|
const dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);
|
|
@@ -198,16 +227,16 @@ function convertStencilOperation(parameter: string, value: StencilOperation): GL
|
|
|
198
227
|
});
|
|
199
228
|
}
|
|
200
229
|
|
|
201
|
-
function convertBlendOperationToEquation(parameter, value): number {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}
|
|
230
|
+
// function convertBlendOperationToEquation(parameter: string, value: string): number {
|
|
231
|
+
// return map(parameter, value, {
|
|
232
|
+
// 'add': GL.FUNC_ADD,
|
|
233
|
+
// 'sub': GL.FUNC_SUBTRACT,
|
|
234
|
+
// 'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,
|
|
235
|
+
// // When using a WebGL 2 context, the following values are available additionally:
|
|
236
|
+
// 'min': GL.MIN,
|
|
237
|
+
// 'max': GL.MAX
|
|
238
|
+
// });
|
|
239
|
+
// }
|
|
211
240
|
|
|
212
241
|
function message(parameter: string, value: any): string {
|
|
213
242
|
return `Illegal parameter ${value} for ${parameter}`;
|
|
@@ -220,6 +249,6 @@ function map(parameter: string, value: any, valueMap: Record<string, any>): any
|
|
|
220
249
|
return valueMap[value];
|
|
221
250
|
}
|
|
222
251
|
|
|
223
|
-
function mapBoolean(parameter, value) {
|
|
252
|
+
function mapBoolean(parameter: string, value: boolean): boolean {
|
|
224
253
|
return value;
|
|
225
254
|
}
|
|
@@ -34,7 +34,7 @@ type RenderbufferFormat = {
|
|
|
34
34
|
ext?: string;
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
const RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {
|
|
37
|
+
export const RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {
|
|
38
38
|
[GL.DEPTH_COMPONENT16]: {bpp: 2}, // 16 depth bits.
|
|
39
39
|
[GL.DEPTH_COMPONENT24]: {gl2: true, bpp: 3},
|
|
40
40
|
[GL.DEPTH_COMPONENT32F]: {gl2: true, bpp: 4},
|
|
@@ -88,5 +88,3 @@ const RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {
|
|
|
88
88
|
// [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},
|
|
89
89
|
[GL.R11F_G11F_B10F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4}
|
|
90
90
|
};
|
|
91
|
-
|
|
92
|
-
export default RENDERBUFFER_FORMATS;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
// SAMPLER FILTERS
|
|
2
2
|
import {SamplerParameters} from '@luma.gl/api';
|
|
3
3
|
import GL from '@luma.gl/constants';
|
|
4
|
-
import {
|
|
4
|
+
import {GLSamplerParameters} from '../../types/webgl';
|
|
5
5
|
import {convertCompareFunction, convertToCompareFunction} from './device-parameters';
|
|
6
6
|
|
|
7
|
+
/* eslint-disable consistent-return */
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Convert WebGPU-style sampler props to WebGL
|
|
9
11
|
* @param props
|
|
10
12
|
* @returns
|
|
11
13
|
*/
|
|
12
|
-
export function convertSamplerParametersToWebGL(props: SamplerParameters):
|
|
14
|
+
export function convertSamplerParametersToWebGL(props: SamplerParameters): GLSamplerParameters {
|
|
13
15
|
const params: Record<number, number> = {};
|
|
14
16
|
if (props.addressModeU) {
|
|
15
17
|
params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);
|
|
@@ -33,14 +35,16 @@ export function convertSamplerParametersToWebGL(props: SamplerParameters): WebGL
|
|
|
33
35
|
if (props.lodMaxClamp !== undefined) {
|
|
34
36
|
params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;
|
|
35
37
|
}
|
|
36
|
-
if (props.
|
|
38
|
+
if (props.type === 'comparison-sampler') {
|
|
37
39
|
// Setting prop.compare turns this into a comparison sampler
|
|
38
40
|
params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;
|
|
41
|
+
}
|
|
42
|
+
if (props.compare) {
|
|
39
43
|
params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);
|
|
40
44
|
}
|
|
41
45
|
// Note depends on WebGL extension
|
|
42
46
|
if (props.maxAnisotropy) {
|
|
43
|
-
|
|
47
|
+
params[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;
|
|
44
48
|
}
|
|
45
49
|
return params;
|
|
46
50
|
}
|
|
@@ -82,7 +86,7 @@ function convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'n
|
|
|
82
86
|
* @param props
|
|
83
87
|
* @returns
|
|
84
88
|
*/
|
|
85
|
-
|
|
89
|
+
export function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters {
|
|
86
90
|
const props: SamplerParameters = {};
|
|
87
91
|
if (params[GL.TEXTURE_WRAP_S]) {
|
|
88
92
|
props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);
|
|
@@ -108,7 +112,10 @@ function convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'n
|
|
|
108
112
|
if (params[GL.TEXTURE_MAX_LOD]) {
|
|
109
113
|
props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];
|
|
110
114
|
}
|
|
111
|
-
if (params[GL.TEXTURE_COMPARE_MODE]
|
|
115
|
+
if (params[GL.TEXTURE_COMPARE_MODE]) {
|
|
116
|
+
props.type = params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : 'color-sampler';
|
|
117
|
+
}
|
|
118
|
+
if (params[GL.TEXTURE_COMPARE_FUNC]) {
|
|
112
119
|
props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);
|
|
113
120
|
}
|
|
114
121
|
// NOTE depends on extension (very common)
|
|
@@ -124,6 +131,7 @@ function convertToAddressMode(addressMode: number): 'clamp-to-edge' | 'repeat' |
|
|
|
124
131
|
case GL.CLAMP_TO_EDGE: return 'clamp-to-edge';
|
|
125
132
|
case GL.REPEAT: return 'repeat';
|
|
126
133
|
case GL.MIRRORED_REPEAT: return 'mirror-repeat';
|
|
134
|
+
default: throw new Error('address');
|
|
127
135
|
}
|
|
128
136
|
}
|
|
129
137
|
|
|
@@ -131,6 +139,7 @@ function convertToMaxFilterMode(filterMode: number): 'nearest' | 'linear' {
|
|
|
131
139
|
switch (filterMode) {
|
|
132
140
|
case GL.NEAREST: return 'nearest';
|
|
133
141
|
case GL.LINEAR: return 'linear';
|
|
142
|
+
default: throw new Error('maxfilter');
|
|
134
143
|
}
|
|
135
144
|
}
|
|
136
145
|
|
|
@@ -144,6 +153,7 @@ function convertToMinFilterMode(filterMode: number): 'nearest' | 'linear' {
|
|
|
144
153
|
case GL.LINEAR_MIPMAP_NEAREST: return 'linear';
|
|
145
154
|
case GL.NEAREST_MIPMAP_LINEAR: return 'nearest';
|
|
146
155
|
case GL.LINEAR_MIPMAP_LINEAR: return 'linear';
|
|
156
|
+
default: throw new Error('minfilter');
|
|
147
157
|
}
|
|
148
158
|
}
|
|
149
159
|
|
|
@@ -156,13 +166,14 @@ function convertToMipmapFilterMode(filterMode: number): 'nearest' | 'linear' {
|
|
|
156
166
|
case GL.LINEAR_MIPMAP_NEAREST: return 'nearest';
|
|
157
167
|
case GL.NEAREST_MIPMAP_LINEAR: return 'linear';
|
|
158
168
|
case GL.LINEAR_MIPMAP_LINEAR: return 'linear';
|
|
169
|
+
default: throw new Error('mipmap');
|
|
159
170
|
}
|
|
160
171
|
}
|
|
161
172
|
|
|
162
173
|
/**
|
|
163
174
|
* Override sampler settings that are not supported by Non-Power-of-Two textures in WebGL1.
|
|
164
175
|
*/
|
|
165
|
-
export function updateSamplerParametersForNPOT(parameters:
|
|
176
|
+
export function updateSamplerParametersForNPOT(parameters: GLSamplerParameters): GLSamplerParameters {
|
|
166
177
|
const newParameters = {...parameters};
|
|
167
178
|
if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {
|
|
168
179
|
// log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type {TextureFormat, DeviceFeature
|
|
1
|
+
import type {TextureFormat, DeviceFeature} from '@luma.gl/api';
|
|
2
2
|
import {decodeTextureFormat} from '@luma.gl/api';
|
|
3
3
|
import GL from '@luma.gl/constants';
|
|
4
4
|
import {isWebGL2} from '../../context/context/webgl-checks';
|
|
5
5
|
|
|
6
|
+
/* eslint-disable camelcase */
|
|
7
|
+
|
|
6
8
|
// TEXTURE FEATURES
|
|
7
9
|
|
|
8
10
|
// Define local device feature strings to optimize minification
|
|
@@ -29,7 +31,7 @@ const EXT_SRGB = 'EXT_sRGB'; // https://developer.mozilla.org/en-US/docs/Web/API
|
|
|
29
31
|
const EXT_TEXTURE_NORM16 = 'EXT_texture_norm16';
|
|
30
32
|
const EXT_FLOAT_WEBGL1 = 'WEBGL_color_buffer_float';
|
|
31
33
|
const EXT_FLOAT_RENDER_WEBGL2 = 'EXT_color_buffer_float';
|
|
32
|
-
const EXT_HALF_FLOAT_WEBGL1 = '
|
|
34
|
+
// const EXT_HALF_FLOAT_WEBGL1 = 'EXT_color_buffer_half_float';
|
|
33
35
|
// const DEPTH = 'WEBGL_depth_texture';
|
|
34
36
|
|
|
35
37
|
const checkExtension = (gl: WebGLRenderingContext, extension: string): boolean =>
|
|
@@ -64,7 +66,7 @@ const TEXTURE_FEATURE_CHECKS: Partial<Record<DeviceFeature, (gl: WebGLRenderingC
|
|
|
64
66
|
};
|
|
65
67
|
|
|
66
68
|
export function checkTextureFeature(gl: WebGLRenderingContext, feature: DeviceFeature): boolean {
|
|
67
|
-
return TEXTURE_FEATURE_CHECKS[feature]?.(gl);
|
|
69
|
+
return TEXTURE_FEATURE_CHECKS[feature]?.(gl) || false;
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
const checkTextureFeatures = (gl: WebGLRenderingContext, features: DeviceFeature[]): boolean =>
|
|
@@ -240,7 +242,7 @@ export const TEXTURE_FORMATS: Record<TextureFormat, Format> = {
|
|
|
240
242
|
// "depth24unorm-stencil8" feature
|
|
241
243
|
'depth24unorm-stencil8': {gl: GL.DEPTH24_STENCIL8, b: 4, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},
|
|
242
244
|
// "depth32float-stencil8" feature
|
|
243
|
-
|
|
245
|
+
'depth32float-stencil8': {gl: GL.DEPTH32F_STENCIL8, b: 5, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},
|
|
244
246
|
|
|
245
247
|
// BC compressed formats: check device.features.has("texture-compression-bc");
|
|
246
248
|
|
|
@@ -380,22 +382,22 @@ export function getTextureFormatSupport(
|
|
|
380
382
|
if (!info) {
|
|
381
383
|
return {supported: false};
|
|
382
384
|
}
|
|
383
|
-
let decoded;
|
|
384
|
-
try {
|
|
385
|
-
|
|
386
|
-
} catch {}
|
|
385
|
+
// let decoded;
|
|
386
|
+
// try {
|
|
387
|
+
// decoded = decodeTextureFormat(format);
|
|
388
|
+
// } catch {}
|
|
387
389
|
|
|
388
390
|
// Support Check that we have a GL constant
|
|
389
391
|
let supported = isWebGL2(gl) ? info.gl === undefined : info.gl1 === undefined;
|
|
390
392
|
supported = supported && checkTextureFeatures(gl, [info.f]);
|
|
391
393
|
|
|
392
394
|
// Filtering
|
|
393
|
-
const filterable = info.filter
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
const renderable = info.filter
|
|
397
|
-
|
|
398
|
-
|
|
395
|
+
// const filterable = info.filter
|
|
396
|
+
// ? checkTextureFeatures(gl, [info.filter])
|
|
397
|
+
// : decoded && !decoded.signed;
|
|
398
|
+
// const renderable = info.filter
|
|
399
|
+
// ? checkTextureFeatures(gl, [info.render])
|
|
400
|
+
// : decoded && !decoded.signed;
|
|
399
401
|
|
|
400
402
|
return {
|
|
401
403
|
supported,
|
|
@@ -520,8 +522,8 @@ export function _checkFloat32ColorAttachment(
|
|
|
520
522
|
srcFormat = GL.RGBA,
|
|
521
523
|
srcType = GL.UNSIGNED_BYTE
|
|
522
524
|
) {
|
|
523
|
-
let texture: WebGLTexture;
|
|
524
|
-
let framebuffer: WebGLFramebuffer;
|
|
525
|
+
let texture: WebGLTexture | null = null;
|
|
526
|
+
let framebuffer: WebGLFramebuffer | null = null;
|
|
525
527
|
try {
|
|
526
528
|
texture = gl.createTexture();
|
|
527
529
|
gl.bindTexture(GL.TEXTURE_2D, texture);
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// available in an WebGL1 or WebGL2 environment.
|
|
4
4
|
|
|
5
5
|
import {DeviceFeature} from '@luma.gl/api';
|
|
6
|
-
import GL from '@luma.gl/constants';
|
|
7
6
|
import {isWebGL2} from '../../context/context/webgl-checks';
|
|
8
7
|
import {isOldIE} from './is-old-ie';
|
|
9
8
|
import {getTextureFeatures, _checkFloat32ColorAttachment} from '../converters/texture-formats';
|
|
@@ -47,7 +46,12 @@ export function getWebGLFeatures(gl: WebGLRenderingContext): Set<DeviceFeature>
|
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
function isFeatureSupported(gl: WebGLRenderingContext, feature: DeviceFeature): boolean {
|
|
50
|
-
const
|
|
49
|
+
const featureInfo = WEBGL_FEATURES[feature];
|
|
50
|
+
if (!featureInfo) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const [webgl1Feature, webgl2Feature] = featureInfo || [];
|
|
51
55
|
|
|
52
56
|
// Get extension name from table
|
|
53
57
|
const featureDefinition = isWebGL2(gl) ? webgl2Feature : webgl1Feature;
|
|
@@ -100,6 +104,9 @@ export function canCompileGLSLExtension(gl: WebGLRenderingContext, extensionName
|
|
|
100
104
|
const source = `#extension GL_${extensionName} : ${behavior}\nvoid main(void) {}`;
|
|
101
105
|
|
|
102
106
|
const shader = gl.createShader(gl.VERTEX_SHADER);
|
|
107
|
+
if (!shader) {
|
|
108
|
+
throw new Error('shader');
|
|
109
|
+
}
|
|
103
110
|
gl.shaderSource(shader, source);
|
|
104
111
|
gl.compileShader(shader);
|
|
105
112
|
const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
|
|
@@ -5,7 +5,7 @@ import {getWebGL2Context} from '../../context/context/webgl-checks';
|
|
|
5
5
|
|
|
6
6
|
/** Populate a WebGPU style device limits */
|
|
7
7
|
export function getDeviceLimits(gl: WebGLRenderingContext): DeviceLimits {
|
|
8
|
-
const gl2: WebGL2RenderingContext = getWebGL2Context(gl);
|
|
8
|
+
const gl2: WebGL2RenderingContext | null = getWebGL2Context(gl);
|
|
9
9
|
return {
|
|
10
10
|
maxTextureDimension1D: 0, // WebGL does not support 1D textures
|
|
11
11
|
maxTextureDimension2D: gl.getParameter(GL.MAX_TEXTURE_SIZE),
|
|
@@ -27,23 +27,27 @@ export function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
function identifyGPUVendor(vendor: string, renderer: string): 'nvidia' | 'intel' | 'apple' | 'amd' | 'unknown' {
|
|
31
|
-
if (
|
|
30
|
+
function identifyGPUVendor(vendor: string, renderer: string): 'nvidia' | 'intel' | 'apple' | 'amd' | 'software' | 'unknown' {
|
|
31
|
+
if ((/NVIDIA/i.exec(vendor)) || (/NVIDIA/i.exec(renderer))) {
|
|
32
32
|
return 'nvidia';
|
|
33
33
|
}
|
|
34
|
-
if (
|
|
34
|
+
if ((/INTEL/i.exec(vendor)) || (/INTEL/i.exec(renderer))) {
|
|
35
35
|
return 'intel';
|
|
36
36
|
}
|
|
37
|
-
if (
|
|
37
|
+
if ((/Apple/i.exec(vendor)) || (/Apple/i.exec(renderer))) {
|
|
38
38
|
return 'apple';
|
|
39
39
|
}
|
|
40
40
|
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
(/AMD/i.exec(vendor)) ||
|
|
42
|
+
(/AMD/i.exec(renderer)) ||
|
|
43
|
+
(/ATI/i.exec(vendor)) ||
|
|
44
|
+
(/ATI/i.exec(renderer))
|
|
45
45
|
) {
|
|
46
46
|
return 'amd';
|
|
47
47
|
}
|
|
48
|
+
if ((/SwiftShader/i.exec(vendor)) || (/SwiftShader/i.exec(renderer))) {
|
|
49
|
+
return 'software';
|
|
50
|
+
}
|
|
51
|
+
|
|
48
52
|
return 'unknown';
|
|
49
53
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
|
|
3
|
+
/** Information extracted from shader source code */
|
|
4
|
+
export type ShaderInfo = {
|
|
5
|
+
name: string;
|
|
6
|
+
language: 'glsl' | 'wgsl';
|
|
7
|
+
version: number;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/** Extracts information from shader source code */
|
|
11
|
+
export function getShaderInfo(source: string, defaultName?: string): ShaderInfo {
|
|
12
|
+
return {
|
|
13
|
+
name: getShaderName(source, defaultName),
|
|
14
|
+
language: 'glsl',
|
|
15
|
+
version: getShaderVersion(source)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Extracts GLSLIFY style naming of shaders: `#define SHADER_NAME ...` */
|
|
20
|
+
function getShaderName(shader: string, defaultName: string = 'unnamed'): string {
|
|
21
|
+
const SHADER_NAME_REGEXP = /#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/;
|
|
22
|
+
const match = SHADER_NAME_REGEXP.exec(shader);
|
|
23
|
+
return match ? match[1] : defaultName;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** returns GLSL shader version of given shader string */
|
|
27
|
+
function getShaderVersion(source: string): number {
|
|
28
|
+
let version = 100;
|
|
29
|
+
const words = source.match(/[^\s]+/g);
|
|
30
|
+
if (words && words.length >= 2 && words[0] === '#version') {
|
|
31
|
+
const v = parseInt(words[1], 10);
|
|
32
|
+
if (Number.isFinite(v)) {
|
|
33
|
+
version = v;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return version;
|
|
37
|
+
}
|