@luma.gl/webgl 9.0.0-alpha.3 → 9.0.0-alpha.30
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 +2 -1
- package/dist/adapter/converters/device-parameters.d.ts +14 -4
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +28 -46
- 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/texture-formats.d.ts +31 -42
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +163 -178
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/converters/vertex-formats.d.ts +2 -2
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +3 -9
- 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 +13 -20
- 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.js +2 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +4 -4
- package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/attribute-utils.js +1 -18
- package/dist/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-info.js +25 -0
- package/dist/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +10 -7
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +101 -84
- 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 +2 -2
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +3 -33
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/uniforms.d.ts +9 -10
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
- package/dist/adapter/helpers/uniforms.js +8 -18
- package/dist/adapter/helpers/uniforms.js.map +1 -1
- 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 +1 -28
- 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 +35 -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 +19 -75
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +38 -11
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +122 -32
- package/dist/adapter/objects/webgl-vertex-array-object.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 +43 -71
- 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 -41
- 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 +8 -17
- 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 +41 -149
- 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 +88 -9
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +44 -11
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +90 -152
- 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 +7 -15
- 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 +9 -22
- 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 +98 -213
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- 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 +8 -20
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +64 -41
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +133 -113
- 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 +14 -38
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -28
- package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
- package/dist/classic/{buffer.js → buffer-with-accessor.js} +54 -122
- 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 +202 -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/{esm/context/context/create-context.js → context/context/create-browser-context.js} +23 -19
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +9 -0
- package/dist/context/context/create-headless-context.d.ts.map +1 -0
- package/dist/context/context/create-headless-context.js +42 -0
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/context/webgl-checks.js +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 +11 -34
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +8 -7
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +8 -18
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +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.js +21 -29
- 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.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 +16 -51
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts +2 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +7 -9
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/dist.dev.js +10158 -0
- package/dist/index.cjs +6604 -0
- package/dist/index.d.ts +25 -22
- 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 +1 -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 +88 -35
- package/src/adapter/converters/sampler-parameters.ts +19 -9
- package/src/adapter/converters/texture-formats.ts +261 -178
- package/src/adapter/converters/vertex-formats.ts +3 -2
- package/src/adapter/device-helpers/device-features.ts +10 -3
- package/src/adapter/device-helpers/device-limits.ts +3 -3
- package/src/adapter/device-helpers/get-device-info.ts +14 -10
- package/src/adapter/helpers/attribute-utils.ts +4 -5
- package/src/adapter/helpers/get-shader-info.ts +40 -0
- package/src/adapter/helpers/get-shader-layout.ts +150 -68
- package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
- package/src/adapter/helpers/set-uniform.ts +7 -6
- package/src/adapter/helpers/uniforms.ts +23 -13
- package/src/adapter/objects/constants-to-keys.ts +3 -25
- package/src/adapter/objects/webgl-renderbuffer.ts +40 -37
- package/src/adapter/objects/webgl-resource.ts +14 -23
- package/src/adapter/objects/webgl-vertex-array-object.ts +201 -37
- package/src/adapter/resources/webgl-buffer.ts +56 -58
- package/src/adapter/resources/webgl-command-buffer.ts +332 -25
- package/src/adapter/resources/webgl-command-encoder.ts +16 -11
- package/src/adapter/resources/webgl-external-texture.ts +2 -2
- package/src/adapter/resources/webgl-framebuffer.ts +88 -133
- package/src/adapter/resources/webgl-render-pass.ts +155 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +161 -104
- package/src/adapter/resources/webgl-sampler.ts +13 -8
- package/src/adapter/resources/webgl-shader.ts +11 -10
- package/src/adapter/resources/webgl-texture.ts +113 -85
- package/src/adapter/webgl-canvas-context.ts +14 -14
- package/src/adapter/webgl-device.ts +192 -77
- package/src/classic/accessor.ts +4 -17
- package/src/classic/{buffer.ts → buffer-with-accessor.ts} +67 -75
- package/src/classic/clear.ts +110 -0
- package/src/classic/copy-and-blit.ts +308 -0
- package/src/classic/format-utils.ts +43 -0
- package/src/classic/typed-array-utils.ts +18 -27
- package/src/context/context/{create-context.ts → create-browser-context.ts} +48 -31
- package/src/context/context/create-headless-context.ts +48 -0
- package/src/context/context/webgl-checks.ts +1 -1
- package/src/context/debug/spector.ts +7 -6
- package/src/context/debug/webgl-developer-tools.ts +21 -15
- package/src/context/parameters/unified-parameter-api.ts +20 -14
- package/src/context/parameters/webgl-parameter-tables.ts +117 -98
- package/src/context/polyfill/context-data.ts +27 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +8 -7
- package/src/context/polyfill/polyfill-context.ts +7 -9
- package/src/context/polyfill/polyfill-table.ts +18 -16
- package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +14 -13
- package/src/context/state-tracker/with-parameters.ts +8 -2
- package/src/index.ts +42 -33
- 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/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.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/bundle.ts +0 -4
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/device-pixels.ts +0 -152
- package/src/init.ts +0 -4
- package/src/types/webgl.ts +0 -283
|
@@ -10,14 +10,14 @@ import {
|
|
|
10
10
|
Sampler,
|
|
11
11
|
SamplerProps,
|
|
12
12
|
SamplerParameters,
|
|
13
|
+
TypedArray,
|
|
13
14
|
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 type {WebGLSamplerParameters} from '../../types/webgl';
|
|
15
|
+
} from '@luma.gl/core';
|
|
16
|
+
import {Texture, cast, log, assert, isPowerOfTwo, loadImage} from '@luma.gl/core';
|
|
17
|
+
import {GL, GLSamplerParameters} from '@luma.gl/constants';
|
|
18
18
|
import {withParameters} from '../../context/state-tracker/with-parameters';
|
|
19
19
|
import {
|
|
20
|
-
|
|
20
|
+
convertTextureFormatToGL,
|
|
21
21
|
getWebGLTextureParameters,
|
|
22
22
|
getTextureFormatBytesPerPixel
|
|
23
23
|
} from '../converters/texture-formats';
|
|
@@ -25,28 +25,63 @@ import {
|
|
|
25
25
|
convertSamplerParametersToWebGL,
|
|
26
26
|
updateSamplerParametersForNPOT
|
|
27
27
|
} from '../converters/sampler-parameters';
|
|
28
|
-
import WebGLDevice from '../webgl-device';
|
|
29
|
-
import WEBGLBuffer from './webgl-buffer';
|
|
30
|
-
import WEBGLSampler from './webgl-sampler';
|
|
28
|
+
import {WebGLDevice} from '../webgl-device';
|
|
29
|
+
import {WEBGLBuffer} from './webgl-buffer';
|
|
30
|
+
import {WEBGLSampler} from './webgl-sampler';
|
|
31
|
+
|
|
32
|
+
export type WEBGLTextureProps = TextureProps & {
|
|
33
|
+
/** @deprecated use props.sampler */
|
|
34
|
+
parameters?: Record<number, number>;
|
|
35
|
+
/** @deprecated use props.data */
|
|
36
|
+
pixels?: any;
|
|
37
|
+
/** @deprecated use props.format */
|
|
38
|
+
dataFormat?: number | null;
|
|
39
|
+
/** @deprecated rarely supported */
|
|
40
|
+
border?: number;
|
|
41
|
+
/** @deprecated WebGL only. */
|
|
42
|
+
pixelStore?: object;
|
|
43
|
+
/** @deprecated WebGL only. */
|
|
44
|
+
textureUnit?: number;
|
|
45
|
+
/** @deprecated WebGL only. Use dimension. */
|
|
46
|
+
target?: number;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const DEFAULT_WEBGL_TEXTURE_PROPS = {
|
|
50
|
+
// deprecated
|
|
51
|
+
parameters: {},
|
|
52
|
+
pixelStore: {},
|
|
53
|
+
pixels: null,
|
|
54
|
+
border: 0,
|
|
55
|
+
dataFormat: undefined!,
|
|
56
|
+
textureUnit: undefined!,
|
|
57
|
+
target: undefined!,
|
|
58
|
+
};
|
|
31
59
|
|
|
32
|
-
export type
|
|
60
|
+
export type TextureSourceData =
|
|
61
|
+
TypedArray |
|
|
62
|
+
ImageData |
|
|
63
|
+
HTMLImageElement |
|
|
64
|
+
HTMLCanvasElement |
|
|
65
|
+
ImageBitmap |
|
|
66
|
+
HTMLVideoElement
|
|
67
|
+
;
|
|
33
68
|
|
|
34
69
|
type SetImageDataOptions = {
|
|
35
70
|
target?: number;
|
|
36
71
|
level?: number;
|
|
37
72
|
dataFormat?: any;
|
|
38
|
-
width
|
|
39
|
-
height
|
|
73
|
+
width?: number;
|
|
74
|
+
height?: number;
|
|
40
75
|
depth?: number;
|
|
41
|
-
|
|
76
|
+
glFormat?: GL;
|
|
42
77
|
type?: any;
|
|
43
78
|
offset?: number;
|
|
44
|
-
data: any;
|
|
79
|
+
data: any; // TextureSourceData;
|
|
45
80
|
compressed?: boolean;
|
|
46
81
|
parameters?: Record<GL, any>;
|
|
47
82
|
/** @deprecated */
|
|
48
83
|
pixels?: any;
|
|
49
|
-
}
|
|
84
|
+
}
|
|
50
85
|
|
|
51
86
|
/**
|
|
52
87
|
* @param {*} pixels, data -
|
|
@@ -77,7 +112,7 @@ type SetSubImageDataOptions = {
|
|
|
77
112
|
width?: number;
|
|
78
113
|
height?: number;
|
|
79
114
|
depth?: number;
|
|
80
|
-
|
|
115
|
+
glFormat?: any;
|
|
81
116
|
type?: any;
|
|
82
117
|
offset?: number;
|
|
83
118
|
data: any;
|
|
@@ -92,10 +127,10 @@ type SetSubImageDataOptions = {
|
|
|
92
127
|
type SetImageData3DOptions = {
|
|
93
128
|
level?: number;
|
|
94
129
|
dataFormat?: any;
|
|
95
|
-
width
|
|
96
|
-
height
|
|
130
|
+
width?: number;
|
|
131
|
+
height?: number;
|
|
97
132
|
depth?: number;
|
|
98
|
-
format
|
|
133
|
+
format?: any;
|
|
99
134
|
type?: any;
|
|
100
135
|
offset?: number;
|
|
101
136
|
data: any;
|
|
@@ -104,7 +139,7 @@ type SetImageData3DOptions = {
|
|
|
104
139
|
|
|
105
140
|
|
|
106
141
|
// Polyfill
|
|
107
|
-
export
|
|
142
|
+
export class WEBGLTexture extends Texture<WEBGLTextureProps> {
|
|
108
143
|
// TODO - remove?
|
|
109
144
|
static FACES: number[] = [
|
|
110
145
|
GL.TEXTURE_CUBE_MAP_POSITIVE_X,
|
|
@@ -121,13 +156,12 @@ export default class WEBGLTexture extends Texture {
|
|
|
121
156
|
readonly gl2: WebGL2RenderingContext | null;
|
|
122
157
|
readonly handle: WebGLTexture;
|
|
123
158
|
|
|
124
|
-
|
|
159
|
+
/** Sampler object (currently unused) */
|
|
160
|
+
sampler: WEBGLSampler = undefined;
|
|
125
161
|
|
|
126
|
-
|
|
127
|
-
height: number = undefined;
|
|
128
|
-
depth: number = undefined;
|
|
162
|
+
// data;
|
|
129
163
|
|
|
130
|
-
|
|
164
|
+
glFormat: GL = undefined;
|
|
131
165
|
type: GL = undefined;
|
|
132
166
|
dataFormat: GL = undefined;
|
|
133
167
|
mipmaps: boolean = undefined;
|
|
@@ -144,9 +178,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
144
178
|
target: GL;
|
|
145
179
|
textureUnit: number = undefined;
|
|
146
180
|
|
|
147
|
-
/** Sampler object (currently unused) */
|
|
148
|
-
sampler: WEBGLSampler = undefined;
|
|
149
|
-
|
|
150
181
|
/**
|
|
151
182
|
* Program.draw() checks the loaded flag of all textures to avoid
|
|
152
183
|
* Textures that are still loading from promises
|
|
@@ -159,16 +190,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
159
190
|
lastTime: number;
|
|
160
191
|
};
|
|
161
192
|
|
|
162
|
-
constructor(device: Device, props:
|
|
163
|
-
super(device, {format:
|
|
193
|
+
constructor(device: Device, props: WEBGLTextureProps) {
|
|
194
|
+
super(device, {...DEFAULT_WEBGL_TEXTURE_PROPS, format: 'rgba8unorm', ...props});
|
|
164
195
|
|
|
165
196
|
this.device = cast<WebGLDevice>(device);
|
|
166
197
|
this.gl = this.device.gl;
|
|
167
198
|
this.gl2 = this.device.gl2;
|
|
168
199
|
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};
|
|
200
|
+
this.device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data}); // {name: this.props.id};
|
|
171
201
|
|
|
202
|
+
this.glFormat = GL.RGBA;
|
|
172
203
|
this.target = getWebGLTextureTarget(this.props);
|
|
173
204
|
|
|
174
205
|
// Program.draw() checks the loaded flag of all textures
|
|
@@ -184,22 +215,22 @@ export default class WEBGLTexture extends Texture {
|
|
|
184
215
|
Object.seal(this);
|
|
185
216
|
}
|
|
186
217
|
|
|
187
|
-
destroy(): void {
|
|
218
|
+
override destroy(): void {
|
|
188
219
|
if (this.handle) {
|
|
189
220
|
this.gl.deleteTexture(this.handle);
|
|
190
221
|
this.removeStats();
|
|
191
222
|
this.trackDeallocatedMemory('Texture');
|
|
192
|
-
//
|
|
193
|
-
this.
|
|
223
|
+
// this.handle = null;
|
|
224
|
+
this.destroyed = true;
|
|
194
225
|
}
|
|
195
226
|
}
|
|
196
227
|
|
|
197
|
-
toString(): string {
|
|
228
|
+
override toString(): string {
|
|
198
229
|
return `Texture(${this.id},${this.width}x${this.height})`;
|
|
199
230
|
}
|
|
200
231
|
|
|
201
232
|
// eslint-disable-next-line max-statements
|
|
202
|
-
initialize(props:
|
|
233
|
+
initialize(props: WEBGLTextureProps = {}): this {
|
|
203
234
|
// Cube textures
|
|
204
235
|
if (this.props.dimension === 'cube') {
|
|
205
236
|
return this.initializeCube(props);
|
|
@@ -228,10 +259,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
228
259
|
return this;
|
|
229
260
|
}
|
|
230
261
|
|
|
231
|
-
|
|
262
|
+
const {parameters = {} as Record<GL, any>} = props;
|
|
232
263
|
|
|
233
264
|
const {
|
|
234
|
-
pixels = null,
|
|
265
|
+
pixels = null, pixelStore = {}, textureUnit = undefined} = props;
|
|
235
266
|
|
|
236
267
|
// pixels variable is for API compatibility purpose
|
|
237
268
|
if (!data) {
|
|
@@ -244,6 +275,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
244
275
|
let {width, height, dataFormat, type, compressed = false, mipmaps = true} = props;
|
|
245
276
|
const {depth = 0} = props;
|
|
246
277
|
|
|
278
|
+
const glFormat = convertTextureFormatToGL(props.format, this.device.isWebGL2);
|
|
279
|
+
|
|
247
280
|
// Deduce width and height
|
|
248
281
|
({width, height, compressed, dataFormat, type} = this._deduceParameters({
|
|
249
282
|
format: props.format,
|
|
@@ -255,13 +288,11 @@ export default class WEBGLTexture extends Texture {
|
|
|
255
288
|
height
|
|
256
289
|
}));
|
|
257
290
|
|
|
258
|
-
const format = getWebGLTextureFormat(this.gl, props.format);
|
|
259
|
-
|
|
260
291
|
// Store opts for accessors
|
|
261
292
|
this.width = width;
|
|
262
293
|
this.height = height;
|
|
263
|
-
this.depth = depth;
|
|
264
|
-
this.
|
|
294
|
+
// this.depth = depth;
|
|
295
|
+
this.glFormat = glFormat;
|
|
265
296
|
this.type = type;
|
|
266
297
|
this.dataFormat = dataFormat;
|
|
267
298
|
this.textureUnit = textureUnit;
|
|
@@ -283,7 +314,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
283
314
|
width,
|
|
284
315
|
height,
|
|
285
316
|
depth,
|
|
286
|
-
format,
|
|
317
|
+
format: glFormat,
|
|
287
318
|
type,
|
|
288
319
|
dataFormat,
|
|
289
320
|
// @ts-expect-error
|
|
@@ -299,10 +330,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
299
330
|
this.generateMipmap();
|
|
300
331
|
}
|
|
301
332
|
|
|
302
|
-
// TODO - Store data to enable auto recreate on context loss
|
|
303
|
-
if (recreate) {
|
|
304
|
-
this.data = data;
|
|
305
|
-
}
|
|
306
333
|
if (isVideo) {
|
|
307
334
|
this._video = {
|
|
308
335
|
video: data as HTMLVideoElement,
|
|
@@ -315,7 +342,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
315
342
|
return this;
|
|
316
343
|
}
|
|
317
344
|
|
|
318
|
-
initializeCube(props?:
|
|
345
|
+
initializeCube(props?: WEBGLTextureProps): this {
|
|
319
346
|
const {mipmaps = true, parameters = {} as Record<GL, any>} = props;
|
|
320
347
|
|
|
321
348
|
// Store props for accessors
|
|
@@ -357,7 +384,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
357
384
|
* If size has changed, reinitializes with current format
|
|
358
385
|
* @note note clears image and mipmaps
|
|
359
386
|
*/
|
|
360
|
-
resize({height, width, mipmaps
|
|
387
|
+
resize(options: {height: number, width: number, mipmaps?: boolean}): this {
|
|
388
|
+
const {height, width, mipmaps = false} = options;
|
|
361
389
|
if (width !== this.width || height !== this.height) {
|
|
362
390
|
return this.initialize({
|
|
363
391
|
width,
|
|
@@ -372,7 +400,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
372
400
|
}
|
|
373
401
|
|
|
374
402
|
/** Update external texture (video frame) */
|
|
375
|
-
update():
|
|
403
|
+
update(): void {
|
|
376
404
|
if (this._video) {
|
|
377
405
|
const {video, parameters, lastTime} = this._video;
|
|
378
406
|
// @ts-expect-error
|
|
@@ -429,7 +457,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
429
457
|
*/
|
|
430
458
|
// eslint-disable-next-line max-statements, complexity
|
|
431
459
|
setImageData(options: SetImageDataOptions) {
|
|
432
|
-
if (this.props.dimension === '3d') {
|
|
460
|
+
if (this.props.dimension === '3d' || this.props.dimension === '2d-array') {
|
|
433
461
|
return this.setImageData3D(options);
|
|
434
462
|
}
|
|
435
463
|
|
|
@@ -439,7 +467,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
439
467
|
target = this.target,
|
|
440
468
|
pixels = null,
|
|
441
469
|
level = 0,
|
|
442
|
-
|
|
470
|
+
glFormat = this.glFormat,
|
|
443
471
|
offset = 0,
|
|
444
472
|
parameters = {} as Record<GL, any>
|
|
445
473
|
} = options;
|
|
@@ -479,7 +507,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
479
507
|
withParameters(this.gl, parameters, () => {
|
|
480
508
|
switch (dataType) {
|
|
481
509
|
case 'null':
|
|
482
|
-
gl.texImage2D(target, level,
|
|
510
|
+
gl.texImage2D(target, level, glFormat, width, height, 0 /* border*/, dataFormat, type, data);
|
|
483
511
|
break;
|
|
484
512
|
case 'typed-array':
|
|
485
513
|
// Looks like this assert is not necessary, as offset is ignored under WebGL1
|
|
@@ -487,7 +515,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
487
515
|
gl.texImage2D(
|
|
488
516
|
target,
|
|
489
517
|
level,
|
|
490
|
-
|
|
518
|
+
glFormat,
|
|
491
519
|
width,
|
|
492
520
|
height,
|
|
493
521
|
0, // border (must be 0)
|
|
@@ -505,10 +533,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
505
533
|
gl2.texImage2D(
|
|
506
534
|
target,
|
|
507
535
|
level,
|
|
508
|
-
|
|
536
|
+
glFormat,
|
|
509
537
|
width,
|
|
510
538
|
height,
|
|
511
|
-
0 /*border*/,
|
|
539
|
+
0 /* border*/,
|
|
512
540
|
dataFormat,
|
|
513
541
|
type,
|
|
514
542
|
offset
|
|
@@ -520,16 +548,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
520
548
|
gl.texImage2D(
|
|
521
549
|
target,
|
|
522
550
|
level,
|
|
523
|
-
|
|
551
|
+
glFormat,
|
|
524
552
|
width,
|
|
525
553
|
height,
|
|
526
|
-
0 /*border*/,
|
|
554
|
+
0 /* border*/,
|
|
527
555
|
dataFormat,
|
|
528
556
|
type,
|
|
529
557
|
data
|
|
530
558
|
);
|
|
531
559
|
} else {
|
|
532
|
-
gl.texImage2D(target, level,
|
|
560
|
+
gl.texImage2D(target, level, glFormat, dataFormat, type, data);
|
|
533
561
|
}
|
|
534
562
|
break;
|
|
535
563
|
case 'compressed':
|
|
@@ -554,7 +582,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
554
582
|
if (data && data.byteLength) {
|
|
555
583
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
556
584
|
} else {
|
|
557
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
585
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
558
586
|
this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
|
|
559
587
|
}
|
|
560
588
|
|
|
@@ -577,7 +605,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
577
605
|
width = this.width,
|
|
578
606
|
height = this.height,
|
|
579
607
|
level = 0,
|
|
580
|
-
|
|
608
|
+
glFormat = this.glFormat,
|
|
581
609
|
type = this.type,
|
|
582
610
|
dataFormat = this.dataFormat,
|
|
583
611
|
compressed = false,
|
|
@@ -619,7 +647,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
619
647
|
withParameters(this.gl, parameters, () => {
|
|
620
648
|
// TODO - x,y parameters
|
|
621
649
|
if (compressed) {
|
|
622
|
-
this.gl.compressedTexSubImage2D(target, level, x, y, width, height,
|
|
650
|
+
this.gl.compressedTexSubImage2D(target, level, x, y, width, height, glFormat, data);
|
|
623
651
|
} else if (data === null) {
|
|
624
652
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
|
|
625
653
|
} else if (ArrayBuffer.isView(data)) {
|
|
@@ -713,12 +741,12 @@ export default class WEBGLTexture extends Texture {
|
|
|
713
741
|
|
|
714
742
|
// HELPER METHODS
|
|
715
743
|
|
|
716
|
-
_deduceParameters(opts) {
|
|
744
|
+
_deduceParameters(opts: WEBGLTextureProps) {
|
|
717
745
|
const {format, data} = opts;
|
|
718
746
|
let {width, height, dataFormat, type, compressed} = opts;
|
|
719
747
|
|
|
720
748
|
// Deduce format and type from format
|
|
721
|
-
const parameters = getWebGLTextureParameters(this.
|
|
749
|
+
const parameters = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
722
750
|
dataFormat = dataFormat || parameters.dataFormat;
|
|
723
751
|
type = type || parameters.type;
|
|
724
752
|
compressed = compressed || parameters.compressed;
|
|
@@ -808,7 +836,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
808
836
|
resolvedFaces[index].forEach((image, lodLevel) => {
|
|
809
837
|
// TODO: adjust width & height for LOD!
|
|
810
838
|
if (width && height) {
|
|
811
|
-
gl.texImage2D(face, lodLevel, format, width, height, 0 /*border*/, format, type, image);
|
|
839
|
+
gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*/, format, type, image);
|
|
812
840
|
} else {
|
|
813
841
|
gl.texImage2D(face, lodLevel, format, format, type, image);
|
|
814
842
|
}
|
|
@@ -847,7 +875,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
847
875
|
)
|
|
848
876
|
);
|
|
849
877
|
} else if (this.width || this.height) {
|
|
850
|
-
gl.texImage2D(face, 0, format, width, height, 0 /*border*/, format, type, imageData);
|
|
878
|
+
gl.texImage2D(face, 0, format, width, height, 0 /* border*/, format, type, imageData);
|
|
851
879
|
} else {
|
|
852
880
|
gl.texImage2D(face, 0, format, format, type, imageData);
|
|
853
881
|
}
|
|
@@ -856,23 +884,25 @@ export default class WEBGLTexture extends Texture {
|
|
|
856
884
|
}
|
|
857
885
|
|
|
858
886
|
/** Image 3D copies from Typed Array or WebGLBuffer */
|
|
859
|
-
setImageData3D({
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
887
|
+
setImageData3D(options: SetImageData3DOptions) {
|
|
888
|
+
const {
|
|
889
|
+
level = 0,
|
|
890
|
+
dataFormat,
|
|
891
|
+
format,
|
|
892
|
+
type, // = GL.UNSIGNED_BYTE,
|
|
893
|
+
width,
|
|
894
|
+
height,
|
|
895
|
+
depth = 1,
|
|
896
|
+
offset = 0,
|
|
897
|
+
data,
|
|
898
|
+
parameters = {}
|
|
899
|
+
} = options;
|
|
900
|
+
|
|
871
901
|
this.trackDeallocatedMemory('Texture');
|
|
872
902
|
|
|
873
903
|
this.gl.bindTexture(this.target, this.handle);
|
|
874
904
|
|
|
875
|
-
const webglTextureFormat = getWebGLTextureParameters(this.
|
|
905
|
+
const webglTextureFormat = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
876
906
|
|
|
877
907
|
withParameters(this.gl, parameters, () => {
|
|
878
908
|
if (ArrayBuffer.isView(data)) {
|
|
@@ -912,7 +942,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
912
942
|
if (data && data.byteLength) {
|
|
913
943
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
914
944
|
} else {
|
|
915
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
945
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
916
946
|
this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
|
|
917
947
|
}
|
|
918
948
|
|
|
@@ -927,7 +957,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
927
957
|
* Sets sampler parameters on texture
|
|
928
958
|
* @note: Applies NPOT workaround if appropriate
|
|
929
959
|
*/
|
|
930
|
-
_setSamplerParameters(parameters:
|
|
960
|
+
_setSamplerParameters(parameters: GLSamplerParameters): void {
|
|
931
961
|
// Work around WebGL1 sampling restrictions on NPOT textures
|
|
932
962
|
if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
933
963
|
parameters = updateSamplerParametersForNPOT(parameters);
|
|
@@ -943,7 +973,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
943
973
|
this.gl.bindTexture(this.target, this.handle);
|
|
944
974
|
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
945
975
|
const param = Number(pname);
|
|
946
|
-
|
|
976
|
+
const value = pvalue;
|
|
947
977
|
|
|
948
978
|
// Apparently there are integer/float conversion issues requires two parameter setting functions in JavaScript.
|
|
949
979
|
// For now, pick the float version for parameters specified as GLfloat.
|
|
@@ -959,7 +989,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
959
989
|
}
|
|
960
990
|
}
|
|
961
991
|
this.gl.bindTexture(this.target, null);
|
|
962
|
-
return
|
|
992
|
+
return;
|
|
963
993
|
}
|
|
964
994
|
|
|
965
995
|
/** @deprecated For LegacyTexture subclass */
|
|
@@ -1018,6 +1048,4 @@ function isNPOT(width: number, height: number): boolean {
|
|
|
1018
1048
|
|
|
1019
1049
|
function logParameters(parameters: Record<number, GL | number>) {
|
|
1020
1050
|
log.log(1, 'texture sampler parameters', parameters)();
|
|
1021
|
-
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
1022
|
-
}
|
|
1023
1051
|
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
|
-
import type {CanvasContextProps} from '@luma.gl/
|
|
3
|
-
import {CanvasContext} from '@luma.gl/
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import WEBGLFramebuffer from './resources/webgl-framebuffer';
|
|
2
|
+
import type {CanvasContextProps} from '@luma.gl/core';
|
|
3
|
+
import {CanvasContext} from '@luma.gl/core';
|
|
4
|
+
import {WebGLDevice} from './webgl-device';
|
|
5
|
+
import {WEBGLFramebuffer} from './resources/webgl-framebuffer';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
10
|
-
* @todo This class is WIP, intended to replace the old gltools-based context size tracking
|
|
8
|
+
* A WebGL Canvas Context which manages the canvas and handles drawing buffer resizing etc
|
|
11
9
|
*/
|
|
12
|
-
export
|
|
10
|
+
export class WebGLCanvasContext extends CanvasContext {
|
|
13
11
|
readonly device: WebGLDevice;
|
|
14
12
|
presentationSize: [number, number];
|
|
15
|
-
private _framebuffer: WEBGLFramebuffer;
|
|
13
|
+
private _framebuffer: WEBGLFramebuffer | null = null;
|
|
16
14
|
|
|
17
15
|
constructor(device: WebGLDevice, props: CanvasContextProps) {
|
|
18
16
|
// Note: Base class creates / looks up the canvas (unless under Node.js)
|
|
19
17
|
super(props);
|
|
20
18
|
this.device = device;
|
|
21
19
|
this.presentationSize = [-1, -1];
|
|
20
|
+
this._setAutoCreatedCanvasId(`${this.device.id}-canvas`);
|
|
22
21
|
this.update();
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
getCurrentFramebuffer(): WEBGLFramebuffer {
|
|
26
25
|
this.update();
|
|
26
|
+
// Setting handle to null returns a reference to the default framebuffer
|
|
27
27
|
this._framebuffer = this._framebuffer || new WEBGLFramebuffer(this.device, {handle: null});
|
|
28
28
|
return this._framebuffer;
|
|
29
29
|
}
|
|
@@ -49,23 +49,23 @@ export default class WebGLCanvasContext extends CanvasContext {
|
|
|
49
49
|
* canvas CSS width * devicePixelRatio x canvas CSS height * devicePixelRatio
|
|
50
50
|
* See http://webgl2fundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
resize(options?: {width?: number; height?: number; useDevicePixels?: boolean | number}): void {
|
|
53
53
|
// Resize browser context .
|
|
54
54
|
if (this.canvas) {
|
|
55
|
-
const devicePixelRatio = getDevicePixelRatio(options?.useDevicePixels);
|
|
56
|
-
setDevicePixelRatio(
|
|
55
|
+
const devicePixelRatio = this.getDevicePixelRatio(options?.useDevicePixels);
|
|
56
|
+
this.setDevicePixelRatio(devicePixelRatio, options);
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
// Resize headless gl context
|
|
61
61
|
const ext = this.device.gl.getExtension('STACKGL_resize_drawingbuffer');
|
|
62
|
-
if (ext && options &&
|
|
62
|
+
if (ext && options && 'width' in options && 'height' in options) {
|
|
63
63
|
ext.resize(options.width, options.height);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
commit() {
|
|
68
|
-
// gl.commit was ultimately removed from standard??
|
|
68
|
+
// gl.commit was ultimately removed from the WebGL standard??
|
|
69
69
|
// if (this.offScreen && this.gl.commit) {
|
|
70
70
|
// // @ts-expect-error gl.commit is not officially part of WebGLRenderingContext
|
|
71
71
|
// this.gl.commit();
|