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