@luma.gl/webgl 9.0.0-alpha.4 → 9.0.0-alpha.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +3 -1
- package/dist/adapter/converters/device-parameters.d.ts +23 -4
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +42 -47
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +5 -5
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +20 -56
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/shader-formats.d.ts +9 -0
- package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
- package/dist/adapter/converters/shader-formats.js +53 -0
- package/dist/adapter/converters/shader-formats.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +32 -44
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +165 -201
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/converters/vertex-formats.d.ts +9 -3
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +51 -19
- package/dist/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +14 -21
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +2 -5
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +9 -11
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.js +2 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
- package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
- package/dist/adapter/helpers/{uniforms.js → decode-webgl-types.js} +20 -29
- package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
- package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-info.js +25 -0
- package/dist/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +60 -115
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts +3 -2
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +27 -57
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts +11 -0
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/{attribute-utils.js → webgl-topology-utils.js} +2 -19
- package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +2 -29
- package/dist/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +34 -41
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +6 -9
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +26 -83
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +18 -10
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +49 -78
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +169 -43
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +10 -20
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +46 -155
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +91 -11
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +53 -19
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +107 -230
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +10 -19
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +3 -4
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +19 -31
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +64 -44
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +119 -235
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-vertex-array.js +166 -0
- package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +6 -7
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +10 -23
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +74 -41
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +214 -128
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +3 -3
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +23 -48
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -29
- package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
- package/dist/classic/{buffer.js → buffer-with-accessor.js} +55 -125
- package/dist/classic/buffer-with-accessor.js.map +1 -0
- package/dist/classic/clear.d.ts +22 -0
- package/dist/classic/clear.d.ts.map +1 -0
- package/dist/classic/clear.js +88 -0
- package/dist/classic/clear.js.map +1 -0
- package/dist/classic/copy-and-blit.d.ts +62 -0
- package/dist/classic/copy-and-blit.d.ts.map +1 -0
- package/dist/classic/copy-and-blit.js +200 -0
- package/dist/classic/copy-and-blit.js.map +1 -0
- package/dist/classic/format-utils.d.ts +3 -0
- package/dist/classic/format-utils.d.ts.map +1 -0
- package/dist/classic/format-utils.js +38 -0
- package/dist/classic/format-utils.js.map +1 -0
- package/dist/classic/typed-array-utils.d.ts +15 -17
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +1 -21
- package/dist/classic/typed-array-utils.js.map +1 -1
- package/dist/context/context/create-browser-context.d.ts +40 -0
- package/dist/context/context/create-browser-context.d.ts.map +1 -0
- package/dist/context/context/create-browser-context.js +53 -0
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +9 -0
- package/dist/context/context/create-headless-context.d.ts.map +1 -0
- package/dist/context/context/create-headless-context.js +42 -0
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/context/webgl-checks.d.ts.map +1 -1
- package/dist/context/context/webgl-checks.js +1 -4
- package/dist/context/context/webgl-checks.js.map +1 -1
- package/dist/context/debug/spector.d.ts +1 -2
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +8 -20
- package/dist/context/debug/spector.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +16 -39
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +9 -19
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +18 -36
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/context-data.d.ts +13 -0
- package/dist/context/polyfill/context-data.d.ts.map +1 -0
- package/dist/context/polyfill/context-data.js +12 -0
- package/dist/context/polyfill/context-data.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js +4 -9
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +22 -30
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +8 -8
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +10 -32
- package/dist/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js +0 -4
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +26 -62
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts +2 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +8 -10
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/dist.dev.js +10390 -0
- package/dist/index.cjs +6615 -0
- package/dist/index.d.ts +27 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -26
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist.min.js +37 -0
- package/package.json +21 -9
- package/src/adapter/converters/device-parameters.ts +124 -36
- package/src/adapter/converters/sampler-parameters.ts +22 -9
- package/src/adapter/converters/shader-formats.ts +44 -0
- package/src/adapter/converters/texture-formats.ts +267 -194
- package/src/adapter/converters/vertex-formats.ts +71 -10
- package/src/adapter/device-helpers/device-features.ts +13 -3
- package/src/adapter/device-helpers/device-limits.ts +5 -3
- package/src/adapter/device-helpers/get-device-info.ts +17 -10
- package/src/adapter/device-helpers/is-old-ie.ts +3 -0
- package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
- package/src/adapter/helpers/get-shader-info.ts +41 -0
- package/src/adapter/helpers/get-shader-layout.ts +121 -146
- package/src/adapter/helpers/parse-shader-compiler-log.ts +4 -2
- package/src/adapter/helpers/set-uniform.ts +39 -35
- package/src/adapter/helpers/{attribute-utils.ts → webgl-topology-utils.ts} +7 -5
- package/src/adapter/objects/constants-to-keys.ts +6 -25
- package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
- package/src/adapter/objects/webgl-resource.ts +16 -23
- package/src/adapter/resources/webgl-buffer.ts +59 -58
- package/src/adapter/resources/webgl-command-buffer.ts +333 -25
- package/src/adapter/resources/webgl-command-encoder.ts +20 -12
- package/src/adapter/resources/webgl-external-texture.ts +5 -2
- package/src/adapter/resources/webgl-framebuffer.ts +89 -133
- package/src/adapter/resources/webgl-render-pass.ts +160 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +254 -174
- package/src/adapter/resources/webgl-sampler.ts +15 -9
- package/src/adapter/resources/webgl-shader.ts +14 -11
- package/src/adapter/resources/webgl-texture.ts +120 -90
- package/src/adapter/resources/webgl-vertex-array.ts +279 -0
- package/src/adapter/webgl-canvas-context.ts +16 -14
- package/src/adapter/webgl-device.ts +321 -78
- package/src/classic/accessor.ts +7 -17
- package/src/classic/{buffer.ts → buffer-with-accessor.ts} +68 -76
- package/src/classic/clear.ts +113 -0
- package/src/classic/copy-and-blit.ts +314 -0
- package/src/classic/format-utils.ts +46 -0
- package/src/classic/typed-array-utils.ts +19 -27
- package/src/context/context/create-browser-context.ts +140 -0
- package/src/context/context/create-headless-context.ts +51 -0
- package/src/context/context/webgl-checks.ts +3 -1
- package/src/context/debug/spector.ts +9 -6
- package/src/context/debug/webgl-developer-tools.ts +23 -15
- package/src/context/parameters/unified-parameter-api.ts +23 -14
- package/src/context/parameters/webgl-parameter-tables.ts +120 -98
- package/src/context/polyfill/context-data.ts +30 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
- package/src/context/polyfill/polyfill-context.ts +10 -9
- package/src/context/polyfill/polyfill-table.ts +21 -16
- package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
- package/src/context/state-tracker/deep-array-equal.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +20 -16
- package/src/context/state-tracker/with-parameters.ts +13 -4
- package/src/index.ts +69 -35
- package/src/types.ts +5 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
- package/dist/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
- package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
- package/dist/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/adapter/helpers/uniforms.d.ts +0 -26
- package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
- package/dist/adapter/helpers/uniforms.js.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -5
- package/dist/bundle.js.map +0 -1
- package/dist/classic/buffer.d.ts.map +0 -1
- package/dist/classic/buffer.js.map +0 -1
- package/dist/context/context/context-state.d.ts +0 -18
- package/dist/context/context/context-state.d.ts.map +0 -1
- package/dist/context/context/context-state.js +0 -26
- package/dist/context/context/context-state.js.map +0 -1
- package/dist/context/context/create-context.d.ts +0 -41
- package/dist/context/context/create-context.d.ts.map +0 -1
- package/dist/context/context/create-context.js +0 -49
- package/dist/context/context/create-context.js.map +0 -1
- package/dist/context/context/device-pixels.d.ts +0 -25
- package/dist/context/context/device-pixels.d.ts.map +0 -1
- package/dist/context/context/device-pixels.js +0 -98
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/es5/adapter/converters/device-parameters.js +0 -170
- package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
- package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/texture-formats.js +0 -1031
- package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -45
- package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-features.js +0 -144
- package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
- package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
- package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -125
- package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/es5/adapter/helpers/uniforms.js +0 -112
- package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
- package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-resource.js +0 -292
- package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
- package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
- package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-shader.js +0 -149
- package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-texture.js +0 -986
- package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -97
- package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/es5/adapter/webgl-device.js +0 -399
- package/dist/es5/adapter/webgl-device.js.map +0 -1
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/classic/accessor.js +0 -181
- package/dist/es5/classic/accessor.js.map +0 -1
- package/dist/es5/classic/buffer.js +0 -470
- package/dist/es5/classic/buffer.js.map +0 -1
- package/dist/es5/classic/typed-array-utils.js +0 -126
- package/dist/es5/classic/typed-array-utils.js.map +0 -1
- package/dist/es5/context/context/context-state.js +0 -31
- package/dist/es5/context/context/context-state.js.map +0 -1
- package/dist/es5/context/context/create-context.js +0 -69
- package/dist/es5/context/context/create-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -115
- package/dist/es5/context/context/device-pixels.js.map +0 -1
- package/dist/es5/context/context/webgl-checks.js +0 -54
- package/dist/es5/context/context/webgl-checks.js.map +0 -1
- package/dist/es5/context/debug/spector.js +0 -133
- package/dist/es5/context/debug/spector.js.map +0 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
- package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
- package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-context.js +0 -135
- package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-table.js +0 -166
- package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/es5/context/state-tracker/track-context-state.js +0 -211
- package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/es5/context/state-tracker/with-parameters.js +0 -44
- package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/es5/index.js +0 -276
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/init.js +0 -10
- package/dist/es5/init.js.map +0 -1
- package/dist/es5/types/webgl.js +0 -6
- package/dist/es5/types/webgl.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/types.js.map +0 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -155
- package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
- package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/texture-formats.js +0 -954
- package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -35
- package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-features.js +0 -102
- package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
- package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
- package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -115
- package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -99
- package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
- package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-resource.js +0 -216
- package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
- package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
- package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-shader.js +0 -75
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -831
- package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -54
- package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/esm/adapter/webgl-device.js +0 -280
- package/dist/esm/adapter/webgl-device.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/classic/accessor.js +0 -144
- package/dist/esm/classic/accessor.js.map +0 -1
- package/dist/esm/classic/buffer.js +0 -384
- package/dist/esm/classic/buffer.js.map +0 -1
- package/dist/esm/classic/typed-array-utils.js +0 -112
- package/dist/esm/classic/typed-array-utils.js.map +0 -1
- package/dist/esm/context/context/context-state.js +0 -26
- package/dist/esm/context/context/context-state.js.map +0 -1
- package/dist/esm/context/context/create-context.js +0 -49
- package/dist/esm/context/context/create-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -98
- package/dist/esm/context/context/device-pixels.js.map +0 -1
- package/dist/esm/context/context/webgl-checks.js +0 -34
- package/dist/esm/context/context/webgl-checks.js.map +0 -1
- package/dist/esm/context/debug/spector.js +0 -76
- package/dist/esm/context/debug/spector.js.map +0 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
- package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
- package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-context.js +0 -92
- package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -160
- package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/esm/context/state-tracker/track-context-state.js +0 -183
- package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -36
- package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/esm/index.js +0 -27
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/init.js +0 -4
- package/dist/esm/init.js.map +0 -1
- package/dist/esm/types/webgl.js +0 -2
- package/dist/esm/types/webgl.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/init.d.ts +0 -2
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -4
- package/dist/init.js.map +0 -1
- package/dist/types/webgl.d.ts +0 -144
- package/dist/types/webgl.d.ts.map +0 -1
- package/dist/types/webgl.js +0 -2
- package/dist/types/webgl.js.map +0 -1
- package/src/adapter/converters/renderbuffer-formats.ts +0 -92
- package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
- package/src/bundle.ts +0 -4
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/create-context.ts +0 -110
- package/src/context/context/device-pixels.ts +0 -152
- package/src/init.ts +0 -4
- package/src/types/webgl.ts +0 -283
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
4
|
+
import type {Device, BufferProps, TypedArray} from '@luma.gl/core';
|
|
5
|
+
import {assert, checkProps} from '@luma.gl/core';
|
|
6
|
+
import {GL} from '@luma.gl/constants';
|
|
4
7
|
import {assertWebGL2Context} from '../context/context/webgl-checks';
|
|
5
8
|
import {AccessorObject} from '../types';
|
|
6
|
-
import Accessor from './accessor';
|
|
9
|
+
import {Accessor} from './accessor';
|
|
7
10
|
import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from './typed-array-utils';
|
|
8
11
|
|
|
9
|
-
import WebGLDevice from '../adapter/webgl-device';
|
|
10
|
-
import WEBGLBuffer from '../adapter/resources/webgl-buffer';
|
|
12
|
+
import {WebGLDevice} from '../adapter/webgl-device';
|
|
13
|
+
import {WEBGLBuffer} from '../adapter/resources/webgl-buffer';
|
|
11
14
|
|
|
12
15
|
const DEBUG_DATA_LENGTH = 10;
|
|
13
16
|
|
|
@@ -40,7 +43,7 @@ const PROP_CHECKS_SET_PROPS = {
|
|
|
40
43
|
removedProps: DEPRECATED_PROPS
|
|
41
44
|
};
|
|
42
45
|
|
|
43
|
-
function getWEBGLBufferProps(props:
|
|
46
|
+
function getWEBGLBufferProps(props: BufferWithAccessorProps | ArrayBufferView | number): BufferProps {
|
|
44
47
|
// Signature `new Buffer(gl, new Float32Array(...)`
|
|
45
48
|
if (ArrayBuffer.isView(props)) {
|
|
46
49
|
return {data: props};
|
|
@@ -48,42 +51,40 @@ function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | numbe
|
|
|
48
51
|
|
|
49
52
|
// Signature: `new Buffer(gl, 100)`
|
|
50
53
|
else if (typeof props === 'number') {
|
|
51
|
-
return {byteLength: props
|
|
54
|
+
return {byteLength: props };
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
|
|
55
|
-
const bufferProps = {...props
|
|
56
|
-
if (bufferProps.offset) {
|
|
57
|
-
|
|
58
|
-
}
|
|
58
|
+
const bufferProps = {...props };
|
|
59
|
+
// if (bufferProps.offset) {
|
|
60
|
+
// bufferProps.byteOffset = bufferProps.offset;
|
|
61
|
+
// }
|
|
59
62
|
return bufferProps;
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
/** WebGL Buffer interface */
|
|
63
|
-
export type
|
|
66
|
+
export type BufferWithAccessorProps = BufferProps & {
|
|
64
67
|
handle?: WebGLBuffer;
|
|
65
68
|
|
|
66
|
-
target?: number;
|
|
67
|
-
webglUsage?: number;
|
|
68
|
-
|
|
69
69
|
accessor?: AccessorObject;
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
/** @deprecated */
|
|
74
|
-
|
|
75
|
-
/** @deprecated */
|
|
76
|
-
|
|
77
|
-
/** @deprecated */
|
|
78
|
-
|
|
71
|
+
// target?: number;
|
|
72
|
+
// glUsage?: number;
|
|
73
|
+
// /** @deprecated */
|
|
74
|
+
// index?: number;
|
|
75
|
+
// /** @deprecated */
|
|
76
|
+
// offset?: number;
|
|
77
|
+
// /** @deprecated */
|
|
78
|
+
// size?: number;
|
|
79
|
+
// /** @deprecated */
|
|
80
|
+
// type?: number
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
/** WebGL Buffer interface */
|
|
82
|
-
export
|
|
83
|
-
usage: number;
|
|
84
|
+
export class BufferWithAccessor extends WEBGLBuffer {
|
|
84
85
|
accessor: Accessor;
|
|
85
86
|
|
|
86
|
-
constructor(device: Device | WebGLRenderingContext, props?:
|
|
87
|
+
constructor(device: Device | WebGLRenderingContext, props?: BufferWithAccessorProps);
|
|
87
88
|
constructor(device: Device | WebGLRenderingContext, data: ArrayBufferView | number[]);
|
|
88
89
|
constructor(device: Device | WebGLRenderingContext, byteLength: number);
|
|
89
90
|
|
|
@@ -94,7 +95,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
94
95
|
// this.initialize(props);
|
|
95
96
|
|
|
96
97
|
// Deprecated: Merge main props and accessor
|
|
97
|
-
this.setAccessor(Object.assign({}, props, (props as
|
|
98
|
+
this.setAccessor(Object.assign({}, props, (props as BufferWithAccessorProps).accessor));
|
|
98
99
|
|
|
99
100
|
// infer GL type from supplied typed array
|
|
100
101
|
if (this.props.data) {
|
|
@@ -106,19 +107,10 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
106
107
|
Object.seal(this);
|
|
107
108
|
}
|
|
108
109
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
this.trackDeallocatedMemory();
|
|
113
|
-
this.gl.deleteBuffer(this.handle);
|
|
114
|
-
// @ts-expect-error
|
|
115
|
-
this.handle = null;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
110
|
+
// override write(data: TypedArray, byteOffset: number = 0): void {
|
|
111
|
+
// this.subData({data, offset: byteOffset});
|
|
112
|
+
// }
|
|
118
113
|
|
|
119
|
-
write(data: TypedArray, byteOffset?: number): void {
|
|
120
|
-
this.subData({data, offset: byteOffset});
|
|
121
|
-
}
|
|
122
114
|
// returns number of elements in the buffer (assuming that the full buffer is used)
|
|
123
115
|
getElementCount(accessor: AccessorObject = this.accessor): number {
|
|
124
116
|
return Math.round(this.byteLength / Accessor.getBytesPerElement(accessor));
|
|
@@ -133,7 +125,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
133
125
|
// Signature: `new Buffer(gl, {data: new Float32Array(...)})`
|
|
134
126
|
// Signature: `new Buffer(gl, new Float32Array(...))`
|
|
135
127
|
// Signature: `new Buffer(gl, 100)`
|
|
136
|
-
initialize(props:
|
|
128
|
+
initialize(props: BufferWithAccessorProps = {}): this {
|
|
137
129
|
// Signature `new Buffer(gl, new Float32Array(...)`
|
|
138
130
|
if (ArrayBuffer.isView(props)) {
|
|
139
131
|
props = {data: props};
|
|
@@ -148,7 +140,8 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
148
140
|
props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
|
|
149
141
|
|
|
150
142
|
// Initialize member fields
|
|
151
|
-
|
|
143
|
+
// @ts-expect-error readonly field
|
|
144
|
+
this.glUsage = props.glUsage || GL.STATIC_DRAW;
|
|
152
145
|
this.debugData = null;
|
|
153
146
|
|
|
154
147
|
// Deprecated: Merge main props and accessor
|
|
@@ -156,7 +149,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
156
149
|
|
|
157
150
|
// Set data: (re)initializes the buffer
|
|
158
151
|
if (props.data) {
|
|
159
|
-
this._setData(props.data, props.
|
|
152
|
+
this._setData(props.data, props.byteOffset, props.byteLength);
|
|
160
153
|
} else {
|
|
161
154
|
this._setByteLength(props.byteLength || 0);
|
|
162
155
|
}
|
|
@@ -164,7 +157,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
164
157
|
return this;
|
|
165
158
|
}
|
|
166
159
|
|
|
167
|
-
setProps(props:
|
|
160
|
+
setProps(props: BufferWithAccessorProps): this {
|
|
168
161
|
props = checkProps('Buffer', props, PROP_CHECKS_SET_PROPS);
|
|
169
162
|
|
|
170
163
|
if ('accessor' in props) {
|
|
@@ -204,7 +197,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
204
197
|
}
|
|
205
198
|
|
|
206
199
|
// Update with new data. Reinitializes the buffer
|
|
207
|
-
setData(props:
|
|
200
|
+
setData(props: BufferWithAccessorProps) {
|
|
208
201
|
return this.initialize(props);
|
|
209
202
|
}
|
|
210
203
|
|
|
@@ -227,17 +220,17 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
227
220
|
// Create the buffer - binding it here for the first time locks the type
|
|
228
221
|
// In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
|
|
229
222
|
// @ts-expect-error
|
|
230
|
-
const
|
|
231
|
-
this.gl.bindBuffer(
|
|
223
|
+
const glTarget = this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.glTarget;
|
|
224
|
+
this.gl.bindBuffer(glTarget, this.handle);
|
|
232
225
|
// WebGL2: subData supports additional srcOffset and length parameters
|
|
233
226
|
if (srcOffset !== 0 || byteLength !== undefined) {
|
|
234
227
|
assertWebGL2Context(this.gl);
|
|
235
228
|
// @ts-expect-error
|
|
236
|
-
this.gl.bufferSubData(this.
|
|
229
|
+
this.gl.bufferSubData(this.glTarget, offset, data, srcOffset, byteLength);
|
|
237
230
|
} else {
|
|
238
|
-
this.gl.bufferSubData(
|
|
231
|
+
this.gl.bufferSubData(glTarget, offset, data);
|
|
239
232
|
}
|
|
240
|
-
this.gl.bindBuffer(
|
|
233
|
+
this.gl.bindBuffer(glTarget, null);
|
|
241
234
|
|
|
242
235
|
// TODO - update local `data` if offsets are right
|
|
243
236
|
this.debugData = null;
|
|
@@ -264,7 +257,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
264
257
|
// Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type
|
|
265
258
|
gl.bindBuffer(GL.COPY_READ_BUFFER, sourceBuffer.handle);
|
|
266
259
|
gl.bindBuffer(GL.COPY_WRITE_BUFFER, this.handle);
|
|
267
|
-
gl2
|
|
260
|
+
gl2?.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
|
|
268
261
|
gl.bindBuffer(GL.COPY_READ_BUFFER, null);
|
|
269
262
|
gl.bindBuffer(GL.COPY_WRITE_BUFFER, null);
|
|
270
263
|
|
|
@@ -278,7 +271,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
278
271
|
* Reads data from buffer into an ArrayBufferView or SharedArrayBuffer.
|
|
279
272
|
* @note WEBGL2 ONLY
|
|
280
273
|
*/
|
|
281
|
-
getData(options?: {
|
|
274
|
+
override getData(options?: {
|
|
282
275
|
dstData?: any;
|
|
283
276
|
srcByteOffset?: number;
|
|
284
277
|
dstOffset?: number;
|
|
@@ -314,7 +307,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
314
307
|
|
|
315
308
|
// Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type
|
|
316
309
|
this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);
|
|
317
|
-
this.gl2
|
|
310
|
+
this.gl2?.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
|
|
318
311
|
this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
|
|
319
312
|
|
|
320
313
|
// TODO - update local `data` if offsets are 0
|
|
@@ -328,9 +321,9 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
328
321
|
* - GL.UNIFORM_BUFFER: `offset` must be aligned to GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT.
|
|
329
322
|
* - GL.UNIFORM_BUFFER: `size` must be a minimum of GL.UNIFORM_BLOCK_SIZE_DATA.
|
|
330
323
|
*/
|
|
331
|
-
bind(options?: {
|
|
324
|
+
bind(options?: {glTarget?: number; index?: any; offset?: number; size?: any}): this {
|
|
332
325
|
const {
|
|
333
|
-
|
|
326
|
+
glTarget = this.glTarget, // target for the bind operation
|
|
334
327
|
index = this.accessor && this.accessor.index, // index = index of target (indexed bind point)
|
|
335
328
|
offset = 0,
|
|
336
329
|
size
|
|
@@ -338,27 +331,27 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
338
331
|
// NOTE: While GL.TRANSFORM_FEEDBACK_BUFFER and GL.UNIFORM_BUFFER could
|
|
339
332
|
// be used as direct binding points, they will not affect transform feedback or
|
|
340
333
|
// uniform buffer state. Instead indexed bindings need to be made.
|
|
341
|
-
if (
|
|
334
|
+
if (glTarget === GL.UNIFORM_BUFFER || glTarget === GL.TRANSFORM_FEEDBACK_BUFFER) {
|
|
342
335
|
if (size !== undefined) {
|
|
343
|
-
this.gl2
|
|
336
|
+
this.gl2?.bindBufferRange(glTarget, index, this.handle, offset, size);
|
|
344
337
|
} else {
|
|
345
338
|
assert(offset === 0); // Make sure offset wasn't supplied
|
|
346
|
-
this.gl2
|
|
339
|
+
this.gl2?.bindBufferBase(glTarget, index, this.handle);
|
|
347
340
|
}
|
|
348
341
|
} else {
|
|
349
|
-
this.gl.bindBuffer(
|
|
342
|
+
this.gl.bindBuffer(glTarget, this.handle);
|
|
350
343
|
}
|
|
351
344
|
|
|
352
345
|
return this;
|
|
353
346
|
}
|
|
354
347
|
|
|
355
|
-
unbind(options?: {
|
|
356
|
-
const {
|
|
357
|
-
const isIndexedBuffer =
|
|
348
|
+
unbind(options?: {glTarget?: any; index?: any}): this {
|
|
349
|
+
const {glTarget = this.glTarget, index = this.accessor && this.accessor.index} = options || {};
|
|
350
|
+
const isIndexedBuffer = glTarget === GL.UNIFORM_BUFFER || glTarget === GL.TRANSFORM_FEEDBACK_BUFFER;
|
|
358
351
|
if (isIndexedBuffer) {
|
|
359
|
-
this.gl2
|
|
352
|
+
this.gl2?.bindBufferBase(glTarget, index, null);
|
|
360
353
|
} else {
|
|
361
|
-
this.gl.bindBuffer(
|
|
354
|
+
this.gl.bindBuffer(glTarget, null);
|
|
362
355
|
}
|
|
363
356
|
return this;
|
|
364
357
|
}
|
|
@@ -369,7 +362,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
369
362
|
getDebugData(): {
|
|
370
363
|
data: any;
|
|
371
364
|
changed: boolean;
|
|
372
|
-
|
|
365
|
+
} {
|
|
373
366
|
if (!this.debugData) {
|
|
374
367
|
this.debugData = this.getData({length: Math.min(DEBUG_DATA_LENGTH, this.byteLength)});
|
|
375
368
|
return {data: this.debugData, changed: true};
|
|
@@ -391,7 +384,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
391
384
|
|
|
392
385
|
const target = this._getTarget();
|
|
393
386
|
this.gl.bindBuffer(target, this.handle);
|
|
394
|
-
this.gl.bufferData(target, byteLength, this.
|
|
387
|
+
this.gl.bufferData(target, byteLength, this.glUsage);
|
|
395
388
|
this.gl.bufferSubData(target, offset, data);
|
|
396
389
|
this.gl.bindBuffer(target, null);
|
|
397
390
|
|
|
@@ -408,7 +401,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
408
401
|
}
|
|
409
402
|
|
|
410
403
|
// Allocate a GPU buffer of specified size.
|
|
411
|
-
_setByteLength(byteLength: number
|
|
404
|
+
_setByteLength(byteLength: number): this {
|
|
412
405
|
assert(byteLength >= 0);
|
|
413
406
|
|
|
414
407
|
this.trackDeallocatedMemory();
|
|
@@ -421,12 +414,11 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
421
414
|
data = new Float32Array(0);
|
|
422
415
|
}
|
|
423
416
|
|
|
424
|
-
const
|
|
425
|
-
this.gl.bindBuffer(
|
|
426
|
-
this.gl.bufferData(
|
|
427
|
-
this.gl.bindBuffer(
|
|
417
|
+
const glTarget = this._getTarget();
|
|
418
|
+
this.gl.bindBuffer(glTarget, this.handle);
|
|
419
|
+
this.gl.bufferData(glTarget, data, this.glUsage);
|
|
420
|
+
this.gl.bindBuffer(glTarget, null);
|
|
428
421
|
|
|
429
|
-
this.webglUsage = webglUsage;
|
|
430
422
|
this.debugData = null;
|
|
431
423
|
this.bytesUsed = byteLength;
|
|
432
424
|
this.byteLength = byteLength;
|
|
@@ -440,7 +432,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
440
432
|
// In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
|
|
441
433
|
_getTarget() {
|
|
442
434
|
// @ts-expect-error
|
|
443
|
-
return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.
|
|
435
|
+
return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.glTarget;
|
|
444
436
|
}
|
|
445
437
|
|
|
446
438
|
_getAvailableElementCount(srcByteOffset: number) {
|
|
@@ -460,9 +452,9 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
460
452
|
// RESOURCE METHODS
|
|
461
453
|
|
|
462
454
|
getParameter(pname: GL): any {
|
|
463
|
-
this.gl.bindBuffer(this.
|
|
464
|
-
const value = this.gl.getBufferParameter(this.
|
|
465
|
-
this.gl.bindBuffer(this.
|
|
455
|
+
this.gl.bindBuffer(this.glTarget, this.handle);
|
|
456
|
+
const value = this.gl.getBufferParameter(this.glTarget, pname);
|
|
457
|
+
this.gl.bindBuffer(this.glTarget, null);
|
|
466
458
|
return value;
|
|
467
459
|
}
|
|
468
460
|
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
4
|
+
import {Device, Framebuffer, assert} from '@luma.gl/core';
|
|
5
|
+
import {WebGLDevice} from '../adapter/webgl-device';
|
|
6
|
+
import {withGLParameters} from '../context/state-tracker/with-parameters';
|
|
7
|
+
|
|
8
|
+
// Should collapse during minification
|
|
9
|
+
const GL_DEPTH_BUFFER_BIT = 0x00000100;
|
|
10
|
+
const GL_STENCIL_BUFFER_BIT = 0x00000400;
|
|
11
|
+
const GL_COLOR_BUFFER_BIT = 0x00004000;
|
|
12
|
+
|
|
13
|
+
const GL_COLOR = 0x1800;
|
|
14
|
+
const GL_DEPTH = 0x1801;
|
|
15
|
+
const GL_STENCIL = 0x1802;
|
|
16
|
+
const GL_DEPTH_STENCIL = 0x84f9;
|
|
17
|
+
|
|
18
|
+
// Should disappear if asserts are removed
|
|
19
|
+
const ERR_ARGUMENTS = 'clear: bad arguments';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Optionally clears depth, color and stencil buffers
|
|
23
|
+
* @deprecated Set clear color when creating a RenderPass.
|
|
24
|
+
*/
|
|
25
|
+
export function clear(
|
|
26
|
+
gl: Device | WebGLRenderingContext,
|
|
27
|
+
options?: {framebuffer?: Framebuffer; color?: any; depth?: any; stencil?: any}
|
|
28
|
+
): void {
|
|
29
|
+
const device = WebGLDevice.attach(gl);
|
|
30
|
+
const {framebuffer = null, color = null, depth = null, stencil = null} = options || {};
|
|
31
|
+
const parameters: any = {};
|
|
32
|
+
|
|
33
|
+
if (framebuffer) {
|
|
34
|
+
parameters.framebuffer = framebuffer;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
let clearFlags = 0;
|
|
38
|
+
|
|
39
|
+
if (color) {
|
|
40
|
+
clearFlags |= GL_COLOR_BUFFER_BIT;
|
|
41
|
+
if (color !== true) {
|
|
42
|
+
parameters.clearColor = color;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (depth) {
|
|
47
|
+
clearFlags |= GL_DEPTH_BUFFER_BIT;
|
|
48
|
+
if (depth !== true) {
|
|
49
|
+
parameters.clearDepth = depth;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (stencil) {
|
|
54
|
+
clearFlags |= GL_STENCIL_BUFFER_BIT;
|
|
55
|
+
if (depth !== true) {
|
|
56
|
+
parameters.clearStencil = depth;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
assert(clearFlags !== 0, ERR_ARGUMENTS);
|
|
61
|
+
|
|
62
|
+
// Temporarily set any clear "colors" and call clear
|
|
63
|
+
withGLParameters(device.gl, parameters, () => {
|
|
64
|
+
device.gl.clear(clearFlags);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* WebGL2 - clear a specific drawing buffer
|
|
70
|
+
* @deprecated Set clear color when creating a RenderPass
|
|
71
|
+
*/
|
|
72
|
+
export function clearBuffer(
|
|
73
|
+
gl: Device | WebGLRenderingContext,
|
|
74
|
+
options?: {framebuffer?: Framebuffer; buffer?: any; drawBuffer?: any; value?: any}
|
|
75
|
+
) {
|
|
76
|
+
const device = WebGLDevice.attach(gl);
|
|
77
|
+
|
|
78
|
+
const {framebuffer = null, buffer = GL_COLOR, drawBuffer = 0, value = [0, 0, 0, 0]} = options || {};
|
|
79
|
+
withGLParameters(device.gl2, {framebuffer}, () => {
|
|
80
|
+
// Method selection per OpenGL ES 3 docs
|
|
81
|
+
switch (buffer) {
|
|
82
|
+
case GL_COLOR:
|
|
83
|
+
switch (value.constructor) {
|
|
84
|
+
case Int32Array:
|
|
85
|
+
device.gl2.clearBufferiv(buffer, drawBuffer, value);
|
|
86
|
+
break;
|
|
87
|
+
case Uint32Array:
|
|
88
|
+
device.gl2.clearBufferuiv(buffer, drawBuffer, value);
|
|
89
|
+
break;
|
|
90
|
+
case Float32Array:
|
|
91
|
+
default:
|
|
92
|
+
device.gl2.clearBufferfv(buffer, drawBuffer, value);
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
|
|
96
|
+
case GL_DEPTH:
|
|
97
|
+
device.gl2.clearBufferfv(GL_DEPTH, 0, [value]);
|
|
98
|
+
break;
|
|
99
|
+
|
|
100
|
+
case GL_STENCIL:
|
|
101
|
+
device.gl2.clearBufferiv(GL_STENCIL, 0, [value]);
|
|
102
|
+
break;
|
|
103
|
+
|
|
104
|
+
case GL_DEPTH_STENCIL:
|
|
105
|
+
const [depth, stencil] = value;
|
|
106
|
+
device.gl2.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);
|
|
107
|
+
break;
|
|
108
|
+
|
|
109
|
+
default:
|
|
110
|
+
assert(false, ERR_ARGUMENTS);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|