@luma.gl/webgl 9.0.0-alpha.4 → 9.0.0-alpha.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +3 -1
- package/dist/adapter/converters/device-parameters.d.ts +23 -4
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +42 -47
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +5 -5
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +20 -56
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/shader-formats.d.ts +9 -0
- package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
- package/dist/adapter/converters/shader-formats.js +53 -0
- package/dist/adapter/converters/shader-formats.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +32 -44
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +165 -201
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/converters/vertex-formats.d.ts +9 -3
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +51 -19
- package/dist/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +14 -21
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +2 -5
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +9 -11
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.js +2 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
- package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
- package/dist/adapter/helpers/{uniforms.js → decode-webgl-types.js} +20 -29
- package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
- package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-info.js +25 -0
- package/dist/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +60 -115
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts +3 -2
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +27 -57
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts +11 -0
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/{attribute-utils.js → webgl-topology-utils.js} +2 -19
- package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +2 -29
- package/dist/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +34 -41
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +6 -9
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +26 -83
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +18 -10
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +49 -78
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +169 -43
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +10 -20
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +46 -155
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +91 -11
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +53 -19
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +107 -230
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +10 -19
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +3 -4
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +19 -31
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +64 -44
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +119 -235
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-vertex-array.js +166 -0
- package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +6 -7
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +10 -23
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +74 -41
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +214 -128
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +3 -3
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +23 -48
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -29
- package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
- package/dist/classic/{buffer.js → buffer-with-accessor.js} +55 -125
- package/dist/classic/buffer-with-accessor.js.map +1 -0
- package/dist/classic/clear.d.ts +22 -0
- package/dist/classic/clear.d.ts.map +1 -0
- package/dist/classic/clear.js +88 -0
- package/dist/classic/clear.js.map +1 -0
- package/dist/classic/copy-and-blit.d.ts +62 -0
- package/dist/classic/copy-and-blit.d.ts.map +1 -0
- package/dist/classic/copy-and-blit.js +200 -0
- package/dist/classic/copy-and-blit.js.map +1 -0
- package/dist/classic/format-utils.d.ts +3 -0
- package/dist/classic/format-utils.d.ts.map +1 -0
- package/dist/classic/format-utils.js +38 -0
- package/dist/classic/format-utils.js.map +1 -0
- package/dist/classic/typed-array-utils.d.ts +15 -17
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +1 -21
- package/dist/classic/typed-array-utils.js.map +1 -1
- package/dist/context/context/create-browser-context.d.ts +40 -0
- package/dist/context/context/create-browser-context.d.ts.map +1 -0
- package/dist/context/context/create-browser-context.js +53 -0
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +9 -0
- package/dist/context/context/create-headless-context.d.ts.map +1 -0
- package/dist/context/context/create-headless-context.js +42 -0
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/context/webgl-checks.d.ts.map +1 -1
- package/dist/context/context/webgl-checks.js +1 -4
- package/dist/context/context/webgl-checks.js.map +1 -1
- package/dist/context/debug/spector.d.ts +1 -2
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +8 -20
- package/dist/context/debug/spector.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +16 -39
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +9 -19
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +18 -36
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/context-data.d.ts +13 -0
- package/dist/context/polyfill/context-data.d.ts.map +1 -0
- package/dist/context/polyfill/context-data.js +12 -0
- package/dist/context/polyfill/context-data.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js +4 -9
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +22 -30
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +8 -8
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +10 -32
- package/dist/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js +0 -4
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +26 -62
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts +2 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +8 -10
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/dist.dev.js +10390 -0
- package/dist/index.cjs +6615 -0
- package/dist/index.d.ts +27 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -26
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist.min.js +37 -0
- package/package.json +21 -9
- package/src/adapter/converters/device-parameters.ts +124 -36
- package/src/adapter/converters/sampler-parameters.ts +22 -9
- package/src/adapter/converters/shader-formats.ts +44 -0
- package/src/adapter/converters/texture-formats.ts +267 -194
- package/src/adapter/converters/vertex-formats.ts +71 -10
- package/src/adapter/device-helpers/device-features.ts +13 -3
- package/src/adapter/device-helpers/device-limits.ts +5 -3
- package/src/adapter/device-helpers/get-device-info.ts +17 -10
- package/src/adapter/device-helpers/is-old-ie.ts +3 -0
- package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
- package/src/adapter/helpers/get-shader-info.ts +41 -0
- package/src/adapter/helpers/get-shader-layout.ts +121 -146
- package/src/adapter/helpers/parse-shader-compiler-log.ts +4 -2
- package/src/adapter/helpers/set-uniform.ts +39 -35
- package/src/adapter/helpers/{attribute-utils.ts → webgl-topology-utils.ts} +7 -5
- package/src/adapter/objects/constants-to-keys.ts +6 -25
- package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
- package/src/adapter/objects/webgl-resource.ts +16 -23
- package/src/adapter/resources/webgl-buffer.ts +59 -58
- package/src/adapter/resources/webgl-command-buffer.ts +333 -25
- package/src/adapter/resources/webgl-command-encoder.ts +20 -12
- package/src/adapter/resources/webgl-external-texture.ts +5 -2
- package/src/adapter/resources/webgl-framebuffer.ts +89 -133
- package/src/adapter/resources/webgl-render-pass.ts +160 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +254 -174
- package/src/adapter/resources/webgl-sampler.ts +15 -9
- package/src/adapter/resources/webgl-shader.ts +14 -11
- package/src/adapter/resources/webgl-texture.ts +120 -90
- package/src/adapter/resources/webgl-vertex-array.ts +279 -0
- package/src/adapter/webgl-canvas-context.ts +16 -14
- package/src/adapter/webgl-device.ts +321 -78
- package/src/classic/accessor.ts +7 -17
- package/src/classic/{buffer.ts → buffer-with-accessor.ts} +68 -76
- package/src/classic/clear.ts +113 -0
- package/src/classic/copy-and-blit.ts +314 -0
- package/src/classic/format-utils.ts +46 -0
- package/src/classic/typed-array-utils.ts +19 -27
- package/src/context/context/create-browser-context.ts +140 -0
- package/src/context/context/create-headless-context.ts +51 -0
- package/src/context/context/webgl-checks.ts +3 -1
- package/src/context/debug/spector.ts +9 -6
- package/src/context/debug/webgl-developer-tools.ts +23 -15
- package/src/context/parameters/unified-parameter-api.ts +23 -14
- package/src/context/parameters/webgl-parameter-tables.ts +120 -98
- package/src/context/polyfill/context-data.ts +30 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
- package/src/context/polyfill/polyfill-context.ts +10 -9
- package/src/context/polyfill/polyfill-table.ts +21 -16
- package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
- package/src/context/state-tracker/deep-array-equal.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +20 -16
- package/src/context/state-tracker/with-parameters.ts +13 -4
- package/src/index.ts +69 -35
- package/src/types.ts +5 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
- package/dist/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
- package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
- package/dist/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/adapter/helpers/uniforms.d.ts +0 -26
- package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
- package/dist/adapter/helpers/uniforms.js.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -5
- package/dist/bundle.js.map +0 -1
- package/dist/classic/buffer.d.ts.map +0 -1
- package/dist/classic/buffer.js.map +0 -1
- package/dist/context/context/context-state.d.ts +0 -18
- package/dist/context/context/context-state.d.ts.map +0 -1
- package/dist/context/context/context-state.js +0 -26
- package/dist/context/context/context-state.js.map +0 -1
- package/dist/context/context/create-context.d.ts +0 -41
- package/dist/context/context/create-context.d.ts.map +0 -1
- package/dist/context/context/create-context.js +0 -49
- package/dist/context/context/create-context.js.map +0 -1
- package/dist/context/context/device-pixels.d.ts +0 -25
- package/dist/context/context/device-pixels.d.ts.map +0 -1
- package/dist/context/context/device-pixels.js +0 -98
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/es5/adapter/converters/device-parameters.js +0 -170
- package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
- package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/texture-formats.js +0 -1031
- package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -45
- package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-features.js +0 -144
- package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
- package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
- package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -125
- package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/es5/adapter/helpers/uniforms.js +0 -112
- package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
- package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-resource.js +0 -292
- package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
- package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
- package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-shader.js +0 -149
- package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-texture.js +0 -986
- package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -97
- package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/es5/adapter/webgl-device.js +0 -399
- package/dist/es5/adapter/webgl-device.js.map +0 -1
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/classic/accessor.js +0 -181
- package/dist/es5/classic/accessor.js.map +0 -1
- package/dist/es5/classic/buffer.js +0 -470
- package/dist/es5/classic/buffer.js.map +0 -1
- package/dist/es5/classic/typed-array-utils.js +0 -126
- package/dist/es5/classic/typed-array-utils.js.map +0 -1
- package/dist/es5/context/context/context-state.js +0 -31
- package/dist/es5/context/context/context-state.js.map +0 -1
- package/dist/es5/context/context/create-context.js +0 -69
- package/dist/es5/context/context/create-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -115
- package/dist/es5/context/context/device-pixels.js.map +0 -1
- package/dist/es5/context/context/webgl-checks.js +0 -54
- package/dist/es5/context/context/webgl-checks.js.map +0 -1
- package/dist/es5/context/debug/spector.js +0 -133
- package/dist/es5/context/debug/spector.js.map +0 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
- package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
- package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-context.js +0 -135
- package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-table.js +0 -166
- package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/es5/context/state-tracker/track-context-state.js +0 -211
- package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/es5/context/state-tracker/with-parameters.js +0 -44
- package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/es5/index.js +0 -276
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/init.js +0 -10
- package/dist/es5/init.js.map +0 -1
- package/dist/es5/types/webgl.js +0 -6
- package/dist/es5/types/webgl.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/types.js.map +0 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -155
- package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
- package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/texture-formats.js +0 -954
- package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -35
- package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-features.js +0 -102
- package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
- package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
- package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -115
- package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -99
- package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
- package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-resource.js +0 -216
- package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
- package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
- package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-shader.js +0 -75
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -831
- package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -54
- package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/esm/adapter/webgl-device.js +0 -280
- package/dist/esm/adapter/webgl-device.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/classic/accessor.js +0 -144
- package/dist/esm/classic/accessor.js.map +0 -1
- package/dist/esm/classic/buffer.js +0 -384
- package/dist/esm/classic/buffer.js.map +0 -1
- package/dist/esm/classic/typed-array-utils.js +0 -112
- package/dist/esm/classic/typed-array-utils.js.map +0 -1
- package/dist/esm/context/context/context-state.js +0 -26
- package/dist/esm/context/context/context-state.js.map +0 -1
- package/dist/esm/context/context/create-context.js +0 -49
- package/dist/esm/context/context/create-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -98
- package/dist/esm/context/context/device-pixels.js.map +0 -1
- package/dist/esm/context/context/webgl-checks.js +0 -34
- package/dist/esm/context/context/webgl-checks.js.map +0 -1
- package/dist/esm/context/debug/spector.js +0 -76
- package/dist/esm/context/debug/spector.js.map +0 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
- package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
- package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-context.js +0 -92
- package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -160
- package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/esm/context/state-tracker/track-context-state.js +0 -183
- package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -36
- package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/esm/index.js +0 -27
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/init.js +0 -4
- package/dist/esm/init.js.map +0 -1
- package/dist/esm/types/webgl.js +0 -2
- package/dist/esm/types/webgl.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/init.d.ts +0 -2
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -4
- package/dist/init.js.map +0 -1
- package/dist/types/webgl.d.ts +0 -144
- package/dist/types/webgl.d.ts.map +0 -1
- package/dist/types/webgl.js +0 -2
- package/dist/types/webgl.js.map +0 -1
- package/src/adapter/converters/renderbuffer-formats.ts +0 -92
- package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
- package/src/bundle.ts +0 -4
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/create-context.ts +0 -110
- package/src/context/context/device-pixels.ts +0 -152
- package/src/init.ts +0 -4
- package/src/types/webgl.ts +0 -283
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
4
|
+
import {log, uid, Shader, ShaderProps, CompilerMessage, formatCompilerLog} from '@luma.gl/core';
|
|
5
|
+
import {GL} from '@luma.gl/constants';
|
|
6
|
+
import {getShaderInfo} from '../helpers/get-shader-info';
|
|
5
7
|
import {parseShaderCompilerLog} from '../helpers/parse-shader-compiler-log';
|
|
6
|
-
import WebGLDevice from '../webgl-device';
|
|
8
|
+
import {WebGLDevice} from '../webgl-device';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* An immutable compiled shader program that execute portions of the GPU Pipeline
|
|
10
12
|
*/
|
|
11
|
-
|
|
13
|
+
export class WEBGLShader extends Shader {
|
|
12
14
|
readonly device: WebGLDevice;
|
|
13
15
|
readonly handle: WebGLShader;
|
|
14
16
|
|
|
@@ -28,18 +30,18 @@ import WebGLDevice from '../webgl-device';
|
|
|
28
30
|
this._compile(this.source);
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
destroy(): void {
|
|
33
|
+
override destroy(): void {
|
|
32
34
|
if (this.handle) {
|
|
33
35
|
this.removeStats();
|
|
34
36
|
this.device.gl.deleteShader(this.handle);
|
|
35
|
-
//
|
|
36
|
-
this.
|
|
37
|
+
// this.handle = null;
|
|
38
|
+
this.destroyed = true;
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
async compilationInfo(): Promise<readonly CompilerMessage[]> {
|
|
41
43
|
const log = this.device.gl.getShaderInfoLog(this.handle);
|
|
42
|
-
return parseShaderCompilerLog(log);
|
|
44
|
+
return log ? parseShaderCompilerLog(log) : [];
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
// PRIVATE METHODS
|
|
@@ -58,8 +60,9 @@ import WebGLDevice from '../webgl-device';
|
|
|
58
60
|
const compileStatus = gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);
|
|
59
61
|
if (!compileStatus) {
|
|
60
62
|
const shaderLog = gl.getShaderInfoLog(this.handle);
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
+
const parsedLog = shaderLog ? parseShaderCompilerLog(shaderLog) : [];
|
|
64
|
+
const messages = parsedLog.filter(message => message.type === 'error');
|
|
65
|
+
const formattedLog = formatCompilerLog(messages, source, {showSourceCode: true});
|
|
63
66
|
const shaderName: string = getShaderInfo(source).name;
|
|
64
67
|
const shaderDescription = `${this.stage} shader ${shaderName}`;
|
|
65
68
|
log.error(`GLSL compilation errors in ${shaderDescription}\n${formattedLog}`)();
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
2
4
|
// Texture class.
|
|
3
5
|
// @todo
|
|
4
6
|
// - [ ] cube texture init params
|
|
@@ -10,14 +12,14 @@ import {
|
|
|
10
12
|
Sampler,
|
|
11
13
|
SamplerProps,
|
|
12
14
|
SamplerParameters,
|
|
15
|
+
TypedArray,
|
|
13
16
|
isObjectEmpty
|
|
14
|
-
} from '@luma.gl/
|
|
15
|
-
import {Texture, cast, log, assert, isPowerOfTwo, loadImage} from '@luma.gl/
|
|
16
|
-
import GL from '@luma.gl/constants';
|
|
17
|
-
import
|
|
18
|
-
import {withParameters} from '../../context/state-tracker/with-parameters';
|
|
17
|
+
} from '@luma.gl/core';
|
|
18
|
+
import {Texture, cast, log, assert, isPowerOfTwo, loadImage} from '@luma.gl/core';
|
|
19
|
+
import {GL, GLSamplerParameters} from '@luma.gl/constants';
|
|
20
|
+
import {withGLParameters} from '../../context/state-tracker/with-parameters';
|
|
19
21
|
import {
|
|
20
|
-
|
|
22
|
+
convertTextureFormatToGL,
|
|
21
23
|
getWebGLTextureParameters,
|
|
22
24
|
getTextureFormatBytesPerPixel
|
|
23
25
|
} from '../converters/texture-formats';
|
|
@@ -25,28 +27,63 @@ import {
|
|
|
25
27
|
convertSamplerParametersToWebGL,
|
|
26
28
|
updateSamplerParametersForNPOT
|
|
27
29
|
} from '../converters/sampler-parameters';
|
|
28
|
-
import WebGLDevice from '../webgl-device';
|
|
29
|
-
import WEBGLBuffer from './webgl-buffer';
|
|
30
|
-
import WEBGLSampler from './webgl-sampler';
|
|
30
|
+
import {WebGLDevice} from '../webgl-device';
|
|
31
|
+
import {WEBGLBuffer} from './webgl-buffer';
|
|
32
|
+
import {WEBGLSampler} from './webgl-sampler';
|
|
33
|
+
|
|
34
|
+
export type WEBGLTextureProps = TextureProps & {
|
|
35
|
+
/** @deprecated use props.sampler */
|
|
36
|
+
parameters?: Record<number, number>;
|
|
37
|
+
/** @deprecated use props.data */
|
|
38
|
+
pixels?: any;
|
|
39
|
+
/** @deprecated use props.format */
|
|
40
|
+
dataFormat?: number | null;
|
|
41
|
+
/** @deprecated rarely supported */
|
|
42
|
+
border?: number;
|
|
43
|
+
/** @deprecated WebGL only. */
|
|
44
|
+
pixelStore?: object;
|
|
45
|
+
/** @deprecated WebGL only. */
|
|
46
|
+
textureUnit?: number;
|
|
47
|
+
/** @deprecated WebGL only. Use dimension. */
|
|
48
|
+
target?: number;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const DEFAULT_WEBGL_TEXTURE_PROPS = {
|
|
52
|
+
// deprecated
|
|
53
|
+
parameters: {},
|
|
54
|
+
pixelStore: {},
|
|
55
|
+
pixels: null,
|
|
56
|
+
border: 0,
|
|
57
|
+
dataFormat: undefined!,
|
|
58
|
+
textureUnit: undefined!,
|
|
59
|
+
target: undefined!,
|
|
60
|
+
};
|
|
31
61
|
|
|
32
|
-
export type
|
|
62
|
+
export type TextureSourceData =
|
|
63
|
+
TypedArray |
|
|
64
|
+
ImageData |
|
|
65
|
+
HTMLImageElement |
|
|
66
|
+
HTMLCanvasElement |
|
|
67
|
+
ImageBitmap |
|
|
68
|
+
HTMLVideoElement
|
|
69
|
+
;
|
|
33
70
|
|
|
34
71
|
type SetImageDataOptions = {
|
|
35
72
|
target?: number;
|
|
36
73
|
level?: number;
|
|
37
74
|
dataFormat?: any;
|
|
38
|
-
width
|
|
39
|
-
height
|
|
75
|
+
width?: number;
|
|
76
|
+
height?: number;
|
|
40
77
|
depth?: number;
|
|
41
|
-
|
|
78
|
+
glFormat?: GL;
|
|
42
79
|
type?: any;
|
|
43
80
|
offset?: number;
|
|
44
|
-
data: any;
|
|
81
|
+
data: any; // TextureSourceData;
|
|
45
82
|
compressed?: boolean;
|
|
46
83
|
parameters?: Record<GL, any>;
|
|
47
84
|
/** @deprecated */
|
|
48
85
|
pixels?: any;
|
|
49
|
-
}
|
|
86
|
+
}
|
|
50
87
|
|
|
51
88
|
/**
|
|
52
89
|
* @param {*} pixels, data -
|
|
@@ -77,7 +114,7 @@ type SetSubImageDataOptions = {
|
|
|
77
114
|
width?: number;
|
|
78
115
|
height?: number;
|
|
79
116
|
depth?: number;
|
|
80
|
-
|
|
117
|
+
glFormat?: any;
|
|
81
118
|
type?: any;
|
|
82
119
|
offset?: number;
|
|
83
120
|
data: any;
|
|
@@ -92,10 +129,10 @@ type SetSubImageDataOptions = {
|
|
|
92
129
|
type SetImageData3DOptions = {
|
|
93
130
|
level?: number;
|
|
94
131
|
dataFormat?: any;
|
|
95
|
-
width
|
|
96
|
-
height
|
|
132
|
+
width?: number;
|
|
133
|
+
height?: number;
|
|
97
134
|
depth?: number;
|
|
98
|
-
format
|
|
135
|
+
format?: any;
|
|
99
136
|
type?: any;
|
|
100
137
|
offset?: number;
|
|
101
138
|
data: any;
|
|
@@ -104,7 +141,7 @@ type SetImageData3DOptions = {
|
|
|
104
141
|
|
|
105
142
|
|
|
106
143
|
// Polyfill
|
|
107
|
-
export
|
|
144
|
+
export class WEBGLTexture extends Texture<WEBGLTextureProps> {
|
|
108
145
|
// TODO - remove?
|
|
109
146
|
static FACES: number[] = [
|
|
110
147
|
GL.TEXTURE_CUBE_MAP_POSITIVE_X,
|
|
@@ -121,13 +158,12 @@ export default class WEBGLTexture extends Texture {
|
|
|
121
158
|
readonly gl2: WebGL2RenderingContext | null;
|
|
122
159
|
readonly handle: WebGLTexture;
|
|
123
160
|
|
|
124
|
-
|
|
161
|
+
/** Sampler object (currently unused) */
|
|
162
|
+
sampler: WEBGLSampler = undefined;
|
|
125
163
|
|
|
126
|
-
|
|
127
|
-
height: number = undefined;
|
|
128
|
-
depth: number = undefined;
|
|
164
|
+
// data;
|
|
129
165
|
|
|
130
|
-
|
|
166
|
+
glFormat: GL = undefined;
|
|
131
167
|
type: GL = undefined;
|
|
132
168
|
dataFormat: GL = undefined;
|
|
133
169
|
mipmaps: boolean = undefined;
|
|
@@ -144,9 +180,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
144
180
|
target: GL;
|
|
145
181
|
textureUnit: number = undefined;
|
|
146
182
|
|
|
147
|
-
/** Sampler object (currently unused) */
|
|
148
|
-
sampler: WEBGLSampler = undefined;
|
|
149
|
-
|
|
150
183
|
/**
|
|
151
184
|
* Program.draw() checks the loaded flag of all textures to avoid
|
|
152
185
|
* Textures that are still loading from promises
|
|
@@ -159,16 +192,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
159
192
|
lastTime: number;
|
|
160
193
|
};
|
|
161
194
|
|
|
162
|
-
constructor(device: Device, props:
|
|
163
|
-
super(device, {format:
|
|
195
|
+
constructor(device: Device, props: WEBGLTextureProps) {
|
|
196
|
+
super(device, {...DEFAULT_WEBGL_TEXTURE_PROPS, format: 'rgba8unorm', ...props});
|
|
164
197
|
|
|
165
198
|
this.device = cast<WebGLDevice>(device);
|
|
166
199
|
this.gl = this.device.gl;
|
|
167
200
|
this.gl2 = this.device.gl2;
|
|
168
201
|
this.handle = this.props.handle || this.gl.createTexture();
|
|
169
|
-
|
|
170
|
-
this.handle.__SPECTOR_Metadata = {...this.props, data: typeof this.props.data}; // {name: this.props.id};
|
|
202
|
+
this.device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data}); // {name: this.props.id};
|
|
171
203
|
|
|
204
|
+
this.glFormat = GL.RGBA;
|
|
172
205
|
this.target = getWebGLTextureTarget(this.props);
|
|
173
206
|
|
|
174
207
|
// Program.draw() checks the loaded flag of all textures
|
|
@@ -184,22 +217,22 @@ export default class WEBGLTexture extends Texture {
|
|
|
184
217
|
Object.seal(this);
|
|
185
218
|
}
|
|
186
219
|
|
|
187
|
-
destroy(): void {
|
|
220
|
+
override destroy(): void {
|
|
188
221
|
if (this.handle) {
|
|
189
222
|
this.gl.deleteTexture(this.handle);
|
|
190
223
|
this.removeStats();
|
|
191
224
|
this.trackDeallocatedMemory('Texture');
|
|
192
|
-
//
|
|
193
|
-
this.
|
|
225
|
+
// this.handle = null;
|
|
226
|
+
this.destroyed = true;
|
|
194
227
|
}
|
|
195
228
|
}
|
|
196
229
|
|
|
197
|
-
toString(): string {
|
|
230
|
+
override toString(): string {
|
|
198
231
|
return `Texture(${this.id},${this.width}x${this.height})`;
|
|
199
232
|
}
|
|
200
233
|
|
|
201
234
|
// eslint-disable-next-line max-statements
|
|
202
|
-
initialize(props:
|
|
235
|
+
initialize(props: WEBGLTextureProps = {}): this {
|
|
203
236
|
// Cube textures
|
|
204
237
|
if (this.props.dimension === 'cube') {
|
|
205
238
|
return this.initializeCube(props);
|
|
@@ -228,10 +261,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
228
261
|
return this;
|
|
229
262
|
}
|
|
230
263
|
|
|
231
|
-
|
|
264
|
+
const {parameters = {} as Record<GL, any>} = props;
|
|
232
265
|
|
|
233
266
|
const {
|
|
234
|
-
pixels = null,
|
|
267
|
+
pixels = null, pixelStore = {}, textureUnit = undefined} = props;
|
|
235
268
|
|
|
236
269
|
// pixels variable is for API compatibility purpose
|
|
237
270
|
if (!data) {
|
|
@@ -244,6 +277,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
244
277
|
let {width, height, dataFormat, type, compressed = false, mipmaps = true} = props;
|
|
245
278
|
const {depth = 0} = props;
|
|
246
279
|
|
|
280
|
+
const glFormat = convertTextureFormatToGL(props.format, this.device.isWebGL2);
|
|
281
|
+
|
|
247
282
|
// Deduce width and height
|
|
248
283
|
({width, height, compressed, dataFormat, type} = this._deduceParameters({
|
|
249
284
|
format: props.format,
|
|
@@ -255,13 +290,11 @@ export default class WEBGLTexture extends Texture {
|
|
|
255
290
|
height
|
|
256
291
|
}));
|
|
257
292
|
|
|
258
|
-
const format = getWebGLTextureFormat(this.gl, props.format);
|
|
259
|
-
|
|
260
293
|
// Store opts for accessors
|
|
261
294
|
this.width = width;
|
|
262
295
|
this.height = height;
|
|
263
|
-
this.depth = depth;
|
|
264
|
-
this.
|
|
296
|
+
// this.depth = depth;
|
|
297
|
+
this.glFormat = glFormat;
|
|
265
298
|
this.type = type;
|
|
266
299
|
this.dataFormat = dataFormat;
|
|
267
300
|
this.textureUnit = textureUnit;
|
|
@@ -283,7 +316,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
283
316
|
width,
|
|
284
317
|
height,
|
|
285
318
|
depth,
|
|
286
|
-
format,
|
|
319
|
+
format: glFormat,
|
|
287
320
|
type,
|
|
288
321
|
dataFormat,
|
|
289
322
|
// @ts-expect-error
|
|
@@ -299,10 +332,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
299
332
|
this.generateMipmap();
|
|
300
333
|
}
|
|
301
334
|
|
|
302
|
-
// TODO - Store data to enable auto recreate on context loss
|
|
303
|
-
if (recreate) {
|
|
304
|
-
this.data = data;
|
|
305
|
-
}
|
|
306
335
|
if (isVideo) {
|
|
307
336
|
this._video = {
|
|
308
337
|
video: data as HTMLVideoElement,
|
|
@@ -315,7 +344,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
315
344
|
return this;
|
|
316
345
|
}
|
|
317
346
|
|
|
318
|
-
initializeCube(props?:
|
|
347
|
+
initializeCube(props?: WEBGLTextureProps): this {
|
|
319
348
|
const {mipmaps = true, parameters = {} as Record<GL, any>} = props;
|
|
320
349
|
|
|
321
350
|
// Store props for accessors
|
|
@@ -357,7 +386,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
357
386
|
* If size has changed, reinitializes with current format
|
|
358
387
|
* @note note clears image and mipmaps
|
|
359
388
|
*/
|
|
360
|
-
resize({height, width, mipmaps
|
|
389
|
+
resize(options: {height: number, width: number, mipmaps?: boolean}): this {
|
|
390
|
+
const {height, width, mipmaps = false} = options;
|
|
361
391
|
if (width !== this.width || height !== this.height) {
|
|
362
392
|
return this.initialize({
|
|
363
393
|
width,
|
|
@@ -372,7 +402,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
372
402
|
}
|
|
373
403
|
|
|
374
404
|
/** Update external texture (video frame) */
|
|
375
|
-
update():
|
|
405
|
+
update(): void {
|
|
376
406
|
if (this._video) {
|
|
377
407
|
const {video, parameters, lastTime} = this._video;
|
|
378
408
|
// @ts-expect-error
|
|
@@ -400,7 +430,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
400
430
|
this.mipmaps = true;
|
|
401
431
|
|
|
402
432
|
this.gl.bindTexture(this.target, this.handle);
|
|
403
|
-
|
|
433
|
+
withGLParameters(this.gl, params, () => {
|
|
404
434
|
this.gl.generateMipmap(this.target);
|
|
405
435
|
});
|
|
406
436
|
this.gl.bindTexture(this.target, null);
|
|
@@ -429,7 +459,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
429
459
|
*/
|
|
430
460
|
// eslint-disable-next-line max-statements, complexity
|
|
431
461
|
setImageData(options: SetImageDataOptions) {
|
|
432
|
-
if (this.props.dimension === '3d') {
|
|
462
|
+
if (this.props.dimension === '3d' || this.props.dimension === '2d-array') {
|
|
433
463
|
return this.setImageData3D(options);
|
|
434
464
|
}
|
|
435
465
|
|
|
@@ -439,7 +469,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
439
469
|
target = this.target,
|
|
440
470
|
pixels = null,
|
|
441
471
|
level = 0,
|
|
442
|
-
|
|
472
|
+
glFormat = this.glFormat,
|
|
443
473
|
offset = 0,
|
|
444
474
|
parameters = {} as Record<GL, any>
|
|
445
475
|
} = options;
|
|
@@ -476,10 +506,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
476
506
|
|
|
477
507
|
let gl2;
|
|
478
508
|
|
|
479
|
-
|
|
509
|
+
withGLParameters(this.gl, parameters, () => {
|
|
480
510
|
switch (dataType) {
|
|
481
511
|
case 'null':
|
|
482
|
-
gl.texImage2D(target, level,
|
|
512
|
+
gl.texImage2D(target, level, glFormat, width, height, 0 /* border*/, dataFormat, type, data);
|
|
483
513
|
break;
|
|
484
514
|
case 'typed-array':
|
|
485
515
|
// Looks like this assert is not necessary, as offset is ignored under WebGL1
|
|
@@ -487,7 +517,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
487
517
|
gl.texImage2D(
|
|
488
518
|
target,
|
|
489
519
|
level,
|
|
490
|
-
|
|
520
|
+
glFormat,
|
|
491
521
|
width,
|
|
492
522
|
height,
|
|
493
523
|
0, // border (must be 0)
|
|
@@ -505,10 +535,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
505
535
|
gl2.texImage2D(
|
|
506
536
|
target,
|
|
507
537
|
level,
|
|
508
|
-
|
|
538
|
+
glFormat,
|
|
509
539
|
width,
|
|
510
540
|
height,
|
|
511
|
-
0 /*border*/,
|
|
541
|
+
0 /* border*/,
|
|
512
542
|
dataFormat,
|
|
513
543
|
type,
|
|
514
544
|
offset
|
|
@@ -520,16 +550,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
520
550
|
gl.texImage2D(
|
|
521
551
|
target,
|
|
522
552
|
level,
|
|
523
|
-
|
|
553
|
+
glFormat,
|
|
524
554
|
width,
|
|
525
555
|
height,
|
|
526
|
-
0 /*border*/,
|
|
556
|
+
0 /* border*/,
|
|
527
557
|
dataFormat,
|
|
528
558
|
type,
|
|
529
559
|
data
|
|
530
560
|
);
|
|
531
561
|
} else {
|
|
532
|
-
gl.texImage2D(target, level,
|
|
562
|
+
gl.texImage2D(target, level, glFormat, dataFormat, type, data);
|
|
533
563
|
}
|
|
534
564
|
break;
|
|
535
565
|
case 'compressed':
|
|
@@ -554,7 +584,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
554
584
|
if (data && data.byteLength) {
|
|
555
585
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
556
586
|
} else {
|
|
557
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
587
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
558
588
|
this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
|
|
559
589
|
}
|
|
560
590
|
|
|
@@ -577,7 +607,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
577
607
|
width = this.width,
|
|
578
608
|
height = this.height,
|
|
579
609
|
level = 0,
|
|
580
|
-
|
|
610
|
+
glFormat = this.glFormat,
|
|
581
611
|
type = this.type,
|
|
582
612
|
dataFormat = this.dataFormat,
|
|
583
613
|
compressed = false,
|
|
@@ -616,10 +646,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
616
646
|
|
|
617
647
|
this.gl.bindTexture(this.target, this.handle);
|
|
618
648
|
|
|
619
|
-
|
|
649
|
+
withGLParameters(this.gl, parameters, () => {
|
|
620
650
|
// TODO - x,y parameters
|
|
621
651
|
if (compressed) {
|
|
622
|
-
this.gl.compressedTexSubImage2D(target, level, x, y, width, height,
|
|
652
|
+
this.gl.compressedTexSubImage2D(target, level, x, y, width, height, glFormat, data);
|
|
623
653
|
} else if (data === null) {
|
|
624
654
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
|
|
625
655
|
} else if (ArrayBuffer.isView(data)) {
|
|
@@ -713,12 +743,12 @@ export default class WEBGLTexture extends Texture {
|
|
|
713
743
|
|
|
714
744
|
// HELPER METHODS
|
|
715
745
|
|
|
716
|
-
_deduceParameters(opts) {
|
|
746
|
+
_deduceParameters(opts: WEBGLTextureProps) {
|
|
717
747
|
const {format, data} = opts;
|
|
718
748
|
let {width, height, dataFormat, type, compressed} = opts;
|
|
719
749
|
|
|
720
750
|
// Deduce format and type from format
|
|
721
|
-
const parameters = getWebGLTextureParameters(this.
|
|
751
|
+
const parameters = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
722
752
|
dataFormat = dataFormat || parameters.dataFormat;
|
|
723
753
|
type = type || parameters.type;
|
|
724
754
|
compressed = compressed || parameters.compressed;
|
|
@@ -808,7 +838,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
808
838
|
resolvedFaces[index].forEach((image, lodLevel) => {
|
|
809
839
|
// TODO: adjust width & height for LOD!
|
|
810
840
|
if (width && height) {
|
|
811
|
-
gl.texImage2D(face, lodLevel, format, width, height, 0 /*border*/, format, type, image);
|
|
841
|
+
gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*/, format, type, image);
|
|
812
842
|
} else {
|
|
813
843
|
gl.texImage2D(face, lodLevel, format, format, type, image);
|
|
814
844
|
}
|
|
@@ -847,7 +877,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
847
877
|
)
|
|
848
878
|
);
|
|
849
879
|
} else if (this.width || this.height) {
|
|
850
|
-
gl.texImage2D(face, 0, format, width, height, 0 /*border*/, format, type, imageData);
|
|
880
|
+
gl.texImage2D(face, 0, format, width, height, 0 /* border*/, format, type, imageData);
|
|
851
881
|
} else {
|
|
852
882
|
gl.texImage2D(face, 0, format, format, type, imageData);
|
|
853
883
|
}
|
|
@@ -856,25 +886,27 @@ export default class WEBGLTexture extends Texture {
|
|
|
856
886
|
}
|
|
857
887
|
|
|
858
888
|
/** Image 3D copies from Typed Array or WebGLBuffer */
|
|
859
|
-
setImageData3D({
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
889
|
+
setImageData3D(options: SetImageData3DOptions) {
|
|
890
|
+
const {
|
|
891
|
+
level = 0,
|
|
892
|
+
dataFormat,
|
|
893
|
+
format,
|
|
894
|
+
type, // = GL.UNSIGNED_BYTE,
|
|
895
|
+
width,
|
|
896
|
+
height,
|
|
897
|
+
depth = 1,
|
|
898
|
+
offset = 0,
|
|
899
|
+
data,
|
|
900
|
+
parameters = {}
|
|
901
|
+
} = options;
|
|
902
|
+
|
|
871
903
|
this.trackDeallocatedMemory('Texture');
|
|
872
904
|
|
|
873
905
|
this.gl.bindTexture(this.target, this.handle);
|
|
874
906
|
|
|
875
|
-
const webglTextureFormat = getWebGLTextureParameters(this.
|
|
907
|
+
const webglTextureFormat = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
876
908
|
|
|
877
|
-
|
|
909
|
+
withGLParameters(this.gl, parameters, () => {
|
|
878
910
|
if (ArrayBuffer.isView(data)) {
|
|
879
911
|
// @ts-expect-error
|
|
880
912
|
this.gl.texImage3D(
|
|
@@ -912,7 +944,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
912
944
|
if (data && data.byteLength) {
|
|
913
945
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
914
946
|
} else {
|
|
915
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
947
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
916
948
|
this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
|
|
917
949
|
}
|
|
918
950
|
|
|
@@ -927,7 +959,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
927
959
|
* Sets sampler parameters on texture
|
|
928
960
|
* @note: Applies NPOT workaround if appropriate
|
|
929
961
|
*/
|
|
930
|
-
_setSamplerParameters(parameters:
|
|
962
|
+
_setSamplerParameters(parameters: GLSamplerParameters): void {
|
|
931
963
|
// Work around WebGL1 sampling restrictions on NPOT textures
|
|
932
964
|
if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
933
965
|
parameters = updateSamplerParametersForNPOT(parameters);
|
|
@@ -943,7 +975,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
943
975
|
this.gl.bindTexture(this.target, this.handle);
|
|
944
976
|
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
945
977
|
const param = Number(pname);
|
|
946
|
-
|
|
978
|
+
const value = pvalue;
|
|
947
979
|
|
|
948
980
|
// Apparently there are integer/float conversion issues requires two parameter setting functions in JavaScript.
|
|
949
981
|
// For now, pick the float version for parameters specified as GLfloat.
|
|
@@ -959,7 +991,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
959
991
|
}
|
|
960
992
|
}
|
|
961
993
|
this.gl.bindTexture(this.target, null);
|
|
962
|
-
return
|
|
994
|
+
return;
|
|
963
995
|
}
|
|
964
996
|
|
|
965
997
|
/** @deprecated For LegacyTexture subclass */
|
|
@@ -1018,6 +1050,4 @@ function isNPOT(width: number, height: number): boolean {
|
|
|
1018
1050
|
|
|
1019
1051
|
function logParameters(parameters: Record<number, GL | number>) {
|
|
1020
1052
|
log.log(1, 'texture sampler parameters', parameters)();
|
|
1021
|
-
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
1022
|
-
}
|
|
1023
1053
|
}
|