@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
|
@@ -1,97 +1,79 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import { isObjectEmpty } from '@luma.gl/
|
|
3
|
-
import { Texture, cast, log, assert, isPowerOfTwo, loadImage } from '@luma.gl/
|
|
4
|
-
import GL from '@luma.gl/constants';
|
|
5
|
-
import { withParameters } from
|
|
6
|
-
import {
|
|
7
|
-
import { convertSamplerParametersToWebGL, updateSamplerParametersForNPOT } from
|
|
8
|
-
import WEBGLBuffer from
|
|
9
|
-
import WEBGLSampler from
|
|
10
|
-
export
|
|
2
|
+
import { isObjectEmpty } from '@luma.gl/core';
|
|
3
|
+
import { Texture, cast, log, assert, isPowerOfTwo, loadImage } from '@luma.gl/core';
|
|
4
|
+
import { GL } from '@luma.gl/constants';
|
|
5
|
+
import { withParameters } from "../../context/state-tracker/with-parameters.js";
|
|
6
|
+
import { convertTextureFormatToGL, getWebGLTextureParameters, getTextureFormatBytesPerPixel } from "../converters/texture-formats.js";
|
|
7
|
+
import { convertSamplerParametersToWebGL, updateSamplerParametersForNPOT } from "../converters/sampler-parameters.js";
|
|
8
|
+
import { WEBGLBuffer } from "./webgl-buffer.js";
|
|
9
|
+
import { WEBGLSampler } from "./webgl-sampler.js";
|
|
10
|
+
export const DEFAULT_WEBGL_TEXTURE_PROPS = {
|
|
11
|
+
parameters: {},
|
|
12
|
+
pixelStore: {},
|
|
13
|
+
pixels: null,
|
|
14
|
+
border: 0,
|
|
15
|
+
dataFormat: undefined,
|
|
16
|
+
textureUnit: undefined,
|
|
17
|
+
target: undefined
|
|
18
|
+
};
|
|
19
|
+
export class WEBGLTexture extends Texture {
|
|
11
20
|
constructor(device, props) {
|
|
12
21
|
var _this$props;
|
|
13
|
-
|
|
14
22
|
super(device, {
|
|
15
|
-
|
|
23
|
+
...DEFAULT_WEBGL_TEXTURE_PROPS,
|
|
24
|
+
format: 'rgba8unorm',
|
|
16
25
|
...props
|
|
17
26
|
});
|
|
18
|
-
|
|
19
27
|
_defineProperty(this, "MAX_ATTRIBUTES", void 0);
|
|
20
|
-
|
|
21
28
|
_defineProperty(this, "device", void 0);
|
|
22
|
-
|
|
23
29
|
_defineProperty(this, "gl", void 0);
|
|
24
|
-
|
|
25
30
|
_defineProperty(this, "gl2", void 0);
|
|
26
|
-
|
|
27
31
|
_defineProperty(this, "handle", void 0);
|
|
28
|
-
|
|
29
|
-
_defineProperty(this, "
|
|
30
|
-
|
|
31
|
-
_defineProperty(this, "width", undefined);
|
|
32
|
-
|
|
33
|
-
_defineProperty(this, "height", undefined);
|
|
34
|
-
|
|
35
|
-
_defineProperty(this, "depth", undefined);
|
|
36
|
-
|
|
37
|
-
_defineProperty(this, "format", undefined);
|
|
38
|
-
|
|
32
|
+
_defineProperty(this, "sampler", undefined);
|
|
33
|
+
_defineProperty(this, "glFormat", undefined);
|
|
39
34
|
_defineProperty(this, "type", undefined);
|
|
40
|
-
|
|
41
35
|
_defineProperty(this, "dataFormat", undefined);
|
|
42
|
-
|
|
43
36
|
_defineProperty(this, "mipmaps", undefined);
|
|
44
|
-
|
|
45
37
|
_defineProperty(this, "target", void 0);
|
|
46
|
-
|
|
47
38
|
_defineProperty(this, "textureUnit", undefined);
|
|
48
|
-
|
|
49
|
-
_defineProperty(this, "sampler", undefined);
|
|
50
|
-
|
|
51
39
|
_defineProperty(this, "loaded", false);
|
|
52
|
-
|
|
53
40
|
_defineProperty(this, "_video", void 0);
|
|
54
|
-
|
|
55
41
|
this.device = cast(device);
|
|
56
42
|
this.gl = this.device.gl;
|
|
57
43
|
this.gl2 = this.device.gl2;
|
|
58
44
|
this.handle = this.props.handle || this.gl.createTexture();
|
|
59
|
-
this.
|
|
45
|
+
this.device.setSpectorMetadata(this.handle, {
|
|
46
|
+
...this.props,
|
|
60
47
|
data: typeof this.props.data
|
|
61
|
-
};
|
|
48
|
+
});
|
|
49
|
+
this.glFormat = GL.RGBA;
|
|
62
50
|
this.target = getWebGLTextureTarget(this.props);
|
|
63
51
|
this.loaded = false;
|
|
64
|
-
|
|
65
52
|
if (typeof ((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.data) === 'string') {
|
|
66
53
|
Object.assign(this.props, {
|
|
67
54
|
data: loadImage(this.props.data)
|
|
68
55
|
});
|
|
69
56
|
}
|
|
70
|
-
|
|
71
57
|
this.initialize(this.props);
|
|
72
58
|
Object.seal(this);
|
|
73
59
|
}
|
|
74
|
-
|
|
75
60
|
destroy() {
|
|
76
61
|
if (this.handle) {
|
|
77
62
|
this.gl.deleteTexture(this.handle);
|
|
78
63
|
this.removeStats();
|
|
79
64
|
this.trackDeallocatedMemory('Texture');
|
|
80
|
-
this.
|
|
65
|
+
this.destroyed = true;
|
|
81
66
|
}
|
|
82
67
|
}
|
|
83
|
-
|
|
84
68
|
toString() {
|
|
85
69
|
return "Texture(".concat(this.id, ",").concat(this.width, "x").concat(this.height, ")");
|
|
86
70
|
}
|
|
87
|
-
|
|
88
|
-
|
|
71
|
+
initialize() {
|
|
72
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
89
73
|
if (this.props.dimension === 'cube') {
|
|
90
74
|
return this.initializeCube(props);
|
|
91
75
|
}
|
|
92
|
-
|
|
93
76
|
let data = props.data;
|
|
94
|
-
|
|
95
77
|
if (data instanceof Promise) {
|
|
96
78
|
data.then(resolvedImageData => this.initialize(Object.assign({}, props, {
|
|
97
79
|
pixels: resolvedImageData,
|
|
@@ -99,29 +81,23 @@ export default class WEBGLTexture extends Texture {
|
|
|
99
81
|
})));
|
|
100
82
|
return this;
|
|
101
83
|
}
|
|
102
|
-
|
|
103
84
|
const isVideo = typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement;
|
|
104
|
-
|
|
105
85
|
if (isVideo && data.readyState < HTMLVideoElement.HAVE_METADATA) {
|
|
106
86
|
this._video = null;
|
|
107
87
|
data.addEventListener('loadeddata', () => this.initialize(props));
|
|
108
88
|
return this;
|
|
109
89
|
}
|
|
110
|
-
|
|
111
|
-
let {
|
|
90
|
+
const {
|
|
112
91
|
parameters = {}
|
|
113
92
|
} = props;
|
|
114
93
|
const {
|
|
115
94
|
pixels = null,
|
|
116
|
-
recreate = false,
|
|
117
95
|
pixelStore = {},
|
|
118
96
|
textureUnit = undefined
|
|
119
97
|
} = props;
|
|
120
|
-
|
|
121
98
|
if (!data) {
|
|
122
99
|
data = pixels;
|
|
123
100
|
}
|
|
124
|
-
|
|
125
101
|
let {
|
|
126
102
|
width,
|
|
127
103
|
height,
|
|
@@ -133,6 +109,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
133
109
|
const {
|
|
134
110
|
depth = 0
|
|
135
111
|
} = props;
|
|
112
|
+
const glFormat = convertTextureFormatToGL(props.format, this.device.isWebGL2);
|
|
136
113
|
({
|
|
137
114
|
width,
|
|
138
115
|
height,
|
|
@@ -148,49 +125,37 @@ export default class WEBGLTexture extends Texture {
|
|
|
148
125
|
width,
|
|
149
126
|
height
|
|
150
127
|
}));
|
|
151
|
-
const format = getWebGLTextureFormat(this.gl, props.format);
|
|
152
128
|
this.width = width;
|
|
153
129
|
this.height = height;
|
|
154
|
-
this.
|
|
155
|
-
this.format = format;
|
|
130
|
+
this.glFormat = glFormat;
|
|
156
131
|
this.type = type;
|
|
157
132
|
this.dataFormat = dataFormat;
|
|
158
133
|
this.textureUnit = textureUnit;
|
|
159
|
-
|
|
160
134
|
if (Number.isFinite(this.textureUnit)) {
|
|
161
135
|
this.gl.activeTexture(GL.TEXTURE0 + this.textureUnit);
|
|
162
136
|
this.gl.bindTexture(this.target, this.handle);
|
|
163
137
|
}
|
|
164
|
-
|
|
165
138
|
if (mipmaps && this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
166
139
|
log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaps"))();
|
|
167
140
|
mipmaps = false;
|
|
168
141
|
}
|
|
169
|
-
|
|
170
142
|
this.mipmaps = mipmaps;
|
|
171
143
|
this.setImageData({
|
|
172
144
|
data,
|
|
173
145
|
width,
|
|
174
146
|
height,
|
|
175
147
|
depth,
|
|
176
|
-
format,
|
|
148
|
+
format: glFormat,
|
|
177
149
|
type,
|
|
178
150
|
dataFormat,
|
|
179
151
|
parameters: pixelStore,
|
|
180
152
|
compressed
|
|
181
153
|
});
|
|
182
154
|
this.setSampler(props.sampler);
|
|
183
|
-
|
|
184
155
|
this._setSamplerParameters(parameters);
|
|
185
|
-
|
|
186
156
|
if (mipmaps) {
|
|
187
157
|
this.generateMipmap();
|
|
188
158
|
}
|
|
189
|
-
|
|
190
|
-
if (recreate) {
|
|
191
|
-
this.data = data;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
159
|
if (isVideo) {
|
|
195
160
|
this._video = {
|
|
196
161
|
video: data,
|
|
@@ -198,10 +163,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
198
163
|
lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1
|
|
199
164
|
};
|
|
200
165
|
}
|
|
201
|
-
|
|
202
166
|
return this;
|
|
203
167
|
}
|
|
204
|
-
|
|
205
168
|
initializeCube(props) {
|
|
206
169
|
const {
|
|
207
170
|
mipmaps = true,
|
|
@@ -209,21 +172,17 @@ export default class WEBGLTexture extends Texture {
|
|
|
209
172
|
} = props;
|
|
210
173
|
this.setCubeMapImageData(props).then(() => {
|
|
211
174
|
this.loaded = true;
|
|
212
|
-
|
|
213
175
|
if (mipmaps) {
|
|
214
176
|
this.generateMipmap(props);
|
|
215
177
|
}
|
|
216
|
-
|
|
217
178
|
this.setSampler(props.sampler);
|
|
218
|
-
|
|
219
179
|
this._setSamplerParameters(parameters);
|
|
220
180
|
});
|
|
221
181
|
return this;
|
|
222
182
|
}
|
|
223
|
-
|
|
224
|
-
|
|
183
|
+
setSampler() {
|
|
184
|
+
let sampler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
225
185
|
let samplerProps;
|
|
226
|
-
|
|
227
186
|
if (sampler instanceof WEBGLSampler) {
|
|
228
187
|
this.sampler = sampler;
|
|
229
188
|
samplerProps = sampler.props;
|
|
@@ -231,19 +190,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
231
190
|
this.sampler = new WEBGLSampler(this.device, sampler);
|
|
232
191
|
samplerProps = sampler;
|
|
233
192
|
}
|
|
234
|
-
|
|
235
193
|
const parameters = convertSamplerParametersToWebGL(samplerProps);
|
|
236
|
-
|
|
237
194
|
this._setSamplerParameters(parameters);
|
|
238
|
-
|
|
239
195
|
return this;
|
|
240
196
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
197
|
+
resize(options) {
|
|
198
|
+
const {
|
|
199
|
+
height,
|
|
200
|
+
width,
|
|
201
|
+
mipmaps = false
|
|
202
|
+
} = options;
|
|
247
203
|
if (width !== this.width || height !== this.height) {
|
|
248
204
|
return this.initialize({
|
|
249
205
|
width,
|
|
@@ -254,10 +210,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
254
210
|
mipmaps
|
|
255
211
|
});
|
|
256
212
|
}
|
|
257
|
-
|
|
258
213
|
return this;
|
|
259
214
|
}
|
|
260
|
-
|
|
261
215
|
update() {
|
|
262
216
|
if (this._video) {
|
|
263
217
|
const {
|
|
@@ -265,30 +219,25 @@ export default class WEBGLTexture extends Texture {
|
|
|
265
219
|
parameters,
|
|
266
220
|
lastTime
|
|
267
221
|
} = this._video;
|
|
268
|
-
|
|
269
222
|
if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {
|
|
270
223
|
return;
|
|
271
224
|
}
|
|
272
|
-
|
|
273
225
|
this.setSubImageData({
|
|
274
226
|
data: video,
|
|
275
227
|
parameters
|
|
276
228
|
});
|
|
277
|
-
|
|
278
229
|
if (this.mipmaps) {
|
|
279
230
|
this.generateMipmap();
|
|
280
231
|
}
|
|
281
|
-
|
|
282
232
|
this._video.lastTime = video.currentTime;
|
|
283
233
|
}
|
|
284
234
|
}
|
|
285
|
-
|
|
286
|
-
|
|
235
|
+
generateMipmap() {
|
|
236
|
+
let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
287
237
|
if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
288
238
|
log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaping"))();
|
|
289
239
|
return this;
|
|
290
240
|
}
|
|
291
|
-
|
|
292
241
|
this.mipmaps = true;
|
|
293
242
|
this.gl.bindTexture(this.target, this.handle);
|
|
294
243
|
withParameters(this.gl, params, () => {
|
|
@@ -297,18 +246,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
297
246
|
this.gl.bindTexture(this.target, null);
|
|
298
247
|
return this;
|
|
299
248
|
}
|
|
300
|
-
|
|
301
249
|
setImageData(options) {
|
|
302
|
-
if (this.props.dimension === '3d') {
|
|
250
|
+
if (this.props.dimension === '3d' || this.props.dimension === '2d-array') {
|
|
303
251
|
return this.setImageData3D(options);
|
|
304
252
|
}
|
|
305
|
-
|
|
306
253
|
this.trackDeallocatedMemory('Texture');
|
|
307
254
|
const {
|
|
308
255
|
target = this.target,
|
|
309
256
|
pixels = null,
|
|
310
257
|
level = 0,
|
|
311
|
-
|
|
258
|
+
glFormat = this.glFormat,
|
|
312
259
|
offset = 0,
|
|
313
260
|
parameters = {}
|
|
314
261
|
} = options;
|
|
@@ -320,11 +267,9 @@ export default class WEBGLTexture extends Texture {
|
|
|
320
267
|
dataFormat = this.dataFormat,
|
|
321
268
|
compressed = false
|
|
322
269
|
} = options;
|
|
323
|
-
|
|
324
270
|
if (!data) {
|
|
325
271
|
data = pixels;
|
|
326
272
|
}
|
|
327
|
-
|
|
328
273
|
({
|
|
329
274
|
type,
|
|
330
275
|
dataFormat,
|
|
@@ -356,68 +301,59 @@ export default class WEBGLTexture extends Texture {
|
|
|
356
301
|
withParameters(this.gl, parameters, () => {
|
|
357
302
|
switch (dataType) {
|
|
358
303
|
case 'null':
|
|
359
|
-
gl.texImage2D(target, level,
|
|
304
|
+
gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data);
|
|
360
305
|
break;
|
|
361
|
-
|
|
362
306
|
case 'typed-array':
|
|
363
|
-
gl.texImage2D(target, level,
|
|
307
|
+
gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data, offset);
|
|
364
308
|
break;
|
|
365
|
-
|
|
366
309
|
case 'buffer':
|
|
367
310
|
gl2 = this.device.assertWebGL2();
|
|
368
311
|
gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle || data);
|
|
369
|
-
gl2.texImage2D(target, level,
|
|
312
|
+
gl2.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, offset);
|
|
370
313
|
gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
|
|
371
314
|
break;
|
|
372
|
-
|
|
373
315
|
case 'browser-object':
|
|
374
316
|
if (this.device.isWebGL2) {
|
|
375
|
-
gl.texImage2D(target, level,
|
|
317
|
+
gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data);
|
|
376
318
|
} else {
|
|
377
|
-
gl.texImage2D(target, level,
|
|
319
|
+
gl.texImage2D(target, level, glFormat, dataFormat, type, data);
|
|
378
320
|
}
|
|
379
|
-
|
|
380
321
|
break;
|
|
381
|
-
|
|
382
322
|
case 'compressed':
|
|
383
323
|
for (const [levelIndex, levelData] of data.entries()) {
|
|
384
324
|
gl.compressedTexImage2D(target, levelIndex, levelData.format, levelData.width, levelData.height, 0, levelData.data);
|
|
385
325
|
}
|
|
386
|
-
|
|
387
326
|
break;
|
|
388
|
-
|
|
389
327
|
default:
|
|
390
328
|
assert(false, 'Unknown image data type');
|
|
391
329
|
}
|
|
392
330
|
});
|
|
393
|
-
|
|
394
331
|
if (data && data.byteLength) {
|
|
395
332
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
396
333
|
} else {
|
|
397
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
334
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
398
335
|
this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
|
|
399
336
|
}
|
|
400
|
-
|
|
401
337
|
this.loaded = true;
|
|
402
338
|
return this;
|
|
403
339
|
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
340
|
+
setSubImageData(_ref) {
|
|
341
|
+
let {
|
|
342
|
+
target = this.target,
|
|
343
|
+
pixels = null,
|
|
344
|
+
data = null,
|
|
345
|
+
x = 0,
|
|
346
|
+
y = 0,
|
|
347
|
+
width = this.width,
|
|
348
|
+
height = this.height,
|
|
349
|
+
level = 0,
|
|
350
|
+
glFormat = this.glFormat,
|
|
351
|
+
type = this.type,
|
|
352
|
+
dataFormat = this.dataFormat,
|
|
353
|
+
compressed = false,
|
|
354
|
+
offset = 0,
|
|
355
|
+
parameters = {}
|
|
356
|
+
} = _ref;
|
|
421
357
|
({
|
|
422
358
|
type,
|
|
423
359
|
dataFormat,
|
|
@@ -434,26 +370,22 @@ export default class WEBGLTexture extends Texture {
|
|
|
434
370
|
height
|
|
435
371
|
}));
|
|
436
372
|
assert(this.depth === 1, 'texSubImage not supported for 3D textures');
|
|
437
|
-
|
|
438
373
|
if (!data) {
|
|
439
374
|
data = pixels;
|
|
440
375
|
}
|
|
441
|
-
|
|
442
376
|
if (data && data.data) {
|
|
443
377
|
const ndarray = data;
|
|
444
378
|
data = ndarray.data;
|
|
445
379
|
width = ndarray.shape[0];
|
|
446
380
|
height = ndarray.shape[1];
|
|
447
381
|
}
|
|
448
|
-
|
|
449
382
|
if (data instanceof WEBGLBuffer) {
|
|
450
383
|
data = data.handle;
|
|
451
384
|
}
|
|
452
|
-
|
|
453
385
|
this.gl.bindTexture(this.target, this.handle);
|
|
454
386
|
withParameters(this.gl, parameters, () => {
|
|
455
387
|
if (compressed) {
|
|
456
|
-
this.gl.compressedTexSubImage2D(target, level, x, y, width, height,
|
|
388
|
+
this.gl.compressedTexSubImage2D(target, level, x, y, width, height, glFormat, data);
|
|
457
389
|
} else if (data === null) {
|
|
458
390
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
|
|
459
391
|
} else if (ArrayBuffer.isView(data)) {
|
|
@@ -472,89 +404,78 @@ export default class WEBGLTexture extends Texture {
|
|
|
472
404
|
});
|
|
473
405
|
this.gl.bindTexture(this.target, null);
|
|
474
406
|
}
|
|
475
|
-
|
|
476
|
-
|
|
407
|
+
copyFramebuffer() {
|
|
408
|
+
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
477
409
|
log.error('Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})')();
|
|
478
410
|
return null;
|
|
479
411
|
}
|
|
480
|
-
|
|
481
412
|
getActiveUnit() {
|
|
482
413
|
return this.gl.getParameter(GL.ACTIVE_TEXTURE) - GL.TEXTURE0;
|
|
483
414
|
}
|
|
484
|
-
|
|
485
|
-
|
|
415
|
+
bind() {
|
|
416
|
+
let textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
|
|
486
417
|
const {
|
|
487
418
|
gl
|
|
488
419
|
} = this;
|
|
489
|
-
|
|
490
420
|
if (textureUnit !== undefined) {
|
|
491
421
|
this.textureUnit = textureUnit;
|
|
492
422
|
gl.activeTexture(gl.TEXTURE0 + textureUnit);
|
|
493
423
|
}
|
|
494
|
-
|
|
495
424
|
gl.bindTexture(this.target, this.handle);
|
|
496
425
|
return textureUnit;
|
|
497
426
|
}
|
|
498
|
-
|
|
499
|
-
|
|
427
|
+
unbind() {
|
|
428
|
+
let textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
|
|
500
429
|
const {
|
|
501
430
|
gl
|
|
502
431
|
} = this;
|
|
503
|
-
|
|
504
432
|
if (textureUnit !== undefined) {
|
|
505
433
|
this.textureUnit = textureUnit;
|
|
506
434
|
gl.activeTexture(gl.TEXTURE0 + textureUnit);
|
|
507
435
|
}
|
|
508
|
-
|
|
509
436
|
gl.bindTexture(this.target, null);
|
|
510
437
|
return textureUnit;
|
|
511
438
|
}
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
439
|
+
_getDataType(_ref2) {
|
|
440
|
+
let {
|
|
441
|
+
data,
|
|
442
|
+
compressed = false
|
|
443
|
+
} = _ref2;
|
|
517
444
|
if (compressed) {
|
|
518
445
|
return {
|
|
519
446
|
data,
|
|
520
447
|
dataType: 'compressed'
|
|
521
448
|
};
|
|
522
449
|
}
|
|
523
|
-
|
|
524
450
|
if (data === null) {
|
|
525
451
|
return {
|
|
526
452
|
data,
|
|
527
453
|
dataType: 'null'
|
|
528
454
|
};
|
|
529
455
|
}
|
|
530
|
-
|
|
531
456
|
if (ArrayBuffer.isView(data)) {
|
|
532
457
|
return {
|
|
533
458
|
data,
|
|
534
459
|
dataType: 'typed-array'
|
|
535
460
|
};
|
|
536
461
|
}
|
|
537
|
-
|
|
538
462
|
if (data instanceof WEBGLBuffer) {
|
|
539
463
|
return {
|
|
540
464
|
data: data.handle,
|
|
541
465
|
dataType: 'buffer'
|
|
542
466
|
};
|
|
543
467
|
}
|
|
544
|
-
|
|
545
468
|
if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
|
|
546
469
|
return {
|
|
547
470
|
data,
|
|
548
471
|
dataType: 'buffer'
|
|
549
472
|
};
|
|
550
473
|
}
|
|
551
|
-
|
|
552
474
|
return {
|
|
553
475
|
data,
|
|
554
476
|
dataType: 'browser-object'
|
|
555
477
|
};
|
|
556
478
|
}
|
|
557
|
-
|
|
558
479
|
_deduceParameters(opts) {
|
|
559
480
|
const {
|
|
560
481
|
format,
|
|
@@ -567,7 +488,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
567
488
|
type,
|
|
568
489
|
compressed
|
|
569
490
|
} = opts;
|
|
570
|
-
const parameters = getWebGLTextureParameters(this.
|
|
491
|
+
const parameters = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
571
492
|
dataFormat = dataFormat || parameters.dataFormat;
|
|
572
493
|
type = type || parameters.type;
|
|
573
494
|
compressed = compressed || parameters.compressed;
|
|
@@ -585,10 +506,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
585
506
|
data
|
|
586
507
|
};
|
|
587
508
|
}
|
|
588
|
-
|
|
589
509
|
_deduceImageSize(data, width, height) {
|
|
590
510
|
let size;
|
|
591
|
-
|
|
592
511
|
if (typeof ImageData !== 'undefined' && data instanceof ImageData) {
|
|
593
512
|
size = {
|
|
594
513
|
width: data.width,
|
|
@@ -625,13 +544,11 @@ export default class WEBGLTexture extends Texture {
|
|
|
625
544
|
height
|
|
626
545
|
};
|
|
627
546
|
}
|
|
628
|
-
|
|
629
547
|
assert(size, 'Could not deduced texture size');
|
|
630
548
|
assert(width === undefined || size.width === width, 'Deduced texture width does not match supplied width');
|
|
631
549
|
assert(height === undefined || size.height === height, 'Deduced texture height does not match supplied height');
|
|
632
550
|
return size;
|
|
633
551
|
}
|
|
634
|
-
|
|
635
552
|
async setCubeMapImageData(options) {
|
|
636
553
|
const {
|
|
637
554
|
gl
|
|
@@ -654,7 +571,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
654
571
|
if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
|
|
655
572
|
log.warn("".concat(this.id, " has mipmap and multiple LODs."))();
|
|
656
573
|
}
|
|
657
|
-
|
|
658
574
|
resolvedFaces[index].forEach((image, lodLevel) => {
|
|
659
575
|
if (width && height) {
|
|
660
576
|
gl.texImage2D(face, lodLevel, format, width, height, 0, format, type, image);
|
|
@@ -665,7 +581,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
665
581
|
});
|
|
666
582
|
this.unbind();
|
|
667
583
|
}
|
|
668
|
-
|
|
669
584
|
setImageDataForFace(options) {
|
|
670
585
|
const {
|
|
671
586
|
face,
|
|
@@ -681,7 +596,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
681
596
|
} = this;
|
|
682
597
|
const imageData = pixels || data;
|
|
683
598
|
this.bind();
|
|
684
|
-
|
|
685
599
|
if (imageData instanceof Promise) {
|
|
686
600
|
imageData.then(resolvedImageData => this.setImageDataForFace(Object.assign({}, options, {
|
|
687
601
|
face,
|
|
@@ -693,139 +607,110 @@ export default class WEBGLTexture extends Texture {
|
|
|
693
607
|
} else {
|
|
694
608
|
gl.texImage2D(face, 0, format, format, type, imageData);
|
|
695
609
|
}
|
|
696
|
-
|
|
697
610
|
return this;
|
|
698
611
|
}
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
612
|
+
setImageData3D(options) {
|
|
613
|
+
const {
|
|
614
|
+
level = 0,
|
|
615
|
+
dataFormat,
|
|
616
|
+
format,
|
|
617
|
+
type,
|
|
618
|
+
width,
|
|
619
|
+
height,
|
|
620
|
+
depth = 1,
|
|
621
|
+
offset = 0,
|
|
622
|
+
data,
|
|
623
|
+
parameters = {}
|
|
624
|
+
} = options;
|
|
712
625
|
this.trackDeallocatedMemory('Texture');
|
|
713
626
|
this.gl.bindTexture(this.target, this.handle);
|
|
714
|
-
const webglTextureFormat = getWebGLTextureParameters(this.
|
|
627
|
+
const webglTextureFormat = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
715
628
|
withParameters(this.gl, parameters, () => {
|
|
716
629
|
if (ArrayBuffer.isView(data)) {
|
|
717
630
|
this.gl.texImage3D(this.target, level, webglTextureFormat.format, width, height, depth, 0, webglTextureFormat.dataFormat, webglTextureFormat.type, data);
|
|
718
631
|
}
|
|
719
|
-
|
|
720
632
|
if (data instanceof WEBGLBuffer) {
|
|
721
633
|
this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
|
|
722
634
|
this.gl.texImage3D(this.target, level, dataFormat, width, height, depth, 0, format, type, offset);
|
|
723
635
|
}
|
|
724
636
|
});
|
|
725
|
-
|
|
726
637
|
if (data && data.byteLength) {
|
|
727
638
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
728
639
|
} else {
|
|
729
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
640
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
730
641
|
this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
|
|
731
642
|
}
|
|
732
|
-
|
|
733
643
|
this.loaded = true;
|
|
734
644
|
return this;
|
|
735
645
|
}
|
|
736
|
-
|
|
737
646
|
_setSamplerParameters(parameters) {
|
|
738
647
|
if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
739
648
|
parameters = updateSamplerParametersForNPOT(parameters);
|
|
740
649
|
}
|
|
741
|
-
|
|
742
650
|
if (isObjectEmpty(parameters)) {
|
|
743
651
|
return;
|
|
744
652
|
}
|
|
745
|
-
|
|
746
653
|
logParameters(parameters);
|
|
747
654
|
this.gl.bindTexture(this.target, this.handle);
|
|
748
|
-
|
|
749
655
|
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
750
656
|
const param = Number(pname);
|
|
751
|
-
|
|
752
|
-
|
|
657
|
+
const value = pvalue;
|
|
753
658
|
switch (param) {
|
|
754
659
|
case GL.TEXTURE_MIN_LOD:
|
|
755
660
|
case GL.TEXTURE_MAX_LOD:
|
|
756
661
|
this.gl.texParameterf(this.target, param, value);
|
|
757
662
|
break;
|
|
758
|
-
|
|
759
663
|
default:
|
|
760
664
|
this.gl.texParameteri(this.target, param, value);
|
|
761
665
|
break;
|
|
762
666
|
}
|
|
763
667
|
}
|
|
764
|
-
|
|
765
668
|
this.gl.bindTexture(this.target, null);
|
|
766
|
-
return
|
|
669
|
+
return;
|
|
767
670
|
}
|
|
768
|
-
|
|
769
671
|
_getWebGL1NPOTParameterOverride(pname, value) {
|
|
770
672
|
const npot = this.device.isWebGL1 && isNPOT(this.width, this.height);
|
|
771
|
-
|
|
772
673
|
if (npot) {
|
|
773
674
|
switch (pname) {
|
|
774
675
|
case GL.TEXTURE_MIN_FILTER:
|
|
775
676
|
if (value !== GL.LINEAR && value !== GL.NEAREST) {
|
|
776
677
|
return GL.LINEAR;
|
|
777
678
|
}
|
|
778
|
-
|
|
779
679
|
break;
|
|
780
|
-
|
|
781
680
|
case GL.TEXTURE_WRAP_S:
|
|
782
681
|
case GL.TEXTURE_WRAP_T:
|
|
783
682
|
return GL.CLAMP_TO_EDGE;
|
|
784
|
-
|
|
785
683
|
default:
|
|
786
684
|
break;
|
|
787
685
|
}
|
|
788
686
|
}
|
|
789
|
-
|
|
790
687
|
return value;
|
|
791
688
|
}
|
|
792
|
-
|
|
793
689
|
}
|
|
794
|
-
|
|
795
690
|
_defineProperty(WEBGLTexture, "FACES", [GL.TEXTURE_CUBE_MAP_POSITIVE_X, GL.TEXTURE_CUBE_MAP_NEGATIVE_X, GL.TEXTURE_CUBE_MAP_POSITIVE_Y, GL.TEXTURE_CUBE_MAP_NEGATIVE_Y, GL.TEXTURE_CUBE_MAP_POSITIVE_Z, GL.TEXTURE_CUBE_MAP_NEGATIVE_Z]);
|
|
796
|
-
|
|
797
691
|
function getWebGLTextureTarget(props) {
|
|
798
692
|
switch (props.dimension) {
|
|
799
693
|
case '2d':
|
|
800
694
|
return GL.TEXTURE_2D;
|
|
801
|
-
|
|
802
695
|
case 'cube':
|
|
803
696
|
return GL.TEXTURE_CUBE_MAP;
|
|
804
|
-
|
|
805
697
|
case '2d-array':
|
|
806
698
|
return GL.TEXTURE_2D_ARRAY;
|
|
807
|
-
|
|
808
699
|
case '3d':
|
|
809
700
|
return GL.TEXTURE_3D;
|
|
810
|
-
|
|
811
701
|
case '1d':
|
|
812
702
|
case 'cube-array':
|
|
813
703
|
default:
|
|
814
704
|
throw new Error(props.dimension);
|
|
815
705
|
}
|
|
816
706
|
}
|
|
817
|
-
|
|
818
707
|
function isNPOT(width, height) {
|
|
819
708
|
if (!width || !height) {
|
|
820
709
|
return false;
|
|
821
710
|
}
|
|
822
|
-
|
|
823
711
|
return !isPowerOfTwo(width) || !isPowerOfTwo(height);
|
|
824
712
|
}
|
|
825
|
-
|
|
826
713
|
function logParameters(parameters) {
|
|
827
714
|
log.log(1, 'texture sampler parameters', parameters)();
|
|
828
|
-
|
|
829
|
-
for (const [pname, pvalue] of Object.entries(parameters)) {}
|
|
830
715
|
}
|
|
831
716
|
//# sourceMappingURL=webgl-texture.js.map
|