@luma.gl/webgl 9.0.0-alpha.5 → 9.0.0-alpha.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +3 -1
- package/dist/adapter/converters/device-parameters.d.ts +23 -4
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +101 -73
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +6 -6
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +74 -111
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/shader-formats.d.ts +9 -0
- package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
- package/dist/adapter/converters/shader-formats.js +52 -0
- package/dist/adapter/converters/shader-formats.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +32 -44
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +309 -346
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/converters/vertex-formats.d.ts +9 -3
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +53 -22
- package/dist/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +17 -23
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +54 -58
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +31 -22
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.d.ts.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/decode-webgl-types.d.ts +26 -0
- package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
- package/dist/adapter/helpers/decode-webgl-types.js +89 -0
- package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
- 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 -48
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +87 -143
- 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 +16 -11
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts +3 -2
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +51 -82
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
- package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +2 -29
- package/dist/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +6 -9
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +26 -83
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +19 -11
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +60 -88
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +175 -48
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +10 -20
- 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 +21 -24
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +63 -173
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +99 -11
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -21
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +108 -270
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +11 -21
- 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 +21 -34
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +62 -42
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +137 -256
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
- package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
- package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
- package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-vertex-array.js +167 -0
- package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +6 -7
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +10 -23
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +76 -41
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +219 -129
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +3 -3
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +26 -52
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/clear.d.ts +22 -0
- package/dist/classic/clear.d.ts.map +1 -0
- package/dist/classic/clear.js +88 -0
- package/dist/classic/clear.js.map +1 -0
- package/dist/classic/copy-and-blit.d.ts +62 -0
- package/dist/classic/copy-and-blit.d.ts.map +1 -0
- package/dist/classic/copy-and-blit.js +191 -0
- package/dist/classic/copy-and-blit.js.map +1 -0
- package/dist/classic/format-utils.d.ts +3 -0
- package/dist/classic/format-utils.d.ts.map +1 -0
- package/dist/classic/format-utils.js +37 -0
- package/dist/classic/format-utils.js.map +1 -0
- package/dist/classic/typed-array-utils.d.ts +17 -17
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +18 -39
- package/dist/classic/typed-array-utils.js.map +1 -1
- package/dist/context/context/create-browser-context.d.ts +40 -0
- package/dist/context/context/create-browser-context.d.ts.map +1 -0
- package/dist/context/context/create-browser-context.js +53 -0
- 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.d.ts.map +1 -1
- package/dist/context/context/webgl-checks.js +1 -4
- package/dist/context/context/webgl-checks.js.map +1 -1
- package/dist/context/debug/spector.d.ts +1 -2
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +8 -20
- package/dist/context/debug/spector.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +15 -39
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +9 -19
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +267 -286
- 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 +37 -43
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +22 -30
- 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 +18 -41
- 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 +17 -87
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.d.ts.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 +26 -62
- 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 +8 -10
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/dist.dev.js +8555 -0
- package/dist/index.cjs +6602 -0
- package/dist/index.d.ts +26 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -26
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist.min.js +49 -0
- package/package.json +21 -9
- package/src/adapter/converters/device-parameters.ts +144 -41
- package/src/adapter/converters/sampler-parameters.ts +103 -41
- package/src/adapter/converters/shader-formats.ts +44 -0
- package/src/adapter/converters/texture-formats.ts +268 -195
- package/src/adapter/converters/vertex-formats.ts +71 -10
- package/src/adapter/device-helpers/device-features.ts +14 -3
- package/src/adapter/device-helpers/device-limits.ts +5 -3
- package/src/adapter/device-helpers/get-device-info.ts +53 -18
- package/src/adapter/device-helpers/is-old-ie.ts +3 -0
- package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
- package/src/adapter/helpers/get-shader-info.ts +41 -0
- package/src/adapter/helpers/get-shader-layout.ts +121 -146
- package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
- package/src/adapter/helpers/set-uniform.ts +39 -35
- package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
- package/src/adapter/objects/constants-to-keys.ts +6 -25
- package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
- package/src/adapter/objects/webgl-resource.ts +16 -23
- package/src/adapter/resources/webgl-buffer.ts +67 -62
- package/src/adapter/resources/webgl-command-buffer.ts +327 -25
- package/src/adapter/resources/webgl-command-encoder.ts +20 -12
- package/src/adapter/resources/webgl-external-texture.ts +5 -2
- package/src/adapter/resources/webgl-framebuffer.ts +90 -134
- package/src/adapter/resources/webgl-render-pass.ts +166 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +256 -192
- package/src/adapter/resources/webgl-sampler.ts +16 -10
- package/src/adapter/resources/webgl-shader.ts +14 -11
- package/src/adapter/resources/webgl-texture.ts +138 -99
- package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
- package/src/adapter/resources/webgl-vertex-array.ts +283 -0
- package/src/adapter/webgl-canvas-context.ts +16 -14
- package/src/adapter/webgl-device.ts +328 -79
- package/src/classic/accessor.ts +8 -18
- package/src/classic/clear.ts +113 -0
- package/src/classic/copy-and-blit.ts +311 -0
- package/src/classic/format-utils.ts +46 -0
- package/src/classic/typed-array-utils.ts +21 -27
- package/src/context/context/create-browser-context.ts +140 -0
- package/src/context/context/create-headless-context.ts +51 -0
- package/src/context/context/webgl-checks.ts +3 -1
- package/src/context/debug/spector.ts +9 -6
- package/src/context/debug/webgl-developer-tools.ts +23 -15
- package/src/context/parameters/unified-parameter-api.ts +23 -14
- package/src/context/parameters/webgl-parameter-tables.ts +120 -98
- package/src/context/polyfill/context-data.ts +30 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
- package/src/context/polyfill/polyfill-context.ts +10 -9
- package/src/context/polyfill/polyfill-table.ts +21 -16
- package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
- package/src/context/state-tracker/deep-array-equal.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +14 -11
- package/src/context/state-tracker/with-parameters.ts +13 -4
- package/src/index.ts +70 -35
- package/src/types.ts +5 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
- package/dist/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
- package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
- package/dist/adapter/helpers/attribute-utils.js +0 -81
- package/dist/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/adapter/helpers/uniforms.d.ts +0 -26
- package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
- package/dist/adapter/helpers/uniforms.js +0 -99
- package/dist/adapter/helpers/uniforms.js.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- 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/classic/buffer.d.ts +0 -95
- package/dist/classic/buffer.d.ts.map +0 -1
- package/dist/classic/buffer.js +0 -384
- package/dist/classic/buffer.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 +0 -41
- package/dist/context/context/create-context.d.ts.map +0 -1
- package/dist/context/context/create-context.js +0 -49
- 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 -833
- 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/dist/types/webgl.d.ts +0 -145
- package/dist/types/webgl.d.ts.map +0 -1
- package/dist/types/webgl.js +0 -2
- package/dist/types/webgl.js.map +0 -1
- package/src/adapter/converters/renderbuffer-formats.ts +0 -92
- package/src/adapter/helpers/attribute-utils.ts +0 -61
- package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
- package/src/bundle.ts +0 -4
- package/src/classic/buffer.ts +0 -474
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/create-context.ts +0 -110
- package/src/context/context/device-pixels.ts +0 -152
- package/src/init.ts +0 -4
- package/src/types/webgl.ts +0 -284
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
1
4
|
// Tables describing WebGL parameters
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
5
|
+
import {GL, GLParameters} from '@luma.gl/constants';
|
|
3
6
|
import {isWebGL2} from '../context/webgl-checks';
|
|
4
|
-
|
|
7
|
+
|
|
5
8
|
// DEFAULT SETTINGS - FOR FAST CACHE INITIALIZATION AND CONTEXT RESETS
|
|
6
9
|
|
|
7
10
|
/* eslint-disable no-shadow */
|
|
@@ -91,11 +94,13 @@ export const GL_PARAMETER_DEFAULTS: GLParameters = {
|
|
|
91
94
|
|
|
92
95
|
// SETTER TABLES - ENABLES SETTING ANY PARAMETER WITH A COMMON API
|
|
93
96
|
|
|
94
|
-
const enable = (gl
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
+
const enable = (gl: WebGLRenderingContext, value: unknown, key: GL) =>
|
|
98
|
+
value ? gl.enable(key) : gl.disable(key);
|
|
99
|
+
const hint = (gl: WebGLRenderingContext, value: GL, key: GL) => gl.hint(key, value);
|
|
100
|
+
const pixelStorei = (gl: WebGLRenderingContext, value: number | boolean, key: GL) =>
|
|
101
|
+
gl.pixelStorei(key, value);
|
|
97
102
|
|
|
98
|
-
const bindFramebuffer = (gl, value, key) => {
|
|
103
|
+
const bindFramebuffer = (gl: WebGLRenderingContext, value: unknown, key: GL) => {
|
|
99
104
|
let target;
|
|
100
105
|
if (key === GL.FRAMEBUFFER_BINDING) {
|
|
101
106
|
target = isWebGL2(gl) ? GL.DRAW_FRAMEBUFFER : GL.FRAMEBUFFER;
|
|
@@ -106,21 +111,22 @@ const bindFramebuffer = (gl, value, key) => {
|
|
|
106
111
|
return gl.bindFramebuffer(target, value);
|
|
107
112
|
};
|
|
108
113
|
|
|
109
|
-
const bindBuffer = (gl, value, key) => {
|
|
110
|
-
const
|
|
111
|
-
[GL.ARRAY_BUFFER_BINDING]:
|
|
112
|
-
[GL.COPY_READ_BUFFER_BINDING]:
|
|
113
|
-
[GL.COPY_WRITE_BUFFER_BINDING]:
|
|
114
|
-
[GL.PIXEL_PACK_BUFFER_BINDING]:
|
|
115
|
-
[GL.PIXEL_UNPACK_BUFFER_BINDING]:
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
114
|
+
const bindBuffer = (gl: WebGLRenderingContext, value: unknown, key: GL) => {
|
|
115
|
+
const bindingMap: Partial<Record<GL, GL>> = {
|
|
116
|
+
[GL.ARRAY_BUFFER_BINDING]: GL.ARRAY_BUFFER,
|
|
117
|
+
[GL.COPY_READ_BUFFER_BINDING]: GL.COPY_READ_BUFFER,
|
|
118
|
+
[GL.COPY_WRITE_BUFFER_BINDING]: GL.COPY_WRITE_BUFFER,
|
|
119
|
+
[GL.PIXEL_PACK_BUFFER_BINDING]: GL.PIXEL_PACK_BUFFER,
|
|
120
|
+
[GL.PIXEL_UNPACK_BUFFER_BINDING]: GL.PIXEL_UNPACK_BUFFER
|
|
121
|
+
};
|
|
122
|
+
const glTarget = bindingMap[key];
|
|
123
|
+
|
|
124
|
+
gl.bindBuffer(glTarget, value);
|
|
119
125
|
};
|
|
120
126
|
|
|
121
127
|
// Utility
|
|
122
|
-
function isArray(array) {
|
|
123
|
-
return Array.isArray(array) || ArrayBuffer.isView(array);
|
|
128
|
+
function isArray(array: unknown): boolean {
|
|
129
|
+
return Array.isArray(array) || (ArrayBuffer.isView(array) && !(array instanceof DataView));
|
|
124
130
|
}
|
|
125
131
|
|
|
126
132
|
// Map from WebGL parameter names to corresponding WebGL setter functions
|
|
@@ -128,29 +134,34 @@ function isArray(array) {
|
|
|
128
134
|
// NOTE: When value type is a string, it will be handled by 'GL_COMPOSITE_PARAMETER_SETTERS'
|
|
129
135
|
export const GL_PARAMETER_SETTERS = {
|
|
130
136
|
[GL.BLEND]: enable,
|
|
131
|
-
[GL.BLEND_COLOR]: (gl, value) =>
|
|
137
|
+
[GL.BLEND_COLOR]: (gl: WebGLRenderingContext, value: [number, number, number, number]) =>
|
|
138
|
+
gl.blendColor(...value),
|
|
132
139
|
[GL.BLEND_EQUATION_RGB]: 'blendEquation',
|
|
133
140
|
[GL.BLEND_EQUATION_ALPHA]: 'blendEquation',
|
|
134
141
|
[GL.BLEND_SRC_RGB]: 'blendFunc',
|
|
135
142
|
[GL.BLEND_DST_RGB]: 'blendFunc',
|
|
136
143
|
[GL.BLEND_SRC_ALPHA]: 'blendFunc',
|
|
137
144
|
[GL.BLEND_DST_ALPHA]: 'blendFunc',
|
|
138
|
-
[GL.COLOR_CLEAR_VALUE]: (gl, value) =>
|
|
139
|
-
|
|
145
|
+
[GL.COLOR_CLEAR_VALUE]: (gl: WebGLRenderingContext, value: [number, number, number, number]) =>
|
|
146
|
+
gl.clearColor(...value),
|
|
147
|
+
[GL.COLOR_WRITEMASK]: (gl: WebGLRenderingContext, value: [boolean, boolean, boolean, boolean]) => gl.colorMask(...value),
|
|
140
148
|
[GL.CULL_FACE]: enable,
|
|
141
|
-
[GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),
|
|
149
|
+
[GL.CULL_FACE_MODE]: (gl: WebGLRenderingContext, value) => gl.cullFace(value),
|
|
142
150
|
[GL.DEPTH_TEST]: enable,
|
|
143
|
-
[GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),
|
|
144
|
-
[GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),
|
|
145
|
-
[GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),
|
|
146
|
-
[GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),
|
|
151
|
+
[GL.DEPTH_CLEAR_VALUE]: (gl: WebGLRenderingContext, value) => gl.clearDepth(value),
|
|
152
|
+
[GL.DEPTH_FUNC]: (gl: WebGLRenderingContext, value) => gl.depthFunc(value),
|
|
153
|
+
[GL.DEPTH_RANGE]: (gl: WebGLRenderingContext, value: [number, number]) => gl.depthRange(...value),
|
|
154
|
+
[GL.DEPTH_WRITEMASK]: (gl: WebGLRenderingContext, value) => gl.depthMask(value),
|
|
147
155
|
[GL.DITHER]: enable,
|
|
148
156
|
[GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,
|
|
149
157
|
|
|
150
|
-
[GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),
|
|
151
|
-
[GL.RENDERBUFFER_BINDING]: (gl, value) =>
|
|
152
|
-
|
|
153
|
-
[GL.
|
|
158
|
+
[GL.CURRENT_PROGRAM]: (gl: WebGLRenderingContext, value) => gl.useProgram(value),
|
|
159
|
+
[GL.RENDERBUFFER_BINDING]: (gl: WebGLRenderingContext, value) =>
|
|
160
|
+
gl.bindRenderbuffer(GL.RENDERBUFFER, value),
|
|
161
|
+
[GL.TRANSFORM_FEEDBACK_BINDING]: (gl: WebGLRenderingContext, value) =>
|
|
162
|
+
(gl as WebGL2RenderingContext).bindTransformFeedback?.(GL.TRANSFORM_FEEDBACK, value),
|
|
163
|
+
[GL.VERTEX_ARRAY_BINDING]: (gl: WebGLRenderingContext, value) =>
|
|
164
|
+
(gl as WebGL2RenderingContext).bindVertexArray(value),
|
|
154
165
|
// NOTE: FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.
|
|
155
166
|
[GL.FRAMEBUFFER_BINDING]: bindFramebuffer,
|
|
156
167
|
[GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,
|
|
@@ -162,9 +173,9 @@ export const GL_PARAMETER_SETTERS = {
|
|
|
162
173
|
[GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,
|
|
163
174
|
[GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,
|
|
164
175
|
|
|
165
|
-
[GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),
|
|
176
|
+
[GL.FRONT_FACE]: (gl: WebGLRenderingContext, value) => gl.frontFace(value),
|
|
166
177
|
[GL.GENERATE_MIPMAP_HINT]: hint,
|
|
167
|
-
[GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),
|
|
178
|
+
[GL.LINE_WIDTH]: (gl: WebGLRenderingContext, value) => gl.lineWidth(value),
|
|
168
179
|
[GL.POLYGON_OFFSET_FILL]: enable,
|
|
169
180
|
[GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',
|
|
170
181
|
[GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',
|
|
@@ -174,11 +185,13 @@ export const GL_PARAMETER_SETTERS = {
|
|
|
174
185
|
[GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',
|
|
175
186
|
[GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',
|
|
176
187
|
[GL.SCISSOR_TEST]: enable,
|
|
177
|
-
[GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),
|
|
188
|
+
[GL.SCISSOR_BOX]: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.scissor(...value),
|
|
178
189
|
[GL.STENCIL_TEST]: enable,
|
|
179
|
-
[GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),
|
|
180
|
-
[GL.STENCIL_WRITEMASK]: (gl, value) =>
|
|
181
|
-
|
|
190
|
+
[GL.STENCIL_CLEAR_VALUE]: (gl: WebGLRenderingContext, value) => gl.clearStencil(value),
|
|
191
|
+
[GL.STENCIL_WRITEMASK]: (gl: WebGLRenderingContext, value) =>
|
|
192
|
+
gl.stencilMaskSeparate(GL.FRONT, value),
|
|
193
|
+
[GL.STENCIL_BACK_WRITEMASK]: (gl: WebGLRenderingContext, value) =>
|
|
194
|
+
gl.stencilMaskSeparate(GL.BACK, value),
|
|
182
195
|
[GL.STENCIL_FUNC]: 'stencilFuncFront',
|
|
183
196
|
[GL.STENCIL_REF]: 'stencilFuncFront',
|
|
184
197
|
[GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',
|
|
@@ -191,7 +204,7 @@ export const GL_PARAMETER_SETTERS = {
|
|
|
191
204
|
[GL.STENCIL_BACK_FAIL]: 'stencilOpBack',
|
|
192
205
|
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',
|
|
193
206
|
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',
|
|
194
|
-
[GL.VIEWPORT]: (gl, value) => gl.viewport(...value),
|
|
207
|
+
[GL.VIEWPORT]: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.viewport(...value),
|
|
195
208
|
|
|
196
209
|
// WEBGL1 PIXEL PACK/UNPACK MODES
|
|
197
210
|
[GL.PACK_ALIGNMENT]: pixelStorei,
|
|
@@ -212,80 +225,85 @@ export const GL_PARAMETER_SETTERS = {
|
|
|
212
225
|
[GL.UNPACK_SKIP_IMAGES]: pixelStorei,
|
|
213
226
|
|
|
214
227
|
// Function-style setters
|
|
215
|
-
framebuffer: (gl, framebuffer) => {
|
|
228
|
+
framebuffer: (gl: WebGLRenderingContext, framebuffer) => {
|
|
216
229
|
// accepts 1) a WebGLFramebuffer 2) null (default framebuffer), or 3) luma.gl Framebuffer class
|
|
217
230
|
// framebuffer is null when restoring to default framebuffer, otherwise use the WebGL handle.
|
|
218
231
|
const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
|
|
219
232
|
return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
|
|
220
233
|
},
|
|
221
|
-
blend: (gl, value) => (value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND)),
|
|
222
|
-
blendColor: (gl, value) => gl.blendColor(...value),
|
|
223
|
-
blendEquation: (gl, args) => {
|
|
224
|
-
|
|
225
|
-
gl.blendEquationSeparate(...
|
|
234
|
+
blend: (gl: WebGLRenderingContext, value) => (value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND)),
|
|
235
|
+
blendColor: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.blendColor(...value),
|
|
236
|
+
blendEquation: (gl: WebGLRenderingContext, args: number | [number, number]) => {
|
|
237
|
+
const separateModes = typeof args === 'number' ? [args, args] as [number, number]: args;
|
|
238
|
+
gl.blendEquationSeparate(...separateModes);
|
|
226
239
|
},
|
|
227
|
-
blendFunc: (gl, args) => {
|
|
228
|
-
|
|
229
|
-
gl.blendFuncSeparate(...
|
|
240
|
+
blendFunc: (gl: WebGLRenderingContext, args: [number, number] | [number, number, number, number]) => {
|
|
241
|
+
const separateFuncs = args?.length === 2 ? [...args, ...args] as [number, number, number, number] : args;
|
|
242
|
+
gl.blendFuncSeparate(...separateFuncs);
|
|
230
243
|
},
|
|
231
244
|
|
|
232
|
-
clearColor: (gl, value) => gl.clearColor(...value),
|
|
233
|
-
clearDepth: (gl, value) => gl.clearDepth(value),
|
|
234
|
-
clearStencil: (gl, value) => gl.clearStencil(value),
|
|
245
|
+
clearColor: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.clearColor(...value),
|
|
246
|
+
clearDepth: (gl: WebGLRenderingContext, value) => gl.clearDepth(value),
|
|
247
|
+
clearStencil: (gl: WebGLRenderingContext, value) => gl.clearStencil(value),
|
|
235
248
|
|
|
236
|
-
colorMask: (gl, value) => gl.colorMask(...value),
|
|
249
|
+
colorMask: (gl: WebGLRenderingContext, value: [boolean, boolean, boolean, boolean]) => gl.colorMask(...value),
|
|
237
250
|
|
|
238
|
-
cull: (gl, value) =>
|
|
239
|
-
|
|
251
|
+
cull: (gl: WebGLRenderingContext, value) =>
|
|
252
|
+
value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE),
|
|
253
|
+
cullFace: (gl: WebGLRenderingContext, value) => gl.cullFace(value),
|
|
240
254
|
|
|
241
|
-
depthTest: (gl, value) =>
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
255
|
+
depthTest: (gl: WebGLRenderingContext, value) =>
|
|
256
|
+
value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST),
|
|
257
|
+
depthFunc: (gl: WebGLRenderingContext, value) => gl.depthFunc(value),
|
|
258
|
+
depthMask: (gl: WebGLRenderingContext, value) => gl.depthMask(value),
|
|
259
|
+
depthRange: (gl: WebGLRenderingContext, value: [number, number]) => gl.depthRange(...value),
|
|
245
260
|
|
|
246
|
-
dither: (gl, value) =>
|
|
261
|
+
dither: (gl: WebGLRenderingContext, value) =>
|
|
262
|
+
value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER),
|
|
247
263
|
|
|
248
|
-
derivativeHint: (gl, value) => {
|
|
264
|
+
derivativeHint: (gl: WebGLRenderingContext, value) => {
|
|
249
265
|
// gl1: 'OES_standard_derivatives'
|
|
250
266
|
gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);
|
|
251
267
|
},
|
|
252
268
|
|
|
253
|
-
frontFace: (gl, value) => gl.frontFace(value),
|
|
269
|
+
frontFace: (gl: WebGLRenderingContext, value) => gl.frontFace(value),
|
|
254
270
|
|
|
255
|
-
mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
|
|
271
|
+
mipmapHint: (gl: WebGLRenderingContext, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
|
|
256
272
|
|
|
257
|
-
lineWidth: (gl, value) => gl.lineWidth(value),
|
|
273
|
+
lineWidth: (gl: WebGLRenderingContext, value) => gl.lineWidth(value),
|
|
258
274
|
|
|
259
|
-
polygonOffsetFill: (gl, value) =>
|
|
275
|
+
polygonOffsetFill: (gl: WebGLRenderingContext, value) =>
|
|
260
276
|
value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),
|
|
261
|
-
polygonOffset: (gl, value) => gl.polygonOffset(...value),
|
|
277
|
+
polygonOffset: (gl: WebGLRenderingContext, value: [number, number]) => gl.polygonOffset(...value),
|
|
262
278
|
|
|
263
|
-
sampleCoverage: (gl, value) => gl.sampleCoverage(...value),
|
|
279
|
+
sampleCoverage: (gl: WebGLRenderingContext, value: [number, boolean?]) => gl.sampleCoverage(...value),
|
|
264
280
|
|
|
265
|
-
scissorTest: (gl, value) =>
|
|
266
|
-
|
|
281
|
+
scissorTest: (gl: WebGLRenderingContext, value) =>
|
|
282
|
+
value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST),
|
|
283
|
+
scissor: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.scissor(...value),
|
|
267
284
|
|
|
268
|
-
stencilTest: (gl, value) =>
|
|
269
|
-
|
|
285
|
+
stencilTest: (gl: WebGLRenderingContext, value) =>
|
|
286
|
+
value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST),
|
|
287
|
+
stencilMask: (gl: WebGLRenderingContext, value) => {
|
|
270
288
|
value = isArray(value) ? value : [value, value];
|
|
271
289
|
const [mask, backMask] = value;
|
|
272
290
|
gl.stencilMaskSeparate(GL.FRONT, mask);
|
|
273
291
|
gl.stencilMaskSeparate(GL.BACK, backMask);
|
|
274
292
|
},
|
|
275
|
-
stencilFunc: (gl, args) => {
|
|
293
|
+
stencilFunc: (gl: WebGLRenderingContext, args) => {
|
|
276
294
|
args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
|
|
277
295
|
const [func, ref, mask, backFunc, backRef, backMask] = args;
|
|
278
296
|
gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);
|
|
279
297
|
gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);
|
|
280
298
|
},
|
|
281
|
-
stencilOp: (gl, args) => {
|
|
299
|
+
stencilOp: (gl: WebGLRenderingContext, args) => {
|
|
282
300
|
args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
|
|
283
301
|
const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;
|
|
284
302
|
gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);
|
|
285
303
|
gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);
|
|
286
304
|
},
|
|
287
305
|
|
|
288
|
-
viewport: (gl, value) => gl.viewport(...value)
|
|
306
|
+
viewport: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.viewport(...value)
|
|
289
307
|
};
|
|
290
308
|
|
|
291
309
|
function getValue(glEnum, values, cache) {
|
|
@@ -294,50 +312,50 @@ function getValue(glEnum, values, cache) {
|
|
|
294
312
|
|
|
295
313
|
// COMPOSITE_WEBGL_PARAMETER_
|
|
296
314
|
export const GL_COMPOSITE_PARAMETER_SETTERS = {
|
|
297
|
-
blendEquation: (gl, values, cache) =>
|
|
315
|
+
blendEquation: (gl: WebGLRenderingContext, values, cache) =>
|
|
298
316
|
gl.blendEquationSeparate(
|
|
299
317
|
getValue(GL.BLEND_EQUATION_RGB, values, cache),
|
|
300
318
|
getValue(GL.BLEND_EQUATION_ALPHA, values, cache)
|
|
301
319
|
),
|
|
302
|
-
blendFunc: (gl, values, cache) =>
|
|
320
|
+
blendFunc: (gl: WebGLRenderingContext, values, cache) =>
|
|
303
321
|
gl.blendFuncSeparate(
|
|
304
322
|
getValue(GL.BLEND_SRC_RGB, values, cache),
|
|
305
323
|
getValue(GL.BLEND_DST_RGB, values, cache),
|
|
306
324
|
getValue(GL.BLEND_SRC_ALPHA, values, cache),
|
|
307
325
|
getValue(GL.BLEND_DST_ALPHA, values, cache)
|
|
308
326
|
),
|
|
309
|
-
polygonOffset: (gl, values, cache) =>
|
|
327
|
+
polygonOffset: (gl: WebGLRenderingContext, values, cache) =>
|
|
310
328
|
gl.polygonOffset(
|
|
311
329
|
getValue(GL.POLYGON_OFFSET_FACTOR, values, cache),
|
|
312
330
|
getValue(GL.POLYGON_OFFSET_UNITS, values, cache)
|
|
313
331
|
),
|
|
314
|
-
sampleCoverage: (gl, values, cache) =>
|
|
332
|
+
sampleCoverage: (gl: WebGLRenderingContext, values, cache) =>
|
|
315
333
|
gl.sampleCoverage(
|
|
316
334
|
getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache),
|
|
317
335
|
getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)
|
|
318
336
|
),
|
|
319
|
-
stencilFuncFront: (gl, values, cache) =>
|
|
337
|
+
stencilFuncFront: (gl: WebGLRenderingContext, values, cache) =>
|
|
320
338
|
gl.stencilFuncSeparate(
|
|
321
339
|
GL.FRONT,
|
|
322
340
|
getValue(GL.STENCIL_FUNC, values, cache),
|
|
323
341
|
getValue(GL.STENCIL_REF, values, cache),
|
|
324
342
|
getValue(GL.STENCIL_VALUE_MASK, values, cache)
|
|
325
343
|
),
|
|
326
|
-
stencilFuncBack: (gl, values, cache) =>
|
|
344
|
+
stencilFuncBack: (gl: WebGLRenderingContext, values, cache) =>
|
|
327
345
|
gl.stencilFuncSeparate(
|
|
328
346
|
GL.BACK,
|
|
329
347
|
getValue(GL.STENCIL_BACK_FUNC, values, cache),
|
|
330
348
|
getValue(GL.STENCIL_BACK_REF, values, cache),
|
|
331
349
|
getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)
|
|
332
350
|
),
|
|
333
|
-
stencilOpFront: (gl, values, cache) =>
|
|
351
|
+
stencilOpFront: (gl: WebGLRenderingContext, values, cache) =>
|
|
334
352
|
gl.stencilOpSeparate(
|
|
335
353
|
GL.FRONT,
|
|
336
354
|
getValue(GL.STENCIL_FAIL, values, cache),
|
|
337
355
|
getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache),
|
|
338
356
|
getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)
|
|
339
357
|
),
|
|
340
|
-
stencilOpBack: (gl, values, cache) =>
|
|
358
|
+
stencilOpBack: (gl: WebGLRenderingContext, values, cache) =>
|
|
341
359
|
gl.stencilOpSeparate(
|
|
342
360
|
GL.BACK,
|
|
343
361
|
getValue(GL.STENCIL_BACK_FAIL, values, cache),
|
|
@@ -352,36 +370,40 @@ type UpdateFunc = (params: Record<string, any>) => void;
|
|
|
352
370
|
export const GL_HOOKED_SETTERS = {
|
|
353
371
|
// GENERIC SETTERS
|
|
354
372
|
|
|
355
|
-
enable: (update: UpdateFunc, capability) =>
|
|
373
|
+
enable: (update: UpdateFunc, capability: GL) =>
|
|
356
374
|
update({
|
|
357
375
|
[capability]: true
|
|
358
376
|
}),
|
|
359
|
-
disable: (update: UpdateFunc, capability) =>
|
|
377
|
+
disable: (update: UpdateFunc, capability: GL) =>
|
|
360
378
|
update({
|
|
361
379
|
[capability]: false
|
|
362
380
|
}),
|
|
363
|
-
pixelStorei: (update: UpdateFunc, pname, value) =>
|
|
381
|
+
pixelStorei: (update: UpdateFunc, pname: GL, value) =>
|
|
364
382
|
update({
|
|
365
383
|
[pname]: value
|
|
366
384
|
}),
|
|
367
|
-
hint: (update: UpdateFunc, pname, hint) =>
|
|
385
|
+
hint: (update: UpdateFunc, pname: GL, hint: GL) =>
|
|
368
386
|
update({
|
|
369
387
|
[pname]: hint
|
|
370
388
|
}),
|
|
371
389
|
|
|
372
390
|
// SPECIFIC SETTERS
|
|
373
|
-
useProgram: (update: UpdateFunc, value) =>
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
391
|
+
useProgram: (update: UpdateFunc, value) =>
|
|
392
|
+
update({
|
|
393
|
+
[GL.CURRENT_PROGRAM]: value
|
|
394
|
+
}),
|
|
395
|
+
bindRenderbuffer: (update: UpdateFunc, target, value) =>
|
|
396
|
+
update({
|
|
397
|
+
[GL.RENDERBUFFER_BINDING]: value
|
|
398
|
+
}),
|
|
399
|
+
bindTransformFeedback: (update: UpdateFunc, target, value) =>
|
|
400
|
+
update({
|
|
401
|
+
[GL.TRANSFORM_FEEDBACK_BINDING]: value
|
|
402
|
+
}),
|
|
403
|
+
bindVertexArray: (update: UpdateFunc, value) =>
|
|
404
|
+
update({
|
|
405
|
+
[GL.VERTEX_ARRAY_BINDING]: value
|
|
406
|
+
}),
|
|
385
407
|
|
|
386
408
|
bindFramebuffer: (update: UpdateFunc, target, framebuffer) => {
|
|
387
409
|
switch (target) {
|
|
@@ -399,13 +421,13 @@ export const GL_HOOKED_SETTERS = {
|
|
|
399
421
|
}
|
|
400
422
|
},
|
|
401
423
|
bindBuffer: (update: UpdateFunc, target, buffer) => {
|
|
402
|
-
const pname =
|
|
424
|
+
const pname = {
|
|
403
425
|
[GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],
|
|
404
426
|
[GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],
|
|
405
427
|
[GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],
|
|
406
428
|
[GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],
|
|
407
429
|
[GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]
|
|
408
|
-
}
|
|
430
|
+
}[target];
|
|
409
431
|
|
|
410
432
|
if (pname) {
|
|
411
433
|
return update({[pname]: buffer});
|
|
@@ -567,7 +589,7 @@ export const GL_HOOKED_SETTERS = {
|
|
|
567
589
|
|
|
568
590
|
// GETTER TABLE - FOR READING OUT AN ENTIRE CONTEXT
|
|
569
591
|
|
|
570
|
-
const isEnabled = (gl, key) => gl.isEnabled(key);
|
|
592
|
+
const isEnabled = (gl: WebGLRenderingContext, key) => gl.isEnabled(key);
|
|
571
593
|
|
|
572
594
|
// Exceptions for any keys that cannot be queried by gl.getParameters
|
|
573
595
|
export const GL_PARAMETER_GETTERS = {
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Stores luma.gl specific state associated with a context
|
|
6
|
+
*/
|
|
7
|
+
export interface WebGLContextData {
|
|
8
|
+
_polyfilled: boolean;
|
|
9
|
+
_extensions: Record<string, any>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Gets luma.gl specific state from a context
|
|
14
|
+
* @returns context state
|
|
15
|
+
*/
|
|
16
|
+
export function getContextData(gl: WebGLRenderingContext): WebGLContextData {
|
|
17
|
+
// @ts-expect-error
|
|
18
|
+
const luma = gl.luma as WebGLContextData | null;
|
|
19
|
+
if (!luma) {
|
|
20
|
+
const contextState: WebGLContextData = {
|
|
21
|
+
_polyfilled: false,
|
|
22
|
+
_extensions: {}
|
|
23
|
+
};
|
|
24
|
+
// @ts-expect-error
|
|
25
|
+
gl.luma = contextState;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// @ts-expect-error
|
|
29
|
+
return gl.luma;
|
|
30
|
+
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
1
4
|
/* eslint-disable no-inline-comments, max-len, camelcase */
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
5
|
+
import {GL} from '@luma.gl/constants';
|
|
3
6
|
import {isWebGL2} from '../context/webgl-checks';
|
|
4
7
|
|
|
5
8
|
const OES_element_index = 'OES_element_index';
|
|
@@ -31,7 +34,7 @@ const WEBGL_PARAMETERS = {
|
|
|
31
34
|
[GL.SAMPLES]: getWebGL2ValueOrZero,
|
|
32
35
|
|
|
33
36
|
// WebGL2 extension context parameters
|
|
34
|
-
[GL_GPU_DISJOINT_EXT]: (gl, getParameter) => {
|
|
37
|
+
[GL_GPU_DISJOINT_EXT]: (gl: WebGLRenderingContext, getParameter) => {
|
|
35
38
|
const ext = isWebGL2(gl)
|
|
36
39
|
? gl.getExtension(EXT_disjoint_timer_query_webgl2)
|
|
37
40
|
: gl.getExtension(EXT_disjoint_timer_query);
|
|
@@ -39,18 +42,19 @@ const WEBGL_PARAMETERS = {
|
|
|
39
42
|
},
|
|
40
43
|
|
|
41
44
|
// Extension fixed values
|
|
42
|
-
[GL_UNMASKED_VENDOR_WEBGL]: (gl, getParameter) => {
|
|
45
|
+
[GL_UNMASKED_VENDOR_WEBGL]: (gl: WebGLRenderingContext, getParameter) => {
|
|
43
46
|
const ext = gl.getExtension(WEBGL_debug_renderer_info);
|
|
44
47
|
return getParameter((ext && ext.UNMASKED_VENDOR_WEBGL) || GL.VENDOR);
|
|
45
48
|
},
|
|
46
49
|
|
|
47
|
-
[GL_UNMASKED_RENDERER_WEBGL]: (gl, getParameter) => {
|
|
50
|
+
[GL_UNMASKED_RENDERER_WEBGL]: (gl: WebGLRenderingContext, getParameter) => {
|
|
48
51
|
const ext = gl.getExtension(WEBGL_debug_renderer_info);
|
|
49
52
|
return getParameter((ext && ext.UNMASKED_RENDERER_WEBGL) || GL.RENDERER);
|
|
50
53
|
},
|
|
51
54
|
|
|
52
55
|
// Extension LIMITS
|
|
53
|
-
[GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT]: (gl, getParameter) => {
|
|
56
|
+
[GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT]: (gl: WebGLRenderingContext, getParameter) => {
|
|
57
|
+
// @ts-ignore TODO - store these on the device instance instead...
|
|
54
58
|
const ext = gl.luma?.extensions?.[EXT_texture_filter_anisotropic] ||
|
|
55
59
|
gl.getExtension('EXT_texture_filter_anisotropic');
|
|
56
60
|
return ext ? getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 1.0;
|
|
@@ -60,7 +64,7 @@ const WEBGL_PARAMETERS = {
|
|
|
60
64
|
[GL.MAX_3D_TEXTURE_SIZE]: getWebGL2ValueOrZero,
|
|
61
65
|
[GL.MAX_ARRAY_TEXTURE_LAYERS]: getWebGL2ValueOrZero,
|
|
62
66
|
[GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: getWebGL2ValueOrZero,
|
|
63
|
-
[GL.MAX_COLOR_ATTACHMENTS]: (gl, getParameter) => {
|
|
67
|
+
[GL.MAX_COLOR_ATTACHMENTS]: (gl: WebGLRenderingContext, getParameter) => {
|
|
64
68
|
if (!isWebGL2(gl)) {
|
|
65
69
|
const ext = gl.getExtension(WEBGL_draw_buffers);
|
|
66
70
|
return ext ? getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL) : 0;
|
|
@@ -108,7 +112,7 @@ const WEBGL_PARAMETERS = {
|
|
|
108
112
|
|
|
109
113
|
// A "replacement" gl.getParameter that accepts "enums" from extensions and WebGL2
|
|
110
114
|
// and returns reasonably safe defaults
|
|
111
|
-
export function getParameterPolyfill(gl, originalGetParameter, pname) {
|
|
115
|
+
export function getParameterPolyfill(gl: WebGLRenderingContext, originalGetParameter, pname) {
|
|
112
116
|
// Return mock limits (usually 0) for WebGL2 constants to ensure these
|
|
113
117
|
// can be queries without error
|
|
114
118
|
const limit = WEBGL_PARAMETERS[pname];
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
1
4
|
// WebGL1/WebGL2 extension polyfill support
|
|
2
5
|
//
|
|
3
6
|
// Provides a function that creates polyfills for WebGL2 functions based
|
|
@@ -7,17 +10,17 @@
|
|
|
7
10
|
// This is intended to be a stand-alone file with minimal dependencies,
|
|
8
11
|
// easy to reuse or repurpose in other projects.
|
|
9
12
|
|
|
10
|
-
import {assert} from '@luma.gl/
|
|
13
|
+
import {assert} from '@luma.gl/core';
|
|
11
14
|
import {polyfillVertexArrayObject} from './polyfill-vertex-array-object';
|
|
12
15
|
|
|
13
16
|
import {WEBGL2_CONTEXT_POLYFILLS, WEBGL2_CONTEXT_OVERRIDES} from './polyfill-table';
|
|
14
|
-
import {
|
|
17
|
+
import {getContextData} from './context-data';
|
|
15
18
|
|
|
16
19
|
/**
|
|
17
20
|
* Registers extensions, polyfills or mock functions for extensions in the polyfills list
|
|
18
21
|
*/
|
|
19
22
|
export function polyfillContext(gl: WebGLRenderingContext): WebGL2RenderingContext {
|
|
20
|
-
const contextState =
|
|
23
|
+
const contextState = getContextData(gl);
|
|
21
24
|
|
|
22
25
|
if (!contextState._polyfilled) {
|
|
23
26
|
polyfillVertexArrayObject(gl);
|
|
@@ -32,19 +35,17 @@ export function polyfillContext(gl: WebGLRenderingContext): WebGL2RenderingConte
|
|
|
32
35
|
}
|
|
33
36
|
|
|
34
37
|
function initializeExtensions(gl: WebGLRenderingContext): void {
|
|
35
|
-
const contextState =
|
|
38
|
+
const contextState = getContextData(gl);
|
|
36
39
|
// `getSupportedExtensions` can return null when context is lost.
|
|
37
40
|
const EXTENSIONS = gl.getSupportedExtensions() || [];
|
|
38
41
|
for (const extensionName of EXTENSIONS) {
|
|
39
42
|
const extension = gl.getExtension(extensionName);
|
|
40
43
|
contextState._extensions[extensionName] = extension;
|
|
41
|
-
// TODO - this looks like a mistake?
|
|
42
|
-
contextState[extensionName] = extension;
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
function installPolyfills(gl: WebGLRenderingContext, polyfills): void {
|
|
47
|
-
const contextState =
|
|
48
|
+
const contextState = getContextData(gl);
|
|
48
49
|
for (const extension of Object.getOwnPropertyNames(polyfills)) {
|
|
49
50
|
if (extension !== 'overrides') {
|
|
50
51
|
polyfillExtension(gl, {extension, target: contextState, target2: gl});
|
|
@@ -65,7 +66,7 @@ function polyfillExtension(gl: WebGLRenderingContext, {extension, target, target
|
|
|
65
66
|
for (const key of Object.keys(defaults)) {
|
|
66
67
|
const extKey = `${key}${suffix}`;
|
|
67
68
|
|
|
68
|
-
let polyfill = null;
|
|
69
|
+
let polyfill: Function | null = null;
|
|
69
70
|
if (key === 'meta') {
|
|
70
71
|
// ignore
|
|
71
72
|
} else if (typeof gl[key] === 'function') {
|
|
@@ -86,7 +87,7 @@ function polyfillExtension(gl: WebGLRenderingContext, {extension, target, target
|
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
/** Install simple overrides (mostly get* functions) */
|
|
89
|
-
function installOverrides(gl, {target, target2}) {
|
|
90
|
+
function installOverrides(gl: WebGLRenderingContext, {target, target2}) {
|
|
90
91
|
Object.keys(WEBGL2_CONTEXT_OVERRIDES).forEach((key) => {
|
|
91
92
|
if (typeof WEBGL2_CONTEXT_OVERRIDES[key] === 'function') {
|
|
92
93
|
// install an override, if no implementation was detected
|