@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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/converters/sampler-parameters.ts"],"names":["convertSamplerParametersToWebGL","props","params","addressModeU","GL","TEXTURE_WRAP_S","convertAddressMode","addressModeV","TEXTURE_WRAP_T","addressModeW","TEXTURE_WRAP_R","magFilter","TEXTURE_MAG_FILTER","convertMaxFilterMode","minFilter","mipmapFilter","TEXTURE_MIN_FILTER","convertMinFilterMode","lodMinClamp","undefined","TEXTURE_MIN_LOD","lodMaxClamp","TEXTURE_MAX_LOD","type","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","compare","TEXTURE_COMPARE_FUNC","maxAnisotropy","TEXTURE_MAX_ANISOTROPY_EXT","addressMode","CLAMP_TO_EDGE","REPEAT","MIRRORED_REPEAT","maxFilter","NEAREST","LINEAR","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","convertToSamplerParameters","convertToAddressMode","convertToMaxFilterMode","convertToMinFilterMode","convertToMipmapFilterMode","Error","filterMode","updateSamplerParametersForNPOT","parameters","newParameters"],"mappings":"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","sourcesContent":["// SAMPLER FILTERS\nimport {SamplerParameters} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {GLSamplerParameters} from '../../types/webgl';\nimport {convertCompareFunction, convertToCompareFunction} from './device-parameters';\n\n/**\n * Convert WebGPU-style sampler props to WebGL\n * @param props\n * @returns\n */\nexport function convertSamplerParametersToWebGL(props: SamplerParameters): GLSamplerParameters {\n const params: Record<number, number> = {};\n if (props.addressModeU) {\n params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);\n }\n if (props.addressModeV) {\n params[GL.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);\n }\n if (props.addressModeW) {\n params[GL.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);\n }\n if (props.magFilter) {\n params[GL.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);\n }\n if (props.minFilter || props.mipmapFilter) {\n // TODO - arbitrary choice of linear?\n params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);\n }\n if (props.lodMinClamp !== undefined) {\n params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;\n }\n if (props.lodMaxClamp !== undefined) {\n params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;\n }\n if (props.type === 'comparison-sampler') {\n // Setting prop.compare turns this into a comparison sampler\n params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;\n }\n if (props.compare) {\n params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);\n }\n // Note depends on WebGL extension\n if (props.maxAnisotropy) {\n params[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;\n }\n return params;\n}\n\n/** Convert address more */\nfunction convertAddressMode(addressMode: 'clamp-to-edge' | 'repeat' | 'mirror-repeat'): GL {\n switch (addressMode) {\n case 'clamp-to-edge': return GL.CLAMP_TO_EDGE;\n case 'repeat': return GL.REPEAT;\n case 'mirror-repeat': return GL.MIRRORED_REPEAT;\n }\n}\n\nfunction convertMaxFilterMode(maxFilter: 'nearest' | 'linear'): GL {\n switch (maxFilter) {\n case 'nearest': return GL.NEAREST;\n case 'linear': return GL.LINEAR;\n }\n}\n\n/** \n * WebGPU has separate min filter and mipmap filter, \n * WebGL is combined and effectively offers 6 options\n */\nfunction convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'nearest' | 'linear'): GL {\n if (!mipmapFilter) {\n return convertMaxFilterMode(minFilter);\n }\n switch (minFilter) {\n case 'nearest': return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;\n case 'linear': return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;\n }\n}\n\n// Convert from WebGL to WebGPU\n\n/**\n * Convert WebGL-style sampler props to WebGPU\n * @param props\n * @returns\n */\n export function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters {\n const props: SamplerParameters = {};\n if (params[GL.TEXTURE_WRAP_S]) {\n props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);\n }\n if (params[GL.TEXTURE_WRAP_T]) {\n props.addressModeV = convertToAddressMode(params[GL.TEXTURE_WRAP_T]);\n }\n if (params[GL.TEXTURE_WRAP_R]) {\n props.addressModeW = convertToAddressMode(params[GL.TEXTURE_WRAP_R]);\n }\n if (params[GL.TEXTURE_MAG_FILTER]) {\n props.magFilter = convertToMaxFilterMode(params[GL.TEXTURE_MAG_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.minFilter = convertToMinFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.mipmapFilter = convertToMipmapFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_LOD]) {\n props.lodMinClamp = params[GL.TEXTURE_MIN_LOD];\n }\n if (params[GL.TEXTURE_MAX_LOD]) {\n props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];\n }\n if (params[GL.TEXTURE_COMPARE_MODE]) {\n props.type = params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : 'color-sampler';\n }\n if (params[GL.TEXTURE_COMPARE_FUNC]) {\n props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);\n }\n // NOTE depends on extension (very common)\n if (params[GL.TEXTURE_MAX_ANISOTROPY_EXT]) {\n props.maxAnisotropy = params[GL.TEXTURE_MAX_ANISOTROPY_EXT];\n }\n return props;\n}\n\n/** Convert address more */\nfunction convertToAddressMode(addressMode: number): 'clamp-to-edge' | 'repeat' | 'mirror-repeat' {\n switch (addressMode) {\n case GL.CLAMP_TO_EDGE: return 'clamp-to-edge';\n case GL.REPEAT: return 'repeat';\n case GL.MIRRORED_REPEAT: return 'mirror-repeat';\n default: throw new Error('address');\n }\n}\n\nfunction convertToMaxFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n default: throw new Error('maxfilter');\n }\n}\n\n/** WebGPU has separate min filter and mipmap filter, WebGL is combined */\nfunction convertToMinFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST: return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST: return 'linear';\n case GL.NEAREST_MIPMAP_LINEAR: return 'nearest';\n case GL.LINEAR_MIPMAP_LINEAR: return 'linear';\n default: throw new Error('minfilter');\n }\n}\n\nfunction convertToMipmapFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST: return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST: return 'nearest';\n case GL.NEAREST_MIPMAP_LINEAR: return 'linear';\n case GL.LINEAR_MIPMAP_LINEAR: return 'linear';\n default: throw new Error('mipmap');\n }\n}\n\n/**\n * Override sampler settings that are not supported by Non-Power-of-Two textures in WebGL1.\n*/\nexport function updateSamplerParametersForNPOT(parameters: GLSamplerParameters): GLSamplerParameters {\n const newParameters = {...parameters};\n if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();\n newParameters[GL.TEXTURE_MIN_FILTER] = GL.LINEAR;\n }\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_WRAP_S to CLAMP_TO_EDGE`)();\n newParameters[GL.TEXTURE_WRAP_S] = GL.CLAMP_TO_EDGE;\n newParameters[GL.TEXTURE_WRAP_T] = GL.CLAMP_TO_EDGE;\n return newParameters;\n}\n"],"file":"sampler-parameters.js"}
|
|
1
|
+
{"version":3,"file":"sampler-parameters.js","names":["_constants","_interopRequireDefault","require","_deviceParameters","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","convertSamplerParametersToWebGL","props","params","addressModeU","GL","TEXTURE_WRAP_S","convertAddressMode","addressModeV","TEXTURE_WRAP_T","addressModeW","TEXTURE_WRAP_R","magFilter","TEXTURE_MAG_FILTER","convertMaxFilterMode","minFilter","mipmapFilter","TEXTURE_MIN_FILTER","convertMinFilterMode","lodMinClamp","undefined","TEXTURE_MIN_LOD","lodMaxClamp","TEXTURE_MAX_LOD","type","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","compare","TEXTURE_COMPARE_FUNC","convertCompareFunction","maxAnisotropy","TEXTURE_MAX_ANISOTROPY_EXT","addressMode","CLAMP_TO_EDGE","REPEAT","MIRRORED_REPEAT","maxFilter","NEAREST","LINEAR","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","convertToSamplerParameters","convertToAddressMode","convertToMaxFilterMode","convertToMinFilterMode","convertToMipmapFilterMode","convertToCompareFunction","Error","filterMode","updateSamplerParametersForNPOT","parameters","newParameters"],"sources":["../../../../src/adapter/converters/sampler-parameters.ts"],"sourcesContent":["// SAMPLER FILTERS\nimport {SamplerParameters} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {GLSamplerParameters} from '../../types/webgl';\nimport {convertCompareFunction, convertToCompareFunction} from './device-parameters';\n\n/**\n * Convert WebGPU-style sampler props to WebGL\n * @param props\n * @returns\n */\nexport function convertSamplerParametersToWebGL(props: SamplerParameters): GLSamplerParameters {\n const params: Record<number, number> = {};\n if (props.addressModeU) {\n params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);\n }\n if (props.addressModeV) {\n params[GL.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);\n }\n if (props.addressModeW) {\n params[GL.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);\n }\n if (props.magFilter) {\n params[GL.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);\n }\n if (props.minFilter || props.mipmapFilter) {\n // TODO - arbitrary choice of linear?\n params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);\n }\n if (props.lodMinClamp !== undefined) {\n params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;\n }\n if (props.lodMaxClamp !== undefined) {\n params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;\n }\n if (props.type === 'comparison-sampler') {\n // Setting prop.compare turns this into a comparison sampler\n params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;\n }\n if (props.compare) {\n params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);\n }\n // Note depends on WebGL extension\n if (props.maxAnisotropy) {\n params[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;\n }\n return params;\n}\n\n/** Convert address more */\nfunction convertAddressMode(addressMode: 'clamp-to-edge' | 'repeat' | 'mirror-repeat'): GL {\n switch (addressMode) {\n case 'clamp-to-edge': return GL.CLAMP_TO_EDGE;\n case 'repeat': return GL.REPEAT;\n case 'mirror-repeat': return GL.MIRRORED_REPEAT;\n }\n}\n\nfunction convertMaxFilterMode(maxFilter: 'nearest' | 'linear'): GL {\n switch (maxFilter) {\n case 'nearest': return GL.NEAREST;\n case 'linear': return GL.LINEAR;\n }\n}\n\n/** \n * WebGPU has separate min filter and mipmap filter, \n * WebGL is combined and effectively offers 6 options\n */\nfunction convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'nearest' | 'linear'): GL {\n if (!mipmapFilter) {\n return convertMaxFilterMode(minFilter);\n }\n switch (minFilter) {\n case 'nearest': return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;\n case 'linear': return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;\n }\n}\n\n// Convert from WebGL to WebGPU\n\n/**\n * Convert WebGL-style sampler props to WebGPU\n * @param props\n * @returns\n */\n export function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters {\n const props: SamplerParameters = {};\n if (params[GL.TEXTURE_WRAP_S]) {\n props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);\n }\n if (params[GL.TEXTURE_WRAP_T]) {\n props.addressModeV = convertToAddressMode(params[GL.TEXTURE_WRAP_T]);\n }\n if (params[GL.TEXTURE_WRAP_R]) {\n props.addressModeW = convertToAddressMode(params[GL.TEXTURE_WRAP_R]);\n }\n if (params[GL.TEXTURE_MAG_FILTER]) {\n props.magFilter = convertToMaxFilterMode(params[GL.TEXTURE_MAG_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.minFilter = convertToMinFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.mipmapFilter = convertToMipmapFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_LOD]) {\n props.lodMinClamp = params[GL.TEXTURE_MIN_LOD];\n }\n if (params[GL.TEXTURE_MAX_LOD]) {\n props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];\n }\n if (params[GL.TEXTURE_COMPARE_MODE]) {\n props.type = params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : 'color-sampler';\n }\n if (params[GL.TEXTURE_COMPARE_FUNC]) {\n props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);\n }\n // NOTE depends on extension (very common)\n if (params[GL.TEXTURE_MAX_ANISOTROPY_EXT]) {\n props.maxAnisotropy = params[GL.TEXTURE_MAX_ANISOTROPY_EXT];\n }\n return props;\n}\n\n/** Convert address more */\nfunction convertToAddressMode(addressMode: number): 'clamp-to-edge' | 'repeat' | 'mirror-repeat' {\n switch (addressMode) {\n case GL.CLAMP_TO_EDGE: return 'clamp-to-edge';\n case GL.REPEAT: return 'repeat';\n case GL.MIRRORED_REPEAT: return 'mirror-repeat';\n default: throw new Error('address');\n }\n}\n\nfunction convertToMaxFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n default: throw new Error('maxfilter');\n }\n}\n\n/** WebGPU has separate min filter and mipmap filter, WebGL is combined */\nfunction convertToMinFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST: return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST: return 'linear';\n case GL.NEAREST_MIPMAP_LINEAR: return 'nearest';\n case GL.LINEAR_MIPMAP_LINEAR: return 'linear';\n default: throw new Error('minfilter');\n }\n}\n\nfunction convertToMipmapFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST: return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST: return 'nearest';\n case GL.NEAREST_MIPMAP_LINEAR: return 'linear';\n case GL.LINEAR_MIPMAP_LINEAR: return 'linear';\n default: throw new Error('mipmap');\n }\n}\n\n/**\n * Override sampler settings that are not supported by Non-Power-of-Two textures in WebGL1.\n*/\nexport function updateSamplerParametersForNPOT(parameters: GLSamplerParameters): GLSamplerParameters {\n const newParameters = {...parameters};\n if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();\n newParameters[GL.TEXTURE_MIN_FILTER] = GL.LINEAR;\n }\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_WRAP_S to CLAMP_TO_EDGE`)();\n newParameters[GL.TEXTURE_WRAP_S] = GL.CLAMP_TO_EDGE;\n newParameters[GL.TEXTURE_WRAP_T] = GL.CLAMP_TO_EDGE;\n return newParameters;\n}\n"],"mappings":"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"}
|
|
@@ -1,36 +1,28 @@
|
|
|
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
|
});
|
|
7
|
+
exports.TEXTURE_FORMATS = void 0;
|
|
8
|
+
exports._checkFloat32ColorAttachment = _checkFloat32ColorAttachment;
|
|
8
9
|
exports.checkTextureFeature = checkTextureFeature;
|
|
9
10
|
exports.getTextureFeatures = getTextureFeatures;
|
|
10
|
-
exports.
|
|
11
|
+
exports.getTextureFormatBytesPerPixel = getTextureFormatBytesPerPixel;
|
|
11
12
|
exports.getTextureFormatSupport = getTextureFormatSupport;
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
13
|
+
exports.getWebGLDataType = getWebGLDataType;
|
|
14
|
+
exports.getWebGLDepthStencilAttachment = getWebGLDepthStencilAttachment;
|
|
14
15
|
exports.getWebGLTextureFormat = getWebGLTextureFormat;
|
|
15
16
|
exports.getWebGLTextureParameters = getWebGLTextureParameters;
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.getWebGLDataType = getWebGLDataType;
|
|
20
|
-
exports.TEXTURE_FORMATS = void 0;
|
|
21
|
-
|
|
17
|
+
exports.isTextureFormatFilterable = isTextureFormatFilterable;
|
|
18
|
+
exports.isTextureFormatRenderable = isTextureFormatRenderable;
|
|
19
|
+
exports.isTextureFormatSupported = isTextureFormatSupported;
|
|
22
20
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
21
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
25
|
-
|
|
26
22
|
var _api = require("@luma.gl/api");
|
|
27
|
-
|
|
28
23
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
29
|
-
|
|
30
24
|
var _webglChecks = require("../../context/context/webgl-checks");
|
|
31
|
-
|
|
32
25
|
var _DATA_FORMAT_CHANNELS, _TYPE_SIZES;
|
|
33
|
-
|
|
34
26
|
var texture_compression_bc = 'texture-compression-bc';
|
|
35
27
|
var texture_compression_astc = 'texture-compression-astc';
|
|
36
28
|
var texture_compression_etc2 = 'texture-compression-etc2';
|
|
@@ -50,17 +42,14 @@ var EXT_SRGB = 'EXT_sRGB';
|
|
|
50
42
|
var EXT_TEXTURE_NORM16 = 'EXT_texture_norm16';
|
|
51
43
|
var EXT_FLOAT_WEBGL1 = 'WEBGL_color_buffer_float';
|
|
52
44
|
var EXT_FLOAT_RENDER_WEBGL2 = 'EXT_color_buffer_float';
|
|
53
|
-
|
|
54
45
|
var checkExtension = function checkExtension(gl, extension) {
|
|
55
46
|
return gl.getExtension(extension);
|
|
56
47
|
};
|
|
57
|
-
|
|
58
48
|
var checkExtensions = function checkExtensions(gl, extensions) {
|
|
59
49
|
return extensions.every(function (extension) {
|
|
60
50
|
return gl.getExtension(extension);
|
|
61
51
|
});
|
|
62
52
|
};
|
|
63
|
-
|
|
64
53
|
var TEXTURE_FEATURE_CHECKS = {
|
|
65
54
|
'texture-blend-float-webgl1': function textureBlendFloatWebgl1(gl) {
|
|
66
55
|
return (0, _webglChecks.isWebGL2)(gl) ? true : checkExtension(gl, 'EXT_float_blend');
|
|
@@ -117,26 +106,21 @@ var TEXTURE_FEATURE_CHECKS = {
|
|
|
117
106
|
return checkExtensions(gl, [X_ATC]);
|
|
118
107
|
}
|
|
119
108
|
};
|
|
120
|
-
|
|
121
109
|
function checkTextureFeature(gl, feature) {
|
|
122
110
|
var _TEXTURE_FEATURE_CHEC;
|
|
123
|
-
|
|
124
111
|
return ((_TEXTURE_FEATURE_CHEC = TEXTURE_FEATURE_CHECKS[feature]) === null || _TEXTURE_FEATURE_CHEC === void 0 ? void 0 : _TEXTURE_FEATURE_CHEC.call(TEXTURE_FEATURE_CHECKS, gl)) || false;
|
|
125
112
|
}
|
|
126
|
-
|
|
127
113
|
var checkTextureFeatures = function checkTextureFeatures(gl, features) {
|
|
128
114
|
return features.every(function (feature) {
|
|
129
115
|
return checkTextureFeature(gl, feature);
|
|
130
116
|
});
|
|
131
117
|
};
|
|
132
|
-
|
|
133
118
|
function getTextureFeatures(gl) {
|
|
134
119
|
var textureFeatures = Object.keys(TEXTURE_FEATURE_CHECKS);
|
|
135
120
|
return textureFeatures.filter(function (feature) {
|
|
136
121
|
return checkTextureFeature(gl, feature);
|
|
137
122
|
});
|
|
138
123
|
}
|
|
139
|
-
|
|
140
124
|
var TEXTURE_FORMATS = {
|
|
141
125
|
'rgb8unorm-unsized': {
|
|
142
126
|
gl: _constants.default.RGB,
|
|
@@ -776,57 +760,43 @@ var TEXTURE_FORMATS = {
|
|
|
776
760
|
}
|
|
777
761
|
};
|
|
778
762
|
exports.TEXTURE_FORMATS = TEXTURE_FORMATS;
|
|
779
|
-
|
|
780
763
|
function getTextureFormat(format) {
|
|
781
764
|
if (typeof format === 'string') {
|
|
782
765
|
return format;
|
|
783
766
|
}
|
|
784
|
-
|
|
785
767
|
var entry = Object.entries(TEXTURE_FORMATS).find(function (_ref) {
|
|
786
768
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
787
|
-
|
|
788
|
-
|
|
769
|
+
entry = _ref2[1];
|
|
789
770
|
return entry.gl === format || entry.gl1 === format;
|
|
790
771
|
});
|
|
791
|
-
|
|
792
772
|
if (!entry) {
|
|
793
773
|
throw new Error("Unknown texture format ".concat(format));
|
|
794
774
|
}
|
|
795
|
-
|
|
796
775
|
return entry[0];
|
|
797
776
|
}
|
|
798
|
-
|
|
799
777
|
function isTextureFormatSupported(gl, formatOrGL) {
|
|
800
778
|
var format = getTextureFormat(formatOrGL);
|
|
801
779
|
var info = TEXTURE_FORMATS[format];
|
|
802
|
-
|
|
803
780
|
if (!info) {
|
|
804
781
|
return false;
|
|
805
782
|
}
|
|
806
|
-
|
|
807
783
|
if ((0, _webglChecks.isWebGL2)(gl) ? info.gl === undefined : info.gl1 === undefined) {
|
|
808
784
|
return false;
|
|
809
785
|
}
|
|
810
|
-
|
|
811
786
|
var extension = info.x || ((0, _webglChecks.isWebGL2)(gl) ? info.gl2ext || info.gl1ext : info.gl1ext);
|
|
812
|
-
|
|
813
787
|
if (extension) {
|
|
814
788
|
return Boolean(gl.getExtension(extension));
|
|
815
789
|
}
|
|
816
|
-
|
|
817
790
|
return true;
|
|
818
791
|
}
|
|
819
|
-
|
|
820
792
|
function getTextureFormatSupport(gl, formatOrGL) {
|
|
821
793
|
var format = getTextureFormat(formatOrGL);
|
|
822
794
|
var info = TEXTURE_FORMATS[format];
|
|
823
|
-
|
|
824
795
|
if (!info) {
|
|
825
796
|
return {
|
|
826
797
|
supported: false
|
|
827
798
|
};
|
|
828
799
|
}
|
|
829
|
-
|
|
830
800
|
var supported = (0, _webglChecks.isWebGL2)(gl) ? info.gl === undefined : info.gl1 === undefined;
|
|
831
801
|
supported = supported && checkTextureFeatures(gl, [info.f]);
|
|
832
802
|
return {
|
|
@@ -837,65 +807,49 @@ function getTextureFormatSupport(gl, formatOrGL) {
|
|
|
837
807
|
storable: false
|
|
838
808
|
};
|
|
839
809
|
}
|
|
840
|
-
|
|
841
810
|
function isTextureFormatFilterable(gl, formatOrGL) {
|
|
842
811
|
var format = getTextureFormat(formatOrGL);
|
|
843
|
-
|
|
844
812
|
if (!isTextureFormatSupported(gl, format)) {
|
|
845
813
|
return false;
|
|
846
814
|
}
|
|
847
|
-
|
|
848
815
|
try {
|
|
849
816
|
var decoded = (0, _api.decodeTextureFormat)(format);
|
|
850
|
-
|
|
851
817
|
if (decoded.signed) {
|
|
852
818
|
return false;
|
|
853
819
|
}
|
|
854
820
|
} catch (_unused) {
|
|
855
821
|
return false;
|
|
856
822
|
}
|
|
857
|
-
|
|
858
823
|
if (format.endsWith('32float')) {
|
|
859
824
|
return Boolean(gl.getExtension('OES_texture_float_linear'));
|
|
860
825
|
}
|
|
861
|
-
|
|
862
826
|
if (format.endsWith('16float')) {
|
|
863
827
|
return Boolean(gl.getExtension('OES_texture_half_float_linear'));
|
|
864
828
|
}
|
|
865
|
-
|
|
866
829
|
return true;
|
|
867
830
|
}
|
|
868
|
-
|
|
869
831
|
function isTextureFormatRenderable(gl, formatOrGL) {
|
|
870
832
|
var format = getTextureFormat(formatOrGL);
|
|
871
|
-
|
|
872
833
|
if (!isTextureFormatSupported(gl, format)) {
|
|
873
834
|
return false;
|
|
874
835
|
}
|
|
875
|
-
|
|
876
836
|
if (typeof format === 'number') {
|
|
877
837
|
return false;
|
|
878
838
|
}
|
|
879
|
-
|
|
880
839
|
return true;
|
|
881
840
|
}
|
|
882
|
-
|
|
883
841
|
function getWebGLTextureFormat(gl, formatOrGL) {
|
|
884
842
|
var format = getTextureFormat(formatOrGL);
|
|
885
843
|
var formatInfo = TEXTURE_FORMATS[format];
|
|
886
844
|
var webglFormat = (0, _webglChecks.isWebGL2)(gl) ? formatInfo === null || formatInfo === void 0 ? void 0 : formatInfo.gl : formatInfo === null || formatInfo === void 0 ? void 0 : formatInfo.gl1;
|
|
887
|
-
|
|
888
845
|
if (typeof format === 'number') {
|
|
889
846
|
return webglFormat || format;
|
|
890
847
|
}
|
|
891
|
-
|
|
892
848
|
if (webglFormat === undefined) {
|
|
893
849
|
throw new Error("Unsupported texture format ".concat(format));
|
|
894
850
|
}
|
|
895
|
-
|
|
896
851
|
return webglFormat;
|
|
897
852
|
}
|
|
898
|
-
|
|
899
853
|
function getWebGLTextureParameters(gl, formatOrGL) {
|
|
900
854
|
var format = getTextureFormat(formatOrGL);
|
|
901
855
|
var webglFormat = getWebGLTextureFormat(gl, format);
|
|
@@ -907,31 +861,24 @@ function getWebGLTextureParameters(gl, formatOrGL) {
|
|
|
907
861
|
compressed: decoded.compressed
|
|
908
862
|
};
|
|
909
863
|
}
|
|
910
|
-
|
|
911
864
|
function getWebGLDepthStencilAttachment(formatOrGL) {
|
|
912
865
|
var format = getTextureFormat(formatOrGL);
|
|
913
|
-
|
|
914
866
|
if (typeof format === 'number') {
|
|
915
867
|
throw new Error('unsupported depth stencil format');
|
|
916
868
|
}
|
|
917
|
-
|
|
918
869
|
var info = TEXTURE_FORMATS[format];
|
|
919
870
|
var attachment = info.attachment;
|
|
920
|
-
|
|
921
871
|
if (!attachment) {
|
|
922
872
|
throw new Error('not a depth stencil format');
|
|
923
873
|
}
|
|
924
|
-
|
|
925
874
|
return attachment;
|
|
926
875
|
}
|
|
927
|
-
|
|
928
876
|
function _checkFloat32ColorAttachment(gl) {
|
|
929
877
|
var internalFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : gl.RGBA;
|
|
930
878
|
var srcFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.default.RGBA;
|
|
931
879
|
var srcType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.default.UNSIGNED_BYTE;
|
|
932
880
|
var texture = null;
|
|
933
881
|
var framebuffer = null;
|
|
934
|
-
|
|
935
882
|
try {
|
|
936
883
|
texture = gl.createTexture();
|
|
937
884
|
gl.bindTexture(_constants.default.TEXTURE_2D, texture);
|
|
@@ -944,9 +891,7 @@ function _checkFloat32ColorAttachment(gl) {
|
|
|
944
891
|
framebuffer = gl.createFramebuffer();
|
|
945
892
|
gl.bindFramebuffer(_constants.default.FRAMEBUFFER, framebuffer);
|
|
946
893
|
gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, _constants.default.COLOR_ATTACHMENT0, _constants.default.TEXTURE_2D, texture, 0);
|
|
947
|
-
|
|
948
894
|
var status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER) === _constants.default.FRAMEBUFFER_COMPLETE;
|
|
949
|
-
|
|
950
895
|
gl.bindTexture(_constants.default.TEXTURE_2D, null);
|
|
951
896
|
return status;
|
|
952
897
|
} finally {
|
|
@@ -954,10 +899,8 @@ function _checkFloat32ColorAttachment(gl) {
|
|
|
954
899
|
gl.deleteFramebuffer(framebuffer);
|
|
955
900
|
}
|
|
956
901
|
}
|
|
957
|
-
|
|
958
902
|
var DATA_FORMAT_CHANNELS = (_DATA_FORMAT_CHANNELS = {}, (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RED, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RED_INTEGER, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RG, 2), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RG_INTEGER, 2), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RGB, 3), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RGB_INTEGER, 3), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RGBA, 4), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RGBA_INTEGER, 4), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.DEPTH_COMPONENT, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.DEPTH_STENCIL, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.ALPHA, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.LUMINANCE, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.LUMINANCE_ALPHA, 2), _DATA_FORMAT_CHANNELS);
|
|
959
903
|
var TYPE_SIZES = (_TYPE_SIZES = {}, (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.FLOAT, 4), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.UNSIGNED_INT, 4), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.INT, 4), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.UNSIGNED_SHORT, 2), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.SHORT, 2), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.HALF_FLOAT, 2), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.BYTE, 1), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.UNSIGNED_BYTE, 1), _TYPE_SIZES);
|
|
960
|
-
|
|
961
904
|
function getTextureFormatBytesPerPixel(gl, formatOrGL) {
|
|
962
905
|
var format = getTextureFormat(formatOrGL);
|
|
963
906
|
var params = getWebGLTextureParameters(gl, format);
|
|
@@ -965,56 +908,41 @@ function getTextureFormatBytesPerPixel(gl, formatOrGL) {
|
|
|
965
908
|
var channelSize = TYPE_SIZES[params.type] || 1;
|
|
966
909
|
return channels * channelSize;
|
|
967
910
|
}
|
|
968
|
-
|
|
969
911
|
function getWebGLPixelDataFormat(dataFormat, integer, normalized, format) {
|
|
970
912
|
if (format === _constants.default.RGBA || format === _constants.default.RGB) {
|
|
971
913
|
return format;
|
|
972
914
|
}
|
|
973
|
-
|
|
974
915
|
switch (dataFormat) {
|
|
975
916
|
case 'r':
|
|
976
917
|
return integer && !normalized ? _constants.default.RED_INTEGER : _constants.default.RED;
|
|
977
|
-
|
|
978
918
|
case 'rg':
|
|
979
919
|
return integer && !normalized ? _constants.default.RG_INTEGER : _constants.default.RG;
|
|
980
|
-
|
|
981
920
|
case 'rgb':
|
|
982
921
|
return integer && !normalized ? _constants.default.RGB_INTEGER : _constants.default.RGB;
|
|
983
|
-
|
|
984
922
|
case 'rgba':
|
|
985
923
|
return integer && !normalized ? _constants.default.RGBA_INTEGER : _constants.default.RGBA;
|
|
986
|
-
|
|
987
924
|
default:
|
|
988
925
|
return _constants.default.RGBA;
|
|
989
926
|
}
|
|
990
927
|
}
|
|
991
|
-
|
|
992
928
|
function getWebGLDataType(dataType) {
|
|
993
929
|
switch (dataType) {
|
|
994
930
|
case 'uint8':
|
|
995
931
|
return _constants.default.UNSIGNED_BYTE;
|
|
996
|
-
|
|
997
932
|
case 'sint8':
|
|
998
933
|
return _constants.default.BYTE;
|
|
999
|
-
|
|
1000
934
|
case 'uint16':
|
|
1001
935
|
return _constants.default.UNSIGNED_SHORT;
|
|
1002
|
-
|
|
1003
936
|
case 'sint16':
|
|
1004
937
|
return _constants.default.SHORT;
|
|
1005
|
-
|
|
1006
938
|
case 'uint32':
|
|
1007
939
|
return _constants.default.UNSIGNED_INT;
|
|
1008
|
-
|
|
1009
940
|
case 'sint32':
|
|
1010
941
|
return _constants.default.INT;
|
|
1011
|
-
|
|
1012
942
|
case 'float16':
|
|
1013
943
|
return _constants.default.HALF_FLOAT;
|
|
1014
|
-
|
|
1015
944
|
case 'float32':
|
|
1016
945
|
return _constants.default.FLOAT;
|
|
1017
|
-
|
|
1018
946
|
default:
|
|
1019
947
|
return _constants.default.UNSIGNED_BYTE;
|
|
1020
948
|
}
|