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