@luma.gl/webgl 9.0.0-alpha.3 → 9.0.0-alpha.31
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 +2 -1
- package/dist/adapter/converters/device-parameters.d.ts +14 -4
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +28 -46
- 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 +48 -16
- 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 +13 -20
- 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.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 +58 -113
- 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 +2 -2
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +3 -33
- 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 +1 -28
- 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 +35 -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 +19 -75
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +39 -11
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +122 -32
- package/dist/adapter/objects/webgl-vertex-array-object.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 +43 -71
- 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 -41
- 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 +9 -18
- 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 +41 -149
- 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 +88 -9
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +52 -14
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +119 -182
- 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 +7 -15
- 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 +9 -22
- 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 +98 -213
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- 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 +8 -20
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +64 -41
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +133 -113
- 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 +14 -38
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -28
- package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
- package/dist/classic/{buffer.js → buffer-with-accessor.js} +54 -122
- 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 +202 -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/{esm/context/context/create-context.js → context/context/create-browser-context.js} +23 -19
- 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.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 +11 -34
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +8 -7
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +8 -18
- 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.js +21 -29
- 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.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 +16 -51
- 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 +7 -9
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/dist.dev.js +10245 -0
- package/dist/index.cjs +6550 -0
- package/dist/index.d.ts +25 -22
- 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 +88 -35
- package/src/adapter/converters/sampler-parameters.ts +19 -9
- package/src/adapter/converters/shader-formats.ts +41 -0
- package/src/adapter/converters/texture-formats.ts +264 -194
- package/src/adapter/converters/vertex-formats.ts +68 -10
- package/src/adapter/device-helpers/device-features.ts +10 -3
- package/src/adapter/device-helpers/device-limits.ts +3 -3
- package/src/adapter/device-helpers/get-device-info.ts +14 -10
- package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +36 -21
- package/src/adapter/helpers/get-shader-info.ts +40 -0
- package/src/adapter/helpers/get-shader-layout.ts +120 -146
- package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
- package/src/adapter/helpers/set-uniform.ts +7 -6
- package/src/adapter/helpers/{attribute-utils.ts → webgl-topology-utils.ts} +4 -5
- package/src/adapter/objects/constants-to-keys.ts +3 -25
- package/src/adapter/objects/webgl-renderbuffer.ts +40 -37
- package/src/adapter/objects/webgl-resource.ts +14 -23
- package/src/adapter/objects/webgl-vertex-array-object.ts +202 -37
- package/src/adapter/resources/webgl-buffer.ts +56 -58
- package/src/adapter/resources/webgl-command-buffer.ts +332 -25
- package/src/adapter/resources/webgl-command-encoder.ts +17 -12
- package/src/adapter/resources/webgl-external-texture.ts +2 -2
- package/src/adapter/resources/webgl-framebuffer.ts +88 -133
- package/src/adapter/resources/webgl-render-pass.ts +155 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +232 -131
- package/src/adapter/resources/webgl-sampler.ts +13 -8
- package/src/adapter/resources/webgl-shader.ts +11 -10
- package/src/adapter/resources/webgl-texture.ts +113 -85
- package/src/adapter/webgl-canvas-context.ts +14 -14
- package/src/adapter/webgl-device.ts +192 -77
- package/src/classic/accessor.ts +4 -17
- package/src/classic/{buffer.ts → buffer-with-accessor.ts} +67 -75
- package/src/classic/clear.ts +110 -0
- package/src/classic/copy-and-blit.ts +308 -0
- package/src/classic/format-utils.ts +43 -0
- package/src/classic/typed-array-utils.ts +18 -27
- package/src/context/context/{create-context.ts → create-browser-context.ts} +48 -31
- package/src/context/context/create-headless-context.ts +48 -0
- package/src/context/context/webgl-checks.ts +1 -1
- package/src/context/debug/spector.ts +7 -6
- package/src/context/debug/webgl-developer-tools.ts +21 -15
- package/src/context/parameters/unified-parameter-api.ts +20 -14
- package/src/context/parameters/webgl-parameter-tables.ts +117 -98
- package/src/context/polyfill/context-data.ts +27 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +8 -7
- package/src/context/polyfill/polyfill-context.ts +7 -9
- package/src/context/polyfill/polyfill-table.ts +18 -16
- package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +14 -13
- package/src/context/state-tracker/with-parameters.ts +8 -2
- package/src/index.ts +42 -33
- package/src/types.ts +2 -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/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.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/bundle.ts +0 -4
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/device-pixels.ts +0 -152
- package/src/init.ts +0 -4
- package/src/types/webgl.ts +0 -283
|
@@ -1,48 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import type {
|
|
2
4
|
ShaderLayout,
|
|
3
|
-
BindingLayout,
|
|
4
5
|
UniformBinding,
|
|
5
6
|
UniformBlockBinding,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} from '@luma.gl/api';
|
|
12
|
-
import GL from '@luma.gl/constants';
|
|
7
|
+
AttributeDeclaration,
|
|
8
|
+
VaryingBinding
|
|
9
|
+
} from '@luma.gl/core';
|
|
10
|
+
|
|
11
|
+
import {GL} from '@luma.gl/constants';
|
|
13
12
|
import {isWebGL2} from '../../context/context/webgl-checks';
|
|
14
|
-
import Accessor from '../../classic/accessor'; // TODO - should NOT depend on classic API
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
import {isSamplerUniform} from './uniforms';
|
|
13
|
+
import {Accessor} from '../../classic/accessor'; // TODO - should NOT depend on classic API
|
|
14
|
+
import {decodeGLUniformType, decodeGLAttributeType, isSamplerUniform} from './decode-webgl-types';
|
|
15
|
+
|
|
18
16
|
/**
|
|
19
17
|
* Extract metadata describing binding information for a program's shaders
|
|
20
18
|
* Note: `linkProgram()` needs to have been called
|
|
21
19
|
* (although linking does not need to have been successful).
|
|
22
20
|
*/
|
|
23
21
|
export function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram): ShaderLayout {
|
|
24
|
-
const programBindings = getProgramBindings(gl, program);
|
|
25
|
-
|
|
26
22
|
const shaderLayout: ShaderLayout = {
|
|
27
23
|
attributes: [],
|
|
28
24
|
bindings: []
|
|
29
25
|
};
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
const format =
|
|
33
|
-
// attribute.accessor.format ||
|
|
34
|
-
getVertexFormat(attribute.accessor.type || GL.FLOAT, attribute.accessor.size);
|
|
35
|
-
shaderLayout.attributes.push({
|
|
36
|
-
name: attribute.name,
|
|
37
|
-
location: attribute.location,
|
|
38
|
-
format,
|
|
39
|
-
stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'
|
|
40
|
-
});
|
|
41
|
-
}
|
|
27
|
+
shaderLayout.attributes = readAttributeDeclarations(gl, program);
|
|
42
28
|
|
|
43
29
|
// Uniform blocks
|
|
44
|
-
|
|
45
|
-
|
|
30
|
+
const uniformBlocks: UniformBlockBinding[] = readUniformBlocks(gl, program);
|
|
31
|
+
for (const uniformBlock of uniformBlocks) {
|
|
32
|
+
const uniforms = uniformBlock.uniforms.map(uniform => ({
|
|
46
33
|
name: uniform.name,
|
|
47
34
|
format: uniform.format,
|
|
48
35
|
byteOffset: uniform.byteOffset,
|
|
@@ -59,8 +46,9 @@ export function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram
|
|
|
59
46
|
});
|
|
60
47
|
}
|
|
61
48
|
|
|
49
|
+
const uniforms: UniformBinding[] = readUniformBindings(gl, program);
|
|
62
50
|
let textureUnit = 0;
|
|
63
|
-
for (const uniform of
|
|
51
|
+
for (const uniform of uniforms) {
|
|
64
52
|
if (isSamplerUniform(uniform.type)) {
|
|
65
53
|
const {viewDimension, sampleType} = getSamplerInfo(uniform.type);
|
|
66
54
|
shaderLayout.bindings.push({
|
|
@@ -77,69 +65,64 @@ export function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram
|
|
|
77
65
|
}
|
|
78
66
|
}
|
|
79
67
|
|
|
80
|
-
const uniforms = programBindings.uniforms?.filter((uniform) => uniform.location !== null) || [];
|
|
81
68
|
if (uniforms.length) {
|
|
82
69
|
shaderLayout.uniforms = uniforms;
|
|
83
70
|
}
|
|
84
|
-
|
|
85
|
-
|
|
71
|
+
|
|
72
|
+
// Varyings
|
|
73
|
+
const varyings: VaryingBinding[] = readVaryings(gl, program);
|
|
74
|
+
// Note - samplers are always in unform bindings, even if uniform blocks are used
|
|
75
|
+
if (varyings?.length) {
|
|
76
|
+
shaderLayout.varyings = varyings;
|
|
86
77
|
}
|
|
87
78
|
|
|
88
79
|
return shaderLayout;
|
|
89
80
|
}
|
|
90
81
|
|
|
91
|
-
|
|
92
|
-
* Extract metadata describing binding information for a program's shaders
|
|
93
|
-
* Note: `linkProgram()` needs to have been called
|
|
94
|
-
* (although linking does not need to have been successful).
|
|
95
|
-
*/
|
|
96
|
-
export function getProgramBindings(
|
|
97
|
-
gl: WebGLRenderingContext,
|
|
98
|
-
program: WebGLProgram
|
|
99
|
-
): ProgramBindings {
|
|
100
|
-
const config: ProgramBindings = {
|
|
101
|
-
attributes: readAttributeBindings(gl, program),
|
|
102
|
-
uniforms: readUniformBindings(gl, program),
|
|
103
|
-
uniformBlocks: readUniformBlocks(gl, program),
|
|
104
|
-
varyings: readVaryings(gl, program)
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
Object.seal(config);
|
|
108
|
-
return config;
|
|
109
|
-
// generateWebGPUStyleBindings(bindings);
|
|
110
|
-
}
|
|
82
|
+
// HELPERS
|
|
111
83
|
|
|
112
84
|
/**
|
|
113
85
|
* Extract info about all transform feedback varyings
|
|
114
86
|
*
|
|
115
87
|
* linkProgram needs to have been called, although linking does not need to have been successful
|
|
116
88
|
*/
|
|
117
|
-
function
|
|
89
|
+
function readAttributeDeclarations(
|
|
118
90
|
gl: WebGLRenderingContext,
|
|
119
91
|
program: WebGLProgram
|
|
120
|
-
):
|
|
121
|
-
const attributes:
|
|
92
|
+
): AttributeDeclaration[] {
|
|
93
|
+
const attributes: AttributeDeclaration[] = [];
|
|
122
94
|
|
|
123
95
|
const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
|
|
124
96
|
|
|
125
97
|
for (let index = 0; index < count; index++) {
|
|
126
|
-
const
|
|
98
|
+
const activeInfo = gl.getActiveAttrib(program, index);
|
|
99
|
+
if (!activeInfo) {
|
|
100
|
+
throw new Error('activeInfo');
|
|
101
|
+
}
|
|
102
|
+
const {name, type: compositeType /* , size*/} = activeInfo;
|
|
127
103
|
const location = gl.getAttribLocation(program, name);
|
|
128
|
-
// Add only user provided attributes, for built-in attributes like
|
|
129
|
-
// `gl_InstanceID` locaiton will be < 0
|
|
104
|
+
// Add only user provided attributes, for built-in attributes like `gl_InstanceID` location will be < 0
|
|
130
105
|
if (location >= 0) {
|
|
131
|
-
const {
|
|
132
|
-
|
|
133
|
-
//
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const
|
|
138
|
-
|
|
106
|
+
const {attributeType} = decodeGLAttributeType(compositeType);
|
|
107
|
+
|
|
108
|
+
// Whether an attribute is instanced is essentially fixed by the structure of the shader code,
|
|
109
|
+
// so it is arguably a static property of the shader.
|
|
110
|
+
// There is no hint in the shader declarations
|
|
111
|
+
// Heuristic: Any attribute name containing the word "instance" will be assumed to be instanced
|
|
112
|
+
const stepMode = /instance/i.test(name) ? 'instance' : 'vertex';
|
|
113
|
+
|
|
114
|
+
attributes.push({
|
|
115
|
+
name,
|
|
116
|
+
location,
|
|
117
|
+
stepMode,
|
|
118
|
+
type: attributeType,
|
|
119
|
+
// size - for arrays, size is the number of elements in the array
|
|
120
|
+
});
|
|
139
121
|
}
|
|
140
122
|
}
|
|
141
123
|
|
|
142
|
-
|
|
124
|
+
// Sort by declaration order
|
|
125
|
+
attributes.sort((a: AttributeDeclaration, b: AttributeDeclaration) => a.location - b.location);
|
|
143
126
|
return attributes;
|
|
144
127
|
}
|
|
145
128
|
|
|
@@ -158,8 +141,12 @@ function readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): Varying
|
|
|
158
141
|
|
|
159
142
|
const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);
|
|
160
143
|
for (let location = 0; location < count; location++) {
|
|
161
|
-
const
|
|
162
|
-
|
|
144
|
+
const activeInfo = gl2.getTransformFeedbackVarying(program, location);
|
|
145
|
+
if (!activeInfo) {
|
|
146
|
+
throw new Error('activeInfo');
|
|
147
|
+
}
|
|
148
|
+
const {name, type: compositeType, size} = activeInfo;
|
|
149
|
+
const {glType, components} = decodeGLUniformType(compositeType);
|
|
163
150
|
const accessor = new Accessor({type: glType, size: size * components});
|
|
164
151
|
const varying = {location, name, accessor}; // Base values
|
|
165
152
|
varyings.push(varying);
|
|
@@ -179,7 +166,11 @@ function readUniformBindings(gl: WebGLRenderingContext, program: WebGLProgram):
|
|
|
179
166
|
|
|
180
167
|
const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);
|
|
181
168
|
for (let i = 0; i < uniformCount; i++) {
|
|
182
|
-
const
|
|
169
|
+
const activeInfo = gl.getActiveUniform(program, i);
|
|
170
|
+
if (!activeInfo) {
|
|
171
|
+
throw new Error('activeInfo');
|
|
172
|
+
}
|
|
173
|
+
const {name: rawName, size, type} = activeInfo;
|
|
183
174
|
const {name, isArray} = parseUniformName(rawName);
|
|
184
175
|
let webglLocation = gl.getUniformLocation(program, name);
|
|
185
176
|
const uniformInfo = {
|
|
@@ -214,9 +205,7 @@ function readUniformBindings(gl: WebGLRenderingContext, program: WebGLProgram):
|
|
|
214
205
|
|
|
215
206
|
/**
|
|
216
207
|
* Extract info about all "active" uniform blocks
|
|
217
|
-
*
|
|
218
|
-
* ("Active" just means that unused (aka inactive) blocks may have been
|
|
219
|
-
* optimized away during linking)
|
|
208
|
+
* @note In WebGL, "active" just means that unused (inactive) blocks may have been optimized away during linking)
|
|
220
209
|
*/
|
|
221
210
|
function readUniformBlocks(
|
|
222
211
|
gl: WebGLRenderingContext,
|
|
@@ -234,8 +223,8 @@ function readUniformBlocks(
|
|
|
234
223
|
|
|
235
224
|
const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);
|
|
236
225
|
for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {
|
|
237
|
-
const blockInfo = {
|
|
238
|
-
name: gl2.getActiveUniformBlockName(program, blockIndex),
|
|
226
|
+
const blockInfo: UniformBlockBinding = {
|
|
227
|
+
name: gl2.getActiveUniformBlockName(program, blockIndex) || '',
|
|
239
228
|
location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),
|
|
240
229
|
byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),
|
|
241
230
|
vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
|
|
@@ -244,33 +233,39 @@ function readUniformBlocks(
|
|
|
244
233
|
uniforms: [] as any[]
|
|
245
234
|
};
|
|
246
235
|
|
|
247
|
-
const uniformIndices =
|
|
236
|
+
const uniformIndices =
|
|
237
|
+
(getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) as number[]) || [];
|
|
248
238
|
|
|
249
239
|
const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.
|
|
250
240
|
const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.
|
|
251
|
-
const uniformBlockIndex = gl2.getActiveUniforms(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
); // Array of GLint indicating the block indices of the uniforms.
|
|
241
|
+
// const uniformBlockIndex = gl2.getActiveUniforms(
|
|
242
|
+
// program,
|
|
243
|
+
// uniformIndices,
|
|
244
|
+
// GL.UNIFORM_BLOCK_INDEX
|
|
245
|
+
// ); // Array of GLint indicating the block indices of the uniforms.
|
|
256
246
|
const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.
|
|
257
247
|
const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.
|
|
258
|
-
const uniformMatrixStride = gl2.getActiveUniforms(
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.
|
|
263
|
-
const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);
|
|
248
|
+
// const uniformMatrixStride = gl2.getActiveUniforms(
|
|
249
|
+
// program,
|
|
250
|
+
// uniformIndices,
|
|
251
|
+
// GL.UNIFORM_MATRIX_STRIDE
|
|
252
|
+
// ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.
|
|
253
|
+
// const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);
|
|
264
254
|
for (let i = 0; i < blockInfo.uniformCount; ++i) {
|
|
255
|
+
const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);
|
|
256
|
+
if (!activeInfo) {
|
|
257
|
+
throw new Error('activeInfo');
|
|
258
|
+
}
|
|
259
|
+
|
|
265
260
|
blockInfo.uniforms.push({
|
|
266
|
-
name:
|
|
267
|
-
format:
|
|
261
|
+
name: activeInfo.name,
|
|
262
|
+
format: decodeGLUniformType(uniformType[i]).format,
|
|
268
263
|
type: uniformType[i],
|
|
269
264
|
arrayLength: uniformArrayLength[i],
|
|
270
265
|
byteOffset: uniformOffset[i],
|
|
271
|
-
byteStride: uniformStride[i]
|
|
272
|
-
matrixStride: uniformStride[i],
|
|
273
|
-
rowMajor: uniformRowMajor[i]
|
|
266
|
+
byteStride: uniformStride[i]
|
|
267
|
+
// matrixStride: uniformStride[i],
|
|
268
|
+
// rowMajor: uniformRowMajor[i]
|
|
274
269
|
});
|
|
275
270
|
}
|
|
276
271
|
|
|
@@ -281,6 +276,27 @@ function readUniformBlocks(
|
|
|
281
276
|
return uniformBlocks;
|
|
282
277
|
}
|
|
283
278
|
|
|
279
|
+
/**
|
|
280
|
+
* TOOD - compare with a above, confirm copy, then delete
|
|
281
|
+
const bindings: Binding[] = [];
|
|
282
|
+
const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);
|
|
283
|
+
for (let blockIndex = 0; blockIndex < count; blockIndex++) {
|
|
284
|
+
const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
|
|
285
|
+
const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
|
|
286
|
+
const visibility = (vertex) + (fragment);
|
|
287
|
+
const binding: BufferBinding = {
|
|
288
|
+
location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),
|
|
289
|
+
// name: gl.getActiveUniformBlockName(program, blockIndex),
|
|
290
|
+
type: 'uniform',
|
|
291
|
+
visibility,
|
|
292
|
+
minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),
|
|
293
|
+
// uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
|
|
294
|
+
// uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),
|
|
295
|
+
}
|
|
296
|
+
bindings.push(binding);
|
|
297
|
+
}
|
|
298
|
+
*/
|
|
299
|
+
|
|
284
300
|
const SAMPLER_UNIFORMS_GL_TO_GPU: Record<
|
|
285
301
|
number,
|
|
286
302
|
[
|
|
@@ -305,18 +321,18 @@ const SAMPLER_UNIFORMS_GL_TO_GPU: Record<
|
|
|
305
321
|
[GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']
|
|
306
322
|
};
|
|
307
323
|
|
|
308
|
-
|
|
309
|
-
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
if (sampler) {
|
|
316
|
-
|
|
317
|
-
return {viewDimension, sampleType};
|
|
324
|
+
type SamplerInfo = {
|
|
325
|
+
viewDimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';
|
|
326
|
+
sampleType: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint';
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
function getSamplerInfo(type: GL): SamplerInfo {
|
|
330
|
+
const sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
|
|
331
|
+
if (!sampler) {
|
|
332
|
+
throw new Error('sampler');
|
|
318
333
|
}
|
|
319
|
-
|
|
334
|
+
const [viewDimension, sampleType] = sampler;
|
|
335
|
+
return {viewDimension, sampleType};
|
|
320
336
|
}
|
|
321
337
|
|
|
322
338
|
// HELPERS
|
|
@@ -333,7 +349,7 @@ function parseUniformName(name: string): {name: string; length: number; isArray:
|
|
|
333
349
|
|
|
334
350
|
// if array name then clean the array brackets
|
|
335
351
|
const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
|
|
336
|
-
const matches =
|
|
352
|
+
const matches = UNIFORM_NAME_REGEXP.exec(name);
|
|
337
353
|
if (!matches || matches.length < 2) {
|
|
338
354
|
throw new Error(`Failed to parse GLSL uniform name ${name}`);
|
|
339
355
|
}
|
|
@@ -344,45 +360,3 @@ function parseUniformName(name: string): {name: string; length: number; isArray:
|
|
|
344
360
|
isArray: Boolean(matches[2])
|
|
345
361
|
};
|
|
346
362
|
}
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* TODO - verify this is a copy of above and delete
|
|
350
|
-
* import type {TextureFormat} from '@luma.gl/api';
|
|
351
|
-
* Extract info about all "active" uniform blocks
|
|
352
|
-
* ("Active" just means that unused (inactive) blocks may have been optimized away during linking)
|
|
353
|
-
*
|
|
354
|
-
function getUniformBlockBindings(gl, program): Binding[] {
|
|
355
|
-
if (!isWebGL2(gl)) {
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
const bindings: Binding[] = [];
|
|
359
|
-
const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);
|
|
360
|
-
for (let blockIndex = 0; blockIndex < count; blockIndex++) {
|
|
361
|
-
const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
|
|
362
|
-
const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
|
|
363
|
-
const visibility = (vertex) + (fragment);
|
|
364
|
-
const binding: BufferBinding = {
|
|
365
|
-
location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),
|
|
366
|
-
// name: gl.getActiveUniformBlockName(program, blockIndex),
|
|
367
|
-
type: 'uniform',
|
|
368
|
-
visibility,
|
|
369
|
-
minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),
|
|
370
|
-
// uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
|
|
371
|
-
// uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),
|
|
372
|
-
}
|
|
373
|
-
bindings.push(binding);
|
|
374
|
-
}
|
|
375
|
-
return bindings;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
function setBindings(gl2: WebGL2RenderingContext, program: WebGLProgram, bindings: Binding[][]): void {
|
|
379
|
-
for (const bindGroup of bindings) {
|
|
380
|
-
for (const binding of bindGroup) {
|
|
381
|
-
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
// Set up indirection table
|
|
386
|
-
// this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);
|
|
387
|
-
}
|
|
388
|
-
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
|
-
import type {CompilerMessage} from '@luma.gl/
|
|
2
|
+
import type {CompilerMessage} from '@luma.gl/core';
|
|
3
3
|
|
|
4
4
|
const MESSAGE_TYPES = ['warning', 'error', 'info'];
|
|
5
5
|
|
|
@@ -16,7 +16,7 @@ export function parseShaderCompilerLog(errLog: string) : readonly CompilerMessag
|
|
|
16
16
|
|
|
17
17
|
for (const line of lines) {
|
|
18
18
|
if (line.length <= 1) {
|
|
19
|
-
continue;
|
|
19
|
+
continue; // eslint-disable-line no-continue
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
const segments: string[] = line.split(':');
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
|
|
1
3
|
// Uniforms
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
4
|
+
import {GL} from '@luma.gl/constants';
|
|
3
5
|
|
|
4
6
|
/** Set a raw uniform (without type conversion and caching) */
|
|
5
7
|
/* eslint-disable max-len */
|
|
@@ -7,7 +9,7 @@ export function setUniform(
|
|
|
7
9
|
gl: WebGLRenderingContext,
|
|
8
10
|
location: WebGLUniformLocation,
|
|
9
11
|
type: GL,
|
|
10
|
-
value: number | Float32Array | Int32Array | Uint32Array
|
|
12
|
+
value: number | Float32Array | Int32Array | Uint32Array | boolean
|
|
11
13
|
): void {
|
|
12
14
|
const gl2 = gl as WebGL2RenderingContext;
|
|
13
15
|
|
|
@@ -35,13 +37,12 @@ export function setUniform(
|
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
|
|
38
|
-
// @ts-expect-error
|
|
39
40
|
if (value === true) {
|
|
40
41
|
value = 1;
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
+
|
|
43
44
|
if (value === false) {
|
|
44
|
-
value =
|
|
45
|
+
value = 0;
|
|
45
46
|
}
|
|
46
47
|
const arrayValue = (typeof value === 'number') ? [value] : value;
|
|
47
48
|
|
|
@@ -60,7 +61,7 @@ export function setUniform(
|
|
|
60
61
|
case GL.BOOL: return gl.uniform1iv(location, arrayValue);
|
|
61
62
|
case GL.BOOL_VEC2: return gl.uniform2iv(location, arrayValue);
|
|
62
63
|
case GL.BOOL_VEC3: return gl.uniform3iv(location, arrayValue);
|
|
63
|
-
case GL.BOOL_VEC4: gl.uniform4iv(location, arrayValue);
|
|
64
|
+
case GL.BOOL_VEC4: return gl.uniform4iv(location, arrayValue);
|
|
64
65
|
|
|
65
66
|
// WEBGL2 - unsigned integers
|
|
66
67
|
case GL.UNSIGNED_INT: return gl2.uniform1uiv(location, arrayValue, 1);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import GL from '@luma.gl/constants';
|
|
2
|
-
import {GLDrawMode, GLPrimitive} from '../../types/webgl';
|
|
1
|
+
import {GL, GLPrimitiveTopology, GLPrimitive} from '@luma.gl/constants';
|
|
3
2
|
|
|
4
3
|
// Counts the number of complete primitives given a number of vertices and a drawMode
|
|
5
|
-
export function getPrimitiveDrawMode(drawMode:
|
|
4
|
+
export function getPrimitiveDrawMode(drawMode: GLPrimitiveTopology): GLPrimitive {
|
|
6
5
|
switch (drawMode) {
|
|
7
6
|
case GL.POINTS:
|
|
8
7
|
return GL.POINTS;
|
|
@@ -24,7 +23,7 @@ export function getPrimitiveDrawMode(drawMode: GLDrawMode): GLPrimitive {
|
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
// Counts the number of complete "primitives" given a number of vertices and a drawMode
|
|
27
|
-
export function getPrimitiveCount(options: {drawMode:
|
|
26
|
+
export function getPrimitiveCount(options: {drawMode: GLPrimitiveTopology, vertexCount: number}): number {
|
|
28
27
|
const {drawMode, vertexCount} = options;
|
|
29
28
|
switch (drawMode) {
|
|
30
29
|
case GL.POINTS:
|
|
@@ -45,7 +44,7 @@ export function getPrimitiveCount(options: {drawMode: GLDrawMode, vertexCount: n
|
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
// Counts the number of vertices after splitting the vertex stream into separate "primitives"
|
|
48
|
-
export function getVertexCount(options: {drawMode:
|
|
47
|
+
export function getVertexCount(options: {drawMode: GLPrimitiveTopology, vertexCount: number}): number {
|
|
49
48
|
const {drawMode, vertexCount} = options;
|
|
50
49
|
const primitiveCount = getPrimitiveCount({drawMode, vertexCount});
|
|
51
50
|
switch (getPrimitiveDrawMode(drawMode)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {assert} from '@luma.gl/
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
1
|
+
import {assert} from '@luma.gl/core';
|
|
2
|
+
import {GL} from '@luma.gl/constants';
|
|
3
3
|
|
|
4
4
|
// Resolve a WebGL enumeration name (returns itself if already a number)
|
|
5
5
|
export function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL {
|
|
@@ -16,30 +16,8 @@ export function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL {
|
|
|
16
16
|
|
|
17
17
|
// Look up string, after removing any 'GL.' or 'gl.' prefix
|
|
18
18
|
name = name.replace(/^.*\./, '');
|
|
19
|
+
// @ts-ignore expect-error depends on settings
|
|
19
20
|
const value = gl[name];
|
|
20
21
|
assert(value !== undefined, `Accessing undefined constant GL.${name}`);
|
|
21
22
|
return value;
|
|
22
23
|
}
|
|
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,17 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel
|
|
8
|
-
} from '../converters/renderbuffer-formats';
|
|
1
|
+
import {assert, ResourceProps, TextureFormat} from '@luma.gl/core';
|
|
2
|
+
import {GL} from '@luma.gl/constants';
|
|
3
|
+
import {WebGLDevice} from '../webgl-device';
|
|
4
|
+
import {WebGLResource} from './webgl-resource';
|
|
5
|
+
import {isRenderbufferFormatSupported} from '../converters/texture-formats';
|
|
6
|
+
import {convertTextureFormatToGL, getTextureFormatBytesPerPixel} from '../converters/texture-formats';
|
|
9
7
|
|
|
10
8
|
export type RenderbufferProps = ResourceProps & {
|
|
11
|
-
format:
|
|
9
|
+
format: TextureFormat;
|
|
12
10
|
width?: number;
|
|
13
11
|
height?: number;
|
|
14
12
|
samples?: number;
|
|
15
13
|
};
|
|
16
14
|
|
|
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
15
|
/**
|
|
28
16
|
* Renderbuffers are GPU objects that contain images.
|
|
29
17
|
* In contrast to Textures they are optimized for use as render targets, with Framebuffers.
|
|
@@ -34,36 +22,54 @@ const DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {
|
|
|
34
22
|
* use Textures instead.
|
|
35
23
|
* Renderbuffer objects also natively accommodate Multisampling (MSAA).
|
|
36
24
|
*/
|
|
37
|
-
export
|
|
38
|
-
|
|
25
|
+
export class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {
|
|
26
|
+
static override readonly defaultProps: Required<RenderbufferProps> = {
|
|
27
|
+
id: undefined,
|
|
28
|
+
handle: undefined,
|
|
29
|
+
userData: undefined,
|
|
30
|
+
format: undefined, // 'depth16unorm'
|
|
31
|
+
width: 1,
|
|
32
|
+
height: 1,
|
|
33
|
+
samples: 0
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
override get [Symbol.toStringTag](): string { return 'Renderbuffer'; }
|
|
39
37
|
|
|
40
38
|
get width(): number { return this.props.width; }
|
|
41
39
|
get height(): number { return this.props.height; }
|
|
42
|
-
get format():
|
|
40
|
+
get format(): TextureFormat { return this.props.format; }
|
|
43
41
|
get samples(): number { return this.props.samples; }
|
|
42
|
+
get attachment() { return }
|
|
43
|
+
|
|
44
|
+
/** WebGL format constant */
|
|
45
|
+
glFormat: GL;
|
|
44
46
|
|
|
45
|
-
static
|
|
46
|
-
return
|
|
47
|
+
static isTextureFormatSupported(device: WebGLDevice, format: TextureFormat): boolean {
|
|
48
|
+
return isRenderbufferFormatSupported(device.gl, format);
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
constructor(device: WebGLDevice, props: RenderbufferProps) {
|
|
50
|
-
|
|
52
|
+
// TODO - remove temporary sanity check
|
|
53
|
+
if (typeof props.format === 'number') {
|
|
54
|
+
throw new Error('Renderbuffer');
|
|
55
|
+
}
|
|
56
|
+
super(device, props, WEBGLRenderbuffer.defaultProps);
|
|
57
|
+
this.glFormat = convertTextureFormatToGL(this.props.format, device.isWebGL2);
|
|
51
58
|
this._initialize(this.props);
|
|
52
59
|
}
|
|
53
60
|
|
|
54
|
-
resize(size: {width: number, height: number}):
|
|
61
|
+
resize(size: {width: number, height: number}): void {
|
|
55
62
|
// Don't resize if width/height haven't changed
|
|
56
63
|
if (size.width !== this.width || size.height !== this.height) {
|
|
57
64
|
Object.assign(this.props, {...size, format: this.format, samples: this.samples});
|
|
58
65
|
this._initialize(this.props);
|
|
59
66
|
}
|
|
60
|
-
return this;
|
|
61
67
|
}
|
|
62
68
|
|
|
63
69
|
// PRIVATE METHODS
|
|
64
70
|
|
|
65
71
|
/** Creates and initializes a renderbuffer object's data store */
|
|
66
|
-
protected _initialize(props: Required<RenderbufferProps>) {
|
|
72
|
+
protected _initialize(props: Required<RenderbufferProps>): void {
|
|
67
73
|
const {format, width, height, samples} = props;
|
|
68
74
|
assert(format, 'Needs format');
|
|
69
75
|
|
|
@@ -72,33 +78,30 @@ export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps>
|
|
|
72
78
|
this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
|
|
73
79
|
|
|
74
80
|
if (samples !== 0 && this.device.isWebGL2) {
|
|
75
|
-
|
|
76
|
-
this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
|
|
81
|
+
this.gl2.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, this.glFormat, width, height);
|
|
77
82
|
} else {
|
|
78
|
-
this.gl.renderbufferStorage(GL.RENDERBUFFER,
|
|
83
|
+
this.gl.renderbufferStorage(GL.RENDERBUFFER, this.glFormat, width, height);
|
|
79
84
|
}
|
|
80
85
|
|
|
81
86
|
this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
|
|
82
87
|
|
|
83
88
|
this.trackAllocatedMemory(
|
|
84
|
-
width * height * (samples || 1) *
|
|
89
|
+
width * height * (samples || 1) * getTextureFormatBytesPerPixel(this.glFormat, this.device.isWebGL2)
|
|
85
90
|
);
|
|
86
|
-
|
|
87
|
-
return this;
|
|
88
91
|
}
|
|
89
92
|
|
|
90
93
|
// RESOURCE IMPLEMENTATION
|
|
91
94
|
|
|
92
|
-
_createHandle() {
|
|
95
|
+
override _createHandle() {
|
|
93
96
|
return this.gl.createRenderbuffer();
|
|
94
97
|
}
|
|
95
98
|
|
|
96
|
-
_deleteHandle(): void {
|
|
99
|
+
override _deleteHandle(): void {
|
|
97
100
|
this.gl.deleteRenderbuffer(this.handle);
|
|
98
101
|
this.trackDeallocatedMemory();
|
|
99
102
|
}
|
|
100
103
|
|
|
101
|
-
_bindHandle(handle: WEBGLRenderbuffer): void {
|
|
104
|
+
override _bindHandle(handle: WEBGLRenderbuffer): void {
|
|
102
105
|
this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
|
|
103
106
|
}
|
|
104
107
|
}
|