@luma.gl/webgl 9.0.0-alpha.2 → 9.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/converters/device-parameters.d.ts +11 -1
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +17 -35
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/renderbuffer-formats.d.ts +2 -2
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js +2 -7
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +4 -4
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +19 -55
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +13 -66
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +2 -8
- package/dist/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +13 -20
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +1 -4
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +8 -10
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.js +2 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/adapter/helpers/attribute-utils.js +0 -17
- package/dist/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-info.js +25 -0
- package/dist/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +41 -67
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +1 -31
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/uniforms.d.ts +1 -1
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
- package/dist/adapter/helpers/uniforms.js +4 -14
- package/dist/adapter/helpers/uniforms.js.map +1 -1
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +0 -7
- package/dist/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +3 -3
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +6 -22
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +3 -5
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +15 -68
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +6 -6
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +7 -17
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +3 -4
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +18 -49
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +2 -2
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +3 -18
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +3 -3
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +2 -15
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +16 -16
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +17 -75
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +3 -3
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +3 -8
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +5 -5
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +51 -140
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +5 -4
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +5 -13
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +3 -4
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +8 -21
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +26 -26
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +66 -183
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/webgl-canvas-context.d.ts +3 -3
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +6 -19
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +53 -37
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +108 -109
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +1 -1
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +12 -36
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/buffer.d.ts +3 -4
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +30 -87
- package/dist/classic/buffer.js.map +1 -1
- package/dist/classic/typed-array-utils.d.ts +1 -1
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +0 -20
- package/dist/classic/typed-array-utils.js.map +1 -1
- package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
- package/dist/context/context/create-browser-context.d.ts.map +1 -0
- package/dist/context/context/{create-context.js → create-browser-context.js} +19 -15
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +9 -0
- package/dist/context/context/create-headless-context.d.ts.map +1 -0
- package/dist/context/context/create-headless-context.js +42 -0
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/context/webgl-checks.js +0 -3
- package/dist/context/context/webgl-checks.js.map +1 -1
- package/dist/context/debug/spector.d.ts +1 -0
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +7 -19
- package/dist/context/debug/spector.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +8 -32
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +6 -5
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +8 -18
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +103 -103
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +16 -34
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/context-data.d.ts +13 -0
- package/dist/context/polyfill/context-data.d.ts.map +1 -0
- package/dist/context/polyfill/context-data.js +12 -0
- package/dist/context/polyfill/context-data.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js +1 -6
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +20 -28
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +8 -8
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +8 -30
- package/dist/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js +0 -4
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +15 -50
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts +2 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +7 -9
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/dist.dev.js +9204 -0
- package/dist/index.cjs +5948 -0
- package/dist/index.d.ts +19 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -26
- package/dist/index.js.map +1 -1
- package/dist/types/webgl.d.ts +8 -7
- package/dist/types/webgl.d.ts.map +1 -1
- package/dist/types/webgl.js.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist.min.js +36 -0
- package/package.json +18 -9
- package/src/.DS_Store +0 -0
- package/src/adapter/.DS_Store +0 -0
- package/src/adapter/converters/device-parameters.ts +45 -16
- package/src/adapter/converters/renderbuffer-formats.ts +1 -3
- package/src/adapter/converters/sampler-parameters.ts +18 -7
- package/src/adapter/converters/texture-formats.ts +18 -16
- package/src/adapter/converters/vertex-formats.ts +1 -0
- package/src/adapter/device-helpers/device-features.ts +9 -2
- package/src/adapter/device-helpers/device-limits.ts +1 -1
- package/src/adapter/device-helpers/get-device-info.ts +12 -8
- package/src/adapter/helpers/get-shader-info.ts +37 -0
- package/src/adapter/helpers/get-shader-layout.ts +59 -37
- package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
- package/src/adapter/helpers/set-uniform.ts +3 -1
- package/src/adapter/helpers/uniforms.ts +21 -10
- package/src/adapter/objects/constants-to-keys.ts +4 -1
- package/src/adapter/objects/webgl-renderbuffer.ts +8 -8
- package/src/adapter/objects/webgl-resource.ts +8 -13
- package/src/adapter/objects/webgl-vertex-array-object.ts +10 -10
- package/src/adapter/resources/webgl-buffer.ts +16 -16
- package/src/adapter/resources/webgl-command-buffer.ts +3 -3
- package/src/adapter/resources/webgl-command-encoder.ts +8 -8
- package/src/adapter/resources/webgl-external-texture.ts +1 -1
- package/src/adapter/resources/webgl-framebuffer.ts +36 -33
- package/src/adapter/resources/webgl-render-pass.ts +4 -3
- package/src/adapter/resources/webgl-render-pipeline.ts +89 -77
- package/src/adapter/resources/webgl-sampler.ts +12 -6
- package/src/adapter/resources/webgl-shader.ts +10 -9
- package/src/adapter/resources/webgl-texture.ts +55 -45
- package/src/adapter/webgl-canvas-context.ts +8 -9
- package/src/adapter/webgl-device.ts +153 -69
- package/src/classic/accessor.ts +2 -15
- package/src/classic/buffer.ts +18 -25
- package/src/classic/typed-array-utils.ts +4 -2
- package/src/context/.DS_Store +0 -0
- package/src/context/context/{create-context.ts → create-browser-context.ts} +17 -7
- package/src/context/context/create-headless-context.ts +48 -0
- package/src/context/debug/spector.ts +6 -5
- package/src/context/debug/webgl-developer-tools.ts +13 -13
- package/src/context/parameters/unified-parameter-api.ts +18 -12
- package/src/context/parameters/webgl-parameter-tables.ts +113 -94
- package/src/context/polyfill/context-data.ts +27 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +7 -6
- package/src/context/polyfill/polyfill-context.ts +6 -8
- package/src/context/polyfill/polyfill-table.ts +16 -14
- package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +13 -12
- package/src/context/state-tracker/with-parameters.ts +8 -2
- package/src/index.ts +28 -26
- package/src/types/webgl.ts +10 -7
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -5
- package/dist/bundle.js.map +0 -1
- package/dist/context/context/context-state.d.ts +0 -18
- package/dist/context/context/context-state.d.ts.map +0 -1
- package/dist/context/context/context-state.js +0 -26
- package/dist/context/context/context-state.js.map +0 -1
- package/dist/context/context/create-context.d.ts.map +0 -1
- package/dist/context/context/create-context.js.map +0 -1
- package/dist/context/context/device-pixels.d.ts +0 -25
- package/dist/context/context/device-pixels.d.ts.map +0 -1
- package/dist/context/context/device-pixels.js +0 -98
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/es5/adapter/converters/device-parameters.js +0 -170
- package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
- package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/texture-formats.js +0 -1031
- package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -45
- package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-features.js +0 -144
- package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
- package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
- package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -125
- package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/es5/adapter/helpers/uniforms.js +0 -112
- package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
- package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-resource.js +0 -292
- package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
- package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
- package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-shader.js +0 -149
- package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-texture.js +0 -986
- package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -97
- package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/es5/adapter/webgl-device.js +0 -399
- package/dist/es5/adapter/webgl-device.js.map +0 -1
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/classic/accessor.js +0 -181
- package/dist/es5/classic/accessor.js.map +0 -1
- package/dist/es5/classic/buffer.js +0 -470
- package/dist/es5/classic/buffer.js.map +0 -1
- package/dist/es5/classic/typed-array-utils.js +0 -126
- package/dist/es5/classic/typed-array-utils.js.map +0 -1
- package/dist/es5/context/context/context-state.js +0 -31
- package/dist/es5/context/context/context-state.js.map +0 -1
- package/dist/es5/context/context/create-context.js +0 -69
- package/dist/es5/context/context/create-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -115
- package/dist/es5/context/context/device-pixels.js.map +0 -1
- package/dist/es5/context/context/webgl-checks.js +0 -54
- package/dist/es5/context/context/webgl-checks.js.map +0 -1
- package/dist/es5/context/debug/spector.js +0 -133
- package/dist/es5/context/debug/spector.js.map +0 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
- package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
- package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-context.js +0 -135
- package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-table.js +0 -166
- package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/es5/context/state-tracker/track-context-state.js +0 -211
- package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/es5/context/state-tracker/with-parameters.js +0 -44
- package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/es5/index.js +0 -276
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/init.js +0 -10
- package/dist/es5/init.js.map +0 -1
- package/dist/es5/types/webgl.js +0 -6
- package/dist/es5/types/webgl.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/types.js.map +0 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -155
- package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
- package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/texture-formats.js +0 -954
- package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -35
- package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-features.js +0 -102
- package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
- package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
- package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -115
- package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -99
- package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
- package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-resource.js +0 -216
- package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
- package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
- package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-shader.js +0 -75
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -831
- package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -54
- package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/esm/adapter/webgl-device.js +0 -280
- package/dist/esm/adapter/webgl-device.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/classic/accessor.js +0 -144
- package/dist/esm/classic/accessor.js.map +0 -1
- package/dist/esm/classic/buffer.js +0 -384
- package/dist/esm/classic/buffer.js.map +0 -1
- package/dist/esm/classic/typed-array-utils.js +0 -112
- package/dist/esm/classic/typed-array-utils.js.map +0 -1
- package/dist/esm/context/context/context-state.js +0 -26
- package/dist/esm/context/context/context-state.js.map +0 -1
- package/dist/esm/context/context/create-context.js +0 -49
- package/dist/esm/context/context/create-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -98
- package/dist/esm/context/context/device-pixels.js.map +0 -1
- package/dist/esm/context/context/webgl-checks.js +0 -34
- package/dist/esm/context/context/webgl-checks.js.map +0 -1
- package/dist/esm/context/debug/spector.js +0 -76
- package/dist/esm/context/debug/spector.js.map +0 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
- package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
- package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-context.js +0 -92
- package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -160
- package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/esm/context/state-tracker/track-context-state.js +0 -183
- package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -36
- package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/esm/index.js +0 -27
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/init.js +0 -4
- package/dist/esm/init.js.map +0 -1
- package/dist/esm/types/webgl.js +0 -2
- package/dist/esm/types/webgl.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/init.d.ts +0 -2
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -4
- package/dist/init.js.map +0 -1
- package/src/bundle.ts +0 -4
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/device-pixels.ts +0 -152
- package/src/init.ts +0 -4
|
@@ -8,8 +8,18 @@ import type { GLParameters } from '../../types/webgl';
|
|
|
8
8
|
* - Executes supplied function
|
|
9
9
|
* - Restores parameters
|
|
10
10
|
* - Returns the return value of the supplied function
|
|
11
|
+
* @deprecated use withDeviceParameters instead
|
|
11
12
|
*/
|
|
12
|
-
export declare function
|
|
13
|
+
export declare function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T;
|
|
14
|
+
/**
|
|
15
|
+
* Execute a function with a set of temporary WebGL parameter overrides
|
|
16
|
+
* - Saves current "global" WebGL context settings
|
|
17
|
+
* - Sets the supplies WebGL context parameters,
|
|
18
|
+
* - Executes supplied function
|
|
19
|
+
* - Restores parameters
|
|
20
|
+
* - Returns the return value of the supplied function
|
|
21
|
+
*/
|
|
22
|
+
export declare function withDeviceParameters<T = unknown>(device: Device, parameters: Parameters, func: (device?: Device) => T): T;
|
|
13
23
|
/** Set WebGPU Style Parameters */
|
|
14
24
|
export declare function setDeviceParameters(device: Device, parameters: Parameters): void;
|
|
15
25
|
export declare function convertCompareFunction(parameter: string, value: CompareFunction): GL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/device-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AACvG,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"device-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/device-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AACvG,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAgBvH;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAgBzH;AAGD,kCAAkC;AAClC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,QAqGzE;AAyBD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,EAAE,CAWpF;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,eAAe,CAWtF"}
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
import { log, isObjectEmpty } from '@luma.gl/api';
|
|
2
2
|
import GL from '@luma.gl/constants';
|
|
3
|
-
import { pushContextState, popContextState } from
|
|
4
|
-
import { setParameters } from
|
|
5
|
-
import WebGLDevice from
|
|
6
|
-
export function
|
|
3
|
+
import { pushContextState, popContextState } from "../../context/state-tracker/track-context-state.js";
|
|
4
|
+
import { setParameters } from "../../context/parameters/unified-parameter-api.js";
|
|
5
|
+
import { WebGLDevice } from "../webgl-device.js";
|
|
6
|
+
export function withGLParameters(device, parameters, func) {
|
|
7
7
|
if (isObjectEmpty(parameters)) {
|
|
8
8
|
return func(device);
|
|
9
9
|
}
|
|
10
|
-
|
|
11
10
|
pushContextState(device.gl);
|
|
12
|
-
|
|
13
11
|
try {
|
|
14
12
|
setParameters(device, parameters);
|
|
13
|
+
return func(device);
|
|
14
|
+
} finally {
|
|
15
|
+
popContextState(device.gl);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function withDeviceParameters(device, parameters, func) {
|
|
19
|
+
if (isObjectEmpty(parameters)) {
|
|
20
|
+
return func(device);
|
|
21
|
+
}
|
|
22
|
+
pushContextState(device.gl);
|
|
23
|
+
try {
|
|
15
24
|
setDeviceParameters(device, parameters);
|
|
16
25
|
return func(device);
|
|
17
26
|
} finally {
|
|
@@ -21,58 +30,47 @@ export function withDeviceParameters(device, parameters, func) {
|
|
|
21
30
|
export function setDeviceParameters(device, parameters) {
|
|
22
31
|
const webglDevice = WebGLDevice.attach(device);
|
|
23
32
|
const {
|
|
24
|
-
gl
|
|
25
|
-
gl2
|
|
33
|
+
gl
|
|
26
34
|
} = webglDevice;
|
|
27
|
-
|
|
28
35
|
if (parameters.cullMode) {
|
|
29
36
|
switch (parameters.cullMode) {
|
|
30
37
|
case 'none':
|
|
31
38
|
gl.disable(GL.CULL_FACE);
|
|
32
39
|
break;
|
|
33
|
-
|
|
34
40
|
case 'front':
|
|
35
41
|
gl.enable(GL.CULL_FACE);
|
|
36
42
|
gl.cullFace(GL.FRONT);
|
|
37
43
|
break;
|
|
38
|
-
|
|
39
44
|
case 'back':
|
|
40
45
|
gl.enable(GL.CULL_FACE);
|
|
41
46
|
gl.cullFace(GL.BACK);
|
|
42
47
|
break;
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
|
-
|
|
46
50
|
if (parameters.frontFace) {
|
|
47
51
|
gl.frontFace(map('frontFace', parameters.frontFace, {
|
|
48
52
|
ccw: GL.CCW,
|
|
49
53
|
cw: GL.CW
|
|
50
54
|
}));
|
|
51
55
|
}
|
|
52
|
-
|
|
53
56
|
if (parameters.depthBias !== undefined) {
|
|
54
57
|
gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);
|
|
55
58
|
}
|
|
56
|
-
|
|
57
59
|
if (parameters.depthWriteEnabled !== undefined) {
|
|
58
60
|
gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
|
|
59
61
|
}
|
|
60
|
-
|
|
61
62
|
if (parameters.depthCompare) {
|
|
62
63
|
parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);
|
|
63
64
|
gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
|
|
64
65
|
}
|
|
65
|
-
|
|
66
66
|
if (parameters.stencilWriteMask) {
|
|
67
67
|
const mask = parameters.stencilWriteMask;
|
|
68
68
|
gl.stencilMaskSeparate(GL.FRONT, mask);
|
|
69
69
|
gl.stencilMaskSeparate(GL.BACK, mask);
|
|
70
70
|
}
|
|
71
|
-
|
|
72
71
|
if (parameters.stencilReadMask) {
|
|
73
72
|
log.warn('stencilReadMask not supported under WebGL');
|
|
74
73
|
}
|
|
75
|
-
|
|
76
74
|
if (parameters.stencilCompare) {
|
|
77
75
|
const mask = parameters.stencilReadMask || 0xffffffff;
|
|
78
76
|
const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);
|
|
@@ -80,8 +78,7 @@ export function setDeviceParameters(device, parameters) {
|
|
|
80
78
|
gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);
|
|
81
79
|
gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);
|
|
82
80
|
}
|
|
83
|
-
|
|
84
|
-
if (parameters.stencilPassOperation) {
|
|
81
|
+
if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {
|
|
85
82
|
const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);
|
|
86
83
|
const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);
|
|
87
84
|
const dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);
|
|
@@ -113,7 +110,6 @@ export function convertToCompareFunction(parameter, value) {
|
|
|
113
110
|
[GL.ALWAYS]: 'always'
|
|
114
111
|
});
|
|
115
112
|
}
|
|
116
|
-
|
|
117
113
|
function convertStencilOperation(parameter, value) {
|
|
118
114
|
return map(parameter, value, {
|
|
119
115
|
'keep': GL.KEEP,
|
|
@@ -126,29 +122,15 @@ function convertStencilOperation(parameter, value) {
|
|
|
126
122
|
'decrement-wrap': GL.DECR_WRAP
|
|
127
123
|
});
|
|
128
124
|
}
|
|
129
|
-
|
|
130
|
-
function convertBlendOperationToEquation(parameter, value) {
|
|
131
|
-
return map(parameter, value, {
|
|
132
|
-
'add': GL.FUNC_ADD,
|
|
133
|
-
'sub': GL.FUNC_SUBTRACT,
|
|
134
|
-
'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,
|
|
135
|
-
'min': GL.MIN,
|
|
136
|
-
'max': GL.MAX
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
125
|
function message(parameter, value) {
|
|
141
126
|
return "Illegal parameter ".concat(value, " for ").concat(parameter);
|
|
142
127
|
}
|
|
143
|
-
|
|
144
128
|
function map(parameter, value, valueMap) {
|
|
145
129
|
if (!(value in valueMap)) {
|
|
146
130
|
throw new Error(message(parameter, value));
|
|
147
131
|
}
|
|
148
|
-
|
|
149
132
|
return valueMap[value];
|
|
150
133
|
}
|
|
151
|
-
|
|
152
134
|
function mapBoolean(parameter, value) {
|
|
153
135
|
return value;
|
|
154
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/converters/device-parameters.ts"],"names":["log","isObjectEmpty","GL","pushContextState","popContextState","setParameters","WebGLDevice","withDeviceParameters","device","parameters","func","gl","setDeviceParameters","webglDevice","attach","gl2","cullMode","disable","CULL_FACE","enable","cullFace","FRONT","BACK","frontFace","map","ccw","CCW","cw","CW","depthBias","undefined","polygonOffset","depthBiasSlopeScale","depthWriteEnabled","depthMask","mapBoolean","depthCompare","DEPTH_TEST","depthFunc","convertCompareFunction","stencilWriteMask","mask","stencilMaskSeparate","stencilReadMask","warn","stencilCompare","glValue","STENCIL_TEST","stencilFuncSeparate","stencilPassOperation","dppass","convertStencilOperation","sfail","stencilFailOperation","dpfail","stencilDepthFailOperation","stencilOpSeparate","parameter","value","NEVER","LESS","EQUAL","LEQUAL","GREATER","NOTEQUAL","GEQUAL","ALWAYS","convertToCompareFunction","KEEP","ZERO","REPLACE","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","convertBlendOperationToEquation","FUNC_ADD","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","MIN","MAX","message","valueMap","Error"],"mappings":"AAAA,SAA+DA,GAA/D,EAAoEC,aAApE,QAAwF,cAAxF;AACA,OAAOC,EAAP,MAAe,oBAAf;AAEA,SAAQC,gBAAR,EAA0BC,eAA1B,QAAgD,iDAAhD;AACA,SAAQC,aAAR,QAA4B,gDAA5B;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AAUA,OAAO,SAASC,oBAAT,CAA2CC,MAA3C,EAA2DC,UAA3D,EAAkGC,IAAlG,EAAmI;AACxI,MAAIT,aAAa,CAACQ,UAAD,CAAjB,EAA+B;AAE7B,WAAOC,IAAI,CAACF,MAAD,CAAX;AACD;;AAIDL,EAAAA,gBAAgB,CAACK,MAAM,CAACG,EAAR,CAAhB;;AACA,MAAI;AACFN,IAAAA,aAAa,CAACG,MAAD,EAASC,UAAT,CAAb;AACAG,IAAAA,mBAAmB,CAACJ,MAAD,EAASC,UAAT,CAAnB;AACA,WAAOC,IAAI,CAACF,MAAD,CAAX;AACD,GAJD,SAIU;AAERJ,IAAAA,eAAe,CAACI,MAAM,CAACG,EAAR,CAAf;AACD;AACF;AAID,OAAO,SAASC,mBAAT,CAA6BJ,MAA7B,EAA6CC,UAA7C,EAAqE;AAC1E,QAAMI,WAAW,GAAGP,WAAW,CAACQ,MAAZ,CAAmBN,MAAnB,CAApB;AACA,QAAM;AAACG,IAAAA,EAAD;AAAKI,IAAAA;AAAL,MAAYF,WAAlB;;AAGA,MAAIJ,UAAU,CAACO,QAAf,EAAyB;AACvB,YAAQP,UAAU,CAACO,QAAnB;AACE,WAAK,MAAL;AACEL,QAAAA,EAAE,CAACM,OAAH,CAAWf,EAAE,CAACgB,SAAd;AACA;;AACF,WAAK,OAAL;AACEP,QAAAA,EAAE,CAACQ,MAAH,CAAUjB,EAAE,CAACgB,SAAb;AACAP,QAAAA,EAAE,CAACS,QAAH,CAAYlB,EAAE,CAACmB,KAAf;AACA;;AACF,WAAK,MAAL;AACEV,QAAAA,EAAE,CAACQ,MAAH,CAAUjB,EAAE,CAACgB,SAAb;AACAP,QAAAA,EAAE,CAACS,QAAH,CAAYlB,EAAE,CAACoB,IAAf;AACA;AAXJ;AAaD;;AAED,MAAIb,UAAU,CAACc,SAAf,EAA0B;AACxBZ,IAAAA,EAAE,CAACY,SAAH,CAAaC,GAAG,CAAC,WAAD,EAAcf,UAAU,CAACc,SAAzB,EAAoC;AAClDE,MAAAA,GAAG,EAAEvB,EAAE,CAACwB,GAD0C;AAElDC,MAAAA,EAAE,EAAEzB,EAAE,CAAC0B;AAF2C,KAApC,CAAhB;AAID;;AAED,MAAInB,UAAU,CAACoB,SAAX,KAAyBC,SAA7B,EAAwC;AACtCnB,IAAAA,EAAE,CAACoB,aAAH,CAAiBtB,UAAU,CAACoB,SAA5B,EAAuCpB,UAAU,CAACuB,mBAAX,IAAkC,CAAzE;AACD;;AAQD,MAAIvB,UAAU,CAACwB,iBAAX,KAAiCH,SAArC,EAAgD;AAC9CnB,IAAAA,EAAE,CAACuB,SAAH,CAAaC,UAAU,CAAC,mBAAD,EAAsB1B,UAAU,CAACwB,iBAAjC,CAAvB;AACD;;AAEF,MAAIxB,UAAU,CAAC2B,YAAf,EAA6B;AAC1B3B,IAAAA,UAAU,CAAC2B,YAAX,KAA4B,QAA5B,GAAuCzB,EAAE,CAACQ,MAAH,CAAUjB,EAAE,CAACmC,UAAb,CAAvC,GAAkE1B,EAAE,CAACM,OAAH,CAAWf,EAAE,CAACmC,UAAd,CAAlE;AACA1B,IAAAA,EAAE,CAAC2B,SAAH,CAAaC,sBAAsB,CAAC,cAAD,EAAiB9B,UAAU,CAAC2B,YAA5B,CAAnC;AACD;;AAED,MAAI3B,UAAU,CAAC+B,gBAAf,EAAiC;AAC/B,UAAMC,IAAI,GAAGhC,UAAU,CAAC+B,gBAAxB;AACA7B,IAAAA,EAAE,CAAC+B,mBAAH,CAAuBxC,EAAE,CAACmB,KAA1B,EAAiCoB,IAAjC;AACA9B,IAAAA,EAAE,CAAC+B,mBAAH,CAAuBxC,EAAE,CAACoB,IAA1B,EAAgCmB,IAAhC;AACD;;AAED,MAAIhC,UAAU,CAACkC,eAAf,EAAgC;AAE9B3C,IAAAA,GAAG,CAAC4C,IAAJ,CAAS,2CAAT;AACD;;AAED,MAAInC,UAAU,CAACoC,cAAf,EAA+B;AAC7B,UAAMJ,IAAI,GAAGhC,UAAU,CAACkC,eAAX,IAA8B,UAA3C;AACA,UAAMG,OAAO,GAAGP,sBAAsB,CAAC,cAAD,EAAiB9B,UAAU,CAACoC,cAA5B,CAAtC;AAEApC,IAAAA,UAAU,CAACoC,cAAX,KAA8B,QAA9B,GAAyClC,EAAE,CAACQ,MAAH,CAAUjB,EAAE,CAAC6C,YAAb,CAAzC,GAAsEpC,EAAE,CAACM,OAAH,CAAWf,EAAE,CAAC6C,YAAd,CAAtE;AACApC,IAAAA,EAAE,CAACqC,mBAAH,CAAuB9C,EAAE,CAACmB,KAA1B,EAAiCyB,OAAjC,EAA0C,CAA1C,EAA6CL,IAA7C;AACA9B,IAAAA,EAAE,CAACqC,mBAAH,CAAuB9C,EAAE,CAACoB,IAA1B,EAAgCwB,OAAhC,EAAyC,CAAzC,EAA4CL,IAA5C;AACD;;AAED,MAAIhC,UAAU,CAACwC,oBAAf,EAAqC;AACnC,UAAMC,MAAM,GAAGC,uBAAuB,CAAC,sBAAD,EAAyB1C,UAAU,CAACwC,oBAApC,CAAtC;AACA,UAAMG,KAAK,GAAGD,uBAAuB,CAAC,sBAAD,EAAyB1C,UAAU,CAAC4C,oBAApC,CAArC;AACA,UAAMC,MAAM,GAAGH,uBAAuB,CAAC,2BAAD,EAA8B1C,UAAU,CAAC8C,yBAAzC,CAAtC;AACA5C,IAAAA,EAAE,CAAC6C,iBAAH,CAAqBtD,EAAE,CAACmB,KAAxB,EAA+B+B,KAA/B,EAAsCE,MAAtC,EAA8CJ,MAA9C;AACAvC,IAAAA,EAAE,CAAC6C,iBAAH,CAAqBtD,EAAE,CAACoB,IAAxB,EAA8B8B,KAA9B,EAAqCE,MAArC,EAA6CJ,MAA7C;AACD;AA2BF;AAyBD,OAAO,SAASX,sBAAT,CAAgCkB,SAAhC,EAAmDC,KAAnD,EAA+E;AACpF,SAAOlC,GAAG,CAACiC,SAAD,EAAYC,KAAZ,EAAmB;AAC3B,aAASxD,EAAE,CAACyD,KADe;AAE3B,YAAQzD,EAAE,CAAC0D,IAFgB;AAG3B,aAAS1D,EAAE,CAAC2D,KAHe;AAI3B,kBAAc3D,EAAE,CAAC4D,MAJU;AAK3B,eAAW5D,EAAE,CAAC6D,OALa;AAM3B,iBAAa7D,EAAE,CAAC8D,QANW;AAO3B,qBAAiB9D,EAAE,CAAC+D,MAPO;AAQ3B,cAAU/D,EAAE,CAACgE;AARc,GAAnB,CAAV;AAUD;AAED,OAAO,SAASC,wBAAT,CAAkCV,SAAlC,EAAqDC,KAArD,EAAiF;AACtF,SAAOlC,GAAG,CAACiC,SAAD,EAAYC,KAAZ,EAAmB;AAC3B,KAACxD,EAAE,CAACyD,KAAJ,GAAY,OADe;AAE3B,KAACzD,EAAE,CAAC0D,IAAJ,GAAW,MAFgB;AAG3B,KAAC1D,EAAE,CAAC2D,KAAJ,GAAY,OAHe;AAI3B,KAAC3D,EAAE,CAAC4D,MAAJ,GAAa,YAJc;AAK3B,KAAC5D,EAAE,CAAC6D,OAAJ,GAAc,SALa;AAM3B,KAAC7D,EAAE,CAAC8D,QAAJ,GAAe,WANY;AAO3B,KAAC9D,EAAE,CAAC+D,MAAJ,GAAa,eAPc;AAQ3B,KAAC/D,EAAE,CAACgE,MAAJ,GAAa;AARc,GAAnB,CAAV;AAUD;;AAED,SAASf,uBAAT,CAAiCM,SAAjC,EAAoDC,KAApD,EAAiF;AAC/E,SAAOlC,GAAG,CAACiC,SAAD,EAAYC,KAAZ,EAAmB;AAC3B,YAAQxD,EAAE,CAACkE,IADgB;AAE3B,YAAQlE,EAAE,CAACmE,IAFgB;AAG3B,eAAWnE,EAAE,CAACoE,OAHa;AAI3B,cAAUpE,EAAE,CAACqE,MAJc;AAK3B,uBAAmBrE,EAAE,CAACsE,IALK;AAM3B,uBAAmBtE,EAAE,CAACuE,IANK;AAO3B,sBAAkBvE,EAAE,CAACwE,SAPM;AAQ3B,sBAAkBxE,EAAE,CAACyE;AARM,GAAnB,CAAV;AAUD;;AAED,SAASC,+BAAT,CAAyCnB,SAAzC,EAAoDC,KAApD,EAAmE;AACjE,SAAOlC,GAAG,CAACiC,SAAD,EAAYC,KAAZ,EAAmB;AAC3B,WAAOxD,EAAE,CAAC2E,QADiB;AAE3B,WAAO3E,EAAE,CAAC4E,aAFiB;AAG3B,wBAAoB5E,EAAE,CAAC6E,qBAHI;AAK3B,WAAO7E,EAAE,CAAC8E,GALiB;AAM3B,WAAO9E,EAAE,CAAC+E;AANiB,GAAnB,CAAV;AAQD;;AAED,SAASC,OAAT,CAAiBzB,SAAjB,EAAoCC,KAApC,EAAwD;AACtD,qCAA4BA,KAA5B,kBAAyCD,SAAzC;AACD;;AAED,SAASjC,GAAT,CAAaiC,SAAb,EAAgCC,KAAhC,EAA4CyB,QAA5C,EAAgF;AAC9E,MAAI,EAAEzB,KAAK,IAAIyB,QAAX,CAAJ,EAA0B;AACxB,UAAM,IAAIC,KAAJ,CAAUF,OAAO,CAACzB,SAAD,EAAYC,KAAZ,CAAjB,CAAN;AACD;;AACD,SAAOyB,QAAQ,CAACzB,KAAD,CAAf;AACD;;AAED,SAASvB,UAAT,CAAoBsB,SAApB,EAA+BC,KAA/B,EAAsC;AACpC,SAAOA,KAAP;AACD","sourcesContent":["import {Device, Parameters, CompareFunction, StencilOperation, log, isObjectEmpty} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport type { GLParameters } from '../../types/webgl';\nimport {pushContextState, popContextState} from '../../context/state-tracker/track-context-state';\nimport {setParameters} from '../../context/parameters/unified-parameter-api';\nimport WebGLDevice from '../webgl-device';\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n */\nexport function withDeviceParameters<T = unknown>(device: Device, parameters: Parameters & GLParameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setParameters(device, parameters);\n setDeviceParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n\n/** Set WebGPU Style Parameters */\nexport function setDeviceParameters(device: Device, parameters: Parameters) {\n const webglDevice = WebGLDevice.attach(device);\n const {gl, gl2} = webglDevice;\n\n // RASTERIZATION SETTINGS\n if (parameters.cullMode) {\n switch (parameters.cullMode) {\n case 'none':\n gl.disable(GL.CULL_FACE);\n break;\n case 'front':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.FRONT);\n break;\n case 'back':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.BACK);\n break;\n }\n }\n\n if (parameters.frontFace) {\n gl.frontFace(map('frontFace', parameters.frontFace, {\n ccw: GL.CCW,\n cw: GL.CW\n }));\n }\n\n if (parameters.depthBias !== undefined) {\n gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);\n }\n\n // depthBiasSlopeScale: {\n // // Handled by depthBias\n // },\n\n // DEPTH STENCIL\n\n if (parameters.depthWriteEnabled !== undefined) {\n gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));\n }\n\n if (parameters.depthCompare) {\n parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);\n gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));\n }\n\n if (parameters.stencilWriteMask) {\n const mask = parameters.stencilWriteMask;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, mask);\n }\n\n if (parameters.stencilReadMask) {\n // stencilReadMask is handle inside stencil***Compare.\n log.warn('stencilReadMask not supported under WebGL');\n }\n\n if (parameters.stencilCompare) {\n const mask = parameters.stencilReadMask || 0xffffffff;\n const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);\n // TODO - ensure back doesn't overwrite\n parameters.stencilCompare !== 'always' ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST);\n gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);\n gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);\n }\n\n if (parameters.stencilPassOperation) {\n const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);\n const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);\n const dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, sfail, dpfail, dppass);\n }\n\n // stencilDepthFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // stencilFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // COLOR STATE\n\n // if (parameters.blend) {\n // gl.enable(GL.BLEND);\n\n // const blend = parameters.blend;\n\n // let colorEquation = (blend && blend.color && blend.color.operation) || 'add';\n // let alphaEquation = (blend && blend.alpha && blend.alpha.operation) || 'add';\n // gl.blendEquationSeparate(colorEquation, alphaEquation);\n\n // let colorSrcFactor = (blend && blend.color && blend.color.srcFactor) || 'one';\n // let colorDstFactor = (blend && blend.color && blend.color.dstFactor) || 'zero';\n // let alphaSrcFactor = (blend && blend.alpha && blend.alpha.srcFactor) || 'one';\n // let alphaDstFactor = (blend && blend.alpha && blend.alpha.dstFactor) || 'zero';\n // gl.blendFuncSeparate(colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor);\n // }\n}\n\n/*\n rasterizationState: {\n cullMode: \"back\",\n },\n\n depthStencilState: {\n depthWriteEnabled: true,\n depthCompare: \"less\",\n format: \"depth24plus-stencil8\",\n },\n\n colorStates: [\n {\n format: \"bgra8unorm\",\n // colorBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // colorBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n // alphaBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // alphaBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n },\n ],\n });\n*/\n\nexport function convertCompareFunction(parameter: string, value: CompareFunction): GL {\n return map(parameter, value, {\n 'never': GL.NEVER,\n 'less': GL.LESS,\n 'equal': GL.EQUAL,\n 'less-equal': GL.LEQUAL,\n 'greater': GL.GREATER,\n 'not-equal': GL.NOTEQUAL,\n 'greater-equal': GL.GEQUAL,\n 'always': GL.ALWAYS\n });\n}\n\nexport function convertToCompareFunction(parameter: string, value: GL): CompareFunction {\n return map(parameter, value, {\n [GL.NEVER]: 'never',\n [GL.LESS]: 'less',\n [GL.EQUAL]: 'equal',\n [GL.LEQUAL]: 'less-equal',\n [GL.GREATER]: 'greater',\n [GL.NOTEQUAL]: 'not-equal',\n [GL.GEQUAL]: 'greater-equal',\n [GL.ALWAYS]: 'always'\n });\n}\n\nfunction convertStencilOperation(parameter: string, value: StencilOperation): GL {\n return map(parameter, value, {\n 'keep': GL.KEEP,\n 'zero': GL.ZERO,\n 'replace': GL.REPLACE,\n 'invert': GL.INVERT,\n 'increment-clamp': GL.INCR,\n 'decrement-clamp': GL.DECR,\n 'increment-wrap': GL.INCR_WRAP,\n 'decrement-wrap': GL.DECR_WRAP\n });\n}\n\nfunction convertBlendOperationToEquation(parameter, value): number {\n return map(parameter, value, {\n 'add': GL.FUNC_ADD,\n 'sub': GL.FUNC_SUBTRACT,\n 'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,\n // When using a WebGL 2 context, the following values are available additionally:\n 'min': GL.MIN,\n 'max': GL.MAX\n });\n}\n\nfunction message(parameter: string, value: any): string {\n return `Illegal parameter ${value} for ${parameter}`;\n}\n\nfunction map(parameter: string, value: any, valueMap: Record<string, any>): any {\n if (!(value in valueMap)) {\n throw new Error(message(parameter, value));\n }\n return valueMap[value];\n}\n\nfunction mapBoolean(parameter, value) {\n return value;\n}\n"],"file":"device-parameters.js"}
|
|
1
|
+
{"version":3,"file":"device-parameters.js","names":["log","isObjectEmpty","GL","pushContextState","popContextState","setParameters","WebGLDevice","withGLParameters","device","parameters","func","gl","withDeviceParameters","setDeviceParameters","webglDevice","attach","cullMode","disable","CULL_FACE","enable","cullFace","FRONT","BACK","frontFace","map","ccw","CCW","cw","CW","depthBias","undefined","polygonOffset","depthBiasSlopeScale","depthWriteEnabled","depthMask","mapBoolean","depthCompare","DEPTH_TEST","depthFunc","convertCompareFunction","stencilWriteMask","mask","stencilMaskSeparate","stencilReadMask","warn","stencilCompare","glValue","STENCIL_TEST","stencilFuncSeparate","stencilPassOperation","stencilFailOperation","stencilDepthFailOperation","dppass","convertStencilOperation","sfail","dpfail","stencilOpSeparate","parameter","value","NEVER","LESS","EQUAL","LEQUAL","GREATER","NOTEQUAL","GEQUAL","ALWAYS","convertToCompareFunction","KEEP","ZERO","REPLACE","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","message","concat","valueMap","Error"],"sources":["../../../src/adapter/converters/device-parameters.ts"],"sourcesContent":["import {Device, Parameters, CompareFunction, StencilOperation, log, isObjectEmpty} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport type { GLParameters } from '../../types/webgl';\nimport {pushContextState, popContextState} from '../../context/state-tracker/track-context-state';\nimport {setParameters} from '../../context/parameters/unified-parameter-api';\nimport {WebGLDevice} from '../webgl-device';\n\n/* eslint-disable no-unused-expressions */ // For expression ? gl.enable() : gl.disable()\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n * @deprecated use withDeviceParameters instead\n */\nexport function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n */\nexport function withDeviceParameters<T = unknown>(device: Device, parameters: Parameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setDeviceParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n\n/** Set WebGPU Style Parameters */\nexport function setDeviceParameters(device: Device, parameters: Parameters) {\n const webglDevice = WebGLDevice.attach(device);\n const {gl} = webglDevice;\n\n // RASTERIZATION SETTINGS\n if (parameters.cullMode) {\n switch (parameters.cullMode) {\n case 'none':\n gl.disable(GL.CULL_FACE);\n break;\n case 'front':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.FRONT);\n break;\n case 'back':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.BACK);\n break;\n }\n }\n\n if (parameters.frontFace) {\n gl.frontFace(map('frontFace', parameters.frontFace, {\n ccw: GL.CCW,\n cw: GL.CW\n }));\n }\n\n if (parameters.depthBias !== undefined) {\n gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);\n }\n\n // depthBiasSlopeScale: {\n // // Handled by depthBias\n // },\n\n // DEPTH STENCIL\n\n if (parameters.depthWriteEnabled !== undefined) {\n gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));\n }\n\n if (parameters.depthCompare) {\n\n parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);\n gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));\n }\n\n if (parameters.stencilWriteMask) {\n const mask = parameters.stencilWriteMask;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, mask);\n }\n\n if (parameters.stencilReadMask) {\n // stencilReadMask is handle inside stencil***Compare.\n log.warn('stencilReadMask not supported under WebGL');\n }\n\n if (parameters.stencilCompare) {\n const mask = parameters.stencilReadMask || 0xffffffff;\n const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);\n // TODO - ensure back doesn't overwrite\n parameters.stencilCompare !== 'always' ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST);\n gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);\n gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);\n }\n\n if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {\n const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);\n const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);\n const dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, sfail, dpfail, dppass);\n }\n\n // stencilDepthFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // stencilFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // COLOR STATE\n\n // if (parameters.blend) {\n // gl.enable(GL.BLEND);\n\n // const blend = parameters.blend;\n\n // let colorEquation = (blend && blend.color && blend.color.operation) || 'add';\n // let alphaEquation = (blend && blend.alpha && blend.alpha.operation) || 'add';\n // gl.blendEquationSeparate(colorEquation, alphaEquation);\n\n // let colorSrcFactor = (blend && blend.color && blend.color.srcFactor) || 'one';\n // let colorDstFactor = (blend && blend.color && blend.color.dstFactor) || 'zero';\n // let alphaSrcFactor = (blend && blend.alpha && blend.alpha.srcFactor) || 'one';\n // let alphaDstFactor = (blend && blend.alpha && blend.alpha.dstFactor) || 'zero';\n // gl.blendFuncSeparate(colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor);\n // }\n}\n\n/*\n rasterizationState: {\n cullMode: \"back\",\n },\n\n depthStencilState: {\n depthWriteEnabled: true,\n depthCompare: \"less\",\n format: \"depth24plus-stencil8\",\n },\n\n colorStates: [\n {\n format: \"bgra8unorm\",\n // colorBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // colorBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n // alphaBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // alphaBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n },\n ],\n });\n*/\n\nexport function convertCompareFunction(parameter: string, value: CompareFunction): GL {\n return map(parameter, value, {\n 'never': GL.NEVER,\n 'less': GL.LESS,\n 'equal': GL.EQUAL,\n 'less-equal': GL.LEQUAL,\n 'greater': GL.GREATER,\n 'not-equal': GL.NOTEQUAL,\n 'greater-equal': GL.GEQUAL,\n 'always': GL.ALWAYS\n });\n}\n\nexport function convertToCompareFunction(parameter: string, value: GL): CompareFunction {\n return map(parameter, value, {\n [GL.NEVER]: 'never',\n [GL.LESS]: 'less',\n [GL.EQUAL]: 'equal',\n [GL.LEQUAL]: 'less-equal',\n [GL.GREATER]: 'greater',\n [GL.NOTEQUAL]: 'not-equal',\n [GL.GEQUAL]: 'greater-equal',\n [GL.ALWAYS]: 'always'\n });\n}\n\nfunction convertStencilOperation(parameter: string, value: StencilOperation): GL {\n return map(parameter, value, {\n 'keep': GL.KEEP,\n 'zero': GL.ZERO,\n 'replace': GL.REPLACE,\n 'invert': GL.INVERT,\n 'increment-clamp': GL.INCR,\n 'decrement-clamp': GL.DECR,\n 'increment-wrap': GL.INCR_WRAP,\n 'decrement-wrap': GL.DECR_WRAP\n });\n}\n\n// function convertBlendOperationToEquation(parameter: string, value: string): number {\n// return map(parameter, value, {\n// 'add': GL.FUNC_ADD,\n// 'sub': GL.FUNC_SUBTRACT,\n// 'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,\n// // When using a WebGL 2 context, the following values are available additionally:\n// 'min': GL.MIN,\n// 'max': GL.MAX\n// });\n// }\n\nfunction message(parameter: string, value: any): string {\n return `Illegal parameter ${value} for ${parameter}`;\n}\n\nfunction map(parameter: string, value: any, valueMap: Record<string, any>): any {\n if (!(value in valueMap)) {\n throw new Error(message(parameter, value));\n }\n return valueMap[value];\n}\n\nfunction mapBoolean(parameter: string, value: boolean): boolean {\n return value;\n}\n"],"mappings":"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"}
|
|
@@ -11,6 +11,6 @@ declare type RenderbufferFormat = {
|
|
|
11
11
|
gl2?: boolean;
|
|
12
12
|
ext?: string;
|
|
13
13
|
};
|
|
14
|
-
declare const RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat>;
|
|
15
|
-
export
|
|
14
|
+
export declare const RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat>;
|
|
15
|
+
export {};
|
|
16
16
|
//# sourceMappingURL=renderbuffer-formats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderbuffer-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/renderbuffer-formats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGpC,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAa5F;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,CAErE;AAKD;;;;GAIG;AACH,aAAK,kBAAkB,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"renderbuffer-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/renderbuffer-formats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGpC,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAa5F;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,CAErE;AAKD;;;;GAIG;AACH,aAAK,kBAAkB,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAqDnE,CAAC"}
|
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import { isWebGL2 } from
|
|
2
|
+
import { isWebGL2 } from "../../context/context/webgl-checks.js";
|
|
3
3
|
export function isRenderbufferFormatSupported(gl, format) {
|
|
4
4
|
const info = RENDERBUFFER_FORMATS[format];
|
|
5
|
-
|
|
6
5
|
if (!info) {
|
|
7
6
|
return false;
|
|
8
7
|
}
|
|
9
|
-
|
|
10
8
|
if (info.ext) {
|
|
11
9
|
return Boolean(gl.getExtension(info.ext));
|
|
12
10
|
}
|
|
13
|
-
|
|
14
11
|
if (info.gl2) {
|
|
15
12
|
return isWebGL2(gl);
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
return true;
|
|
19
15
|
}
|
|
20
16
|
export function getRenderbufferFormatBytesPerPixel(format) {
|
|
21
17
|
return RENDERBUFFER_FORMATS[format].bpp;
|
|
22
18
|
}
|
|
23
19
|
const EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';
|
|
24
|
-
const RENDERBUFFER_FORMATS = {
|
|
20
|
+
export const RENDERBUFFER_FORMATS = {
|
|
25
21
|
[GL.DEPTH_COMPONENT16]: {
|
|
26
22
|
bpp: 2
|
|
27
23
|
},
|
|
@@ -181,5 +177,4 @@ const RENDERBUFFER_FORMATS = {
|
|
|
181
177
|
bpp: 4
|
|
182
178
|
}
|
|
183
179
|
};
|
|
184
|
-
export default RENDERBUFFER_FORMATS;
|
|
185
180
|
//# sourceMappingURL=renderbuffer-formats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"renderbuffer-formats.js","names":["GL","isWebGL2","isRenderbufferFormatSupported","gl","format","info","RENDERBUFFER_FORMATS","ext","Boolean","getExtension","gl2","getRenderbufferFormatBytesPerPixel","bpp","EXT_FLOAT_WEBGL2","DEPTH_COMPONENT16","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","STENCIL_INDEX8","DEPTH_STENCIL","DEPTH24_STENCIL8","DEPTH32F_STENCIL8","RGBA4","RGB565","RGB5_A1","R8","R8UI","R8I","R16UI","R16I","R32UI","R32I","RG8","RG8UI","RG8I","RG16UI","RG16I","RG32UI","RG32I","RGB8","RGBA8","RGB10_A2","RGBA8UI","RGBA8I","RGB10_A2UI","RGBA16UI","RGBA16I","RGBA32I","RGBA32UI","R16F","RG16F","RGBA16F","R32F","RG32F","RGBA32F","R11F_G11F_B10F"],"sources":["../../../src/adapter/converters/renderbuffer-formats.ts"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\nexport function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: GL): boolean {\n const info = RENDERBUFFER_FORMATS[format];\n // Unknown format\n if (!info) {\n return false;\n }\n if (info.ext) {\n return Boolean(gl.getExtension(info.ext));\n }\n if (info.gl2) {\n return isWebGL2(gl);\n }\n return true;\n}\n\nexport function getRenderbufferFormatBytesPerPixel(format: GL): number {\n return RENDERBUFFER_FORMATS[format].bpp;\n}\n\n// Define local extension strings to optimize minification\nconst EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';\n\n/**\n * @param bpp \"bytes per pixel\", used for memory usage calculations.\n * @param gl2 requires WebGL2\n * @param ext requires extension\n */\ntype RenderbufferFormat = {\n bpp: number;\n gl2?: boolean;\n ext?: string;\n};\n\nexport const RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {\n [GL.DEPTH_COMPONENT16]: {bpp: 2}, // 16 depth bits.\n [GL.DEPTH_COMPONENT24]: {gl2: true, bpp: 3},\n [GL.DEPTH_COMPONENT32F]: {gl2: true, bpp: 4},\n\n [GL.STENCIL_INDEX8]: {bpp: 1}, // 8 stencil bits.\n\n [GL.DEPTH_STENCIL]: {bpp: 4},\n [GL.DEPTH24_STENCIL8]: {gl2: true, bpp: 4},\n [GL.DEPTH32F_STENCIL8]: {gl2: true, bpp: 5},\n\n // When using a WebGL 1 context, color renderbuffer formats are limited\n [GL.RGBA4]: {bpp: 2},\n [GL.RGB565]: {bpp: 2},\n [GL.RGB5_A1]: {bpp: 2},\n\n // When using a WebGL 2 context, the following values are available additionally:\n [GL.R8]: {gl2: true, bpp: 1},\n [GL.R8UI]: {gl2: true, bpp: 1},\n [GL.R8I]: {gl2: true, bpp: 1},\n [GL.R16UI]: {gl2: true, bpp: 2},\n [GL.R16I]: {gl2: true, bpp: 2},\n [GL.R32UI]: {gl2: true, bpp: 4},\n [GL.R32I]: {gl2: true, bpp: 4},\n [GL.RG8]: {gl2: true, bpp: 2},\n [GL.RG8UI]: {gl2: true, bpp: 2},\n [GL.RG8I]: {gl2: true, bpp: 2},\n [GL.RG16UI]: {gl2: true, bpp: 4},\n [GL.RG16I]: {gl2: true, bpp: 4},\n [GL.RG32UI]: {gl2: true, bpp: 8},\n [GL.RG32I]: {gl2: true, bpp: 8},\n [GL.RGB8]: {gl2: true, bpp: 3},\n [GL.RGBA8]: {gl2: true, bpp: 4},\n // [GL.SRGB8_ALPHA8]: {gl2: true, gl1: SRGB}, // When using the EXT_sRGB WebGL1 extension\n [GL.RGB10_A2]: {gl2: true, bpp: 4},\n [GL.RGBA8UI]: {gl2: true, bpp: 4},\n [GL.RGBA8I]: {gl2: true, bpp: 4},\n [GL.RGB10_A2UI]: {gl2: true, bpp: 4},\n [GL.RGBA16UI]: {gl2: true, bpp: 8},\n [GL.RGBA16I]: {gl2: true, bpp: 8},\n [GL.RGBA32I]: {gl2: true, bpp: 16},\n [GL.RGBA32UI]: {gl2: true, bpp: 16},\n\n // When using a WebGL 2 context and the EXT_color_buffer_float WebGL2 extension\n [GL.R16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 2},\n [GL.RG16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RGBA16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n [GL.R32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RG32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n // TODO - can't get WEBGL_color_buffer_float to work on renderbuffers\n [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 16},\n // [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},\n [GL.R11F_G11F_B10F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4}\n};\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,oBAAoB;AAAC,SAC5BC,QAAQ;AAEhB,OAAO,SAASC,6BAA6BA,CAACC,EAAyB,EAAEC,MAAU,EAAW;EAC5F,MAAMC,IAAI,GAAGC,oBAAoB,CAACF,MAAM,CAAC;EAEzC,IAAI,CAACC,IAAI,EAAE;IACT,OAAO,KAAK;EACd;EACA,IAAIA,IAAI,CAACE,GAAG,EAAE;IACZ,OAAOC,OAAO,CAACL,EAAE,CAACM,YAAY,CAACJ,IAAI,CAACE,GAAG,CAAC,CAAC;EAC3C;EACA,IAAIF,IAAI,CAACK,GAAG,EAAE;IACZ,OAAOT,QAAQ,CAACE,EAAE,CAAC;EACrB;EACA,OAAO,IAAI;AACb;AAEA,OAAO,SAASQ,kCAAkCA,CAACP,MAAU,EAAU;EACrE,OAAOE,oBAAoB,CAACF,MAAM,CAAC,CAACQ,GAAG;AACzC;AAGA,MAAMC,gBAAgB,GAAG,wBAAwB;AAajD,OAAO,MAAMP,oBAAwD,GAAG;EACtE,CAACN,EAAE,CAACc,iBAAiB,GAAG;IAACF,GAAG,EAAE;EAAC,CAAC;EAChC,CAACZ,EAAE,CAACe,iBAAiB,GAAG;IAACL,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC3C,CAACZ,EAAE,CAACgB,kBAAkB,GAAG;IAACN,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAE5C,CAACZ,EAAE,CAACiB,cAAc,GAAG;IAACL,GAAG,EAAE;EAAC,CAAC;EAE7B,CAACZ,EAAE,CAACkB,aAAa,GAAG;IAACN,GAAG,EAAE;EAAC,CAAC;EAC5B,CAACZ,EAAE,CAACmB,gBAAgB,GAAG;IAACT,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC1C,CAACZ,EAAE,CAACoB,iBAAiB,GAAG;IAACV,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAG3C,CAACZ,EAAE,CAACqB,KAAK,GAAG;IAACT,GAAG,EAAE;EAAC,CAAC;EACpB,CAACZ,EAAE,CAACsB,MAAM,GAAG;IAACV,GAAG,EAAE;EAAC,CAAC;EACrB,CAACZ,EAAE,CAACuB,OAAO,GAAG;IAACX,GAAG,EAAE;EAAC,CAAC;EAGtB,CAACZ,EAAE,CAACwB,EAAE,GAAG;IAACd,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC5B,CAACZ,EAAE,CAACyB,IAAI,GAAG;IAACf,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC9B,CAACZ,EAAE,CAAC0B,GAAG,GAAG;IAAChB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC7B,CAACZ,EAAE,CAAC2B,KAAK,GAAG;IAACjB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC/B,CAACZ,EAAE,CAAC4B,IAAI,GAAG;IAAClB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC9B,CAACZ,EAAE,CAAC6B,KAAK,GAAG;IAACnB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC/B,CAACZ,EAAE,CAAC8B,IAAI,GAAG;IAACpB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC9B,CAACZ,EAAE,CAAC+B,GAAG,GAAG;IAACrB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC7B,CAACZ,EAAE,CAACgC,KAAK,GAAG;IAACtB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC/B,CAACZ,EAAE,CAACiC,IAAI,GAAG;IAACvB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC9B,CAACZ,EAAE,CAACkC,MAAM,GAAG;IAACxB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAChC,CAACZ,EAAE,CAACmC,KAAK,GAAG;IAACzB,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC/B,CAACZ,EAAE,CAACoC,MAAM,GAAG;IAAC1B,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAChC,CAACZ,EAAE,CAACqC,KAAK,GAAG;IAAC3B,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC/B,CAACZ,EAAE,CAACsC,IAAI,GAAG;IAAC5B,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAC9B,CAACZ,EAAE,CAACuC,KAAK,GAAG;IAAC7B,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAE/B,CAACZ,EAAE,CAACwC,QAAQ,GAAG;IAAC9B,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAClC,CAACZ,EAAE,CAACyC,OAAO,GAAG;IAAC/B,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EACjC,CAACZ,EAAE,CAAC0C,MAAM,GAAG;IAAChC,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAChC,CAACZ,EAAE,CAAC2C,UAAU,GAAG;IAACjC,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EACpC,CAACZ,EAAE,CAAC4C,QAAQ,GAAG;IAAClC,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EAClC,CAACZ,EAAE,CAAC6C,OAAO,GAAG;IAACnC,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAC,CAAC;EACjC,CAACZ,EAAE,CAAC8C,OAAO,GAAG;IAACpC,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAE,CAAC;EAClC,CAACZ,EAAE,CAAC+C,QAAQ,GAAG;IAACrC,GAAG,EAAE,IAAI;IAAEE,GAAG,EAAE;EAAE,CAAC;EAGnC,CAACZ,EAAE,CAACgD,IAAI,GAAG;IAACzC,GAAG,EAAEM,gBAAgB;IAAED,GAAG,EAAE;EAAC,CAAC;EAC1C,CAACZ,EAAE,CAACiD,KAAK,GAAG;IAAC1C,GAAG,EAAEM,gBAAgB;IAAED,GAAG,EAAE;EAAC,CAAC;EAC3C,CAACZ,EAAE,CAACkD,OAAO,GAAG;IAAC3C,GAAG,EAAEM,gBAAgB;IAAED,GAAG,EAAE;EAAC,CAAC;EAC7C,CAACZ,EAAE,CAACmD,IAAI,GAAG;IAAC5C,GAAG,EAAEM,gBAAgB;IAAED,GAAG,EAAE;EAAC,CAAC;EAC1C,CAACZ,EAAE,CAACoD,KAAK,GAAG;IAAC7C,GAAG,EAAEM,gBAAgB;IAAED,GAAG,EAAE;EAAC,CAAC;EAE3C,CAACZ,EAAE,CAACqD,OAAO,GAAG;IAAC9C,GAAG,EAAEM,gBAAgB;IAAED,GAAG,EAAE;EAAE,CAAC;EAE9C,CAACZ,EAAE,CAACsD,cAAc,GAAG;IAAC/C,GAAG,EAAEM,gBAAgB;IAAED,GAAG,EAAE;EAAC;AACrD,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { SamplerParameters } from '@luma.gl/api';
|
|
2
|
-
import {
|
|
2
|
+
import { GLSamplerParameters } from '../../types/webgl';
|
|
3
3
|
/**
|
|
4
4
|
* Convert WebGPU-style sampler props to WebGL
|
|
5
5
|
* @param props
|
|
6
6
|
* @returns
|
|
7
7
|
*/
|
|
8
|
-
export declare function convertSamplerParametersToWebGL(props: SamplerParameters):
|
|
8
|
+
export declare function convertSamplerParametersToWebGL(props: SamplerParameters): GLSamplerParameters;
|
|
9
9
|
/**
|
|
10
10
|
* Convert WebGL-style sampler props to WebGPU
|
|
11
11
|
* @param props
|
|
12
12
|
* @returns
|
|
13
13
|
*/
|
|
14
|
-
export declare function convertToSamplerParameters(params:
|
|
14
|
+
export declare function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters;
|
|
15
15
|
/**
|
|
16
16
|
* Override sampler settings that are not supported by Non-Power-of-Two textures in WebGL1.
|
|
17
17
|
*/
|
|
18
|
-
export declare function updateSamplerParametersForNPOT(parameters:
|
|
18
|
+
export declare function updateSamplerParametersForNPOT(parameters: GLSamplerParameters): GLSamplerParameters;
|
|
19
19
|
//# sourceMappingURL=sampler-parameters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampler-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/sampler-parameters.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"sampler-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/sampler-parameters.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAKtD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,CAoC7F;AAkCD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,CAqCzF;AA+CD;;EAEE;AACF,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,mBAAmB,GAAG,mBAAmB,CAUnG"}
|
|
@@ -1,206 +1,170 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import { convertCompareFunction, convertToCompareFunction } from
|
|
2
|
+
import { convertCompareFunction, convertToCompareFunction } from "./device-parameters.js";
|
|
3
3
|
export function convertSamplerParametersToWebGL(props) {
|
|
4
4
|
const params = {};
|
|
5
|
-
|
|
6
5
|
if (props.addressModeU) {
|
|
7
6
|
params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);
|
|
8
7
|
}
|
|
9
|
-
|
|
10
8
|
if (props.addressModeV) {
|
|
11
9
|
params[GL.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);
|
|
12
10
|
}
|
|
13
|
-
|
|
14
11
|
if (props.addressModeW) {
|
|
15
12
|
params[GL.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
if (props.magFilter) {
|
|
19
15
|
params[GL.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);
|
|
20
16
|
}
|
|
21
|
-
|
|
22
17
|
if (props.minFilter || props.mipmapFilter) {
|
|
23
18
|
params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);
|
|
24
19
|
}
|
|
25
|
-
|
|
26
20
|
if (props.lodMinClamp !== undefined) {
|
|
27
21
|
params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;
|
|
28
22
|
}
|
|
29
|
-
|
|
30
23
|
if (props.lodMaxClamp !== undefined) {
|
|
31
24
|
params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;
|
|
32
25
|
}
|
|
33
|
-
|
|
34
|
-
if (props.compare) {
|
|
26
|
+
if (props.type === 'comparison-sampler') {
|
|
35
27
|
params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;
|
|
28
|
+
}
|
|
29
|
+
if (props.compare) {
|
|
36
30
|
params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);
|
|
37
31
|
}
|
|
38
|
-
|
|
39
32
|
if (props.maxAnisotropy) {
|
|
40
|
-
|
|
33
|
+
params[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;
|
|
41
34
|
}
|
|
42
|
-
|
|
43
35
|
return params;
|
|
44
36
|
}
|
|
45
|
-
|
|
46
37
|
function convertAddressMode(addressMode) {
|
|
47
38
|
switch (addressMode) {
|
|
48
39
|
case 'clamp-to-edge':
|
|
49
40
|
return GL.CLAMP_TO_EDGE;
|
|
50
|
-
|
|
51
41
|
case 'repeat':
|
|
52
42
|
return GL.REPEAT;
|
|
53
|
-
|
|
54
43
|
case 'mirror-repeat':
|
|
55
44
|
return GL.MIRRORED_REPEAT;
|
|
56
45
|
}
|
|
57
46
|
}
|
|
58
|
-
|
|
59
47
|
function convertMaxFilterMode(maxFilter) {
|
|
60
48
|
switch (maxFilter) {
|
|
61
49
|
case 'nearest':
|
|
62
50
|
return GL.NEAREST;
|
|
63
|
-
|
|
64
51
|
case 'linear':
|
|
65
52
|
return GL.LINEAR;
|
|
66
53
|
}
|
|
67
54
|
}
|
|
68
|
-
|
|
69
55
|
function convertMinFilterMode(minFilter, mipmapFilter) {
|
|
70
56
|
if (!mipmapFilter) {
|
|
71
57
|
return convertMaxFilterMode(minFilter);
|
|
72
58
|
}
|
|
73
|
-
|
|
74
59
|
switch (minFilter) {
|
|
75
60
|
case 'nearest':
|
|
76
61
|
return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;
|
|
77
|
-
|
|
78
62
|
case 'linear':
|
|
79
63
|
return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;
|
|
80
64
|
}
|
|
81
65
|
}
|
|
82
|
-
|
|
83
66
|
export function convertToSamplerParameters(params) {
|
|
84
67
|
const props = {};
|
|
85
|
-
|
|
86
68
|
if (params[GL.TEXTURE_WRAP_S]) {
|
|
87
69
|
props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);
|
|
88
70
|
}
|
|
89
|
-
|
|
90
71
|
if (params[GL.TEXTURE_WRAP_T]) {
|
|
91
72
|
props.addressModeV = convertToAddressMode(params[GL.TEXTURE_WRAP_T]);
|
|
92
73
|
}
|
|
93
|
-
|
|
94
74
|
if (params[GL.TEXTURE_WRAP_R]) {
|
|
95
75
|
props.addressModeW = convertToAddressMode(params[GL.TEXTURE_WRAP_R]);
|
|
96
76
|
}
|
|
97
|
-
|
|
98
77
|
if (params[GL.TEXTURE_MAG_FILTER]) {
|
|
99
78
|
props.magFilter = convertToMaxFilterMode(params[GL.TEXTURE_MAG_FILTER]);
|
|
100
79
|
}
|
|
101
|
-
|
|
102
80
|
if (params[GL.TEXTURE_MIN_FILTER]) {
|
|
103
81
|
props.minFilter = convertToMinFilterMode(params[GL.TEXTURE_MIN_FILTER]);
|
|
104
82
|
}
|
|
105
|
-
|
|
106
83
|
if (params[GL.TEXTURE_MIN_FILTER]) {
|
|
107
84
|
props.mipmapFilter = convertToMipmapFilterMode(params[GL.TEXTURE_MIN_FILTER]);
|
|
108
85
|
}
|
|
109
|
-
|
|
110
86
|
if (params[GL.TEXTURE_MIN_LOD]) {
|
|
111
87
|
props.lodMinClamp = params[GL.TEXTURE_MIN_LOD];
|
|
112
88
|
}
|
|
113
|
-
|
|
114
89
|
if (params[GL.TEXTURE_MAX_LOD]) {
|
|
115
90
|
props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];
|
|
116
91
|
}
|
|
117
|
-
|
|
118
|
-
|
|
92
|
+
if (params[GL.TEXTURE_COMPARE_MODE]) {
|
|
93
|
+
props.type = params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : 'color-sampler';
|
|
94
|
+
}
|
|
95
|
+
if (params[GL.TEXTURE_COMPARE_FUNC]) {
|
|
119
96
|
props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);
|
|
120
97
|
}
|
|
121
|
-
|
|
122
98
|
if (params[GL.TEXTURE_MAX_ANISOTROPY_EXT]) {
|
|
123
99
|
props.maxAnisotropy = params[GL.TEXTURE_MAX_ANISOTROPY_EXT];
|
|
124
100
|
}
|
|
125
|
-
|
|
126
101
|
return props;
|
|
127
102
|
}
|
|
128
|
-
|
|
129
103
|
function convertToAddressMode(addressMode) {
|
|
130
104
|
switch (addressMode) {
|
|
131
105
|
case GL.CLAMP_TO_EDGE:
|
|
132
106
|
return 'clamp-to-edge';
|
|
133
|
-
|
|
134
107
|
case GL.REPEAT:
|
|
135
108
|
return 'repeat';
|
|
136
|
-
|
|
137
109
|
case GL.MIRRORED_REPEAT:
|
|
138
110
|
return 'mirror-repeat';
|
|
111
|
+
default:
|
|
112
|
+
throw new Error('address');
|
|
139
113
|
}
|
|
140
114
|
}
|
|
141
|
-
|
|
142
115
|
function convertToMaxFilterMode(filterMode) {
|
|
143
116
|
switch (filterMode) {
|
|
144
117
|
case GL.NEAREST:
|
|
145
118
|
return 'nearest';
|
|
146
|
-
|
|
147
119
|
case GL.LINEAR:
|
|
148
120
|
return 'linear';
|
|
121
|
+
default:
|
|
122
|
+
throw new Error('maxfilter');
|
|
149
123
|
}
|
|
150
124
|
}
|
|
151
|
-
|
|
152
125
|
function convertToMinFilterMode(filterMode) {
|
|
153
126
|
switch (filterMode) {
|
|
154
127
|
case GL.NEAREST:
|
|
155
128
|
return 'nearest';
|
|
156
|
-
|
|
157
129
|
case GL.LINEAR:
|
|
158
130
|
return 'linear';
|
|
159
|
-
|
|
160
131
|
case GL.NEAREST_MIPMAP_NEAREST:
|
|
161
132
|
return 'nearest';
|
|
162
|
-
|
|
163
133
|
case GL.LINEAR_MIPMAP_NEAREST:
|
|
164
134
|
return 'linear';
|
|
165
|
-
|
|
166
135
|
case GL.NEAREST_MIPMAP_LINEAR:
|
|
167
136
|
return 'nearest';
|
|
168
|
-
|
|
169
137
|
case GL.LINEAR_MIPMAP_LINEAR:
|
|
170
138
|
return 'linear';
|
|
139
|
+
default:
|
|
140
|
+
throw new Error('minfilter');
|
|
171
141
|
}
|
|
172
142
|
}
|
|
173
|
-
|
|
174
143
|
function convertToMipmapFilterMode(filterMode) {
|
|
175
144
|
switch (filterMode) {
|
|
176
145
|
case GL.NEAREST:
|
|
177
146
|
return 'nearest';
|
|
178
|
-
|
|
179
147
|
case GL.LINEAR:
|
|
180
148
|
return 'linear';
|
|
181
|
-
|
|
182
149
|
case GL.NEAREST_MIPMAP_NEAREST:
|
|
183
150
|
return 'nearest';
|
|
184
|
-
|
|
185
151
|
case GL.LINEAR_MIPMAP_NEAREST:
|
|
186
152
|
return 'nearest';
|
|
187
|
-
|
|
188
153
|
case GL.NEAREST_MIPMAP_LINEAR:
|
|
189
154
|
return 'linear';
|
|
190
|
-
|
|
191
155
|
case GL.LINEAR_MIPMAP_LINEAR:
|
|
192
156
|
return 'linear';
|
|
157
|
+
default:
|
|
158
|
+
throw new Error('mipmap');
|
|
193
159
|
}
|
|
194
160
|
}
|
|
195
|
-
|
|
196
161
|
export function updateSamplerParametersForNPOT(parameters) {
|
|
197
|
-
const newParameters = {
|
|
162
|
+
const newParameters = {
|
|
163
|
+
...parameters
|
|
198
164
|
};
|
|
199
|
-
|
|
200
165
|
if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {
|
|
201
166
|
newParameters[GL.TEXTURE_MIN_FILTER] = GL.LINEAR;
|
|
202
167
|
}
|
|
203
|
-
|
|
204
168
|
newParameters[GL.TEXTURE_WRAP_S] = GL.CLAMP_TO_EDGE;
|
|
205
169
|
newParameters[GL.TEXTURE_WRAP_T] = GL.CLAMP_TO_EDGE;
|
|
206
170
|
return newParameters;
|