@luma.gl/webgl 9.0.0-alpha.9 → 9.0.0-beta.10
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 +12 -3
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +300 -146
- package/dist/adapter/converters/sampler-parameters.d.ts +3 -13
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +74 -219
- 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 +59 -0
- package/dist/adapter/converters/texture-formats.d.ts +41 -57
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +490 -925
- 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 +56 -33
- package/dist/adapter/device-helpers/webgl-device-features.d.ts +20 -0
- package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-features.js +98 -0
- package/dist/adapter/device-helpers/webgl-device-info.d.ts +5 -0
- package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-info.js +90 -0
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts +35 -0
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -0
- package/dist/adapter/device-helpers/webgl-device-limits.js +47 -0
- 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/decode-webgl-types.js +101 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +2 -49
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +263 -307
- 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 +48 -33
- 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 +66 -111
- package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/webgl-topology-utils.js +88 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +2 -4
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +18 -38
- 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 +92 -91
- package/dist/adapter/objects/webgl-resource.d.ts +6 -31
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +103 -205
- package/dist/adapter/resources/webgl-buffer.d.ts +20 -16
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +163 -155
- 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 +283 -58
- package/dist/adapter/resources/webgl-command-encoder.d.ts +12 -6
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +36 -52
- package/dist/adapter/resources/webgl-external-texture.js +93 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -29
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +184 -261
- package/dist/adapter/resources/webgl-query-set.d.ts +44 -0
- package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-query-set.js +136 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts +21 -4
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +140 -20
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +44 -21
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +371 -413
- package/dist/adapter/resources/webgl-sampler.d.ts +5 -6
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +46 -46
- package/dist/adapter/resources/webgl-shader.d.ts +16 -6
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +113 -72
- package/dist/adapter/resources/webgl-texture-view.d.ts +14 -0
- package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-texture-view.js +18 -0
- package/dist/adapter/resources/webgl-texture.d.ts +53 -35
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +623 -822
- package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
- package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-transform-feedback.js +162 -0
- 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 +239 -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 +61 -50
- package/dist/adapter/webgl-device.d.ts +112 -55
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +453 -331
- package/dist/classic/accessor.d.ts +3 -3
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +135 -130
- package/dist/classic/clear.d.ts +22 -0
- package/dist/classic/clear.d.ts.map +1 -0
- package/dist/classic/clear.js +89 -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 +191 -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 +44 -0
- package/dist/classic/typed-array-utils.d.ts +17 -17
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +96 -102
- 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 +56 -63
- package/dist/context/debug/webgl-developer-tools.d.ts +2 -3
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +106 -102
- package/dist/context/helpers/create-browser-context.d.ts +35 -0
- package/dist/context/helpers/create-browser-context.d.ts.map +1 -0
- package/dist/context/helpers/create-browser-context.js +67 -0
- package/dist/context/helpers/webgl-context-data.d.ts +13 -0
- package/dist/context/helpers/webgl-context-data.d.ts.map +1 -0
- package/dist/context/helpers/webgl-context-data.js +21 -0
- package/dist/context/helpers/webgl-extensions.d.ts +4 -0
- package/dist/context/helpers/webgl-extensions.d.ts.map +1 -0
- package/dist/context/helpers/webgl-extensions.js +10 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +4 -5
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +91 -54
- package/dist/context/parameters/webgl-parameter-tables.d.ts +115 -106
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +463 -423
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js +19 -18
- package/dist/context/state-tracker/track-context-state.d.ts +4 -4
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +192 -163
- package/dist/context/state-tracker/with-parameters.d.ts +2 -2
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +44 -32
- package/dist/dist.dev.js +6574 -0
- package/dist/dist.min.js +10 -0
- package/dist/index.cjs +5586 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +25 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -28
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -1
- package/dist.min.js +19 -0
- package/package.json +22 -15
- package/src/adapter/converters/device-parameters.ts +217 -54
- package/src/adapter/converters/sampler-parameters.ts +46 -126
- package/src/adapter/converters/shader-formats.ts +69 -0
- package/src/adapter/converters/texture-formats.ts +369 -340
- package/src/adapter/converters/vertex-formats.ts +71 -10
- package/src/adapter/device-helpers/webgl-device-features.ts +121 -0
- package/src/adapter/device-helpers/webgl-device-info.ts +111 -0
- package/src/adapter/device-helpers/webgl-device-limits.ts +53 -0
- package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +38 -25
- package/src/adapter/helpers/get-shader-layout.ts +104 -158
- package/src/adapter/helpers/parse-shader-compiler-log.ts +31 -11
- package/src/adapter/helpers/set-uniform.ts +39 -36
- package/src/adapter/helpers/webgl-topology-utils.ts +110 -0
- package/src/adapter/objects/constants-to-keys.ts +8 -26
- package/src/adapter/objects/webgl-renderbuffer.ts +68 -40
- package/src/adapter/objects/webgl-resource.ts +16 -156
- package/src/adapter/resources/webgl-buffer.ts +103 -112
- package/src/adapter/resources/webgl-command-buffer.ts +333 -41
- package/src/adapter/resources/webgl-command-encoder.ts +33 -22
- package/src/adapter/resources/webgl-external-texture.ts +11 -8
- package/src/adapter/resources/webgl-framebuffer.ts +125 -165
- package/src/adapter/resources/webgl-query-set.ts +171 -0
- package/src/adapter/resources/webgl-render-pass.ts +176 -6
- package/src/adapter/resources/webgl-render-pipeline.ts +308 -229
- package/src/adapter/resources/webgl-sampler.ts +19 -18
- package/src/adapter/resources/webgl-shader.ts +91 -32
- package/src/adapter/resources/webgl-texture-view.ts +28 -0
- package/src/adapter/resources/webgl-texture.ts +147 -184
- package/src/adapter/resources/webgl-transform-feedback.ts +196 -0
- package/src/adapter/resources/webgl-vertex-array.ts +282 -0
- package/src/adapter/webgl-canvas-context.ts +23 -22
- package/src/adapter/webgl-device.ts +411 -196
- package/src/classic/accessor.ts +12 -8
- package/src/classic/clear.ts +118 -0
- package/src/classic/copy-and-blit.ts +318 -0
- package/src/classic/format-utils.ts +47 -0
- package/src/classic/typed-array-utils.ts +19 -31
- package/src/context/debug/spector.ts +16 -10
- package/src/context/debug/webgl-developer-tools.ts +52 -32
- package/src/context/helpers/create-browser-context.ts +116 -0
- package/src/context/helpers/webgl-context-data.ts +31 -0
- package/src/context/helpers/webgl-extensions.ts +17 -0
- package/src/context/parameters/unified-parameter-api.ts +11 -16
- package/src/context/parameters/webgl-parameter-tables.ts +171 -121
- package/src/context/state-tracker/deep-array-equal.ts +3 -0
- package/src/context/state-tracker/track-context-state.ts +35 -26
- package/src/context/state-tracker/with-parameters.ts +12 -3
- package/src/index.ts +41 -55
- package/src/types.ts +6 -0
- package/dist/adapter/converters/device-parameters.js.map +0 -1
- 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/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.d.ts +0 -9
- package/dist/adapter/device-helpers/device-features.d.ts.map +0 -1
- package/dist/adapter/device-helpers/device-features.js +0 -112
- package/dist/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +0 -52
- package/dist/adapter/device-helpers/device-limits.d.ts.map +0 -1
- package/dist/adapter/device-helpers/device-limits.js +0 -91
- package/dist/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts +0 -4
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +0 -1
- package/dist/adapter/device-helpers/get-device-info.js +0 -44
- package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/adapter/device-helpers/is-old-ie.d.ts +0 -2
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +0 -1
- package/dist/adapter/device-helpers/is-old-ie.js +0 -8
- package/dist/adapter/device-helpers/is-old-ie.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 +0 -81
- 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.d.ts +0 -26
- package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
- package/dist/adapter/helpers/uniforms.js +0 -99
- 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.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/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.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/accessor.js.map +0 -1
- package/dist/classic/buffer.d.ts +0 -95
- package/dist/classic/buffer.d.ts.map +0 -1
- package/dist/classic/buffer.js +0 -392
- package/dist/classic/buffer.js.map +0 -1
- package/dist/classic/typed-array-utils.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-browser-context.d.ts +0 -41
- package/dist/context/context/create-browser-context.d.ts.map +0 -1
- package/dist/context/context/create-browser-context.js +0 -61
- package/dist/context/context/create-browser-context.js.map +0 -1
- package/dist/context/context/create-headless-context.d.ts +0 -9
- package/dist/context/context/create-headless-context.d.ts.map +0 -1
- package/dist/context/context/create-headless-context.js +0 -43
- package/dist/context/context/create-headless-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 -103
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/context/context/webgl-checks.d.ts +0 -13
- package/dist/context/context/webgl-checks.d.ts.map +0 -1
- package/dist/context/context/webgl-checks.js +0 -34
- 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/get-parameter-polyfill.d.ts +0 -2
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +0 -1
- package/dist/context/polyfill/get-parameter-polyfill.js +0 -91
- package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/context/polyfill/polyfill-context.d.ts +0 -5
- package/dist/context/polyfill/polyfill-context.d.ts.map +0 -1
- package/dist/context/polyfill/polyfill-context.js +0 -91
- package/dist/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/context/polyfill/polyfill-table.d.ts +0 -48
- package/dist/context/polyfill/polyfill-table.d.ts.map +0 -1
- package/dist/context/polyfill/polyfill-table.js +0 -160
- package/dist/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +0 -2
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +0 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -335
- 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/es5/adapter/converters/device-parameters.js +0 -185
- 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 -245
- 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 -155
- 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 -391
- 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 -346
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -530
- 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 -150
- 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 -463
- 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 -478
- 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-browser-context.js +0 -83
- package/dist/es5/context/context/create-browser-context.js.map +0 -1
- package/dist/es5/context/context/create-headless-context.js +0 -60
- package/dist/es5/context/context/create-headless-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -121
- 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 -134
- 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 -290
- 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 -168
- 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 -227
- 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 -112
- 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 -330
- 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 -267
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -428
- 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 -76
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -834
- 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 -337
- 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 -392
- 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-browser-context.js +0 -61
- package/dist/esm/context/context/create-browser-context.js.map +0 -1
- package/dist/esm/context/context/create-headless-context.js +0 -43
- package/dist/esm/context/context/create-headless-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -103
- 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 -63
- 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 -91
- 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 -28
- 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/index.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 -145
- 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/dist/types.js.map +0 -1
- package/src/adapter/converters/renderbuffer-formats.ts +0 -92
- package/src/adapter/device-helpers/device-features.ts +0 -158
- package/src/adapter/device-helpers/device-limits.ts +0 -153
- package/src/adapter/device-helpers/get-device-info.ts +0 -49
- package/src/adapter/device-helpers/is-old-ie.ts +0 -11
- package/src/adapter/helpers/attribute-utils.ts +0 -61
- package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
- package/src/bundle.ts +0 -4
- package/src/classic/buffer.ts +0 -474
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/create-browser-context.ts +0 -118
- package/src/context/context/create-headless-context.ts +0 -48
- package/src/context/context/device-pixels.ts +0 -158
- package/src/context/context/webgl-checks.ts +0 -49
- package/src/context/polyfill/get-parameter-polyfill.ts +0 -118
- package/src/context/polyfill/polyfill-context.ts +0 -97
- package/src/context/polyfill/polyfill-table.ts +0 -162
- package/src/context/polyfill/polyfill-vertex-array-object.ts +0 -360
- package/src/init.ts +0 -4
- package/src/types/webgl.ts +0 -284
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
// luma.gl
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
2
5
|
// Texture class.
|
|
3
6
|
// @todo
|
|
4
7
|
// - [ ] cube texture init params
|
|
@@ -7,39 +10,61 @@
|
|
|
7
10
|
import {
|
|
8
11
|
Device,
|
|
9
12
|
TextureProps,
|
|
13
|
+
TextureViewProps,
|
|
10
14
|
Sampler,
|
|
11
15
|
SamplerProps,
|
|
12
16
|
SamplerParameters,
|
|
13
|
-
TypedArray
|
|
14
|
-
|
|
15
|
-
} from '@luma.gl/
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import type {GLSamplerParameters} from '../../types/webgl';
|
|
19
|
-
import {withParameters} from '../../context/state-tracker/with-parameters';
|
|
17
|
+
TypedArray
|
|
18
|
+
} from '@luma.gl/core';
|
|
19
|
+
import {Texture, log, assert, loadImage, isObjectEmpty} from '@luma.gl/core';
|
|
20
|
+
import {GL, GLSamplerParameters} from '@luma.gl/constants';
|
|
21
|
+
import {withGLParameters} from '../../context/state-tracker/with-parameters';
|
|
20
22
|
import {
|
|
21
|
-
|
|
23
|
+
convertTextureFormatToGL,
|
|
22
24
|
getWebGLTextureParameters,
|
|
23
25
|
getTextureFormatBytesPerPixel
|
|
24
26
|
} from '../converters/texture-formats';
|
|
25
|
-
import {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} from '
|
|
29
|
-
import
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
import {convertSamplerParametersToWebGL} from '../converters/sampler-parameters';
|
|
28
|
+
import {WebGLDevice} from '../webgl-device';
|
|
29
|
+
import {WEBGLBuffer} from './webgl-buffer';
|
|
30
|
+
import {WEBGLSampler} from './webgl-sampler';
|
|
31
|
+
import {WEBGLTextureView} from './webgl-texture-view';
|
|
32
|
+
|
|
33
|
+
export type WEBGLTextureProps = TextureProps & {
|
|
34
|
+
/** @deprecated use props.sampler */
|
|
35
|
+
parameters?: Record<number, number>;
|
|
36
|
+
/** @deprecated use props.data */
|
|
37
|
+
pixels?: any;
|
|
38
|
+
/** @deprecated use props.format */
|
|
39
|
+
dataFormat?: number | null;
|
|
40
|
+
/** @deprecated rarely supported */
|
|
41
|
+
border?: number;
|
|
42
|
+
/** @deprecated WebGL only. */
|
|
43
|
+
pixelStore?: object;
|
|
44
|
+
/** @deprecated WebGL only. */
|
|
45
|
+
textureUnit?: number;
|
|
46
|
+
/** @deprecated WebGL only. Use dimension. */
|
|
47
|
+
target?: number;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const DEFAULT_WEBGL_TEXTURE_PROPS = {
|
|
51
|
+
// deprecated
|
|
52
|
+
parameters: {},
|
|
53
|
+
pixelStore: {},
|
|
54
|
+
pixels: null,
|
|
55
|
+
border: 0,
|
|
56
|
+
dataFormat: undefined!,
|
|
57
|
+
textureUnit: undefined!,
|
|
58
|
+
target: undefined!
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export type TextureSourceData =
|
|
62
|
+
| TypedArray
|
|
63
|
+
| ImageData
|
|
64
|
+
| HTMLImageElement
|
|
65
|
+
| HTMLCanvasElement
|
|
66
|
+
| ImageBitmap
|
|
67
|
+
| HTMLVideoElement;
|
|
43
68
|
|
|
44
69
|
type SetImageDataOptions = {
|
|
45
70
|
target?: number;
|
|
@@ -48,7 +73,7 @@ type SetImageDataOptions = {
|
|
|
48
73
|
width?: number;
|
|
49
74
|
height?: number;
|
|
50
75
|
depth?: number;
|
|
51
|
-
|
|
76
|
+
glFormat?: GL;
|
|
52
77
|
type?: any;
|
|
53
78
|
offset?: number;
|
|
54
79
|
data: any; // TextureSourceData;
|
|
@@ -56,7 +81,7 @@ type SetImageDataOptions = {
|
|
|
56
81
|
parameters?: Record<GL, any>;
|
|
57
82
|
/** @deprecated */
|
|
58
83
|
pixels?: any;
|
|
59
|
-
}
|
|
84
|
+
};
|
|
60
85
|
|
|
61
86
|
/**
|
|
62
87
|
* @param {*} pixels, data -
|
|
@@ -87,7 +112,7 @@ type SetSubImageDataOptions = {
|
|
|
87
112
|
width?: number;
|
|
88
113
|
height?: number;
|
|
89
114
|
depth?: number;
|
|
90
|
-
|
|
115
|
+
glFormat?: any;
|
|
91
116
|
type?: any;
|
|
92
117
|
offset?: number;
|
|
93
118
|
data: any;
|
|
@@ -112,9 +137,8 @@ type SetImageData3DOptions = {
|
|
|
112
137
|
parameters?: Record<GL, any>;
|
|
113
138
|
};
|
|
114
139
|
|
|
115
|
-
|
|
116
140
|
// Polyfill
|
|
117
|
-
export
|
|
141
|
+
export class WEBGLTexture extends Texture<WEBGLTextureProps> {
|
|
118
142
|
// TODO - remove?
|
|
119
143
|
static FACES: number[] = [
|
|
120
144
|
GL.TEXTURE_CUBE_MAP_POSITIVE_X,
|
|
@@ -127,17 +151,17 @@ export default class WEBGLTexture extends Texture {
|
|
|
127
151
|
|
|
128
152
|
readonly MAX_ATTRIBUTES: number;
|
|
129
153
|
readonly device: WebGLDevice;
|
|
130
|
-
readonly gl:
|
|
131
|
-
readonly gl2: WebGL2RenderingContext | null;
|
|
154
|
+
readonly gl: WebGL2RenderingContext;
|
|
132
155
|
readonly handle: WebGLTexture;
|
|
133
156
|
|
|
134
|
-
|
|
157
|
+
// (TODO - currently unused in WebGL, but WebGL 2 does support sampler objects) */
|
|
158
|
+
sampler: WEBGLSampler = undefined;
|
|
135
159
|
|
|
136
|
-
|
|
137
|
-
height: number = undefined;
|
|
138
|
-
depth: number = undefined;
|
|
160
|
+
view: WEBGLTextureView = undefined;
|
|
139
161
|
|
|
140
|
-
|
|
162
|
+
// data;
|
|
163
|
+
|
|
164
|
+
glFormat: GL = undefined;
|
|
141
165
|
type: GL = undefined;
|
|
142
166
|
dataFormat: GL = undefined;
|
|
143
167
|
mipmaps: boolean = undefined;
|
|
@@ -154,9 +178,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
154
178
|
target: GL;
|
|
155
179
|
textureUnit: number = undefined;
|
|
156
180
|
|
|
157
|
-
/** Sampler object (currently unused) */
|
|
158
|
-
sampler: WEBGLSampler = undefined;
|
|
159
|
-
|
|
160
181
|
/**
|
|
161
182
|
* Program.draw() checks the loaded flag of all textures to avoid
|
|
162
183
|
* Textures that are still loading from promises
|
|
@@ -169,16 +190,15 @@ export default class WEBGLTexture extends Texture {
|
|
|
169
190
|
lastTime: number;
|
|
170
191
|
};
|
|
171
192
|
|
|
172
|
-
constructor(device: Device, props:
|
|
173
|
-
super(device, {format:
|
|
193
|
+
constructor(device: Device, props: WEBGLTextureProps) {
|
|
194
|
+
super(device, {...DEFAULT_WEBGL_TEXTURE_PROPS, format: 'rgba8unorm', ...props});
|
|
174
195
|
|
|
175
|
-
this.device =
|
|
196
|
+
this.device = device as WebGLDevice;
|
|
176
197
|
this.gl = this.device.gl;
|
|
177
|
-
this.gl2 = this.device.gl2;
|
|
178
198
|
this.handle = this.props.handle || this.gl.createTexture();
|
|
179
|
-
|
|
180
|
-
this.handle.__SPECTOR_Metadata = {...this.props, data: typeof this.props.data}; // {name: this.props.id};
|
|
199
|
+
this.device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data}); // {name: this.props.id};
|
|
181
200
|
|
|
201
|
+
this.glFormat = GL.RGBA;
|
|
182
202
|
this.target = getWebGLTextureTarget(this.props);
|
|
183
203
|
|
|
184
204
|
// Program.draw() checks the loaded flag of all textures
|
|
@@ -194,7 +214,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
194
214
|
Object.seal(this);
|
|
195
215
|
}
|
|
196
216
|
|
|
197
|
-
destroy(): void {
|
|
217
|
+
override destroy(): void {
|
|
198
218
|
if (this.handle) {
|
|
199
219
|
this.gl.deleteTexture(this.handle);
|
|
200
220
|
this.removeStats();
|
|
@@ -204,12 +224,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
204
224
|
}
|
|
205
225
|
}
|
|
206
226
|
|
|
207
|
-
toString(): string {
|
|
227
|
+
override toString(): string {
|
|
208
228
|
return `Texture(${this.id},${this.width}x${this.height})`;
|
|
209
229
|
}
|
|
210
230
|
|
|
231
|
+
createView(props: TextureViewProps): WEBGLTextureView {
|
|
232
|
+
return new WEBGLTextureView(this.device, {...props, texture: this});
|
|
233
|
+
}
|
|
234
|
+
|
|
211
235
|
// eslint-disable-next-line max-statements
|
|
212
|
-
initialize(props:
|
|
236
|
+
initialize(props: WEBGLTextureProps = {}): this {
|
|
213
237
|
// Cube textures
|
|
214
238
|
if (this.props.dimension === 'cube') {
|
|
215
239
|
return this.initializeCube(props);
|
|
@@ -218,7 +242,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
218
242
|
let data = props.data;
|
|
219
243
|
|
|
220
244
|
if (data instanceof Promise) {
|
|
221
|
-
data.then(
|
|
245
|
+
data.then(resolvedImageData =>
|
|
222
246
|
this.initialize(
|
|
223
247
|
Object.assign({}, props, {
|
|
224
248
|
pixels: resolvedImageData,
|
|
@@ -238,10 +262,9 @@ export default class WEBGLTexture extends Texture {
|
|
|
238
262
|
return this;
|
|
239
263
|
}
|
|
240
264
|
|
|
241
|
-
|
|
265
|
+
const {parameters = {} as Record<GL, any>} = props;
|
|
242
266
|
|
|
243
|
-
const {
|
|
244
|
-
pixels = null, recreate = false, pixelStore = {}, textureUnit = undefined} = props;
|
|
267
|
+
const {pixels = null, pixelStore = {}, textureUnit = undefined, mipmaps = true} = props;
|
|
245
268
|
|
|
246
269
|
// pixels variable is for API compatibility purpose
|
|
247
270
|
if (!data) {
|
|
@@ -251,9 +274,11 @@ export default class WEBGLTexture extends Texture {
|
|
|
251
274
|
data = pixels;
|
|
252
275
|
}
|
|
253
276
|
|
|
254
|
-
let {width, height, dataFormat, type, compressed = false
|
|
277
|
+
let {width, height, dataFormat, type, compressed = false} = props;
|
|
255
278
|
const {depth = 0} = props;
|
|
256
279
|
|
|
280
|
+
const glFormat = convertTextureFormatToGL(props.format);
|
|
281
|
+
|
|
257
282
|
// Deduce width and height
|
|
258
283
|
({width, height, compressed, dataFormat, type} = this._deduceParameters({
|
|
259
284
|
format: props.format,
|
|
@@ -265,13 +290,11 @@ export default class WEBGLTexture extends Texture {
|
|
|
265
290
|
height
|
|
266
291
|
}));
|
|
267
292
|
|
|
268
|
-
const format = getWebGLTextureFormat(this.gl, props.format);
|
|
269
|
-
|
|
270
293
|
// Store opts for accessors
|
|
271
294
|
this.width = width;
|
|
272
295
|
this.height = height;
|
|
273
|
-
this.depth = depth;
|
|
274
|
-
this.
|
|
296
|
+
// this.depth = depth;
|
|
297
|
+
this.glFormat = glFormat;
|
|
275
298
|
this.type = type;
|
|
276
299
|
this.dataFormat = dataFormat;
|
|
277
300
|
this.textureUnit = textureUnit;
|
|
@@ -281,11 +304,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
281
304
|
this.gl.bindTexture(this.target, this.handle);
|
|
282
305
|
}
|
|
283
306
|
|
|
284
|
-
if (mipmaps && this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
285
|
-
log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)();
|
|
286
|
-
mipmaps = false;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
307
|
this.mipmaps = mipmaps;
|
|
290
308
|
|
|
291
309
|
this.setImageData({
|
|
@@ -293,10 +311,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
293
311
|
width,
|
|
294
312
|
height,
|
|
295
313
|
depth,
|
|
296
|
-
format,
|
|
314
|
+
format: glFormat,
|
|
297
315
|
type,
|
|
298
316
|
dataFormat,
|
|
299
|
-
// @ts-expect-error
|
|
317
|
+
// @ts-expect-error
|
|
300
318
|
parameters: pixelStore,
|
|
301
319
|
compressed
|
|
302
320
|
});
|
|
@@ -305,14 +323,12 @@ export default class WEBGLTexture extends Texture {
|
|
|
305
323
|
this.setSampler(props.sampler);
|
|
306
324
|
this._setSamplerParameters(parameters);
|
|
307
325
|
|
|
308
|
-
|
|
326
|
+
this.view = this.createView({...this.props, mipLevelCount: 1, arrayLayerCount: 1});
|
|
327
|
+
|
|
328
|
+
if (mipmaps && this.device.isTextureFormatFilterable(props.format)) {
|
|
309
329
|
this.generateMipmap();
|
|
310
330
|
}
|
|
311
331
|
|
|
312
|
-
// TODO - Store data to enable auto recreate on context loss
|
|
313
|
-
if (recreate) {
|
|
314
|
-
this.data = data;
|
|
315
|
-
}
|
|
316
332
|
if (isVideo) {
|
|
317
333
|
this._video = {
|
|
318
334
|
video: data as HTMLVideoElement,
|
|
@@ -325,8 +341,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
325
341
|
return this;
|
|
326
342
|
}
|
|
327
343
|
|
|
328
|
-
initializeCube(props?:
|
|
329
|
-
const {mipmaps = true, parameters = {}
|
|
344
|
+
initializeCube(props?: WEBGLTextureProps): this {
|
|
345
|
+
const {mipmaps = true, parameters = {} as Record<GL, any>} = props;
|
|
330
346
|
|
|
331
347
|
// Store props for accessors
|
|
332
348
|
// this.props = props;
|
|
@@ -357,7 +373,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
357
373
|
samplerProps = sampler as SamplerProps;
|
|
358
374
|
}
|
|
359
375
|
|
|
360
|
-
// TODO - technically, this is only needed in WebGL1. In WebGL2 we could always use the sampler.
|
|
361
376
|
const parameters = convertSamplerParametersToWebGL(samplerProps);
|
|
362
377
|
this._setSamplerParameters(parameters);
|
|
363
378
|
return this;
|
|
@@ -367,7 +382,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
367
382
|
* If size has changed, reinitializes with current format
|
|
368
383
|
* @note note clears image and mipmaps
|
|
369
384
|
*/
|
|
370
|
-
resize(options: {height: number
|
|
385
|
+
resize(options: {height: number; width: number; mipmaps?: boolean}): this {
|
|
371
386
|
const {height, width, mipmaps = false} = options;
|
|
372
387
|
if (width !== this.width || height !== this.height) {
|
|
373
388
|
return this.initialize({
|
|
@@ -383,7 +398,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
383
398
|
}
|
|
384
399
|
|
|
385
400
|
/** Update external texture (video frame) */
|
|
386
|
-
update():
|
|
401
|
+
update(): void {
|
|
387
402
|
if (this._video) {
|
|
388
403
|
const {video, parameters, lastTime} = this._video;
|
|
389
404
|
// @ts-expect-error
|
|
@@ -403,15 +418,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
403
418
|
|
|
404
419
|
// Call to regenerate mipmaps after modifying texture(s)
|
|
405
420
|
generateMipmap(params = {}): this {
|
|
406
|
-
if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
407
|
-
log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)();
|
|
408
|
-
return this;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
421
|
this.mipmaps = true;
|
|
412
422
|
|
|
413
423
|
this.gl.bindTexture(this.target, this.handle);
|
|
414
|
-
|
|
424
|
+
withGLParameters(this.gl, params, () => {
|
|
415
425
|
this.gl.generateMipmap(this.target);
|
|
416
426
|
});
|
|
417
427
|
this.gl.bindTexture(this.target, null);
|
|
@@ -440,7 +450,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
440
450
|
*/
|
|
441
451
|
// eslint-disable-next-line max-statements, complexity
|
|
442
452
|
setImageData(options: SetImageDataOptions) {
|
|
443
|
-
if (this.props.dimension === '3d') {
|
|
453
|
+
if (this.props.dimension === '3d' || this.props.dimension === '2d-array') {
|
|
444
454
|
return this.setImageData3D(options);
|
|
445
455
|
}
|
|
446
456
|
|
|
@@ -450,9 +460,9 @@ export default class WEBGLTexture extends Texture {
|
|
|
450
460
|
target = this.target,
|
|
451
461
|
pixels = null,
|
|
452
462
|
level = 0,
|
|
453
|
-
|
|
463
|
+
glFormat = this.glFormat,
|
|
454
464
|
offset = 0,
|
|
455
|
-
parameters = {}
|
|
465
|
+
parameters = {} as Record<GL, any>
|
|
456
466
|
} = options;
|
|
457
467
|
|
|
458
468
|
let {
|
|
@@ -485,63 +495,63 @@ export default class WEBGLTexture extends Texture {
|
|
|
485
495
|
let dataType = null;
|
|
486
496
|
({data, dataType} = this._getDataType({data, compressed}));
|
|
487
497
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
withParameters(this.gl, parameters, () => {
|
|
498
|
+
withGLParameters(this.gl, parameters, () => {
|
|
491
499
|
switch (dataType) {
|
|
492
500
|
case 'null':
|
|
493
|
-
gl.texImage2D(
|
|
501
|
+
gl.texImage2D(
|
|
502
|
+
target,
|
|
503
|
+
level,
|
|
504
|
+
glFormat,
|
|
505
|
+
width,
|
|
506
|
+
height,
|
|
507
|
+
0 /* border*/,
|
|
508
|
+
dataFormat,
|
|
509
|
+
type,
|
|
510
|
+
data
|
|
511
|
+
);
|
|
494
512
|
break;
|
|
495
513
|
case 'typed-array':
|
|
496
|
-
// Looks like this assert is not necessary, as offset is ignored under WebGL1
|
|
497
|
-
// assert((offset === 0 || this.device.isWebGL2), 'offset supported in WebGL2 only');
|
|
498
514
|
gl.texImage2D(
|
|
499
515
|
target,
|
|
500
516
|
level,
|
|
501
|
-
|
|
517
|
+
glFormat,
|
|
502
518
|
width,
|
|
503
519
|
height,
|
|
504
520
|
0, // border (must be 0)
|
|
505
521
|
dataFormat,
|
|
506
522
|
type,
|
|
507
523
|
data,
|
|
508
|
-
// @ts-expect-error
|
|
509
524
|
offset
|
|
510
525
|
);
|
|
511
526
|
break;
|
|
512
527
|
case 'buffer':
|
|
513
528
|
// WebGL2 enables creating textures directly from a WebGL buffer
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
gl2.texImage2D(
|
|
529
|
+
this.device.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle || data);
|
|
530
|
+
this.device.gl.texImage2D(
|
|
517
531
|
target,
|
|
518
532
|
level,
|
|
519
|
-
|
|
533
|
+
glFormat,
|
|
520
534
|
width,
|
|
521
535
|
height,
|
|
522
|
-
0 /*border*/,
|
|
536
|
+
0 /* border*/,
|
|
523
537
|
dataFormat,
|
|
524
538
|
type,
|
|
525
539
|
offset
|
|
526
540
|
);
|
|
527
|
-
|
|
541
|
+
this.device.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
|
|
528
542
|
break;
|
|
529
543
|
case 'browser-object':
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
);
|
|
542
|
-
} else {
|
|
543
|
-
gl.texImage2D(target, level, format, dataFormat, type, data);
|
|
544
|
-
}
|
|
544
|
+
gl.texImage2D(
|
|
545
|
+
target,
|
|
546
|
+
level,
|
|
547
|
+
glFormat,
|
|
548
|
+
width,
|
|
549
|
+
height,
|
|
550
|
+
0 /* border*/,
|
|
551
|
+
dataFormat,
|
|
552
|
+
type,
|
|
553
|
+
data
|
|
554
|
+
);
|
|
545
555
|
break;
|
|
546
556
|
case 'compressed':
|
|
547
557
|
for (const [levelIndex, levelData] of data.entries()) {
|
|
@@ -565,7 +575,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
565
575
|
if (data && data.byteLength) {
|
|
566
576
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
567
577
|
} else {
|
|
568
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
578
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format);
|
|
569
579
|
this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
|
|
570
580
|
}
|
|
571
581
|
|
|
@@ -588,7 +598,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
588
598
|
width = this.width,
|
|
589
599
|
height = this.height,
|
|
590
600
|
level = 0,
|
|
591
|
-
|
|
601
|
+
glFormat = this.glFormat,
|
|
592
602
|
type = this.type,
|
|
593
603
|
dataFormat = this.dataFormat,
|
|
594
604
|
compressed = false,
|
|
@@ -627,29 +637,23 @@ export default class WEBGLTexture extends Texture {
|
|
|
627
637
|
|
|
628
638
|
this.gl.bindTexture(this.target, this.handle);
|
|
629
639
|
|
|
630
|
-
|
|
640
|
+
withGLParameters(this.gl, parameters, () => {
|
|
631
641
|
// TODO - x,y parameters
|
|
632
642
|
if (compressed) {
|
|
633
|
-
this.gl.compressedTexSubImage2D(target, level, x, y, width, height,
|
|
643
|
+
this.gl.compressedTexSubImage2D(target, level, x, y, width, height, glFormat, data);
|
|
634
644
|
} else if (data === null) {
|
|
635
645
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
|
|
636
646
|
} else if (ArrayBuffer.isView(data)) {
|
|
637
|
-
// const gl2 = this.device.assertWebGL2();
|
|
638
|
-
// @ts-expect-error last offset parameter is ignored under WebGL1
|
|
639
647
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
|
|
640
648
|
} else if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
|
|
641
649
|
// WebGL2 allows us to create texture directly from a WebGL buffer
|
|
642
|
-
const gl2 = this.device.assertWebGL2();
|
|
643
650
|
// This texImage2D signature uses currently bound GL.PIXEL_UNPACK_BUFFER
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
} else if (this.device.isWebGL2) {
|
|
648
|
-
// Assume data is a browser supported object (ImageData, Canvas, ...)
|
|
649
|
-
const gl2 = this.device.assertWebGL2();
|
|
650
|
-
gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data);
|
|
651
|
+
this.device.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data);
|
|
652
|
+
this.device.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset);
|
|
653
|
+
this.device.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
|
|
651
654
|
} else {
|
|
652
|
-
|
|
655
|
+
// Assume data is a browser supported object (ImageData, Canvas, ...)
|
|
656
|
+
this.device.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data);
|
|
653
657
|
}
|
|
654
658
|
});
|
|
655
659
|
|
|
@@ -724,12 +728,12 @@ export default class WEBGLTexture extends Texture {
|
|
|
724
728
|
|
|
725
729
|
// HELPER METHODS
|
|
726
730
|
|
|
727
|
-
_deduceParameters(opts:
|
|
731
|
+
_deduceParameters(opts: WEBGLTextureProps) {
|
|
728
732
|
const {format, data} = opts;
|
|
729
733
|
let {width, height, dataFormat, type, compressed} = opts;
|
|
730
734
|
|
|
731
735
|
// Deduce format and type from format
|
|
732
|
-
const parameters = getWebGLTextureParameters(
|
|
736
|
+
const parameters = getWebGLTextureParameters(format);
|
|
733
737
|
dataFormat = dataFormat || parameters.dataFormat;
|
|
734
738
|
type = type || parameters.type;
|
|
735
739
|
compressed = compressed || parameters.compressed;
|
|
@@ -802,7 +806,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
802
806
|
// ... }
|
|
803
807
|
|
|
804
808
|
const resolvedFaces = await Promise.all(
|
|
805
|
-
WEBGLTexture.FACES.map(
|
|
809
|
+
WEBGLTexture.FACES.map(face => {
|
|
806
810
|
const facePixels = imageDataMap[face];
|
|
807
811
|
return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);
|
|
808
812
|
})
|
|
@@ -819,7 +823,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
819
823
|
resolvedFaces[index].forEach((image, lodLevel) => {
|
|
820
824
|
// TODO: adjust width & height for LOD!
|
|
821
825
|
if (width && height) {
|
|
822
|
-
gl.texImage2D(face, lodLevel, format, width, height, 0 /*border*/, format, type, image);
|
|
826
|
+
gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*/, format, type, image);
|
|
823
827
|
} else {
|
|
824
828
|
gl.texImage2D(face, lodLevel, format, format, type, image);
|
|
825
829
|
}
|
|
@@ -848,7 +852,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
848
852
|
|
|
849
853
|
this.bind();
|
|
850
854
|
if (imageData instanceof Promise) {
|
|
851
|
-
imageData.then(
|
|
855
|
+
imageData.then(resolvedImageData =>
|
|
852
856
|
this.setImageDataForFace(
|
|
853
857
|
Object.assign({}, options, {
|
|
854
858
|
face,
|
|
@@ -858,7 +862,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
858
862
|
)
|
|
859
863
|
);
|
|
860
864
|
} else if (this.width || this.height) {
|
|
861
|
-
gl.texImage2D(face, 0, format, width, height, 0 /*border*/, format, type, imageData);
|
|
865
|
+
gl.texImage2D(face, 0, format, width, height, 0 /* border*/, format, type, imageData);
|
|
862
866
|
} else {
|
|
863
867
|
gl.texImage2D(face, 0, format, format, type, imageData);
|
|
864
868
|
}
|
|
@@ -885,11 +889,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
885
889
|
|
|
886
890
|
this.gl.bindTexture(this.target, this.handle);
|
|
887
891
|
|
|
888
|
-
const webglTextureFormat = getWebGLTextureParameters(
|
|
892
|
+
const webglTextureFormat = getWebGLTextureParameters(format);
|
|
889
893
|
|
|
890
|
-
|
|
894
|
+
withGLParameters(this.gl, parameters, () => {
|
|
891
895
|
if (ArrayBuffer.isView(data)) {
|
|
892
|
-
// @ts-expect-error
|
|
893
896
|
this.gl.texImage3D(
|
|
894
897
|
this.target,
|
|
895
898
|
level,
|
|
@@ -906,7 +909,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
906
909
|
|
|
907
910
|
if (data instanceof WEBGLBuffer) {
|
|
908
911
|
this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
|
|
909
|
-
// @ts-expect-error
|
|
910
912
|
this.gl.texImage3D(
|
|
911
913
|
this.target,
|
|
912
914
|
level,
|
|
@@ -925,7 +927,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
925
927
|
if (data && data.byteLength) {
|
|
926
928
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
927
929
|
} else {
|
|
928
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
930
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format);
|
|
929
931
|
this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
|
|
930
932
|
}
|
|
931
933
|
|
|
@@ -938,14 +940,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
938
940
|
|
|
939
941
|
/**
|
|
940
942
|
* Sets sampler parameters on texture
|
|
941
|
-
* @note: Applies NPOT workaround if appropriate
|
|
942
943
|
*/
|
|
943
|
-
_setSamplerParameters(parameters: GLSamplerParameters) {
|
|
944
|
-
// Work around WebGL1 sampling restrictions on NPOT textures
|
|
945
|
-
if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
946
|
-
parameters = updateSamplerParametersForNPOT(parameters);
|
|
947
|
-
}
|
|
948
|
-
|
|
944
|
+
_setSamplerParameters(parameters: GLSamplerParameters): void {
|
|
949
945
|
// NPOT parameters may populate an empty object
|
|
950
946
|
if (isObjectEmpty(parameters)) {
|
|
951
947
|
return;
|
|
@@ -955,8 +951,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
955
951
|
|
|
956
952
|
this.gl.bindTexture(this.target, this.handle);
|
|
957
953
|
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
958
|
-
const param = Number(pname);
|
|
959
|
-
|
|
954
|
+
const param = Number(pname) as GL.TEXTURE_MIN_LOD | GL.TEXTURE_MAX_LOD;
|
|
955
|
+
const value = pvalue;
|
|
960
956
|
|
|
961
957
|
// Apparently there are integer/float conversion issues requires two parameter setting functions in JavaScript.
|
|
962
958
|
// For now, pick the float version for parameters specified as GLfloat.
|
|
@@ -972,30 +968,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
972
968
|
}
|
|
973
969
|
}
|
|
974
970
|
this.gl.bindTexture(this.target, null);
|
|
975
|
-
return
|
|
976
|
-
}
|
|
977
|
-
|
|
978
|
-
/** @deprecated For LegacyTexture subclass */
|
|
979
|
-
protected _getWebGL1NPOTParameterOverride(pname: number, value: number): number {
|
|
980
|
-
// NOTE: Apply NPOT workaround
|
|
981
|
-
const npot = this.device.isWebGL1 && isNPOT(this.width, this.height);
|
|
982
|
-
if (npot) {
|
|
983
|
-
switch (pname) {
|
|
984
|
-
case GL.TEXTURE_MIN_FILTER:
|
|
985
|
-
if (value !== GL.LINEAR && value !== GL.NEAREST) {
|
|
986
|
-
// log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();
|
|
987
|
-
return GL.LINEAR;
|
|
988
|
-
}
|
|
989
|
-
break;
|
|
990
|
-
case GL.TEXTURE_WRAP_S:
|
|
991
|
-
case GL.TEXTURE_WRAP_T:
|
|
992
|
-
// if (value !== GL.CLAMP_TO_EDGE) { log.warn(`texture: ${this} is Non-Power-Of-Two, ${getKey(this.gl, pname)} to CLAMP_TO_EDGE`)(); }
|
|
993
|
-
return GL.CLAMP_TO_EDGE;
|
|
994
|
-
default:
|
|
995
|
-
break;
|
|
996
|
-
}
|
|
997
|
-
}
|
|
998
|
-
return value;
|
|
971
|
+
return;
|
|
999
972
|
}
|
|
1000
973
|
}
|
|
1001
974
|
|
|
@@ -1021,16 +994,6 @@ function getWebGLTextureTarget(props: TextureProps) {
|
|
|
1021
994
|
}
|
|
1022
995
|
}
|
|
1023
996
|
|
|
1024
|
-
function isNPOT(width: number, height: number): boolean {
|
|
1025
|
-
// Width and height not available, avoid classifying as NPOT texture
|
|
1026
|
-
if (!width || !height) {
|
|
1027
|
-
return false;
|
|
1028
|
-
}
|
|
1029
|
-
return !isPowerOfTwo(width) || !isPowerOfTwo(height);
|
|
1030
|
-
}
|
|
1031
|
-
|
|
1032
997
|
function logParameters(parameters: Record<number, GL | number>) {
|
|
1033
998
|
log.log(1, 'texture sampler parameters', parameters)();
|
|
1034
|
-
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
1035
|
-
}
|
|
1036
999
|
}
|