@luma.gl/webgl 9.0.0-alpha.14 → 9.0.0-alpha.16
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.js +199 -136
- package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js +62 -176
- package/dist/adapter/converters/sampler-parameters.js +149 -206
- package/dist/adapter/converters/texture-formats.d.ts +2 -2
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +437 -890
- package/dist/adapter/converters/vertex-formats.js +15 -33
- package/dist/adapter/device-helpers/device-features.js +119 -100
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +88 -86
- package/dist/adapter/device-helpers/get-device-info.js +42 -43
- package/dist/adapter/device-helpers/is-old-ie.js +9 -6
- package/dist/adapter/helpers/attribute-utils.js +50 -74
- 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 +27 -0
- package/dist/adapter/helpers/get-shader-layout.js +307 -296
- 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 +32 -33
- package/dist/adapter/helpers/set-uniform.js +67 -110
- package/dist/adapter/helpers/uniforms.js +80 -85
- package/dist/adapter/objects/constants-to-keys.js +33 -33
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +67 -86
- package/dist/adapter/objects/webgl-resource.js +213 -205
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +74 -76
- package/dist/adapter/resources/webgl-buffer.js +150 -147
- package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +39 -55
- package/dist/adapter/resources/webgl-command-encoder.js +25 -49
- package/dist/adapter/resources/webgl-external-texture.js +91 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +231 -258
- package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +8 -18
- package/dist/adapter/resources/webgl-render-pipeline.js +316 -378
- package/dist/adapter/resources/webgl-sampler.js +42 -47
- package/dist/adapter/resources/webgl-shader.d.ts +1 -2
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +58 -68
- package/dist/adapter/resources/webgl-texture.d.ts +5 -5
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +661 -815
- package/dist/adapter/webgl-canvas-context.js +55 -49
- package/dist/adapter/webgl-device.js +288 -338
- package/dist/bundle.js +1 -2
- package/dist/classic/accessor.js +120 -127
- package/dist/classic/buffer.d.ts +1 -1
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +325 -356
- 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 +91 -101
- package/dist/context/context/create-browser-context.d.ts +1 -2
- package/dist/context/context/create-browser-context.d.ts.map +1 -1
- package/dist/context/context/create-browser-context.js +61 -52
- package/dist/context/context/create-headless-context.d.ts +1 -1
- package/dist/context/context/create-headless-context.d.ts.map +1 -1
- package/dist/context/context/create-headless-context.js +26 -33
- package/dist/context/context/webgl-checks.js +25 -20
- 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 +53 -62
- 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 +106 -93
- package/dist/context/parameters/unified-parameter-api.js +91 -55
- package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +462 -423
- package/dist/context/polyfill/context-data.js +16 -12
- package/dist/context/polyfill/get-parameter-polyfill.js +91 -76
- package/dist/context/polyfill/polyfill-context.js +75 -80
- package/dist/context/polyfill/polyfill-table.js +133 -139
- package/dist/context/polyfill/polyfill-vertex-array-object.js +255 -297
- package/dist/context/state-tracker/deep-array-equal.js +16 -18
- package/dist/context/state-tracker/track-context-state.js +183 -161
- package/dist/context/state-tracker/with-parameters.js +43 -35
- package/dist/dist.min.js +1 -0
- package/dist/es5/adapter/converters/device-parameters.js +3 -38
- package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +2 -14
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +2 -65
- package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/texture-formats.js +9 -81
- package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -12
- package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-features.js +6 -40
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -10
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -10
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +3 -25
- package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/es5/adapter/helpers/get-shader-info.js +31 -0
- package/dist/es5/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/es5/adapter/helpers/get-shader-layout.js +23 -101
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +6 -24
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -33
- package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/es5/adapter/helpers/uniforms.js +13 -37
- package/dist/es5/adapter/helpers/uniforms.js.map +1 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +1 -12
- package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +5 -33
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-resource.js +6 -60
- package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +7 -35
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +20 -66
- package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +6 -32
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -18
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +10 -82
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +2 -19
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +24 -133
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +2 -28
- package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-shader.js +13 -52
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-texture.js +137 -291
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -24
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/es5/adapter/webgl-device.js +40 -127
- package/dist/es5/adapter/webgl-device.js.map +1 -1
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classic/accessor.js +1 -31
- package/dist/es5/classic/accessor.js.map +1 -1
- package/dist/es5/classic/buffer.js +32 -102
- package/dist/es5/classic/buffer.js.map +1 -1
- package/dist/es5/classic/typed-array-utils.js +10 -37
- package/dist/es5/classic/typed-array-utils.js.map +1 -1
- package/dist/es5/context/context/create-browser-context.js +4 -21
- package/dist/es5/context/context/create-browser-context.js.map +1 -1
- package/dist/es5/context/context/create-headless-context.js +8 -21
- package/dist/es5/context/context/create-headless-context.js.map +1 -1
- package/dist/es5/context/context/webgl-checks.js +4 -14
- package/dist/es5/context/context/webgl-checks.js.map +1 -1
- package/dist/es5/context/debug/spector.js +20 -54
- package/dist/es5/context/debug/spector.js.map +1 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +19 -65
- package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +3 -28
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +18 -65
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/es5/context/polyfill/context-data.js +0 -3
- package/dist/es5/context/polyfill/context-data.js.map +1 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -12
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-context.js +8 -33
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-table.js +3 -27
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -5
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/es5/context/state-tracker/track-context-state.js +10 -53
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/context/state-tracker/with-parameters.js +1 -13
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/index.js +72 -99
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +0 -3
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/types/webgl.js +0 -1
- package/dist/es5/types/webgl.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -20
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -4
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +2 -57
- package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/esm/adapter/converters/texture-formats.js +8 -52
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -9
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-features.js +2 -19
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -3
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -6
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +2 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -17
- package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/esm/adapter/helpers/get-shader-info.js +25 -0
- package/dist/esm/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js +2 -48
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -7
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -30
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -10
- package/dist/esm/adapter/helpers/uniforms.js.map +1 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -7
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +2 -18
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-resource.js +10 -57
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +5 -15
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +12 -40
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +2 -17
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -12
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -60
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +1 -8
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -89
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -12
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-shader.js +2 -16
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-texture.js +36 -154
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -14
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/esm/adapter/webgl-device.js +19 -89
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classic/accessor.js +10 -34
- package/dist/esm/classic/accessor.js.map +1 -1
- package/dist/esm/classic/buffer.js +15 -71
- package/dist/esm/classic/buffer.js.map +1 -1
- package/dist/esm/classic/typed-array-utils.js +0 -20
- package/dist/esm/classic/typed-array-utils.js.map +1 -1
- package/dist/esm/context/context/create-browser-context.js +6 -14
- package/dist/esm/context/context/create-browser-context.js.map +1 -1
- package/dist/esm/context/context/create-headless-context.js +2 -6
- package/dist/esm/context/context/create-headless-context.js.map +1 -1
- package/dist/esm/context/context/webgl-checks.js +0 -3
- package/dist/esm/context/context/webgl-checks.js.map +1 -1
- package/dist/esm/context/debug/spector.js +2 -14
- package/dist/esm/context/debug/spector.js.map +1 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +4 -22
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +2 -13
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -19
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/context-data.js +0 -2
- package/dist/esm/context/polyfill/context-data.js.map +1 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -5
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +14 -21
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -23
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -4
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +11 -45
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -6
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/webgl.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/index.js +39 -25
- package/dist/init.js +1 -2
- package/dist/types/webgl.d.ts +20 -20
- package/dist/types/webgl.d.ts.map +1 -1
- package/dist/types/webgl.js +0 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/package.json +8 -8
- package/src/adapter/helpers/get-shader-info.ts +37 -0
- package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
- package/src/adapter/resources/webgl-render-pass.ts +1 -1
- package/src/adapter/resources/webgl-shader.ts +2 -2
- package/src/adapter/webgl-device.ts +1 -1
- package/src/context/debug/webgl-developer-tools.ts +0 -1
- package/src/types/webgl.ts +4 -4
- package/dist/adapter/converters/device-parameters.js.map +0 -1
- package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/adapter/converters/texture-formats.js.map +0 -1
- package/dist/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/adapter/helpers/uniforms.js.map +0 -1
- package/dist/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/adapter/webgl-device.js.map +0 -1
- package/dist/bundle.js.map +0 -1
- package/dist/classic/accessor.js.map +0 -1
- package/dist/classic/buffer.js.map +0 -1
- package/dist/classic/typed-array-utils.js.map +0 -1
- package/dist/context/context/create-browser-context.js.map +0 -1
- package/dist/context/context/create-headless-context.js.map +0 -1
- package/dist/context/context/webgl-checks.js.map +0 -1
- package/dist/context/debug/spector.js.map +0 -1
- package/dist/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/context/polyfill/context-data.js.map +0 -1
- package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init.js.map +0 -1
- package/dist/types/webgl.js.map +0 -1
- package/dist/types.js.map +0 -1
|
@@ -1,35 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.withGLParameters = withGLParameters;
|
|
9
|
-
exports.withDeviceParameters = withDeviceParameters;
|
|
10
|
-
exports.setDeviceParameters = setDeviceParameters;
|
|
11
7
|
exports.convertCompareFunction = convertCompareFunction;
|
|
12
8
|
exports.convertToCompareFunction = convertToCompareFunction;
|
|
13
|
-
|
|
9
|
+
exports.setDeviceParameters = setDeviceParameters;
|
|
10
|
+
exports.withDeviceParameters = withDeviceParameters;
|
|
11
|
+
exports.withGLParameters = withGLParameters;
|
|
14
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
13
|
var _api = require("@luma.gl/api");
|
|
17
|
-
|
|
18
14
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
19
|
-
|
|
20
15
|
var _trackContextState = require("../../context/state-tracker/track-context-state");
|
|
21
|
-
|
|
22
16
|
var _unifiedParameterApi = require("../../context/parameters/unified-parameter-api");
|
|
23
|
-
|
|
24
17
|
var _webglDevice = _interopRequireDefault(require("../webgl-device"));
|
|
25
|
-
|
|
26
18
|
function withGLParameters(device, parameters, func) {
|
|
27
19
|
if ((0, _api.isObjectEmpty)(parameters)) {
|
|
28
20
|
return func(device);
|
|
29
21
|
}
|
|
30
|
-
|
|
31
22
|
(0, _trackContextState.pushContextState)(device.gl);
|
|
32
|
-
|
|
33
23
|
try {
|
|
34
24
|
(0, _unifiedParameterApi.setParameters)(device, parameters);
|
|
35
25
|
return func(device);
|
|
@@ -37,14 +27,11 @@ function withGLParameters(device, parameters, func) {
|
|
|
37
27
|
(0, _trackContextState.popContextState)(device.gl);
|
|
38
28
|
}
|
|
39
29
|
}
|
|
40
|
-
|
|
41
30
|
function withDeviceParameters(device, parameters, func) {
|
|
42
31
|
if ((0, _api.isObjectEmpty)(parameters)) {
|
|
43
32
|
return func(device);
|
|
44
33
|
}
|
|
45
|
-
|
|
46
34
|
(0, _trackContextState.pushContextState)(device.gl);
|
|
47
|
-
|
|
48
35
|
try {
|
|
49
36
|
setDeviceParameters(device, parameters);
|
|
50
37
|
return func(device);
|
|
@@ -52,69 +39,55 @@ function withDeviceParameters(device, parameters, func) {
|
|
|
52
39
|
(0, _trackContextState.popContextState)(device.gl);
|
|
53
40
|
}
|
|
54
41
|
}
|
|
55
|
-
|
|
56
42
|
function setDeviceParameters(device, parameters) {
|
|
57
43
|
var webglDevice = _webglDevice.default.attach(device);
|
|
58
|
-
|
|
59
44
|
var gl = webglDevice.gl;
|
|
60
|
-
|
|
61
45
|
if (parameters.cullMode) {
|
|
62
46
|
switch (parameters.cullMode) {
|
|
63
47
|
case 'none':
|
|
64
48
|
gl.disable(_constants.default.CULL_FACE);
|
|
65
49
|
break;
|
|
66
|
-
|
|
67
50
|
case 'front':
|
|
68
51
|
gl.enable(_constants.default.CULL_FACE);
|
|
69
52
|
gl.cullFace(_constants.default.FRONT);
|
|
70
53
|
break;
|
|
71
|
-
|
|
72
54
|
case 'back':
|
|
73
55
|
gl.enable(_constants.default.CULL_FACE);
|
|
74
56
|
gl.cullFace(_constants.default.BACK);
|
|
75
57
|
break;
|
|
76
58
|
}
|
|
77
59
|
}
|
|
78
|
-
|
|
79
60
|
if (parameters.frontFace) {
|
|
80
61
|
gl.frontFace(map('frontFace', parameters.frontFace, {
|
|
81
62
|
ccw: _constants.default.CCW,
|
|
82
63
|
cw: _constants.default.CW
|
|
83
64
|
}));
|
|
84
65
|
}
|
|
85
|
-
|
|
86
66
|
if (parameters.depthBias !== undefined) {
|
|
87
67
|
gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);
|
|
88
68
|
}
|
|
89
|
-
|
|
90
69
|
if (parameters.depthWriteEnabled !== undefined) {
|
|
91
70
|
gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
|
|
92
71
|
}
|
|
93
|
-
|
|
94
72
|
if (parameters.depthCompare) {
|
|
95
73
|
parameters.depthCompare !== 'always' ? gl.enable(_constants.default.DEPTH_TEST) : gl.disable(_constants.default.DEPTH_TEST);
|
|
96
74
|
gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
|
|
97
75
|
}
|
|
98
|
-
|
|
99
76
|
if (parameters.stencilWriteMask) {
|
|
100
77
|
var mask = parameters.stencilWriteMask;
|
|
101
78
|
gl.stencilMaskSeparate(_constants.default.FRONT, mask);
|
|
102
79
|
gl.stencilMaskSeparate(_constants.default.BACK, mask);
|
|
103
80
|
}
|
|
104
|
-
|
|
105
81
|
if (parameters.stencilReadMask) {
|
|
106
82
|
_api.log.warn('stencilReadMask not supported under WebGL');
|
|
107
83
|
}
|
|
108
|
-
|
|
109
84
|
if (parameters.stencilCompare) {
|
|
110
85
|
var _mask = parameters.stencilReadMask || 0xffffffff;
|
|
111
|
-
|
|
112
86
|
var glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);
|
|
113
87
|
parameters.stencilCompare !== 'always' ? gl.enable(_constants.default.STENCIL_TEST) : gl.disable(_constants.default.STENCIL_TEST);
|
|
114
88
|
gl.stencilFuncSeparate(_constants.default.FRONT, glValue, 0, _mask);
|
|
115
89
|
gl.stencilFuncSeparate(_constants.default.BACK, glValue, 0, _mask);
|
|
116
90
|
}
|
|
117
|
-
|
|
118
91
|
if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {
|
|
119
92
|
var dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);
|
|
120
93
|
var sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);
|
|
@@ -123,7 +96,6 @@ function setDeviceParameters(device, parameters) {
|
|
|
123
96
|
gl.stencilOpSeparate(_constants.default.BACK, sfail, dpfail, dppass);
|
|
124
97
|
}
|
|
125
98
|
}
|
|
126
|
-
|
|
127
99
|
function convertCompareFunction(parameter, value) {
|
|
128
100
|
return map(parameter, value, {
|
|
129
101
|
'never': _constants.default.NEVER,
|
|
@@ -136,13 +108,10 @@ function convertCompareFunction(parameter, value) {
|
|
|
136
108
|
'always': _constants.default.ALWAYS
|
|
137
109
|
});
|
|
138
110
|
}
|
|
139
|
-
|
|
140
111
|
function convertToCompareFunction(parameter, value) {
|
|
141
112
|
var _map;
|
|
142
|
-
|
|
143
113
|
return map(parameter, value, (_map = {}, (0, _defineProperty2.default)(_map, _constants.default.NEVER, 'never'), (0, _defineProperty2.default)(_map, _constants.default.LESS, 'less'), (0, _defineProperty2.default)(_map, _constants.default.EQUAL, 'equal'), (0, _defineProperty2.default)(_map, _constants.default.LEQUAL, 'less-equal'), (0, _defineProperty2.default)(_map, _constants.default.GREATER, 'greater'), (0, _defineProperty2.default)(_map, _constants.default.NOTEQUAL, 'not-equal'), (0, _defineProperty2.default)(_map, _constants.default.GEQUAL, 'greater-equal'), (0, _defineProperty2.default)(_map, _constants.default.ALWAYS, 'always'), _map));
|
|
144
114
|
}
|
|
145
|
-
|
|
146
115
|
function convertStencilOperation(parameter, value) {
|
|
147
116
|
return map(parameter, value, {
|
|
148
117
|
'keep': _constants.default.KEEP,
|
|
@@ -155,19 +124,15 @@ function convertStencilOperation(parameter, value) {
|
|
|
155
124
|
'decrement-wrap': _constants.default.DECR_WRAP
|
|
156
125
|
});
|
|
157
126
|
}
|
|
158
|
-
|
|
159
127
|
function message(parameter, value) {
|
|
160
128
|
return "Illegal parameter ".concat(value, " for ").concat(parameter);
|
|
161
129
|
}
|
|
162
|
-
|
|
163
130
|
function map(parameter, value, valueMap) {
|
|
164
131
|
if (!(value in valueMap)) {
|
|
165
132
|
throw new Error(message(parameter, value));
|
|
166
133
|
}
|
|
167
|
-
|
|
168
134
|
return valueMap[value];
|
|
169
135
|
}
|
|
170
|
-
|
|
171
136
|
function mapBoolean(parameter, value) {
|
|
172
137
|
return value;
|
|
173
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/converters/device-parameters.ts"],"names":["withGLParameters","device","parameters","func","gl","withDeviceParameters","setDeviceParameters","webglDevice","WebGLDevice","attach","cullMode","disable","GL","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","log","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","valueMap","Error"],"mappings":"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","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 * @deprecated use withDeviceParameters instead\n */\n export 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 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"],"file":"device-parameters.js"}
|
|
1
|
+
{"version":3,"file":"device-parameters.js","names":["_api","require","_constants","_interopRequireDefault","_trackContextState","_unifiedParameterApi","_webglDevice","withGLParameters","device","parameters","func","isObjectEmpty","pushContextState","gl","setParameters","popContextState","withDeviceParameters","setDeviceParameters","webglDevice","WebGLDevice","attach","cullMode","disable","GL","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","log","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","_map","_defineProperty2","default","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/**\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 */\n export 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 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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"}
|
|
@@ -1,44 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.isRenderbufferFormatSupported = isRenderbufferFormatSupported;
|
|
9
|
-
exports.getRenderbufferFormatBytesPerPixel = getRenderbufferFormatBytesPerPixel;
|
|
10
7
|
exports.default = void 0;
|
|
11
|
-
|
|
8
|
+
exports.getRenderbufferFormatBytesPerPixel = getRenderbufferFormatBytesPerPixel;
|
|
9
|
+
exports.isRenderbufferFormatSupported = isRenderbufferFormatSupported;
|
|
12
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
11
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
15
|
-
|
|
16
12
|
var _webglChecks = require("../../context/context/webgl-checks");
|
|
17
|
-
|
|
18
13
|
var _RENDERBUFFER_FORMATS;
|
|
19
|
-
|
|
20
14
|
function isRenderbufferFormatSupported(gl, format) {
|
|
21
15
|
var info = RENDERBUFFER_FORMATS[format];
|
|
22
|
-
|
|
23
16
|
if (!info) {
|
|
24
17
|
return false;
|
|
25
18
|
}
|
|
26
|
-
|
|
27
19
|
if (info.ext) {
|
|
28
20
|
return Boolean(gl.getExtension(info.ext));
|
|
29
21
|
}
|
|
30
|
-
|
|
31
22
|
if (info.gl2) {
|
|
32
23
|
return (0, _webglChecks.isWebGL2)(gl);
|
|
33
24
|
}
|
|
34
|
-
|
|
35
25
|
return true;
|
|
36
26
|
}
|
|
37
|
-
|
|
38
27
|
function getRenderbufferFormatBytesPerPixel(format) {
|
|
39
28
|
return RENDERBUFFER_FORMATS[format].bpp;
|
|
40
29
|
}
|
|
41
|
-
|
|
42
30
|
var EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';
|
|
43
31
|
var RENDERBUFFER_FORMATS = (_RENDERBUFFER_FORMATS = {}, (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.DEPTH_COMPONENT16, {
|
|
44
32
|
bpp: 2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"renderbuffer-formats.js","names":["_constants","_interopRequireDefault","require","_webglChecks","_RENDERBUFFER_FORMATS","isRenderbufferFormatSupported","gl","format","info","RENDERBUFFER_FORMATS","ext","Boolean","getExtension","gl2","isWebGL2","getRenderbufferFormatBytesPerPixel","bpp","EXT_FLOAT_WEBGL2","_defineProperty2","default","GL","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","_default","exports"],"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\nconst 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\nexport default RENDERBUFFER_FORMATS;\n"],"mappings":"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"}
|
|
@@ -1,243 +1,180 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.convertSamplerParametersToWebGL = convertSamplerParametersToWebGL;
|
|
9
8
|
exports.convertToSamplerParameters = convertToSamplerParameters;
|
|
10
9
|
exports.updateSamplerParametersForNPOT = updateSamplerParametersForNPOT;
|
|
11
|
-
|
|
12
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
11
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
15
|
-
|
|
16
12
|
var _deviceParameters = require("./device-parameters");
|
|
17
|
-
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
|
-
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
22
15
|
function convertSamplerParametersToWebGL(props) {
|
|
23
16
|
var params = {};
|
|
24
|
-
|
|
25
17
|
if (props.addressModeU) {
|
|
26
18
|
params[_constants.default.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);
|
|
27
19
|
}
|
|
28
|
-
|
|
29
20
|
if (props.addressModeV) {
|
|
30
21
|
params[_constants.default.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);
|
|
31
22
|
}
|
|
32
|
-
|
|
33
23
|
if (props.addressModeW) {
|
|
34
24
|
params[_constants.default.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);
|
|
35
25
|
}
|
|
36
|
-
|
|
37
26
|
if (props.magFilter) {
|
|
38
27
|
params[_constants.default.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);
|
|
39
28
|
}
|
|
40
|
-
|
|
41
29
|
if (props.minFilter || props.mipmapFilter) {
|
|
42
30
|
params[_constants.default.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);
|
|
43
31
|
}
|
|
44
|
-
|
|
45
32
|
if (props.lodMinClamp !== undefined) {
|
|
46
33
|
params[_constants.default.TEXTURE_MIN_LOD] = props.lodMinClamp;
|
|
47
34
|
}
|
|
48
|
-
|
|
49
35
|
if (props.lodMaxClamp !== undefined) {
|
|
50
36
|
params[_constants.default.TEXTURE_MAX_LOD] = props.lodMaxClamp;
|
|
51
37
|
}
|
|
52
|
-
|
|
53
38
|
if (props.type === 'comparison-sampler') {
|
|
54
39
|
params[_constants.default.TEXTURE_COMPARE_MODE] = _constants.default.COMPARE_REF_TO_TEXTURE;
|
|
55
40
|
}
|
|
56
|
-
|
|
57
41
|
if (props.compare) {
|
|
58
42
|
params[_constants.default.TEXTURE_COMPARE_FUNC] = (0, _deviceParameters.convertCompareFunction)('compare', props.compare);
|
|
59
43
|
}
|
|
60
|
-
|
|
61
44
|
if (props.maxAnisotropy) {
|
|
62
45
|
params[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;
|
|
63
46
|
}
|
|
64
|
-
|
|
65
47
|
return params;
|
|
66
48
|
}
|
|
67
|
-
|
|
68
49
|
function convertAddressMode(addressMode) {
|
|
69
50
|
switch (addressMode) {
|
|
70
51
|
case 'clamp-to-edge':
|
|
71
52
|
return _constants.default.CLAMP_TO_EDGE;
|
|
72
|
-
|
|
73
53
|
case 'repeat':
|
|
74
54
|
return _constants.default.REPEAT;
|
|
75
|
-
|
|
76
55
|
case 'mirror-repeat':
|
|
77
56
|
return _constants.default.MIRRORED_REPEAT;
|
|
78
57
|
}
|
|
79
58
|
}
|
|
80
|
-
|
|
81
59
|
function convertMaxFilterMode(maxFilter) {
|
|
82
60
|
switch (maxFilter) {
|
|
83
61
|
case 'nearest':
|
|
84
62
|
return _constants.default.NEAREST;
|
|
85
|
-
|
|
86
63
|
case 'linear':
|
|
87
64
|
return _constants.default.LINEAR;
|
|
88
65
|
}
|
|
89
66
|
}
|
|
90
|
-
|
|
91
67
|
function convertMinFilterMode(minFilter, mipmapFilter) {
|
|
92
68
|
if (!mipmapFilter) {
|
|
93
69
|
return convertMaxFilterMode(minFilter);
|
|
94
70
|
}
|
|
95
|
-
|
|
96
71
|
switch (minFilter) {
|
|
97
72
|
case 'nearest':
|
|
98
73
|
return mipmapFilter === 'nearest' ? _constants.default.NEAREST_MIPMAP_NEAREST : _constants.default.NEAREST_MIPMAP_LINEAR;
|
|
99
|
-
|
|
100
74
|
case 'linear':
|
|
101
75
|
return mipmapFilter === 'nearest' ? _constants.default.LINEAR_MIPMAP_NEAREST : _constants.default.LINEAR_MIPMAP_LINEAR;
|
|
102
76
|
}
|
|
103
77
|
}
|
|
104
|
-
|
|
105
78
|
function convertToSamplerParameters(params) {
|
|
106
79
|
var props = {};
|
|
107
|
-
|
|
108
80
|
if (params[_constants.default.TEXTURE_WRAP_S]) {
|
|
109
81
|
props.addressModeU = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_S]);
|
|
110
82
|
}
|
|
111
|
-
|
|
112
83
|
if (params[_constants.default.TEXTURE_WRAP_T]) {
|
|
113
84
|
props.addressModeV = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_T]);
|
|
114
85
|
}
|
|
115
|
-
|
|
116
86
|
if (params[_constants.default.TEXTURE_WRAP_R]) {
|
|
117
87
|
props.addressModeW = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_R]);
|
|
118
88
|
}
|
|
119
|
-
|
|
120
89
|
if (params[_constants.default.TEXTURE_MAG_FILTER]) {
|
|
121
90
|
props.magFilter = convertToMaxFilterMode(params[_constants.default.TEXTURE_MAG_FILTER]);
|
|
122
91
|
}
|
|
123
|
-
|
|
124
92
|
if (params[_constants.default.TEXTURE_MIN_FILTER]) {
|
|
125
93
|
props.minFilter = convertToMinFilterMode(params[_constants.default.TEXTURE_MIN_FILTER]);
|
|
126
94
|
}
|
|
127
|
-
|
|
128
95
|
if (params[_constants.default.TEXTURE_MIN_FILTER]) {
|
|
129
96
|
props.mipmapFilter = convertToMipmapFilterMode(params[_constants.default.TEXTURE_MIN_FILTER]);
|
|
130
97
|
}
|
|
131
|
-
|
|
132
98
|
if (params[_constants.default.TEXTURE_MIN_LOD]) {
|
|
133
99
|
props.lodMinClamp = params[_constants.default.TEXTURE_MIN_LOD];
|
|
134
100
|
}
|
|
135
|
-
|
|
136
101
|
if (params[_constants.default.TEXTURE_MAX_LOD]) {
|
|
137
102
|
props.lodMaxClamp = params[_constants.default.TEXTURE_MAX_LOD];
|
|
138
103
|
}
|
|
139
|
-
|
|
140
104
|
if (params[_constants.default.TEXTURE_COMPARE_MODE]) {
|
|
141
105
|
props.type = params[_constants.default.TEXTURE_COMPARE_MODE] === _constants.default.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : 'color-sampler';
|
|
142
106
|
}
|
|
143
|
-
|
|
144
107
|
if (params[_constants.default.TEXTURE_COMPARE_FUNC]) {
|
|
145
108
|
props.compare = (0, _deviceParameters.convertToCompareFunction)('compare', params[_constants.default.TEXTURE_COMPARE_FUNC]);
|
|
146
109
|
}
|
|
147
|
-
|
|
148
110
|
if (params[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT]) {
|
|
149
111
|
props.maxAnisotropy = params[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT];
|
|
150
112
|
}
|
|
151
|
-
|
|
152
113
|
return props;
|
|
153
114
|
}
|
|
154
|
-
|
|
155
115
|
function convertToAddressMode(addressMode) {
|
|
156
116
|
switch (addressMode) {
|
|
157
117
|
case _constants.default.CLAMP_TO_EDGE:
|
|
158
118
|
return 'clamp-to-edge';
|
|
159
|
-
|
|
160
119
|
case _constants.default.REPEAT:
|
|
161
120
|
return 'repeat';
|
|
162
|
-
|
|
163
121
|
case _constants.default.MIRRORED_REPEAT:
|
|
164
122
|
return 'mirror-repeat';
|
|
165
|
-
|
|
166
123
|
default:
|
|
167
124
|
throw new Error('address');
|
|
168
125
|
}
|
|
169
126
|
}
|
|
170
|
-
|
|
171
127
|
function convertToMaxFilterMode(filterMode) {
|
|
172
128
|
switch (filterMode) {
|
|
173
129
|
case _constants.default.NEAREST:
|
|
174
130
|
return 'nearest';
|
|
175
|
-
|
|
176
131
|
case _constants.default.LINEAR:
|
|
177
132
|
return 'linear';
|
|
178
|
-
|
|
179
133
|
default:
|
|
180
134
|
throw new Error('maxfilter');
|
|
181
135
|
}
|
|
182
136
|
}
|
|
183
|
-
|
|
184
137
|
function convertToMinFilterMode(filterMode) {
|
|
185
138
|
switch (filterMode) {
|
|
186
139
|
case _constants.default.NEAREST:
|
|
187
140
|
return 'nearest';
|
|
188
|
-
|
|
189
141
|
case _constants.default.LINEAR:
|
|
190
142
|
return 'linear';
|
|
191
|
-
|
|
192
143
|
case _constants.default.NEAREST_MIPMAP_NEAREST:
|
|
193
144
|
return 'nearest';
|
|
194
|
-
|
|
195
145
|
case _constants.default.LINEAR_MIPMAP_NEAREST:
|
|
196
146
|
return 'linear';
|
|
197
|
-
|
|
198
147
|
case _constants.default.NEAREST_MIPMAP_LINEAR:
|
|
199
148
|
return 'nearest';
|
|
200
|
-
|
|
201
149
|
case _constants.default.LINEAR_MIPMAP_LINEAR:
|
|
202
150
|
return 'linear';
|
|
203
|
-
|
|
204
151
|
default:
|
|
205
152
|
throw new Error('minfilter');
|
|
206
153
|
}
|
|
207
154
|
}
|
|
208
|
-
|
|
209
155
|
function convertToMipmapFilterMode(filterMode) {
|
|
210
156
|
switch (filterMode) {
|
|
211
157
|
case _constants.default.NEAREST:
|
|
212
158
|
return 'nearest';
|
|
213
|
-
|
|
214
159
|
case _constants.default.LINEAR:
|
|
215
160
|
return 'linear';
|
|
216
|
-
|
|
217
161
|
case _constants.default.NEAREST_MIPMAP_NEAREST:
|
|
218
162
|
return 'nearest';
|
|
219
|
-
|
|
220
163
|
case _constants.default.LINEAR_MIPMAP_NEAREST:
|
|
221
164
|
return 'nearest';
|
|
222
|
-
|
|
223
165
|
case _constants.default.NEAREST_MIPMAP_LINEAR:
|
|
224
166
|
return 'linear';
|
|
225
|
-
|
|
226
167
|
case _constants.default.LINEAR_MIPMAP_LINEAR:
|
|
227
168
|
return 'linear';
|
|
228
|
-
|
|
229
169
|
default:
|
|
230
170
|
throw new Error('mipmap');
|
|
231
171
|
}
|
|
232
172
|
}
|
|
233
|
-
|
|
234
173
|
function updateSamplerParametersForNPOT(parameters) {
|
|
235
174
|
var newParameters = _objectSpread({}, parameters);
|
|
236
|
-
|
|
237
175
|
if (parameters[_constants.default.TEXTURE_MIN_FILTER] !== _constants.default.NEAREST) {
|
|
238
176
|
newParameters[_constants.default.TEXTURE_MIN_FILTER] = _constants.default.LINEAR;
|
|
239
177
|
}
|
|
240
|
-
|
|
241
178
|
newParameters[_constants.default.TEXTURE_WRAP_S] = _constants.default.CLAMP_TO_EDGE;
|
|
242
179
|
newParameters[_constants.default.TEXTURE_WRAP_T] = _constants.default.CLAMP_TO_EDGE;
|
|
243
180
|
return newParameters;
|