@luma.gl/webgl 9.0.0-alpha.9 → 9.0.0-beta.1
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 +12 -3
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +89 -74
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +4 -10
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +29 -180
- 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 +306 -343
- 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 +9 -25
- 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 +49 -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-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 +58 -138
- 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 -14
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +67 -101
- 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 -25
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +63 -175
- 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 +98 -12
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +34 -20
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +110 -293
- 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 +11 -21
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +5 -5
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +18 -44
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +51 -31
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +123 -244
- 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 +12 -23
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +92 -41
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +205 -158
- 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 +192 -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 +17 -18
- package/dist/context/context/create-browser-context.d.ts.map +1 -1
- package/dist/context/context/create-browser-context.js +11 -19
- package/dist/context/context/create-browser-context.js.map +1 -1
- package/dist/context/context/create-headless-context.d.ts +1 -1
- package/dist/context/context/create-headless-context.d.ts.map +1 -1
- package/dist/context/context/create-headless-context.js +6 -7
- package/dist/context/context/create-headless-context.js.map +1 -1
- 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 +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 +18 -41
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +5 -5
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +9 -17
- 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 +27 -31
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +7 -7
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +17 -40
- 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 +25 -61
- 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 +9344 -0
- package/dist/index.cjs +6556 -0
- package/dist/index.d.ts +23 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -27
- 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 +52 -0
- package/package.json +21 -9
- package/src/adapter/converters/device-parameters.ts +120 -43
- package/src/adapter/converters/sampler-parameters.ts +54 -126
- package/src/adapter/converters/shader-formats.ts +44 -0
- package/src/adapter/converters/texture-formats.ts +265 -192
- package/src/adapter/converters/vertex-formats.ts +71 -10
- package/src/adapter/device-helpers/device-features.ts +5 -2
- package/src/adapter/device-helpers/device-limits.ts +4 -2
- package/src/adapter/device-helpers/get-device-info.ts +72 -18
- package/src/adapter/device-helpers/is-old-ie.ts +3 -0
- package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +31 -24
- package/src/adapter/helpers/get-shader-layout.ts +87 -131
- 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 +101 -106
- 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 +86 -133
- package/src/adapter/resources/webgl-render-pass.ts +165 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +209 -205
- package/src/adapter/resources/webgl-sampler.ts +12 -8
- package/src/adapter/resources/webgl-shader.ts +32 -27
- package/src/adapter/resources/webgl-texture.ts +117 -91
- 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 +18 -13
- package/src/adapter/webgl-device.ts +327 -92
- package/src/classic/accessor.ts +8 -5
- package/src/classic/clear.ts +113 -0
- package/src/classic/copy-and-blit.ts +312 -0
- package/src/classic/format-utils.ts +46 -0
- package/src/classic/typed-array-utils.ts +19 -27
- package/src/context/context/create-browser-context.ts +53 -31
- package/src/context/context/create-headless-context.ts +5 -2
- package/src/context/context/webgl-checks.ts +3 -1
- package/src/context/debug/spector.ts +8 -5
- package/src/context/debug/webgl-developer-tools.ts +26 -17
- package/src/context/parameters/unified-parameter-api.ts +15 -9
- 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 +15 -8
- package/src/context/polyfill/polyfill-table.ts +20 -15
- 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 +13 -10
- package/src/context/state-tracker/with-parameters.ts +13 -4
- package/src/index.ts +65 -39
- 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 -392
- 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/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 -103
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/es5/adapter/converters/device-parameters.js +0 -185
- 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 -245
- 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 -155
- 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 -391
- 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 -346
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -530
- 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 -150
- 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 -463
- 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 -478
- 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-browser-context.js +0 -83
- package/dist/es5/context/context/create-browser-context.js.map +0 -1
- package/dist/es5/context/context/create-headless-context.js +0 -60
- package/dist/es5/context/context/create-headless-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -121
- 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 -134
- 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 -290
- 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 -168
- 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 -227
- 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 -112
- 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 -330
- 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 -267
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -428
- 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 -76
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -834
- 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 -337
- 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 -392
- 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-browser-context.js +0 -61
- package/dist/esm/context/context/create-browser-context.js.map +0 -1
- package/dist/esm/context/context/create-headless-context.js +0 -43
- package/dist/esm/context/context/create-headless-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -103
- 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 -63
- 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 -91
- 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 -28
- 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/device-pixels.ts +0 -158
- package/src/init.ts +0 -4
- package/src/types/webgl.ts +0 -284
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { log, loadScript } from '@luma.gl/api/';
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
3
|
-
const WEBGL_DEBUG_CDN_URL = 'https://unpkg.com/webgl-debug@2.0.1/index.js';
|
|
4
|
-
const DEFAULT_DEBUG_CONTEXT_PROPS = {
|
|
5
|
-
debug: true,
|
|
6
|
-
throwOnError: false,
|
|
7
|
-
break: [],
|
|
8
|
-
webgl2: false
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
function getContextData(gl) {
|
|
12
|
-
gl.luma = gl.luma || {};
|
|
13
|
-
return gl.luma;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export async function loadWebGLDeveloperTools() {
|
|
17
|
-
if (!globalThis.WebGLDebugUtils) {
|
|
18
|
-
globalThis.global = globalThis.global || globalThis;
|
|
19
|
-
globalThis.global.module = {};
|
|
20
|
-
await loadScript(WEBGL_DEBUG_CDN_URL);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export function makeDebugContext(gl, props = {}) {
|
|
24
|
-
if (!gl) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return props.debug ? getDebugContext(gl, props) : getRealContext(gl);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function getRealContext(gl) {
|
|
32
|
-
const data = getContextData(gl);
|
|
33
|
-
return data.realContext ? data.realContext : gl;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function getDebugContext(gl, props) {
|
|
37
|
-
if (!globalThis.WebGLDebugUtils) {
|
|
38
|
-
log.warn('webgl-debug not loaded')();
|
|
39
|
-
return gl;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const data = getContextData(gl);
|
|
43
|
-
|
|
44
|
-
if (data.debugContext) {
|
|
45
|
-
return data.debugContext;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
globalThis.WebGLDebugUtils.init({ ...GL,
|
|
49
|
-
...gl
|
|
50
|
-
});
|
|
51
|
-
const glDebug = globalThis.WebGLDebugUtils.makeDebugContext(gl, onGLError.bind(null, props), onValidateGLFunc.bind(null, props));
|
|
52
|
-
|
|
53
|
-
for (const key in GL) {
|
|
54
|
-
if (!(key in glDebug) && typeof GL[key] === 'number') {
|
|
55
|
-
glDebug[key] = GL[key];
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
class WebGLDebugContext {}
|
|
60
|
-
|
|
61
|
-
Object.setPrototypeOf(glDebug, Object.getPrototypeOf(gl));
|
|
62
|
-
Object.setPrototypeOf(WebGLDebugContext, glDebug);
|
|
63
|
-
const debugContext = Object.create(WebGLDebugContext);
|
|
64
|
-
data.realContext = gl;
|
|
65
|
-
data.debugContext = debugContext;
|
|
66
|
-
debugContext.debug = true;
|
|
67
|
-
return debugContext;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function getFunctionString(functionName, functionArgs) {
|
|
71
|
-
functionArgs = Array.from(functionArgs).map(arg => arg === undefined ? 'undefined' : arg);
|
|
72
|
-
let args = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, functionArgs);
|
|
73
|
-
args = "".concat(args.slice(0, 100)).concat(args.length > 100 ? '...' : '');
|
|
74
|
-
return "gl.".concat(functionName, "(").concat(args, ")");
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function onGLError(props, err, functionName, args) {
|
|
78
|
-
args = Array.from(args).map(arg => arg === undefined ? 'undefined' : arg);
|
|
79
|
-
const errorMessage = globalThis.WebGLDebugUtils.glEnumToString(err);
|
|
80
|
-
const functionArgs = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, args);
|
|
81
|
-
const glName = props.webgl2 ? 'gl2' : 'gl1';
|
|
82
|
-
const message = "".concat(errorMessage, " in ").concat(glName, ".").concat(functionName, "(").concat(functionArgs, ")");
|
|
83
|
-
log.error(message)();
|
|
84
|
-
debugger;
|
|
85
|
-
|
|
86
|
-
if (props.throwOnError) {
|
|
87
|
-
throw new Error(message);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function onValidateGLFunc(props, functionName, functionArgs) {
|
|
92
|
-
let functionString = '';
|
|
93
|
-
|
|
94
|
-
if (log.level >= 1) {
|
|
95
|
-
functionString = getFunctionString(functionName, functionArgs);
|
|
96
|
-
log.log(1, functionString)();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (props.break) {
|
|
100
|
-
functionString = functionString || getFunctionString(functionName, functionArgs);
|
|
101
|
-
const isBreakpoint = props.break && props.break.every(breakOn => functionString.indexOf(breakOn) !== -1);
|
|
102
|
-
|
|
103
|
-
if (isBreakpoint) {
|
|
104
|
-
debugger;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
for (const arg of functionArgs) {
|
|
109
|
-
if (arg === undefined) {
|
|
110
|
-
functionString = functionString || getFunctionString(functionName, functionArgs);
|
|
111
|
-
|
|
112
|
-
if (props.throwOnError) {
|
|
113
|
-
throw new Error("Undefined argument: ".concat(functionString));
|
|
114
|
-
} else {
|
|
115
|
-
log.error("Undefined argument: ".concat(functionString))();
|
|
116
|
-
debugger;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=webgl-developer-tools.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/context/debug/webgl-developer-tools.ts"],"names":["log","loadScript","GL","WEBGL_DEBUG_CDN_URL","DEFAULT_DEBUG_CONTEXT_PROPS","debug","throwOnError","break","webgl2","getContextData","gl","luma","loadWebGLDeveloperTools","globalThis","WebGLDebugUtils","global","module","makeDebugContext","props","getDebugContext","getRealContext","data","realContext","warn","debugContext","init","glDebug","onGLError","bind","onValidateGLFunc","key","WebGLDebugContext","Object","setPrototypeOf","getPrototypeOf","create","getFunctionString","functionName","functionArgs","Array","from","map","arg","undefined","args","glFunctionArgsToString","slice","length","err","errorMessage","glEnumToString","glName","message","error","Error","functionString","level","isBreakpoint","every","breakOn","indexOf"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {log, loadScript} from '@luma.gl/api/';\nimport GL from '@luma.gl/constants';\n\nconst WEBGL_DEBUG_CDN_URL = 'https://unpkg.com/webgl-debug@2.0.1/index.js';\n\ntype DebugContextProps = {\n debug?: boolean;\n throwOnError?: boolean;\n break?: string[];\n webgl2?: boolean;\n};\n\nconst DEFAULT_DEBUG_CONTEXT_PROPS: Required<DebugContextProps> = {\n debug: true,\n throwOnError: false,\n break: [],\n webgl2: false,\n}\n\n// Helper to get shared context data\nfunction getContextData(gl: any) {\n gl.luma = gl.luma || {};\n return gl.luma;\n}\n\ndeclare global {\n var WebGLDebugUtils: any;\n}\n\n/**\n * Loads Khronos WebGLDeveloperTools from CDN if not already installed \n * const WebGLDebugUtils = require('webgl-debug');\n * @see https://github.com/KhronosGroup/WebGLDeveloperTools\n * @see https://github.com/vorg/webgl-debug\n */\nexport async function loadWebGLDeveloperTools(): Promise<void> {\n if (!globalThis.WebGLDebugUtils) {\n // @ts-expect-error Developer tools expects global to be set\n globalThis.global = globalThis.global || globalThis;\n // @ts-expect-error Developer tools expects global to be set\n globalThis.global.module = {};\n await loadScript(WEBGL_DEBUG_CDN_URL);\n }\n}\n\n// Returns (a potentially new) context with debug instrumentation turned off or on.\n// Note that this actually returns a new context\nexport function makeDebugContext(gl: WebGLRenderingContext, props: DebugContextProps = {}): WebGLRenderingContext | null {\n // Return null to ensure we don't try to create a context in this case (TODO what case is that?)\n if (!gl) {\n return null;\n }\n\n return props.debug ? getDebugContext(gl, props) : getRealContext(gl);\n}\n\n// Returns the real context from either of the real/debug contexts\nfunction getRealContext(gl: WebGLRenderingContext): WebGLRenderingContext {\n const data = getContextData(gl);\n // If the context has a realContext member, it is a debug context so return the realContext\n return data.realContext ? data.realContext : gl;\n}\n\n// Returns the debug context from either of the real/debug contexts\nfunction getDebugContext(gl: WebGLRenderingContext, props: DebugContextProps): WebGLRenderingContext {\n if (!globalThis.WebGLDebugUtils) {\n log.warn('webgl-debug not loaded')();\n return gl;\n }\n\n const data = getContextData(gl);\n\n // If this already has a debug context, return it.\n if (data.debugContext) {\n return data.debugContext;\n }\n\n // Create a new debug context\n globalThis.WebGLDebugUtils.init({...GL, ...gl});\n const glDebug = globalThis.WebGLDebugUtils.makeDebugContext(\n gl,\n onGLError.bind(null, props),\n onValidateGLFunc.bind(null, props)\n );\n\n // Make sure we have all WebGL2 and extension constants (todo dynamic import to circumvent minification?)\n for (const key in GL) {\n if (!(key in glDebug) && typeof GL[key] === 'number') {\n glDebug[key] = GL[key];\n }\n }\n \n // Ensure we have a clean prototype on the instrumented object\n // Note: setPrototypeOf does come with perf warnings, but we already take a bigger perf reduction\n // by synchronizing the WebGL errors after each WebGL call.\n class WebGLDebugContext {}\n Object.setPrototypeOf(glDebug, Object.getPrototypeOf(gl));\n Object.setPrototypeOf(WebGLDebugContext, glDebug);\n const debugContext = Object.create(WebGLDebugContext);\n // Store the debug context\n data.realContext = gl;\n data.debugContext = debugContext;\n debugContext.debug = true;\n\n // Return it\n return debugContext;\n}\n\n// DEBUG TRACING\n\nfunction getFunctionString(functionName: string, functionArgs): string {\n // Cover bug in webgl-debug-tools\n functionArgs = Array.from(functionArgs).map(arg => arg === undefined ? 'undefined' : arg);\n let args = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, functionArgs);\n args = `${args.slice(0, 100)}${args.length > 100 ? '...' : ''}`;\n return `gl.${functionName}(${args})`;\n}\n\nfunction onGLError(props: DebugContextProps, err, functionName: string, args: any[]): void {\n // Cover bug in webgl-debug-tools\n args = Array.from(args).map(arg => arg === undefined ? 'undefined' : arg);\n const errorMessage = globalThis.WebGLDebugUtils.glEnumToString(err);\n const functionArgs = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, args);\n const glName = props.webgl2 ? 'gl2' : 'gl1';\n const message = `${errorMessage} in ${glName}.${functionName}(${functionArgs})`;\n log.error(message)();\n debugger; // eslint-disable-line\n if (props.throwOnError) {\n throw new Error(message);\n }\n}\n\n// Don't generate function string until it is needed\nfunction onValidateGLFunc(props: DebugContextProps, functionName: string, functionArgs: any[]): void {\n let functionString: string = '';\n if (log.level >= 1) {\n functionString = getFunctionString(functionName, functionArgs);\n log.log(1, functionString)();\n }\n\n if (props.break) {\n functionString = functionString || getFunctionString(functionName, functionArgs);\n const isBreakpoint =\n props.break && props.break.every((breakOn: string) => functionString.indexOf(breakOn) !== -1);\n if (isBreakpoint) {\n debugger; // eslint-disable-line\n }\n }\n\n for (const arg of functionArgs) {\n if (arg === undefined) {\n functionString = functionString || getFunctionString(functionName, functionArgs);\n if (props.throwOnError) {\n throw new Error(`Undefined argument: ${functionString}`);\n } else {\n log.error(`Undefined argument: ${functionString}`)();\n debugger; // eslint-disable-line\n }\n }\n }\n}\n"],"file":"webgl-developer-tools.js"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { GL_PARAMETER_DEFAULTS, GL_PARAMETER_SETTERS, GL_COMPOSITE_PARAMETER_SETTERS, GL_PARAMETER_GETTERS } from './webgl-parameter-tables';
|
|
2
|
-
import WebGLDevice from '../../adapter/webgl-device';
|
|
3
|
-
export function setParameters(device, parameters) {
|
|
4
|
-
const webglDevice = WebGLDevice.attach(device);
|
|
5
|
-
const gl = webglDevice.gl;
|
|
6
|
-
|
|
7
|
-
if (isObjectEmpty(parameters)) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const compositeSetters = {};
|
|
12
|
-
|
|
13
|
-
for (const key in parameters) {
|
|
14
|
-
const glConstant = Number(key);
|
|
15
|
-
const setter = GL_PARAMETER_SETTERS[key];
|
|
16
|
-
|
|
17
|
-
if (setter) {
|
|
18
|
-
if (typeof setter === 'string') {
|
|
19
|
-
compositeSetters[setter] = true;
|
|
20
|
-
} else {
|
|
21
|
-
setter(gl, parameters[key], glConstant);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const cache = gl.state && gl.state.cache;
|
|
27
|
-
|
|
28
|
-
if (cache) {
|
|
29
|
-
for (const key in compositeSetters) {
|
|
30
|
-
const compositeSetter = GL_COMPOSITE_PARAMETER_SETTERS[key];
|
|
31
|
-
compositeSetter(gl, parameters, cache);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
export function getParameters(gl, parameters = GL_PARAMETER_DEFAULTS) {
|
|
36
|
-
if (typeof parameters === 'number') {
|
|
37
|
-
const key = parameters;
|
|
38
|
-
const getter = GL_PARAMETER_GETTERS[key];
|
|
39
|
-
return getter ? getter(gl, key) : gl.getParameter(key);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const parameterKeys = Array.isArray(parameters) ? parameters : Object.keys(parameters);
|
|
43
|
-
const state = {};
|
|
44
|
-
|
|
45
|
-
for (const key of parameterKeys) {
|
|
46
|
-
const getter = GL_PARAMETER_GETTERS[key];
|
|
47
|
-
state[key] = getter ? getter(gl, Number(key)) : gl.getParameter(Number(key));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return state;
|
|
51
|
-
}
|
|
52
|
-
export function resetParameters(gl) {
|
|
53
|
-
setParameters(gl, GL_PARAMETER_DEFAULTS);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function isObjectEmpty(object) {
|
|
57
|
-
for (const key in object) {
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=unified-parameter-api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/context/parameters/unified-parameter-api.ts"],"names":["GL_PARAMETER_DEFAULTS","GL_PARAMETER_SETTERS","GL_COMPOSITE_PARAMETER_SETTERS","GL_PARAMETER_GETTERS","WebGLDevice","setParameters","device","parameters","webglDevice","attach","gl","isObjectEmpty","compositeSetters","key","glConstant","Number","setter","cache","state","compositeSetter","getParameters","getter","getParameter","parameterKeys","Array","isArray","Object","keys","resetParameters","object"],"mappings":"AAKA,SACEA,qBADF,EAEEC,oBAFF,EAGEC,8BAHF,EAIEC,oBAJF,QAKO,0BALP;AAQA,OAAOC,WAAP,MAAwB,4BAAxB;AAUA,OAAO,SAASC,aAAT,CACLC,MADK,EAELC,UAFK,EAGC;AACN,QAAMC,WAAW,GAAGJ,WAAW,CAACK,MAAZ,CAAmBH,MAAnB,CAApB;AACA,QAAMI,EAAE,GAAGF,WAAW,CAACE,EAAvB;;AAEA,MAAIC,aAAa,CAACJ,UAAD,CAAjB,EAA+B;AAC7B;AACD;;AAED,QAAMK,gBAAgB,GAAG,EAAzB;;AAIA,OAAK,MAAMC,GAAX,IAAkBN,UAAlB,EAA8B;AAC5B,UAAMO,UAAU,GAAGC,MAAM,CAACF,GAAD,CAAzB;AACA,UAAMG,MAAM,GAAGf,oBAAoB,CAACY,GAAD,CAAnC;;AACA,QAAIG,MAAJ,EAAY;AAEV,UAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC;AAC9BJ,QAAAA,gBAAgB,CAACI,MAAD,CAAhB,GAA2B,IAA3B;AACD,OAFD,MAEO;AAKLA,QAAAA,MAAM,CAACN,EAAD,EAAKH,UAAU,CAACM,GAAD,CAAf,EAAsBC,UAAtB,CAAN;AACD;AACF;AACF;;AAUD,QAAMG,KAAK,GAAGP,EAAE,CAACQ,KAAH,IAAYR,EAAE,CAACQ,KAAH,CAASD,KAAnC;;AACA,MAAIA,KAAJ,EAAW;AACT,SAAK,MAAMJ,GAAX,IAAkBD,gBAAlB,EAAoC;AAElC,YAAMO,eAAe,GAAGjB,8BAA8B,CAACW,GAAD,CAAtD;AAGAM,MAAAA,eAAe,CAACT,EAAD,EAAKH,UAAL,EAAiBU,KAAjB,CAAf;AACD;AACF;AAGF;AAgBD,OAAO,SAASG,aAAT,CACLV,EADK,EAELH,UAAsE,GAAGP,qBAFpE,EAGS;AAGd,MAAI,OAAOO,UAAP,KAAsB,QAA1B,EAAoC;AAElC,UAAMM,GAAG,GAAGN,UAAZ;AACA,UAAMc,MAAM,GAAGlB,oBAAoB,CAACU,GAAD,CAAnC;AACA,WAAOQ,MAAM,GAAGA,MAAM,CAACX,EAAD,EAAKG,GAAL,CAAT,GAAqBH,EAAE,CAACY,YAAH,CAAgBT,GAAhB,CAAlC;AACD;;AAED,QAAMU,aAAa,GAAGC,KAAK,CAACC,OAAN,CAAclB,UAAd,IAA4BA,UAA5B,GAAyCmB,MAAM,CAACC,IAAP,CAAYpB,UAAZ,CAA/D;AAEA,QAAMW,KAAK,GAAG,EAAd;;AACA,OAAK,MAAML,GAAX,IAAkBU,aAAlB,EAAiC;AAC/B,UAAMF,MAAM,GAAGlB,oBAAoB,CAACU,GAAD,CAAnC;AACAK,IAAAA,KAAK,CAACL,GAAD,CAAL,GAAaQ,MAAM,GAAGA,MAAM,CAACX,EAAD,EAAKK,MAAM,CAACF,GAAD,CAAX,CAAT,GAA6BH,EAAE,CAACY,YAAH,CAAgBP,MAAM,CAACF,GAAD,CAAtB,CAAhD;AACD;;AACD,SAAOK,KAAP;AACD;AAQD,OAAO,SAASU,eAAT,CAAyBlB,EAAzB,EAA0D;AAC/DL,EAAAA,aAAa,CAACK,EAAD,EAAKV,qBAAL,CAAb;AACD;;AAKD,SAASW,aAAT,CAAuBkB,MAAvB,EAA+B;AAC7B,OAAK,MAAMhB,GAAX,IAAkBgB,MAAlB,EAA0B;AACxB,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD","sourcesContent":["// Provides a unified API for getting and setting any WebGL parameter\n// Also knows default values of all parameters, enabling fast cache initialization\n// Provides base functionality for the state caching.\nimport {Device} from '@luma.gl/api';\nimport type {GLParameters} from '../../types/webgl';\nimport {\n GL_PARAMETER_DEFAULTS,\n GL_PARAMETER_SETTERS,\n GL_COMPOSITE_PARAMETER_SETTERS,\n GL_PARAMETER_GETTERS\n} from './webgl-parameter-tables';\n\nimport {isWebGL} from '../context/webgl-checks';\nimport WebGLDevice from '../../adapter/webgl-device';\n\nexport type {GLParameters};\n\n/**\n * Sets any GL parameter regardless of function (gl.blendMode, ...)\n *\n * @note requires a `cache` object to be set on the context (gl.state.cache)\n * This object is used to fill in any missing values for composite setter functions\n */\nexport function setParameters(\n device: Device | WebGLRenderingContext,\n parameters: GLParameters\n): void {\n const webglDevice = WebGLDevice.attach(device);\n const gl = webglDevice.gl;\n\n if (isObjectEmpty(parameters)) {\n return;\n }\n\n const compositeSetters = {};\n\n // HANDLE PRIMITIVE SETTERS (and make note of any composite setters)\n\n for (const key in parameters) {\n const glConstant = Number(key);\n const setter = GL_PARAMETER_SETTERS[key];\n if (setter) {\n // Composite setters should only be called once, so save them\n if (typeof setter === 'string') {\n compositeSetters[setter] = true;\n } else {\n // if (gl[glConstant] !== undefined) {\n // TODO - added above check since this is being called on WebGL2 parameters in WebGL1...\n // TODO - deep equal on values? only call setter if value has changed?\n // NOTE - the setter will automatically update this.state\n setter(gl, parameters[key], glConstant);\n }\n }\n }\n\n // HANDLE COMPOSITE SETTERS\n\n // NOTE: any non-provided values needed by composite setters are filled in from state cache\n // The cache parameter is automatically retrieved from the context\n // This depends on `trackContextState`, which is technically a \"circular\" dependency.\n // But it is too inconvenient to always require a cache parameter here.\n // This is the ONLY external dependency in this module/\n // @ts-expect-error\n const cache = gl.state && gl.state.cache;\n if (cache) {\n for (const key in compositeSetters) {\n // TODO - avoid calling composite setters if values have not changed.\n const compositeSetter = GL_COMPOSITE_PARAMETER_SETTERS[key];\n // Note - if `trackContextState` has been called,\n // the setter will automatically update this.state.cache\n compositeSetter(gl, parameters, cache);\n }\n }\n\n // Add a log for the else case?\n}\n\n/**\n * Reads the entire WebGL state from a context\n\n // default to querying all parameters\n\n * @returns - a newly created map, with values keyed by GL parameters\n *\n * @note Copies the state from a context (gl.getParameter should not be overriden)\n * Reads the entire WebGL state from a context\n *\n * @note This can generates a huge amount of synchronous driver roundtrips and should be\n * considered a very slow operation, to be used only if/when a context already manipulated\n * by external code needs to be synchronized for the first time\n */\nexport function getParameters(\n gl: WebGLRenderingContext,\n parameters: keyof GLParameters | (keyof GLParameters)[] | GLParameters = GL_PARAMETER_DEFAULTS\n): GLParameters {\n // support both arrays of parameters and objects (keys represent parameters)\n\n if (typeof parameters === 'number') {\n // single GL enum\n const key = parameters;\n const getter = GL_PARAMETER_GETTERS[key];\n return getter ? getter(gl, key) : gl.getParameter(key);\n }\n\n const parameterKeys = Array.isArray(parameters) ? parameters : Object.keys(parameters);\n\n const state = {};\n for (const key of parameterKeys) {\n const getter = GL_PARAMETER_GETTERS[key];\n state[key] = getter ? getter(gl, Number(key)) : gl.getParameter(Number(key));\n }\n return state;\n}\n\n/**\n * Reset all parameters to a (almost) pure context state\n * @note viewport and scissor will be set to the values in GL_PARAMETER_DEFAULTS,\n * NOT the canvas size dimensions, so they will have to be properly set after\n * calling this function.\n */\nexport function resetParameters(gl: WebGLRenderingContext): void {\n setParameters(gl, GL_PARAMETER_DEFAULTS);\n}\n\n// Helpers\n\n// Returns true if given object is empty, false otherwise.\nfunction isObjectEmpty(object) {\n for (const key in object) {\n return false;\n }\n return true;\n}\n"],"file":"unified-parameter-api.js"}
|
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
import GL from '@luma.gl/constants';
|
|
2
|
-
import { isWebGL2 } from '../context/webgl-checks';
|
|
3
|
-
export const GL_PARAMETER_DEFAULTS = {
|
|
4
|
-
[GL.BLEND]: false,
|
|
5
|
-
[GL.BLEND_COLOR]: new Float32Array([0, 0, 0, 0]),
|
|
6
|
-
[GL.BLEND_EQUATION_RGB]: GL.FUNC_ADD,
|
|
7
|
-
[GL.BLEND_EQUATION_ALPHA]: GL.FUNC_ADD,
|
|
8
|
-
[GL.BLEND_SRC_RGB]: GL.ONE,
|
|
9
|
-
[GL.BLEND_DST_RGB]: GL.ZERO,
|
|
10
|
-
[GL.BLEND_SRC_ALPHA]: GL.ONE,
|
|
11
|
-
[GL.BLEND_DST_ALPHA]: GL.ZERO,
|
|
12
|
-
[GL.COLOR_CLEAR_VALUE]: new Float32Array([0, 0, 0, 0]),
|
|
13
|
-
[GL.COLOR_WRITEMASK]: [true, true, true, true],
|
|
14
|
-
[GL.CULL_FACE]: false,
|
|
15
|
-
[GL.CULL_FACE_MODE]: GL.BACK,
|
|
16
|
-
[GL.DEPTH_TEST]: false,
|
|
17
|
-
[GL.DEPTH_CLEAR_VALUE]: 1,
|
|
18
|
-
[GL.DEPTH_FUNC]: GL.LESS,
|
|
19
|
-
[GL.DEPTH_RANGE]: new Float32Array([0, 1]),
|
|
20
|
-
[GL.DEPTH_WRITEMASK]: true,
|
|
21
|
-
[GL.DITHER]: true,
|
|
22
|
-
[GL.CURRENT_PROGRAM]: null,
|
|
23
|
-
[GL.FRAMEBUFFER_BINDING]: null,
|
|
24
|
-
[GL.RENDERBUFFER_BINDING]: null,
|
|
25
|
-
[GL.VERTEX_ARRAY_BINDING]: null,
|
|
26
|
-
[GL.ARRAY_BUFFER_BINDING]: null,
|
|
27
|
-
[GL.FRONT_FACE]: GL.CCW,
|
|
28
|
-
[GL.GENERATE_MIPMAP_HINT]: GL.DONT_CARE,
|
|
29
|
-
[GL.LINE_WIDTH]: 1,
|
|
30
|
-
[GL.POLYGON_OFFSET_FILL]: false,
|
|
31
|
-
[GL.POLYGON_OFFSET_FACTOR]: 0,
|
|
32
|
-
[GL.POLYGON_OFFSET_UNITS]: 0,
|
|
33
|
-
[GL.SAMPLE_ALPHA_TO_COVERAGE]: false,
|
|
34
|
-
[GL.SAMPLE_COVERAGE]: false,
|
|
35
|
-
[GL.SAMPLE_COVERAGE_VALUE]: 1.0,
|
|
36
|
-
[GL.SAMPLE_COVERAGE_INVERT]: false,
|
|
37
|
-
[GL.SCISSOR_TEST]: false,
|
|
38
|
-
[GL.SCISSOR_BOX]: new Int32Array([0, 0, 1024, 1024]),
|
|
39
|
-
[GL.STENCIL_TEST]: false,
|
|
40
|
-
[GL.STENCIL_CLEAR_VALUE]: 0,
|
|
41
|
-
[GL.STENCIL_WRITEMASK]: 0xffffffff,
|
|
42
|
-
[GL.STENCIL_BACK_WRITEMASK]: 0xffffffff,
|
|
43
|
-
[GL.STENCIL_FUNC]: GL.ALWAYS,
|
|
44
|
-
[GL.STENCIL_REF]: 0,
|
|
45
|
-
[GL.STENCIL_VALUE_MASK]: 0xffffffff,
|
|
46
|
-
[GL.STENCIL_BACK_FUNC]: GL.ALWAYS,
|
|
47
|
-
[GL.STENCIL_BACK_REF]: 0,
|
|
48
|
-
[GL.STENCIL_BACK_VALUE_MASK]: 0xffffffff,
|
|
49
|
-
[GL.STENCIL_FAIL]: GL.KEEP,
|
|
50
|
-
[GL.STENCIL_PASS_DEPTH_FAIL]: GL.KEEP,
|
|
51
|
-
[GL.STENCIL_PASS_DEPTH_PASS]: GL.KEEP,
|
|
52
|
-
[GL.STENCIL_BACK_FAIL]: GL.KEEP,
|
|
53
|
-
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]: GL.KEEP,
|
|
54
|
-
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: GL.KEEP,
|
|
55
|
-
[GL.VIEWPORT]: [0, 0, 1024, 1024],
|
|
56
|
-
[GL.PACK_ALIGNMENT]: 4,
|
|
57
|
-
[GL.UNPACK_ALIGNMENT]: 4,
|
|
58
|
-
[GL.UNPACK_FLIP_Y_WEBGL]: false,
|
|
59
|
-
[GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,
|
|
60
|
-
[GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,
|
|
61
|
-
[GL.TRANSFORM_FEEDBACK_BINDING]: null,
|
|
62
|
-
[GL.COPY_READ_BUFFER_BINDING]: null,
|
|
63
|
-
[GL.COPY_WRITE_BUFFER_BINDING]: null,
|
|
64
|
-
[GL.PIXEL_PACK_BUFFER_BINDING]: null,
|
|
65
|
-
[GL.PIXEL_UNPACK_BUFFER_BINDING]: null,
|
|
66
|
-
[GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: GL.DONT_CARE,
|
|
67
|
-
[GL.READ_FRAMEBUFFER_BINDING]: null,
|
|
68
|
-
[GL.RASTERIZER_DISCARD]: false,
|
|
69
|
-
[GL.PACK_ROW_LENGTH]: 0,
|
|
70
|
-
[GL.PACK_SKIP_PIXELS]: 0,
|
|
71
|
-
[GL.PACK_SKIP_ROWS]: 0,
|
|
72
|
-
[GL.UNPACK_ROW_LENGTH]: 0,
|
|
73
|
-
[GL.UNPACK_IMAGE_HEIGHT]: 0,
|
|
74
|
-
[GL.UNPACK_SKIP_PIXELS]: 0,
|
|
75
|
-
[GL.UNPACK_SKIP_ROWS]: 0,
|
|
76
|
-
[GL.UNPACK_SKIP_IMAGES]: 0
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const enable = (gl, value, key) => value ? gl.enable(key) : gl.disable(key);
|
|
80
|
-
|
|
81
|
-
const hint = (gl, value, key) => gl.hint(key, value);
|
|
82
|
-
|
|
83
|
-
const pixelStorei = (gl, value, key) => gl.pixelStorei(key, value);
|
|
84
|
-
|
|
85
|
-
const bindFramebuffer = (gl, value, key) => {
|
|
86
|
-
let target;
|
|
87
|
-
|
|
88
|
-
if (key === GL.FRAMEBUFFER_BINDING) {
|
|
89
|
-
target = isWebGL2(gl) ? GL.DRAW_FRAMEBUFFER : GL.FRAMEBUFFER;
|
|
90
|
-
} else {
|
|
91
|
-
target = GL.READ_FRAMEBUFFER;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return gl.bindFramebuffer(target, value);
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
const bindBuffer = (gl, value, key) => {
|
|
98
|
-
const target = {
|
|
99
|
-
[GL.ARRAY_BUFFER_BINDING]: [GL.ARRAY_BUFFER],
|
|
100
|
-
[GL.COPY_READ_BUFFER_BINDING]: [GL.COPY_READ_BUFFER],
|
|
101
|
-
[GL.COPY_WRITE_BUFFER_BINDING]: [GL.COPY_WRITE_BUFFER],
|
|
102
|
-
[GL.PIXEL_PACK_BUFFER_BINDING]: [GL.PIXEL_PACK_BUFFER],
|
|
103
|
-
[GL.PIXEL_UNPACK_BUFFER_BINDING]: [GL.PIXEL_UNPACK_BUFFER]
|
|
104
|
-
}[key];
|
|
105
|
-
gl.bindBuffer(target, value);
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
function isArray(array) {
|
|
109
|
-
return Array.isArray(array) || ArrayBuffer.isView(array);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export const GL_PARAMETER_SETTERS = {
|
|
113
|
-
[GL.BLEND]: enable,
|
|
114
|
-
[GL.BLEND_COLOR]: (gl, value) => gl.blendColor(...value),
|
|
115
|
-
[GL.BLEND_EQUATION_RGB]: 'blendEquation',
|
|
116
|
-
[GL.BLEND_EQUATION_ALPHA]: 'blendEquation',
|
|
117
|
-
[GL.BLEND_SRC_RGB]: 'blendFunc',
|
|
118
|
-
[GL.BLEND_DST_RGB]: 'blendFunc',
|
|
119
|
-
[GL.BLEND_SRC_ALPHA]: 'blendFunc',
|
|
120
|
-
[GL.BLEND_DST_ALPHA]: 'blendFunc',
|
|
121
|
-
[GL.COLOR_CLEAR_VALUE]: (gl, value) => gl.clearColor(...value),
|
|
122
|
-
[GL.COLOR_WRITEMASK]: (gl, value) => gl.colorMask(...value),
|
|
123
|
-
[GL.CULL_FACE]: enable,
|
|
124
|
-
[GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),
|
|
125
|
-
[GL.DEPTH_TEST]: enable,
|
|
126
|
-
[GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),
|
|
127
|
-
[GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),
|
|
128
|
-
[GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),
|
|
129
|
-
[GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),
|
|
130
|
-
[GL.DITHER]: enable,
|
|
131
|
-
[GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,
|
|
132
|
-
[GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),
|
|
133
|
-
[GL.RENDERBUFFER_BINDING]: (gl, value) => gl.bindRenderbuffer(GL.RENDERBUFFER, value),
|
|
134
|
-
[GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) => {
|
|
135
|
-
var _gl$bindTransformFeed;
|
|
136
|
-
|
|
137
|
-
return (_gl$bindTransformFeed = gl.bindTransformFeedback) === null || _gl$bindTransformFeed === void 0 ? void 0 : _gl$bindTransformFeed.call(gl, GL.TRANSFORM_FEEDBACK, value);
|
|
138
|
-
},
|
|
139
|
-
[GL.VERTEX_ARRAY_BINDING]: (gl, value) => gl.bindVertexArray(value),
|
|
140
|
-
[GL.FRAMEBUFFER_BINDING]: bindFramebuffer,
|
|
141
|
-
[GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,
|
|
142
|
-
[GL.ARRAY_BUFFER_BINDING]: bindBuffer,
|
|
143
|
-
[GL.COPY_READ_BUFFER_BINDING]: bindBuffer,
|
|
144
|
-
[GL.COPY_WRITE_BUFFER_BINDING]: bindBuffer,
|
|
145
|
-
[GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,
|
|
146
|
-
[GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,
|
|
147
|
-
[GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),
|
|
148
|
-
[GL.GENERATE_MIPMAP_HINT]: hint,
|
|
149
|
-
[GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),
|
|
150
|
-
[GL.POLYGON_OFFSET_FILL]: enable,
|
|
151
|
-
[GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',
|
|
152
|
-
[GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',
|
|
153
|
-
[GL.RASTERIZER_DISCARD]: enable,
|
|
154
|
-
[GL.SAMPLE_ALPHA_TO_COVERAGE]: enable,
|
|
155
|
-
[GL.SAMPLE_COVERAGE]: enable,
|
|
156
|
-
[GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',
|
|
157
|
-
[GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',
|
|
158
|
-
[GL.SCISSOR_TEST]: enable,
|
|
159
|
-
[GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),
|
|
160
|
-
[GL.STENCIL_TEST]: enable,
|
|
161
|
-
[GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),
|
|
162
|
-
[GL.STENCIL_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.FRONT, value),
|
|
163
|
-
[GL.STENCIL_BACK_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.BACK, value),
|
|
164
|
-
[GL.STENCIL_FUNC]: 'stencilFuncFront',
|
|
165
|
-
[GL.STENCIL_REF]: 'stencilFuncFront',
|
|
166
|
-
[GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',
|
|
167
|
-
[GL.STENCIL_BACK_FUNC]: 'stencilFuncBack',
|
|
168
|
-
[GL.STENCIL_BACK_REF]: 'stencilFuncBack',
|
|
169
|
-
[GL.STENCIL_BACK_VALUE_MASK]: 'stencilFuncBack',
|
|
170
|
-
[GL.STENCIL_FAIL]: 'stencilOpFront',
|
|
171
|
-
[GL.STENCIL_PASS_DEPTH_FAIL]: 'stencilOpFront',
|
|
172
|
-
[GL.STENCIL_PASS_DEPTH_PASS]: 'stencilOpFront',
|
|
173
|
-
[GL.STENCIL_BACK_FAIL]: 'stencilOpBack',
|
|
174
|
-
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',
|
|
175
|
-
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',
|
|
176
|
-
[GL.VIEWPORT]: (gl, value) => gl.viewport(...value),
|
|
177
|
-
[GL.PACK_ALIGNMENT]: pixelStorei,
|
|
178
|
-
[GL.UNPACK_ALIGNMENT]: pixelStorei,
|
|
179
|
-
[GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,
|
|
180
|
-
[GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,
|
|
181
|
-
[GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,
|
|
182
|
-
[GL.PACK_ROW_LENGTH]: pixelStorei,
|
|
183
|
-
[GL.PACK_SKIP_PIXELS]: pixelStorei,
|
|
184
|
-
[GL.PACK_SKIP_ROWS]: pixelStorei,
|
|
185
|
-
[GL.UNPACK_ROW_LENGTH]: pixelStorei,
|
|
186
|
-
[GL.UNPACK_IMAGE_HEIGHT]: pixelStorei,
|
|
187
|
-
[GL.UNPACK_SKIP_PIXELS]: pixelStorei,
|
|
188
|
-
[GL.UNPACK_SKIP_ROWS]: pixelStorei,
|
|
189
|
-
[GL.UNPACK_SKIP_IMAGES]: pixelStorei,
|
|
190
|
-
framebuffer: (gl, framebuffer) => {
|
|
191
|
-
const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
|
|
192
|
-
return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
|
|
193
|
-
},
|
|
194
|
-
blend: (gl, value) => value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND),
|
|
195
|
-
blendColor: (gl, value) => gl.blendColor(...value),
|
|
196
|
-
blendEquation: (gl, args) => {
|
|
197
|
-
args = isArray(args) ? args : [args, args];
|
|
198
|
-
gl.blendEquationSeparate(...args);
|
|
199
|
-
},
|
|
200
|
-
blendFunc: (gl, args) => {
|
|
201
|
-
args = isArray(args) && args.length === 2 ? [...args, ...args] : args;
|
|
202
|
-
gl.blendFuncSeparate(...args);
|
|
203
|
-
},
|
|
204
|
-
clearColor: (gl, value) => gl.clearColor(...value),
|
|
205
|
-
clearDepth: (gl, value) => gl.clearDepth(value),
|
|
206
|
-
clearStencil: (gl, value) => gl.clearStencil(value),
|
|
207
|
-
colorMask: (gl, value) => gl.colorMask(...value),
|
|
208
|
-
cull: (gl, value) => value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE),
|
|
209
|
-
cullFace: (gl, value) => gl.cullFace(value),
|
|
210
|
-
depthTest: (gl, value) => value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST),
|
|
211
|
-
depthFunc: (gl, value) => gl.depthFunc(value),
|
|
212
|
-
depthMask: (gl, value) => gl.depthMask(value),
|
|
213
|
-
depthRange: (gl, value) => gl.depthRange(...value),
|
|
214
|
-
dither: (gl, value) => value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER),
|
|
215
|
-
derivativeHint: (gl, value) => {
|
|
216
|
-
gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);
|
|
217
|
-
},
|
|
218
|
-
frontFace: (gl, value) => gl.frontFace(value),
|
|
219
|
-
mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
|
|
220
|
-
lineWidth: (gl, value) => gl.lineWidth(value),
|
|
221
|
-
polygonOffsetFill: (gl, value) => value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),
|
|
222
|
-
polygonOffset: (gl, value) => gl.polygonOffset(...value),
|
|
223
|
-
sampleCoverage: (gl, value) => gl.sampleCoverage(...value),
|
|
224
|
-
scissorTest: (gl, value) => value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST),
|
|
225
|
-
scissor: (gl, value) => gl.scissor(...value),
|
|
226
|
-
stencilTest: (gl, value) => value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST),
|
|
227
|
-
stencilMask: (gl, value) => {
|
|
228
|
-
value = isArray(value) ? value : [value, value];
|
|
229
|
-
const [mask, backMask] = value;
|
|
230
|
-
gl.stencilMaskSeparate(GL.FRONT, mask);
|
|
231
|
-
gl.stencilMaskSeparate(GL.BACK, backMask);
|
|
232
|
-
},
|
|
233
|
-
stencilFunc: (gl, args) => {
|
|
234
|
-
args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
|
|
235
|
-
const [func, ref, mask, backFunc, backRef, backMask] = args;
|
|
236
|
-
gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);
|
|
237
|
-
gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);
|
|
238
|
-
},
|
|
239
|
-
stencilOp: (gl, args) => {
|
|
240
|
-
args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
|
|
241
|
-
const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;
|
|
242
|
-
gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);
|
|
243
|
-
gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);
|
|
244
|
-
},
|
|
245
|
-
viewport: (gl, value) => gl.viewport(...value)
|
|
246
|
-
};
|
|
247
|
-
|
|
248
|
-
function getValue(glEnum, values, cache) {
|
|
249
|
-
return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
export const GL_COMPOSITE_PARAMETER_SETTERS = {
|
|
253
|
-
blendEquation: (gl, values, cache) => gl.blendEquationSeparate(getValue(GL.BLEND_EQUATION_RGB, values, cache), getValue(GL.BLEND_EQUATION_ALPHA, values, cache)),
|
|
254
|
-
blendFunc: (gl, values, cache) => gl.blendFuncSeparate(getValue(GL.BLEND_SRC_RGB, values, cache), getValue(GL.BLEND_DST_RGB, values, cache), getValue(GL.BLEND_SRC_ALPHA, values, cache), getValue(GL.BLEND_DST_ALPHA, values, cache)),
|
|
255
|
-
polygonOffset: (gl, values, cache) => gl.polygonOffset(getValue(GL.POLYGON_OFFSET_FACTOR, values, cache), getValue(GL.POLYGON_OFFSET_UNITS, values, cache)),
|
|
256
|
-
sampleCoverage: (gl, values, cache) => gl.sampleCoverage(getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache), getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)),
|
|
257
|
-
stencilFuncFront: (gl, values, cache) => gl.stencilFuncSeparate(GL.FRONT, getValue(GL.STENCIL_FUNC, values, cache), getValue(GL.STENCIL_REF, values, cache), getValue(GL.STENCIL_VALUE_MASK, values, cache)),
|
|
258
|
-
stencilFuncBack: (gl, values, cache) => gl.stencilFuncSeparate(GL.BACK, getValue(GL.STENCIL_BACK_FUNC, values, cache), getValue(GL.STENCIL_BACK_REF, values, cache), getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)),
|
|
259
|
-
stencilOpFront: (gl, values, cache) => gl.stencilOpSeparate(GL.FRONT, getValue(GL.STENCIL_FAIL, values, cache), getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache), getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)),
|
|
260
|
-
stencilOpBack: (gl, values, cache) => gl.stencilOpSeparate(GL.BACK, getValue(GL.STENCIL_BACK_FAIL, values, cache), getValue(GL.STENCIL_BACK_PASS_DEPTH_FAIL, values, cache), getValue(GL.STENCIL_BACK_PASS_DEPTH_PASS, values, cache))
|
|
261
|
-
};
|
|
262
|
-
export const GL_HOOKED_SETTERS = {
|
|
263
|
-
enable: (update, capability) => update({
|
|
264
|
-
[capability]: true
|
|
265
|
-
}),
|
|
266
|
-
disable: (update, capability) => update({
|
|
267
|
-
[capability]: false
|
|
268
|
-
}),
|
|
269
|
-
pixelStorei: (update, pname, value) => update({
|
|
270
|
-
[pname]: value
|
|
271
|
-
}),
|
|
272
|
-
hint: (update, pname, hint) => update({
|
|
273
|
-
[pname]: hint
|
|
274
|
-
}),
|
|
275
|
-
useProgram: (update, value) => update({
|
|
276
|
-
[GL.CURRENT_PROGRAM]: value
|
|
277
|
-
}),
|
|
278
|
-
bindRenderbuffer: (update, target, value) => update({
|
|
279
|
-
[GL.RENDERBUFFER_BINDING]: value
|
|
280
|
-
}),
|
|
281
|
-
bindTransformFeedback: (update, target, value) => update({
|
|
282
|
-
[GL.TRANSFORM_FEEDBACK_BINDING]: value
|
|
283
|
-
}),
|
|
284
|
-
bindVertexArray: (update, value) => update({
|
|
285
|
-
[GL.VERTEX_ARRAY_BINDING]: value
|
|
286
|
-
}),
|
|
287
|
-
bindFramebuffer: (update, target, framebuffer) => {
|
|
288
|
-
switch (target) {
|
|
289
|
-
case GL.FRAMEBUFFER:
|
|
290
|
-
return update({
|
|
291
|
-
[GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer,
|
|
292
|
-
[GL.READ_FRAMEBUFFER_BINDING]: framebuffer
|
|
293
|
-
});
|
|
294
|
-
|
|
295
|
-
case GL.DRAW_FRAMEBUFFER:
|
|
296
|
-
return update({
|
|
297
|
-
[GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer
|
|
298
|
-
});
|
|
299
|
-
|
|
300
|
-
case GL.READ_FRAMEBUFFER:
|
|
301
|
-
return update({
|
|
302
|
-
[GL.READ_FRAMEBUFFER_BINDING]: framebuffer
|
|
303
|
-
});
|
|
304
|
-
|
|
305
|
-
default:
|
|
306
|
-
return null;
|
|
307
|
-
}
|
|
308
|
-
},
|
|
309
|
-
bindBuffer: (update, target, buffer) => {
|
|
310
|
-
const pname = {
|
|
311
|
-
[GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],
|
|
312
|
-
[GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],
|
|
313
|
-
[GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],
|
|
314
|
-
[GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],
|
|
315
|
-
[GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]
|
|
316
|
-
}[target];
|
|
317
|
-
|
|
318
|
-
if (pname) {
|
|
319
|
-
return update({
|
|
320
|
-
[pname]: buffer
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
return {
|
|
325
|
-
valueChanged: true
|
|
326
|
-
};
|
|
327
|
-
},
|
|
328
|
-
blendColor: (update, r, g, b, a) => update({
|
|
329
|
-
[GL.BLEND_COLOR]: new Float32Array([r, g, b, a])
|
|
330
|
-
}),
|
|
331
|
-
blendEquation: (update, mode) => update({
|
|
332
|
-
[GL.BLEND_EQUATION_RGB]: mode,
|
|
333
|
-
[GL.BLEND_EQUATION_ALPHA]: mode
|
|
334
|
-
}),
|
|
335
|
-
blendEquationSeparate: (update, modeRGB, modeAlpha) => update({
|
|
336
|
-
[GL.BLEND_EQUATION_RGB]: modeRGB,
|
|
337
|
-
[GL.BLEND_EQUATION_ALPHA]: modeAlpha
|
|
338
|
-
}),
|
|
339
|
-
blendFunc: (update, src, dst) => update({
|
|
340
|
-
[GL.BLEND_SRC_RGB]: src,
|
|
341
|
-
[GL.BLEND_DST_RGB]: dst,
|
|
342
|
-
[GL.BLEND_SRC_ALPHA]: src,
|
|
343
|
-
[GL.BLEND_DST_ALPHA]: dst
|
|
344
|
-
}),
|
|
345
|
-
blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) => update({
|
|
346
|
-
[GL.BLEND_SRC_RGB]: srcRGB,
|
|
347
|
-
[GL.BLEND_DST_RGB]: dstRGB,
|
|
348
|
-
[GL.BLEND_SRC_ALPHA]: srcAlpha,
|
|
349
|
-
[GL.BLEND_DST_ALPHA]: dstAlpha
|
|
350
|
-
}),
|
|
351
|
-
clearColor: (update, r, g, b, a) => update({
|
|
352
|
-
[GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])
|
|
353
|
-
}),
|
|
354
|
-
clearDepth: (update, depth) => update({
|
|
355
|
-
[GL.DEPTH_CLEAR_VALUE]: depth
|
|
356
|
-
}),
|
|
357
|
-
clearStencil: (update, s) => update({
|
|
358
|
-
[GL.STENCIL_CLEAR_VALUE]: s
|
|
359
|
-
}),
|
|
360
|
-
colorMask: (update, r, g, b, a) => update({
|
|
361
|
-
[GL.COLOR_WRITEMASK]: [r, g, b, a]
|
|
362
|
-
}),
|
|
363
|
-
cullFace: (update, mode) => update({
|
|
364
|
-
[GL.CULL_FACE_MODE]: mode
|
|
365
|
-
}),
|
|
366
|
-
depthFunc: (update, func) => update({
|
|
367
|
-
[GL.DEPTH_FUNC]: func
|
|
368
|
-
}),
|
|
369
|
-
depthRange: (update, zNear, zFar) => update({
|
|
370
|
-
[GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])
|
|
371
|
-
}),
|
|
372
|
-
depthMask: (update, mask) => update({
|
|
373
|
-
[GL.DEPTH_WRITEMASK]: mask
|
|
374
|
-
}),
|
|
375
|
-
frontFace: (update, face) => update({
|
|
376
|
-
[GL.FRONT_FACE]: face
|
|
377
|
-
}),
|
|
378
|
-
lineWidth: (update, width) => update({
|
|
379
|
-
[GL.LINE_WIDTH]: width
|
|
380
|
-
}),
|
|
381
|
-
polygonOffset: (update, factor, units) => update({
|
|
382
|
-
[GL.POLYGON_OFFSET_FACTOR]: factor,
|
|
383
|
-
[GL.POLYGON_OFFSET_UNITS]: units
|
|
384
|
-
}),
|
|
385
|
-
sampleCoverage: (update, value, invert) => update({
|
|
386
|
-
[GL.SAMPLE_COVERAGE_VALUE]: value,
|
|
387
|
-
[GL.SAMPLE_COVERAGE_INVERT]: invert
|
|
388
|
-
}),
|
|
389
|
-
scissor: (update, x, y, width, height) => update({
|
|
390
|
-
[GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])
|
|
391
|
-
}),
|
|
392
|
-
stencilMask: (update, mask) => update({
|
|
393
|
-
[GL.STENCIL_WRITEMASK]: mask,
|
|
394
|
-
[GL.STENCIL_BACK_WRITEMASK]: mask
|
|
395
|
-
}),
|
|
396
|
-
stencilMaskSeparate: (update, face, mask) => update({
|
|
397
|
-
[face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask
|
|
398
|
-
}),
|
|
399
|
-
stencilFunc: (update, func, ref, mask) => update({
|
|
400
|
-
[GL.STENCIL_FUNC]: func,
|
|
401
|
-
[GL.STENCIL_REF]: ref,
|
|
402
|
-
[GL.STENCIL_VALUE_MASK]: mask,
|
|
403
|
-
[GL.STENCIL_BACK_FUNC]: func,
|
|
404
|
-
[GL.STENCIL_BACK_REF]: ref,
|
|
405
|
-
[GL.STENCIL_BACK_VALUE_MASK]: mask
|
|
406
|
-
}),
|
|
407
|
-
stencilFuncSeparate: (update, face, func, ref, mask) => update({
|
|
408
|
-
[face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,
|
|
409
|
-
[face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,
|
|
410
|
-
[face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask
|
|
411
|
-
}),
|
|
412
|
-
stencilOp: (update, fail, zfail, zpass) => update({
|
|
413
|
-
[GL.STENCIL_FAIL]: fail,
|
|
414
|
-
[GL.STENCIL_PASS_DEPTH_FAIL]: zfail,
|
|
415
|
-
[GL.STENCIL_PASS_DEPTH_PASS]: zpass,
|
|
416
|
-
[GL.STENCIL_BACK_FAIL]: fail,
|
|
417
|
-
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
|
|
418
|
-
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
|
|
419
|
-
}),
|
|
420
|
-
stencilOpSeparate: (update, face, fail, zfail, zpass) => update({
|
|
421
|
-
[face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,
|
|
422
|
-
[face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
|
|
423
|
-
[face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
|
|
424
|
-
}),
|
|
425
|
-
viewport: (update, x, y, width, height) => update({
|
|
426
|
-
[GL.VIEWPORT]: [x, y, width, height]
|
|
427
|
-
})
|
|
428
|
-
};
|
|
429
|
-
|
|
430
|
-
const isEnabled = (gl, key) => gl.isEnabled(key);
|
|
431
|
-
|
|
432
|
-
export const GL_PARAMETER_GETTERS = {
|
|
433
|
-
[GL.BLEND]: isEnabled,
|
|
434
|
-
[GL.CULL_FACE]: isEnabled,
|
|
435
|
-
[GL.DEPTH_TEST]: isEnabled,
|
|
436
|
-
[GL.DITHER]: isEnabled,
|
|
437
|
-
[GL.POLYGON_OFFSET_FILL]: isEnabled,
|
|
438
|
-
[GL.SAMPLE_ALPHA_TO_COVERAGE]: isEnabled,
|
|
439
|
-
[GL.SAMPLE_COVERAGE]: isEnabled,
|
|
440
|
-
[GL.SCISSOR_TEST]: isEnabled,
|
|
441
|
-
[GL.STENCIL_TEST]: isEnabled,
|
|
442
|
-
[GL.RASTERIZER_DISCARD]: isEnabled
|
|
443
|
-
};
|
|
444
|
-
export const NON_CACHE_PARAMETERS = new Set([GL.ACTIVE_TEXTURE, GL.TRANSFORM_FEEDBACK_ACTIVE, GL.TRANSFORM_FEEDBACK_PAUSED, GL.TRANSFORM_FEEDBACK_BUFFER_BINDING, GL.UNIFORM_BUFFER_BINDING, GL.ELEMENT_ARRAY_BUFFER_BINDING, GL.IMPLEMENTATION_COLOR_READ_FORMAT, GL.IMPLEMENTATION_COLOR_READ_TYPE, GL.READ_BUFFER, GL.DRAW_BUFFER0, GL.DRAW_BUFFER1, GL.DRAW_BUFFER2, GL.DRAW_BUFFER3, GL.DRAW_BUFFER4, GL.DRAW_BUFFER5, GL.DRAW_BUFFER6, GL.DRAW_BUFFER7, GL.DRAW_BUFFER8, GL.DRAW_BUFFER9, GL.DRAW_BUFFER10, GL.DRAW_BUFFER11, GL.DRAW_BUFFER12, GL.DRAW_BUFFER13, GL.DRAW_BUFFER14, GL.DRAW_BUFFER15, GL.SAMPLER_BINDING, GL.TEXTURE_BINDING_2D, GL.TEXTURE_BINDING_2D_ARRAY, GL.TEXTURE_BINDING_3D, GL.TEXTURE_BINDING_CUBE_MAP]);
|
|
445
|
-
//# sourceMappingURL=webgl-parameter-tables.js.map
|