@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
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luma.gl/webgl",
|
|
3
|
-
"version": "9.0.0-alpha.
|
|
3
|
+
"version": "9.0.0-alpha.50",
|
|
4
4
|
"description": "WebGL2 adapter for the luma.gl API",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"license": "MIT",
|
|
6
7
|
"publishConfig": {
|
|
7
8
|
"access": "public"
|
|
@@ -16,12 +17,20 @@
|
|
|
16
17
|
"animation",
|
|
17
18
|
"3d"
|
|
18
19
|
],
|
|
19
|
-
"types": "
|
|
20
|
-
"main": "dist/index.
|
|
20
|
+
"types": "dist/index.d.ts",
|
|
21
|
+
"main": "dist/index.cjs",
|
|
21
22
|
"module": "dist/index.js",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"import": "./dist/index.js",
|
|
26
|
+
"require": "./dist/index.cjs",
|
|
27
|
+
"types": "./dist/index.d.ts"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
22
30
|
"files": [
|
|
23
31
|
"src",
|
|
24
32
|
"dist",
|
|
33
|
+
"dist.min.js",
|
|
25
34
|
"README.md"
|
|
26
35
|
],
|
|
27
36
|
"sideEffects": false,
|
|
@@ -30,14 +39,17 @@
|
|
|
30
39
|
"gl/wrap": false
|
|
31
40
|
},
|
|
32
41
|
"scripts": {
|
|
33
|
-
"
|
|
34
|
-
"build
|
|
42
|
+
"build-bundle": "ocular-bundle ./src/index.ts",
|
|
43
|
+
"pre-build": "npm run build-bundle && npm run build-bundle -- --env=dev"
|
|
35
44
|
},
|
|
36
45
|
"dependencies": {
|
|
37
46
|
"@babel/runtime": "^7.0.0",
|
|
38
|
-
"@luma.gl/
|
|
39
|
-
"@luma.gl/
|
|
40
|
-
"@probe.gl/env": "^
|
|
47
|
+
"@luma.gl/constants": "9.0.0-alpha.50",
|
|
48
|
+
"@luma.gl/core": "9.0.0-alpha.50",
|
|
49
|
+
"@probe.gl/env": "^4.0.2"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@luma.gl/test-utils": "9.0.0-alpha.50"
|
|
41
53
|
},
|
|
42
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "83899806fcfab67f97cc8b308f81e4844a05ca05"
|
|
43
55
|
}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
Device,
|
|
6
|
+
Parameters,
|
|
7
|
+
CompareFunction,
|
|
8
|
+
StencilOperation,
|
|
9
|
+
log,
|
|
10
|
+
isObjectEmpty,
|
|
11
|
+
BlendOperation,
|
|
12
|
+
BlendFactor
|
|
13
|
+
} from '@luma.gl/core';
|
|
14
|
+
import {GL} from '@luma.gl/constants';
|
|
15
|
+
import type {GLBlendEquation, GLBlendFunction, GLParameters} from '@luma.gl/constants';
|
|
4
16
|
import {pushContextState, popContextState} from '../../context/state-tracker/track-context-state';
|
|
5
|
-
import {
|
|
6
|
-
import WebGLDevice from '../webgl-device';
|
|
17
|
+
import {setGLParameters} from '../../context/parameters/unified-parameter-api';
|
|
18
|
+
import {WebGLDevice} from '../webgl-device';
|
|
19
|
+
|
|
20
|
+
/* eslint-disable no-unused-expressions */ // For expression ? gl.enable() : gl.disable()
|
|
7
21
|
|
|
8
22
|
/**
|
|
9
23
|
* Execute a function with a set of temporary WebGL parameter overrides
|
|
@@ -13,7 +27,12 @@ import WebGLDevice from '../webgl-device';
|
|
|
13
27
|
* - Restores parameters
|
|
14
28
|
* - Returns the return value of the supplied function
|
|
15
29
|
*/
|
|
16
|
-
export function
|
|
30
|
+
export function withDeviceAndGLParameters<T = unknown>(
|
|
31
|
+
device: Device,
|
|
32
|
+
parameters: Parameters,
|
|
33
|
+
glParameters: GLParameters,
|
|
34
|
+
func: (device?: Device) => T
|
|
35
|
+
): T {
|
|
17
36
|
if (isObjectEmpty(parameters)) {
|
|
18
37
|
// Avoid setting state if no parameters provided. Just call and return
|
|
19
38
|
return func(device);
|
|
@@ -23,8 +42,8 @@ export function withDeviceParameters<T = unknown>(device: Device, parameters: Pa
|
|
|
23
42
|
// @ts-expect-error
|
|
24
43
|
pushContextState(device.gl);
|
|
25
44
|
try {
|
|
26
|
-
setParameters(device, parameters);
|
|
27
45
|
setDeviceParameters(device, parameters);
|
|
46
|
+
setGLParameters(device, glParameters);
|
|
28
47
|
return func(device);
|
|
29
48
|
} finally {
|
|
30
49
|
// @ts-expect-error
|
|
@@ -32,11 +51,71 @@ export function withDeviceParameters<T = unknown>(device: Device, parameters: Pa
|
|
|
32
51
|
}
|
|
33
52
|
}
|
|
34
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Execute a function with a set of temporary WebGL parameter overrides
|
|
56
|
+
* - Saves current "global" WebGL context settings
|
|
57
|
+
* - Sets the supplies WebGL context parameters,
|
|
58
|
+
* - Executes supplied function
|
|
59
|
+
* - Restores parameters
|
|
60
|
+
* - Returns the return value of the supplied function
|
|
61
|
+
* @deprecated use withDeviceParameters instead
|
|
62
|
+
*/
|
|
63
|
+
export function withGLParameters<T = unknown>(
|
|
64
|
+
device: Device,
|
|
65
|
+
parameters: GLParameters,
|
|
66
|
+
func: (device?: Device) => T
|
|
67
|
+
): T {
|
|
68
|
+
if (isObjectEmpty(parameters)) {
|
|
69
|
+
// Avoid setting state if no parameters provided. Just call and return
|
|
70
|
+
return func(device);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Wrap in a try-catch to ensure that parameters are restored on exceptions
|
|
74
|
+
// @ts-expect-error
|
|
75
|
+
pushContextState(device.gl);
|
|
76
|
+
try {
|
|
77
|
+
setGLParameters(device, parameters);
|
|
78
|
+
return func(device);
|
|
79
|
+
} finally {
|
|
80
|
+
// @ts-expect-error
|
|
81
|
+
popContextState(device.gl);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Execute a function with a set of temporary WebGL parameter overrides
|
|
87
|
+
* - Saves current "global" WebGL context settings
|
|
88
|
+
* - Sets the supplies WebGL context parameters,
|
|
89
|
+
* - Executes supplied function
|
|
90
|
+
* - Restores parameters
|
|
91
|
+
* - Returns the return value of the supplied function
|
|
92
|
+
*/
|
|
93
|
+
export function withDeviceParameters<T = unknown>(
|
|
94
|
+
device: Device,
|
|
95
|
+
parameters: Parameters,
|
|
96
|
+
func: (device?: Device) => T
|
|
97
|
+
): T {
|
|
98
|
+
if (isObjectEmpty(parameters)) {
|
|
99
|
+
// Avoid setting state if no parameters provided. Just call and return
|
|
100
|
+
return func(device);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Wrap in a try-catch to ensure that parameters are restored on exceptions
|
|
104
|
+
// @ts-expect-error
|
|
105
|
+
pushContextState(device.gl);
|
|
106
|
+
try {
|
|
107
|
+
setDeviceParameters(device, parameters);
|
|
108
|
+
return func(device);
|
|
109
|
+
} finally {
|
|
110
|
+
// @ts-expect-error
|
|
111
|
+
popContextState(device.gl);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
35
114
|
|
|
36
115
|
/** Set WebGPU Style Parameters */
|
|
37
116
|
export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
38
117
|
const webglDevice = WebGLDevice.attach(device);
|
|
39
|
-
const {gl
|
|
118
|
+
const {gl} = webglDevice;
|
|
40
119
|
|
|
41
120
|
// RASTERIZATION SETTINGS
|
|
42
121
|
if (parameters.cullMode) {
|
|
@@ -56,10 +135,12 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
|
56
135
|
}
|
|
57
136
|
|
|
58
137
|
if (parameters.frontFace) {
|
|
59
|
-
gl.frontFace(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
138
|
+
gl.frontFace(
|
|
139
|
+
map('frontFace', parameters.frontFace, {
|
|
140
|
+
ccw: GL.CCW,
|
|
141
|
+
cw: GL.CW
|
|
142
|
+
})
|
|
143
|
+
);
|
|
63
144
|
}
|
|
64
145
|
|
|
65
146
|
if (parameters.depthBias !== undefined) {
|
|
@@ -76,7 +157,7 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
|
76
157
|
gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
|
|
77
158
|
}
|
|
78
159
|
|
|
79
|
-
|
|
160
|
+
if (parameters.depthCompare) {
|
|
80
161
|
parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);
|
|
81
162
|
gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
|
|
82
163
|
}
|
|
@@ -96,15 +177,24 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
|
96
177
|
const mask = parameters.stencilReadMask || 0xffffffff;
|
|
97
178
|
const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);
|
|
98
179
|
// TODO - ensure back doesn't overwrite
|
|
99
|
-
parameters.stencilCompare !== 'always'
|
|
180
|
+
parameters.stencilCompare !== 'always'
|
|
181
|
+
? gl.enable(GL.STENCIL_TEST)
|
|
182
|
+
: gl.disable(GL.STENCIL_TEST);
|
|
100
183
|
gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);
|
|
101
184
|
gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);
|
|
102
185
|
}
|
|
103
186
|
|
|
104
|
-
if (
|
|
187
|
+
if (
|
|
188
|
+
parameters.stencilPassOperation &&
|
|
189
|
+
parameters.stencilFailOperation &&
|
|
190
|
+
parameters.stencilDepthFailOperation
|
|
191
|
+
) {
|
|
105
192
|
const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);
|
|
106
193
|
const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);
|
|
107
|
-
const dpfail = convertStencilOperation(
|
|
194
|
+
const dpfail = convertStencilOperation(
|
|
195
|
+
'stencilDepthFailOperation',
|
|
196
|
+
parameters.stencilDepthFailOperation
|
|
197
|
+
);
|
|
108
198
|
gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);
|
|
109
199
|
gl.stencilOpSeparate(GL.BACK, sfail, dpfail, dppass);
|
|
110
200
|
}
|
|
@@ -119,21 +209,19 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
|
119
209
|
|
|
120
210
|
// COLOR STATE
|
|
121
211
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
// const blend = parameters.blend;
|
|
212
|
+
if (parameters.blendColorOperation || parameters.blendAlphaOperation) {
|
|
213
|
+
gl.enable(GL.BLEND);
|
|
126
214
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
215
|
+
const colorEquation = convertBlendOperationToEquation('blendColorOperation', parameters.blendColorOperation || 'add');
|
|
216
|
+
const alphaEquation = convertBlendOperationToEquation('blendAlphaOperation', parameters.blendAlphaOperation || 'add');
|
|
217
|
+
gl.blendEquationSeparate(colorEquation, alphaEquation);
|
|
130
218
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
219
|
+
const colorSrcFactor = convertBlendFactorToFunction('blendColorSrcFactor', parameters.blendColorSrcFactor || 'one');
|
|
220
|
+
const colorDstFactor = convertBlendFactorToFunction('blendColorDstFactor', parameters.blendColorDstFactor || 'zero');
|
|
221
|
+
const alphaSrcFactor = convertBlendFactorToFunction('blendAlphaSrcFactor', parameters.blendAlphaSrcFactor || 'one');
|
|
222
|
+
const alphaDstFactor = convertBlendFactorToFunction('blendAlphaDstFactor', parameters.blendAlphaDstFactor || 'zero');
|
|
223
|
+
gl.blendFuncSeparate(colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor);
|
|
224
|
+
}
|
|
137
225
|
}
|
|
138
226
|
|
|
139
227
|
/*
|
|
@@ -161,14 +249,14 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
|
161
249
|
|
|
162
250
|
export function convertCompareFunction(parameter: string, value: CompareFunction): GL {
|
|
163
251
|
return map(parameter, value, {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
252
|
+
never: GL.NEVER,
|
|
253
|
+
less: GL.LESS,
|
|
254
|
+
equal: GL.EQUAL,
|
|
167
255
|
'less-equal': GL.LEQUAL,
|
|
168
|
-
|
|
256
|
+
greater: GL.GREATER,
|
|
169
257
|
'not-equal': GL.NOTEQUAL,
|
|
170
258
|
'greater-equal': GL.GEQUAL,
|
|
171
|
-
|
|
259
|
+
always: GL.ALWAYS
|
|
172
260
|
});
|
|
173
261
|
}
|
|
174
262
|
|
|
@@ -187,10 +275,10 @@ export function convertToCompareFunction(parameter: string, value: GL): CompareF
|
|
|
187
275
|
|
|
188
276
|
function convertStencilOperation(parameter: string, value: StencilOperation): GL {
|
|
189
277
|
return map(parameter, value, {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
278
|
+
keep: GL.KEEP,
|
|
279
|
+
zero: GL.ZERO,
|
|
280
|
+
replace: GL.REPLACE,
|
|
281
|
+
invert: GL.INVERT,
|
|
194
282
|
'increment-clamp': GL.INCR,
|
|
195
283
|
'decrement-clamp': GL.DECR,
|
|
196
284
|
'increment-wrap': GL.INCR_WRAP,
|
|
@@ -198,15 +286,30 @@ function convertStencilOperation(parameter: string, value: StencilOperation): GL
|
|
|
198
286
|
});
|
|
199
287
|
}
|
|
200
288
|
|
|
201
|
-
function convertBlendOperationToEquation(parameter: string, value:
|
|
289
|
+
function convertBlendOperationToEquation(parameter: string, value: BlendOperation): GLBlendEquation {
|
|
202
290
|
return map(parameter, value, {
|
|
203
291
|
'add': GL.FUNC_ADD,
|
|
204
|
-
'
|
|
292
|
+
'subtract': GL.FUNC_SUBTRACT,
|
|
205
293
|
'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,
|
|
206
294
|
// When using a WebGL 2 context, the following values are available additionally:
|
|
207
295
|
'min': GL.MIN,
|
|
208
296
|
'max': GL.MAX
|
|
209
|
-
});
|
|
297
|
+
} as Record<BlendOperation, GLBlendEquation>);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
function convertBlendFactorToFunction(parameter: string, value: BlendFactor): GLBlendFunction {
|
|
301
|
+
return map(parameter, value, {
|
|
302
|
+
'one': GL.ONE,
|
|
303
|
+
'zero': GL.ZERO,
|
|
304
|
+
'src-color': GL.SRC_COLOR,
|
|
305
|
+
'one-minus-src-color': GL.ONE_MINUS_SRC_COLOR,
|
|
306
|
+
'dst-color': GL.DST_COLOR,
|
|
307
|
+
'one-minus-dst-color': GL.ONE_MINUS_DST_COLOR,
|
|
308
|
+
'src-alpha': GL.SRC_ALPHA,
|
|
309
|
+
'one-minus-src-alpha': GL.ONE_MINUS_SRC_ALPHA,
|
|
310
|
+
'dst-alpha': GL.DST_ALPHA,
|
|
311
|
+
'one-minus-dst-alpha': GL.ONE_MINUS_DST_ALPHA,
|
|
312
|
+
} as Record<BlendFactor, GLBlendFunction>);
|
|
210
313
|
}
|
|
211
314
|
|
|
212
315
|
function message(parameter: string, value: any): string {
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
1
4
|
// SAMPLER FILTERS
|
|
2
|
-
import {SamplerParameters} from '@luma.gl/
|
|
3
|
-
import GL from '@luma.gl/constants';
|
|
4
|
-
import {WebGLSamplerParameters} from '../../types/webgl';
|
|
5
|
+
import {SamplerParameters} from '@luma.gl/core';
|
|
6
|
+
import {GL, GLSamplerParameters} from '@luma.gl/constants';
|
|
5
7
|
import {convertCompareFunction, convertToCompareFunction} from './device-parameters';
|
|
6
8
|
|
|
9
|
+
/* eslint-disable consistent-return */
|
|
10
|
+
|
|
7
11
|
/**
|
|
8
12
|
* Convert WebGPU-style sampler props to WebGL
|
|
9
13
|
* @param props
|
|
10
14
|
* @returns
|
|
11
15
|
*/
|
|
12
|
-
export function convertSamplerParametersToWebGL(props: SamplerParameters):
|
|
16
|
+
export function convertSamplerParametersToWebGL(props: SamplerParameters): GLSamplerParameters {
|
|
13
17
|
const params: Record<number, number> = {};
|
|
14
18
|
if (props.addressModeU) {
|
|
15
19
|
params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);
|
|
@@ -25,7 +29,10 @@ export function convertSamplerParametersToWebGL(props: SamplerParameters): WebGL
|
|
|
25
29
|
}
|
|
26
30
|
if (props.minFilter || props.mipmapFilter) {
|
|
27
31
|
// TODO - arbitrary choice of linear?
|
|
28
|
-
params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(
|
|
32
|
+
params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(
|
|
33
|
+
props.minFilter || 'linear',
|
|
34
|
+
props.mipmapFilter
|
|
35
|
+
);
|
|
29
36
|
}
|
|
30
37
|
if (props.lodMinClamp !== undefined) {
|
|
31
38
|
params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;
|
|
@@ -33,9 +40,11 @@ export function convertSamplerParametersToWebGL(props: SamplerParameters): WebGL
|
|
|
33
40
|
if (props.lodMaxClamp !== undefined) {
|
|
34
41
|
params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;
|
|
35
42
|
}
|
|
36
|
-
if (props.
|
|
43
|
+
if (props.type === 'comparison-sampler') {
|
|
37
44
|
// Setting prop.compare turns this into a comparison sampler
|
|
38
45
|
params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;
|
|
46
|
+
}
|
|
47
|
+
if (props.compare) {
|
|
39
48
|
params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);
|
|
40
49
|
}
|
|
41
50
|
// Note depends on WebGL extension
|
|
@@ -48,30 +57,40 @@ export function convertSamplerParametersToWebGL(props: SamplerParameters): WebGL
|
|
|
48
57
|
/** Convert address more */
|
|
49
58
|
function convertAddressMode(addressMode: 'clamp-to-edge' | 'repeat' | 'mirror-repeat'): GL {
|
|
50
59
|
switch (addressMode) {
|
|
51
|
-
case 'clamp-to-edge':
|
|
52
|
-
|
|
53
|
-
case '
|
|
60
|
+
case 'clamp-to-edge':
|
|
61
|
+
return GL.CLAMP_TO_EDGE;
|
|
62
|
+
case 'repeat':
|
|
63
|
+
return GL.REPEAT;
|
|
64
|
+
case 'mirror-repeat':
|
|
65
|
+
return GL.MIRRORED_REPEAT;
|
|
54
66
|
}
|
|
55
67
|
}
|
|
56
68
|
|
|
57
69
|
function convertMaxFilterMode(maxFilter: 'nearest' | 'linear'): GL {
|
|
58
70
|
switch (maxFilter) {
|
|
59
|
-
case 'nearest':
|
|
60
|
-
|
|
71
|
+
case 'nearest':
|
|
72
|
+
return GL.NEAREST;
|
|
73
|
+
case 'linear':
|
|
74
|
+
return GL.LINEAR;
|
|
61
75
|
}
|
|
62
76
|
}
|
|
63
77
|
|
|
64
|
-
/**
|
|
65
|
-
* WebGPU has separate min filter and mipmap filter,
|
|
78
|
+
/**
|
|
79
|
+
* WebGPU has separate min filter and mipmap filter,
|
|
66
80
|
* WebGL is combined and effectively offers 6 options
|
|
67
81
|
*/
|
|
68
|
-
function convertMinFilterMode(
|
|
82
|
+
function convertMinFilterMode(
|
|
83
|
+
minFilter: 'nearest' | 'linear',
|
|
84
|
+
mipmapFilter?: 'nearest' | 'linear'
|
|
85
|
+
): GL {
|
|
69
86
|
if (!mipmapFilter) {
|
|
70
87
|
return convertMaxFilterMode(minFilter);
|
|
71
88
|
}
|
|
72
89
|
switch (minFilter) {
|
|
73
|
-
case 'nearest':
|
|
74
|
-
|
|
90
|
+
case 'nearest':
|
|
91
|
+
return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;
|
|
92
|
+
case 'linear':
|
|
93
|
+
return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;
|
|
75
94
|
}
|
|
76
95
|
}
|
|
77
96
|
|
|
@@ -82,7 +101,7 @@ function convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'n
|
|
|
82
101
|
* @param props
|
|
83
102
|
* @returns
|
|
84
103
|
*/
|
|
85
|
-
|
|
104
|
+
export function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters {
|
|
86
105
|
const props: SamplerParameters = {};
|
|
87
106
|
if (params[GL.TEXTURE_WRAP_S]) {
|
|
88
107
|
props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);
|
|
@@ -108,7 +127,13 @@ function convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'n
|
|
|
108
127
|
if (params[GL.TEXTURE_MAX_LOD]) {
|
|
109
128
|
props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];
|
|
110
129
|
}
|
|
111
|
-
if (params[GL.TEXTURE_COMPARE_MODE]
|
|
130
|
+
if (params[GL.TEXTURE_COMPARE_MODE]) {
|
|
131
|
+
props.type =
|
|
132
|
+
params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE
|
|
133
|
+
? 'comparison-sampler'
|
|
134
|
+
: 'color-sampler';
|
|
135
|
+
}
|
|
136
|
+
if (params[GL.TEXTURE_COMPARE_FUNC]) {
|
|
112
137
|
props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);
|
|
113
138
|
}
|
|
114
139
|
// NOTE depends on extension (very common)
|
|
@@ -119,50 +144,87 @@ function convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'n
|
|
|
119
144
|
}
|
|
120
145
|
|
|
121
146
|
/** Convert address more */
|
|
122
|
-
function convertToAddressMode(
|
|
147
|
+
function convertToAddressMode(
|
|
148
|
+
addressMode: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT
|
|
149
|
+
): 'clamp-to-edge' | 'repeat' | 'mirror-repeat' {
|
|
123
150
|
switch (addressMode) {
|
|
124
|
-
case GL.CLAMP_TO_EDGE:
|
|
125
|
-
|
|
126
|
-
case GL.
|
|
151
|
+
case GL.CLAMP_TO_EDGE:
|
|
152
|
+
return 'clamp-to-edge';
|
|
153
|
+
case GL.REPEAT:
|
|
154
|
+
return 'repeat';
|
|
155
|
+
case GL.MIRRORED_REPEAT:
|
|
156
|
+
return 'mirror-repeat';
|
|
157
|
+
default:
|
|
158
|
+
throw new Error('address');
|
|
127
159
|
}
|
|
128
160
|
}
|
|
129
161
|
|
|
130
|
-
function convertToMaxFilterMode(filterMode:
|
|
162
|
+
function convertToMaxFilterMode(filterMode: GL.NEAREST | GL.LINEAR): 'nearest' | 'linear' {
|
|
131
163
|
switch (filterMode) {
|
|
132
|
-
case GL.NEAREST:
|
|
133
|
-
|
|
164
|
+
case GL.NEAREST:
|
|
165
|
+
return 'nearest';
|
|
166
|
+
case GL.LINEAR:
|
|
167
|
+
return 'linear';
|
|
168
|
+
default:
|
|
169
|
+
throw new Error('maxfilter');
|
|
134
170
|
}
|
|
135
171
|
}
|
|
136
172
|
|
|
173
|
+
type GLMinFilter =
|
|
174
|
+
| GL.NEAREST
|
|
175
|
+
| GL.LINEAR
|
|
176
|
+
| GL.NEAREST_MIPMAP_NEAREST
|
|
177
|
+
| GL.LINEAR_MIPMAP_NEAREST
|
|
178
|
+
| GL.NEAREST_MIPMAP_LINEAR
|
|
179
|
+
| GL.LINEAR_MIPMAP_LINEAR;
|
|
180
|
+
|
|
137
181
|
/** WebGPU has separate min filter and mipmap filter, WebGL is combined */
|
|
138
|
-
function convertToMinFilterMode(filterMode:
|
|
182
|
+
function convertToMinFilterMode(filterMode: GLMinFilter): 'nearest' | 'linear' {
|
|
139
183
|
switch (filterMode) {
|
|
140
184
|
// TODO is this correct?
|
|
141
|
-
case GL.NEAREST:
|
|
142
|
-
|
|
143
|
-
case GL.
|
|
144
|
-
|
|
145
|
-
case GL.
|
|
146
|
-
|
|
185
|
+
case GL.NEAREST:
|
|
186
|
+
return 'nearest';
|
|
187
|
+
case GL.LINEAR:
|
|
188
|
+
return 'linear';
|
|
189
|
+
case GL.NEAREST_MIPMAP_NEAREST:
|
|
190
|
+
return 'nearest';
|
|
191
|
+
case GL.LINEAR_MIPMAP_NEAREST:
|
|
192
|
+
return 'linear';
|
|
193
|
+
case GL.NEAREST_MIPMAP_LINEAR:
|
|
194
|
+
return 'nearest';
|
|
195
|
+
case GL.LINEAR_MIPMAP_LINEAR:
|
|
196
|
+
return 'linear';
|
|
197
|
+
default:
|
|
198
|
+
throw new Error('minfilter');
|
|
147
199
|
}
|
|
148
200
|
}
|
|
149
201
|
|
|
150
|
-
function convertToMipmapFilterMode(filterMode:
|
|
202
|
+
function convertToMipmapFilterMode(filterMode: GLMinFilter): 'nearest' | 'linear' {
|
|
151
203
|
switch (filterMode) {
|
|
152
204
|
// TODO is this correct?
|
|
153
|
-
case GL.NEAREST:
|
|
154
|
-
|
|
155
|
-
case GL.
|
|
156
|
-
|
|
157
|
-
case GL.
|
|
158
|
-
|
|
205
|
+
case GL.NEAREST:
|
|
206
|
+
return 'nearest';
|
|
207
|
+
case GL.LINEAR:
|
|
208
|
+
return 'linear';
|
|
209
|
+
case GL.NEAREST_MIPMAP_NEAREST:
|
|
210
|
+
return 'nearest';
|
|
211
|
+
case GL.LINEAR_MIPMAP_NEAREST:
|
|
212
|
+
return 'nearest';
|
|
213
|
+
case GL.NEAREST_MIPMAP_LINEAR:
|
|
214
|
+
return 'linear';
|
|
215
|
+
case GL.LINEAR_MIPMAP_LINEAR:
|
|
216
|
+
return 'linear';
|
|
217
|
+
default:
|
|
218
|
+
throw new Error('mipmap');
|
|
159
219
|
}
|
|
160
220
|
}
|
|
161
221
|
|
|
162
222
|
/**
|
|
163
223
|
* Override sampler settings that are not supported by Non-Power-of-Two textures in WebGL1.
|
|
164
|
-
*/
|
|
165
|
-
export function updateSamplerParametersForNPOT(
|
|
224
|
+
*/
|
|
225
|
+
export function updateSamplerParametersForNPOT(
|
|
226
|
+
parameters: GLSamplerParameters
|
|
227
|
+
): GLSamplerParameters {
|
|
166
228
|
const newParameters = {...parameters};
|
|
167
229
|
if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {
|
|
168
230
|
// log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
4
|
+
import {GL} from '@luma.gl/constants';
|
|
5
|
+
import {ShaderAttributeType, ShaderDataType} from '@luma.gl/core';
|
|
6
|
+
|
|
7
|
+
/** Get shader attribute type from GL constants */
|
|
8
|
+
export function getShaderAttributeTypeFromGL(type: GL, components: 1 | 2 | 3 | 4): ShaderAttributeType {
|
|
9
|
+
const dataType = getShaderDataTypeFromGL(type);
|
|
10
|
+
switch (components) {
|
|
11
|
+
case 1: return dataType;
|
|
12
|
+
case 2: return `vec2<${dataType}>`;
|
|
13
|
+
case 3: return `vec2<${dataType}>`;
|
|
14
|
+
case 4: return `vec2<${dataType}>`;
|
|
15
|
+
default: throw new Error(String(components));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Get shader data type from GL constants */
|
|
20
|
+
export function getShaderDataTypeFromGL(type: GL): ShaderDataType {
|
|
21
|
+
switch (type) {
|
|
22
|
+
case GL.INT: return 'i32';
|
|
23
|
+
case GL.UNSIGNED_INT: return 'u32';
|
|
24
|
+
case GL.SHORT: return 'i32';
|
|
25
|
+
case GL.UNSIGNED_SHORT: return 'u32';
|
|
26
|
+
case GL.BYTE: return 'i32';
|
|
27
|
+
case GL.UNSIGNED_BYTE: return 'u32';
|
|
28
|
+
case GL.FLOAT: return 'f32';
|
|
29
|
+
case GL.HALF_FLOAT: return 'f16';
|
|
30
|
+
default: throw new Error(String(type));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** GetGL constant from shader data type */
|
|
35
|
+
export function getGLFromShaderDataType(type: ShaderDataType): GL.INT | GL.UNSIGNED_INT | GL.FLOAT | GL.HALF_FLOAT {
|
|
36
|
+
switch (type) {
|
|
37
|
+
// TODO
|
|
38
|
+
case 'i32': return GL.INT;
|
|
39
|
+
case 'u32': return GL.UNSIGNED_INT;
|
|
40
|
+
case 'f32': return GL.FLOAT;
|
|
41
|
+
case 'f16': return GL.HALF_FLOAT;
|
|
42
|
+
default: throw new Error(String(type));
|
|
43
|
+
}
|
|
44
|
+
}
|