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