@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
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {GL, GLPrimitiveTopology, GLPrimitive} from '@luma.gl/constants';
|
|
6
|
+
import {PrimitiveTopology} from '@luma.gl/core';
|
|
7
|
+
|
|
8
|
+
// Counts the number of complete primitives given a number of vertices and a drawMode
|
|
9
|
+
export function getPrimitiveDrawMode(drawMode: GLPrimitiveTopology): GLPrimitive {
|
|
10
|
+
switch (drawMode) {
|
|
11
|
+
case GL.POINTS:
|
|
12
|
+
return GL.POINTS;
|
|
13
|
+
case GL.LINES:
|
|
14
|
+
return GL.LINES;
|
|
15
|
+
case GL.LINE_STRIP:
|
|
16
|
+
return GL.LINES;
|
|
17
|
+
case GL.LINE_LOOP:
|
|
18
|
+
return GL.LINES;
|
|
19
|
+
case GL.TRIANGLES:
|
|
20
|
+
return GL.TRIANGLES;
|
|
21
|
+
case GL.TRIANGLE_STRIP:
|
|
22
|
+
return GL.TRIANGLES;
|
|
23
|
+
case GL.TRIANGLE_FAN:
|
|
24
|
+
return GL.TRIANGLES;
|
|
25
|
+
default:
|
|
26
|
+
throw new Error('drawMode');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Counts the number of complete "primitives" given a number of vertices and a drawMode
|
|
31
|
+
export function getPrimitiveCount(options: {
|
|
32
|
+
drawMode: GLPrimitiveTopology;
|
|
33
|
+
vertexCount: number;
|
|
34
|
+
}): number {
|
|
35
|
+
const {drawMode, vertexCount} = options;
|
|
36
|
+
switch (drawMode) {
|
|
37
|
+
case GL.POINTS:
|
|
38
|
+
case GL.LINE_LOOP:
|
|
39
|
+
return vertexCount;
|
|
40
|
+
case GL.LINES:
|
|
41
|
+
return vertexCount / 2;
|
|
42
|
+
case GL.LINE_STRIP:
|
|
43
|
+
return vertexCount - 1;
|
|
44
|
+
case GL.TRIANGLES:
|
|
45
|
+
return vertexCount / 3;
|
|
46
|
+
case GL.TRIANGLE_STRIP:
|
|
47
|
+
case GL.TRIANGLE_FAN:
|
|
48
|
+
return vertexCount - 2;
|
|
49
|
+
default:
|
|
50
|
+
throw new Error('drawMode');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Counts the number of vertices after splitting the vertex stream into separate "primitives"
|
|
55
|
+
export function getVertexCount(options: {
|
|
56
|
+
drawMode: GLPrimitiveTopology;
|
|
57
|
+
vertexCount: number;
|
|
58
|
+
}): number {
|
|
59
|
+
const {drawMode, vertexCount} = options;
|
|
60
|
+
const primitiveCount = getPrimitiveCount({drawMode, vertexCount});
|
|
61
|
+
switch (getPrimitiveDrawMode(drawMode)) {
|
|
62
|
+
case GL.POINTS:
|
|
63
|
+
return primitiveCount;
|
|
64
|
+
case GL.LINES:
|
|
65
|
+
return primitiveCount * 2;
|
|
66
|
+
case GL.TRIANGLES:
|
|
67
|
+
return primitiveCount * 3;
|
|
68
|
+
default:
|
|
69
|
+
throw new Error('drawMode');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Get the primitive type for draw */
|
|
74
|
+
export function getGLDrawMode(
|
|
75
|
+
topology: PrimitiveTopology
|
|
76
|
+
):
|
|
77
|
+
| GL.POINTS
|
|
78
|
+
| GL.LINES
|
|
79
|
+
| GL.LINE_STRIP
|
|
80
|
+
| GL.LINE_LOOP
|
|
81
|
+
| GL.TRIANGLES
|
|
82
|
+
| GL.TRIANGLE_STRIP
|
|
83
|
+
| GL.TRIANGLE_FAN {
|
|
84
|
+
// prettier-ignore
|
|
85
|
+
switch (topology) {
|
|
86
|
+
case 'point-list': return GL.POINTS;
|
|
87
|
+
case 'line-list': return GL.LINES;
|
|
88
|
+
case 'line-strip': return GL.LINE_STRIP;
|
|
89
|
+
case 'line-loop-webgl': return GL.LINE_LOOP;
|
|
90
|
+
case 'triangle-list': return GL.TRIANGLES;
|
|
91
|
+
case 'triangle-strip': return GL.TRIANGLE_STRIP;
|
|
92
|
+
case 'triangle-fan-webgl': return GL.TRIANGLE_FAN;
|
|
93
|
+
default: throw new Error(topology);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/** Get the primitive type for transform feedback */
|
|
98
|
+
export function getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.TRIANGLES {
|
|
99
|
+
// prettier-ignore
|
|
100
|
+
switch (topology) {
|
|
101
|
+
case 'point-list': return GL.POINTS;
|
|
102
|
+
case 'line-list': return GL.LINES;
|
|
103
|
+
case 'line-strip': return GL.LINES;
|
|
104
|
+
case 'line-loop-webgl': return GL.LINES;
|
|
105
|
+
case 'triangle-list': return GL.TRIANGLES;
|
|
106
|
+
case 'triangle-strip': return GL.TRIANGLES;
|
|
107
|
+
case 'triangle-fan-webgl': return GL.TRIANGLES;
|
|
108
|
+
default: throw new Error(topology);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {assert} from '@luma.gl/core';
|
|
6
|
+
import {GL} from '@luma.gl/constants';
|
|
3
7
|
|
|
4
8
|
// Resolve a WebGL enumeration name (returns itself if already a number)
|
|
5
|
-
export function getKeyValue(gl:
|
|
9
|
+
export function getKeyValue(gl: WebGL2RenderingContext, name: string | GL): GL {
|
|
6
10
|
// If not a string, return (assume number)
|
|
7
11
|
if (typeof name !== 'string') {
|
|
8
12
|
return name;
|
|
@@ -16,30 +20,8 @@ export function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL {
|
|
|
16
20
|
|
|
17
21
|
// Look up string, after removing any 'GL.' or 'gl.' prefix
|
|
18
22
|
name = name.replace(/^.*\./, '');
|
|
23
|
+
// @ts-ignore expect-error depends on settings
|
|
19
24
|
const value = gl[name];
|
|
20
25
|
assert(value !== undefined, `Accessing undefined constant GL.${name}`);
|
|
21
26
|
return value;
|
|
22
27
|
}
|
|
23
|
-
|
|
24
|
-
export function getKey(gl: WebGLRenderingContext, value: any): string {
|
|
25
|
-
// @ts-expect-error
|
|
26
|
-
gl = gl.gl || gl;
|
|
27
|
-
value = Number(value);
|
|
28
|
-
for (const key in gl) {
|
|
29
|
-
if (gl[key] === value) {
|
|
30
|
-
return `GL.${key}`;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return String(value);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export function getKeyType(gl: WebGLRenderingContext, value: any): string {
|
|
37
|
-
assert(value !== undefined, 'undefined key');
|
|
38
|
-
value = Number(value);
|
|
39
|
-
for (const key in gl) {
|
|
40
|
-
if (gl[key] === value) {
|
|
41
|
-
return `GL.${key}`;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return String(value);
|
|
45
|
-
}
|
|
@@ -1,29 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {assert, ResourceProps, TextureFormat} from '@luma.gl/core';
|
|
6
|
+
import {GL} from '@luma.gl/constants';
|
|
7
|
+
import {WebGLDevice} from '../webgl-device';
|
|
8
|
+
import {WebGLResource} from './webgl-resource';
|
|
9
|
+
import {isRenderbufferFormatSupported} from '../converters/texture-formats';
|
|
6
10
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
convertTextureFormatToGL,
|
|
12
|
+
getTextureFormatBytesPerPixel
|
|
13
|
+
} from '../converters/texture-formats';
|
|
9
14
|
|
|
10
15
|
export type RenderbufferProps = ResourceProps & {
|
|
11
|
-
format:
|
|
16
|
+
format: TextureFormat;
|
|
12
17
|
width?: number;
|
|
13
18
|
height?: number;
|
|
14
19
|
samples?: number;
|
|
15
20
|
};
|
|
16
21
|
|
|
17
|
-
const DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {
|
|
18
|
-
id: undefined,
|
|
19
|
-
handle: undefined,
|
|
20
|
-
userData: undefined,
|
|
21
|
-
format: 0,
|
|
22
|
-
width: 1,
|
|
23
|
-
height: 1,
|
|
24
|
-
samples: 0
|
|
25
|
-
};
|
|
26
|
-
|
|
27
22
|
/**
|
|
28
23
|
* Renderbuffers are GPU objects that contain images.
|
|
29
24
|
* In contrast to Textures they are optimized for use as render targets, with Framebuffers.
|
|
@@ -34,36 +29,66 @@ const DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {
|
|
|
34
29
|
* use Textures instead.
|
|
35
30
|
* Renderbuffer objects also natively accommodate Multisampling (MSAA).
|
|
36
31
|
*/
|
|
37
|
-
export
|
|
38
|
-
|
|
32
|
+
export class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {
|
|
33
|
+
static override readonly defaultProps: Required<RenderbufferProps> = {
|
|
34
|
+
id: undefined,
|
|
35
|
+
handle: undefined,
|
|
36
|
+
userData: undefined,
|
|
37
|
+
format: undefined, // 'depth16unorm'
|
|
38
|
+
width: 1,
|
|
39
|
+
height: 1,
|
|
40
|
+
samples: 0
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
override get [Symbol.toStringTag](): string {
|
|
44
|
+
return 'Renderbuffer';
|
|
45
|
+
}
|
|
39
46
|
|
|
40
|
-
get width(): number {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
get
|
|
47
|
+
get width(): number {
|
|
48
|
+
return this.props.width;
|
|
49
|
+
}
|
|
50
|
+
get height(): number {
|
|
51
|
+
return this.props.height;
|
|
52
|
+
}
|
|
53
|
+
get format(): TextureFormat {
|
|
54
|
+
return this.props.format;
|
|
55
|
+
}
|
|
56
|
+
get samples(): number {
|
|
57
|
+
return this.props.samples;
|
|
58
|
+
}
|
|
59
|
+
get attachment() {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** WebGL format constant */
|
|
64
|
+
glFormat: GL;
|
|
44
65
|
|
|
45
|
-
static
|
|
46
|
-
return
|
|
66
|
+
static isTextureFormatSupported(device: WebGLDevice, format: TextureFormat): boolean {
|
|
67
|
+
return isRenderbufferFormatSupported(device.gl, format, device._extensions);
|
|
47
68
|
}
|
|
48
69
|
|
|
49
70
|
constructor(device: WebGLDevice, props: RenderbufferProps) {
|
|
50
|
-
|
|
71
|
+
// TODO - remove temporary sanity check
|
|
72
|
+
if (typeof props.format === 'number') {
|
|
73
|
+
throw new Error('Renderbuffer');
|
|
74
|
+
}
|
|
75
|
+
super(device, props, WEBGLRenderbuffer.defaultProps);
|
|
76
|
+
this.glFormat = convertTextureFormatToGL(this.props.format);
|
|
51
77
|
this._initialize(this.props);
|
|
52
78
|
}
|
|
53
79
|
|
|
54
|
-
resize(size: {width: number
|
|
80
|
+
resize(size: {width: number; height: number}): void {
|
|
55
81
|
// Don't resize if width/height haven't changed
|
|
56
82
|
if (size.width !== this.width || size.height !== this.height) {
|
|
57
83
|
Object.assign(this.props, {...size, format: this.format, samples: this.samples});
|
|
58
84
|
this._initialize(this.props);
|
|
59
85
|
}
|
|
60
|
-
return this;
|
|
61
86
|
}
|
|
62
87
|
|
|
63
88
|
// PRIVATE METHODS
|
|
64
89
|
|
|
65
90
|
/** Creates and initializes a renderbuffer object's data store */
|
|
66
|
-
protected _initialize(props: Required<RenderbufferProps>) {
|
|
91
|
+
protected _initialize(props: Required<RenderbufferProps>): void {
|
|
67
92
|
const {format, width, height, samples} = props;
|
|
68
93
|
assert(format, 'Needs format');
|
|
69
94
|
|
|
@@ -71,34 +96,37 @@ export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps>
|
|
|
71
96
|
|
|
72
97
|
this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
|
|
73
98
|
|
|
74
|
-
if (samples !== 0
|
|
75
|
-
|
|
76
|
-
|
|
99
|
+
if (samples !== 0) {
|
|
100
|
+
this.gl.renderbufferStorageMultisample(
|
|
101
|
+
GL.RENDERBUFFER,
|
|
102
|
+
samples,
|
|
103
|
+
this.glFormat,
|
|
104
|
+
width,
|
|
105
|
+
height
|
|
106
|
+
);
|
|
77
107
|
} else {
|
|
78
|
-
this.gl.renderbufferStorage(GL.RENDERBUFFER,
|
|
108
|
+
this.gl.renderbufferStorage(GL.RENDERBUFFER, this.glFormat, width, height);
|
|
79
109
|
}
|
|
80
110
|
|
|
81
111
|
this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
|
|
82
112
|
|
|
83
113
|
this.trackAllocatedMemory(
|
|
84
|
-
width * height * (samples || 1) *
|
|
114
|
+
width * height * (samples || 1) * getTextureFormatBytesPerPixel(this.format)
|
|
85
115
|
);
|
|
86
|
-
|
|
87
|
-
return this;
|
|
88
116
|
}
|
|
89
117
|
|
|
90
118
|
// RESOURCE IMPLEMENTATION
|
|
91
119
|
|
|
92
|
-
_createHandle() {
|
|
120
|
+
override _createHandle() {
|
|
93
121
|
return this.gl.createRenderbuffer();
|
|
94
122
|
}
|
|
95
123
|
|
|
96
|
-
_deleteHandle(): void {
|
|
124
|
+
override _deleteHandle(): void {
|
|
97
125
|
this.gl.deleteRenderbuffer(this.handle);
|
|
98
126
|
this.trackDeallocatedMemory();
|
|
99
127
|
}
|
|
100
128
|
|
|
101
|
-
_bindHandle(handle: WEBGLRenderbuffer): void {
|
|
129
|
+
override _bindHandle(handle: WEBGLRenderbuffer): void {
|
|
102
130
|
this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
|
|
103
131
|
}
|
|
104
132
|
}
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
// luma.gl
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import GL from '@luma.gl/constants';
|
|
5
|
-
import {isWebGL2, assertWebGLContext} from '../../context/context/webgl-checks';
|
|
6
|
-
import WebGLDevice from '../webgl-device';
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
import {
|
|
5
|
+
import type {Device, ResourceProps} from '@luma.gl/core';
|
|
6
|
+
import {Resource, uid, stubRemovedMethods} from '@luma.gl/core';
|
|
7
|
+
import {GL} from '@luma.gl/constants';
|
|
8
|
+
import {WebGLDevice} from '../webgl-device';
|
|
10
9
|
|
|
11
10
|
const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* Base class for WebGL object wrappers
|
|
15
14
|
*/
|
|
16
|
-
|
|
17
|
-
id: string;
|
|
18
|
-
userData: any;
|
|
15
|
+
export abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {
|
|
19
16
|
readonly device: WebGLDevice;
|
|
20
|
-
readonly gl:
|
|
17
|
+
readonly gl: WebGL2RenderingContext;
|
|
21
18
|
readonly gl2: WebGL2RenderingContext;
|
|
22
19
|
private _handle: any;
|
|
23
20
|
|
|
@@ -28,18 +25,14 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
28
25
|
constructor(device: Device, props: Props, defaultProps: Required<Props>) {
|
|
29
26
|
super(device, props, defaultProps);
|
|
30
27
|
|
|
31
|
-
this.device = WebGLDevice
|
|
28
|
+
this.device = device as WebGLDevice;
|
|
32
29
|
const gl = this.device.gl;
|
|
33
30
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// extends
|
|
37
|
-
// @ts-expect-error
|
|
38
|
-
const {id, userData = {}} = props || {};
|
|
31
|
+
// extends
|
|
32
|
+
const {id} = props || {};
|
|
39
33
|
this.gl = gl;
|
|
40
|
-
this.gl2 = gl
|
|
34
|
+
this.gl2 = gl;
|
|
41
35
|
this.id = id || uid(this.constructor.name);
|
|
42
|
-
this.userData = userData;
|
|
43
36
|
|
|
44
37
|
// Set the handle
|
|
45
38
|
// If handle was provided, use it, otherwise create a new handle
|
|
@@ -48,7 +41,6 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
48
41
|
// this.glCount = glGetContextLossCount(this.gl);
|
|
49
42
|
|
|
50
43
|
// Default VertexArray needs to be created with null handle, so compare against undefined
|
|
51
|
-
// @ts-expect-error
|
|
52
44
|
this._handle = props?.handle;
|
|
53
45
|
if (this._handle === undefined) {
|
|
54
46
|
this._handle = this._createHandle();
|
|
@@ -57,7 +49,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
57
49
|
this.byteLength = 0;
|
|
58
50
|
}
|
|
59
51
|
|
|
60
|
-
toString(): string {
|
|
52
|
+
override toString(): string {
|
|
61
53
|
return `${this.constructor.name}(${this.id})`;
|
|
62
54
|
}
|
|
63
55
|
|
|
@@ -74,11 +66,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
74
66
|
return this._handle;
|
|
75
67
|
}
|
|
76
68
|
|
|
77
|
-
|
|
78
|
-
this.delete();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
delete({deleteChildren = false} = {}) {
|
|
69
|
+
override delete({deleteChildren = false} = {}) {
|
|
82
70
|
// Delete this object, and get refs to any children
|
|
83
71
|
// @ts-expect-error
|
|
84
72
|
const children = this._handle && this._deleteHandle(this._handle);
|
|
@@ -91,7 +79,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
91
79
|
// @ts-expect-error
|
|
92
80
|
if (children && deleteChildren) {
|
|
93
81
|
// @ts-expect-error
|
|
94
|
-
children.filter(Boolean).forEach(
|
|
82
|
+
children.filter(Boolean).forEach(child => child.destroy());
|
|
95
83
|
}
|
|
96
84
|
|
|
97
85
|
return this;
|
|
@@ -124,134 +112,6 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
124
112
|
this.bind(null);
|
|
125
113
|
}
|
|
126
114
|
|
|
127
|
-
/**
|
|
128
|
-
* Query a Resource parameter
|
|
129
|
-
*
|
|
130
|
-
* @param name
|
|
131
|
-
* @return param
|
|
132
|
-
*/
|
|
133
|
-
getParameter(pname: number, props = {}): any {
|
|
134
|
-
pname = getKeyValue(this.gl, pname);
|
|
135
|
-
assert(pname);
|
|
136
|
-
|
|
137
|
-
// @ts-expect-error
|
|
138
|
-
const parameters = this.constructor.PARAMETERS || {};
|
|
139
|
-
|
|
140
|
-
// Use parameter definitions to handle unsupported parameters
|
|
141
|
-
const parameter = parameters[pname];
|
|
142
|
-
if (parameter) {
|
|
143
|
-
const isWebgl2 = isWebGL2(this.gl);
|
|
144
|
-
|
|
145
|
-
// Check if we can query for this parameter
|
|
146
|
-
const parameterAvailable =
|
|
147
|
-
(!('webgl2' in parameter) || isWebgl2) &&
|
|
148
|
-
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
149
|
-
|
|
150
|
-
if (!parameterAvailable) {
|
|
151
|
-
const webgl1Default = parameter.webgl1;
|
|
152
|
-
const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;
|
|
153
|
-
const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;
|
|
154
|
-
return defaultValue;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// If unknown parameter - Could be a valid parameter not covered by PARAMS
|
|
159
|
-
// Attempt to query for it and let WebGL report errors
|
|
160
|
-
return this._getParameter(pname, props);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Many resources support a getParameter call -
|
|
164
|
-
// getParameters will get all parameters - slow but useful for debugging
|
|
165
|
-
// eslint-disable-next-line complexity
|
|
166
|
-
getParameters(options: {parameters?, keys?} = {}) {
|
|
167
|
-
const {parameters, keys} = options;
|
|
168
|
-
|
|
169
|
-
// Get parameter definitions for this Resource
|
|
170
|
-
// @ts-expect-error
|
|
171
|
-
const PARAMETERS = this.constructor.PARAMETERS || {};
|
|
172
|
-
|
|
173
|
-
const isWebgl2 = isWebGL2(this.gl);
|
|
174
|
-
|
|
175
|
-
const values: Record<string, any> = {};
|
|
176
|
-
|
|
177
|
-
// Query all parameters if no list provided
|
|
178
|
-
const parameterKeys = parameters || Object.keys(PARAMETERS);
|
|
179
|
-
|
|
180
|
-
// WEBGL limits
|
|
181
|
-
for (const pname of parameterKeys) {
|
|
182
|
-
const parameter = PARAMETERS[pname];
|
|
183
|
-
|
|
184
|
-
// Check if this parameter is available on this platform
|
|
185
|
-
const parameterAvailable =
|
|
186
|
-
parameter &&
|
|
187
|
-
(!('webgl2' in parameter) || isWebgl2) &&
|
|
188
|
-
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
189
|
-
|
|
190
|
-
if (parameterAvailable) {
|
|
191
|
-
const key = keys ? getKey(this.gl, pname) : pname;
|
|
192
|
-
values[key] = this.getParameter(pname, options);
|
|
193
|
-
if (keys && parameter.type === 'GLenum') {
|
|
194
|
-
values[key] = getKey(this.gl, values[key]);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
return values;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Update a Resource setting
|
|
204
|
-
*
|
|
205
|
-
* @todo - cache parameter to avoid issuing WebGL calls?
|
|
206
|
-
*
|
|
207
|
-
* @param pname - parameter (GL constant, value or key)
|
|
208
|
-
* @param value {GLint|GLfloat|GLenum}
|
|
209
|
-
* @return returns self to enable chaining
|
|
210
|
-
*/
|
|
211
|
-
setParameter(pname: GL | string, value: any): this {
|
|
212
|
-
pname = getKeyValue(this.gl, pname);
|
|
213
|
-
assert(pname);
|
|
214
|
-
|
|
215
|
-
// @ts-expect-error
|
|
216
|
-
const parameters = this.constructor.PARAMETERS || {};
|
|
217
|
-
|
|
218
|
-
const parameter = parameters[pname];
|
|
219
|
-
if (parameter) {
|
|
220
|
-
const isWebgl2 = isWebGL2(this.gl);
|
|
221
|
-
|
|
222
|
-
// Check if this parameter is available on this platform
|
|
223
|
-
const parameterAvailable =
|
|
224
|
-
(!('webgl2' in parameter) || isWebgl2) &&
|
|
225
|
-
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
226
|
-
|
|
227
|
-
if (!parameterAvailable) {
|
|
228
|
-
throw new Error('Parameter not available on this platform');
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// Handle string keys
|
|
232
|
-
if (parameter.type === 'GLenum') {
|
|
233
|
-
// @ts-expect-error
|
|
234
|
-
value = getKeyValue(value);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
// If unknown parameter - Could be a valid parameter not covered by PARAMS
|
|
239
|
-
// attempt to set it and let WebGL report errors
|
|
240
|
-
this._setParameter(pname, value);
|
|
241
|
-
return this;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
/*
|
|
245
|
-
* Batch update resource parameters
|
|
246
|
-
* Assumes the subclass supports a setParameter call
|
|
247
|
-
*/
|
|
248
|
-
setParameters(parameters: Record<GL, any>) {
|
|
249
|
-
for (const pname in parameters) {
|
|
250
|
-
this.setParameter(pname, parameters[pname]);
|
|
251
|
-
}
|
|
252
|
-
return this;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
115
|
// Install stubs for removed methods
|
|
256
116
|
stubRemovedMethods(className: string, version: string, methodNames: string[]) {
|
|
257
117
|
return stubRemovedMethods(this, className, version, methodNames);
|