@luma.gl/webgl 9.0.0-alpha.15 → 9.0.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/converters/device-parameters.js +199 -136
- package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js +62 -176
- package/dist/adapter/converters/sampler-parameters.js +149 -206
- package/dist/adapter/converters/texture-formats.d.ts +2 -2
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +437 -890
- package/dist/adapter/converters/vertex-formats.js +15 -33
- package/dist/adapter/device-helpers/device-features.js +119 -100
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +88 -86
- package/dist/adapter/device-helpers/get-device-info.js +42 -43
- package/dist/adapter/device-helpers/is-old-ie.js +9 -6
- package/dist/adapter/helpers/attribute-utils.js +50 -74
- package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-info.js +27 -0
- package/dist/adapter/helpers/get-shader-layout.js +307 -296
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js +32 -33
- package/dist/adapter/helpers/set-uniform.js +67 -110
- package/dist/adapter/helpers/uniforms.js +80 -85
- package/dist/adapter/objects/constants-to-keys.js +33 -33
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +67 -86
- package/dist/adapter/objects/webgl-resource.js +213 -205
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +74 -76
- package/dist/adapter/resources/webgl-buffer.js +150 -147
- package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +39 -55
- package/dist/adapter/resources/webgl-command-encoder.js +25 -49
- package/dist/adapter/resources/webgl-external-texture.js +91 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +231 -258
- package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +8 -18
- package/dist/adapter/resources/webgl-render-pipeline.js +316 -378
- package/dist/adapter/resources/webgl-sampler.js +42 -47
- package/dist/adapter/resources/webgl-shader.d.ts +1 -2
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +58 -68
- package/dist/adapter/resources/webgl-texture.d.ts +5 -5
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +661 -815
- package/dist/adapter/webgl-canvas-context.js +55 -49
- package/dist/adapter/webgl-device.js +288 -338
- package/dist/bundle.js +1 -2
- package/dist/classic/accessor.js +120 -127
- package/dist/classic/buffer.d.ts +1 -1
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +325 -356
- package/dist/classic/typed-array-utils.d.ts +1 -1
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +91 -101
- package/dist/context/context/create-browser-context.d.ts +1 -2
- package/dist/context/context/create-browser-context.d.ts.map +1 -1
- package/dist/context/context/create-browser-context.js +61 -52
- package/dist/context/context/create-headless-context.d.ts +1 -1
- package/dist/context/context/create-headless-context.d.ts.map +1 -1
- package/dist/context/context/create-headless-context.js +26 -33
- package/dist/context/context/webgl-checks.js +25 -20
- package/dist/context/debug/spector.d.ts +1 -2
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +53 -62
- package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +106 -93
- package/dist/context/parameters/unified-parameter-api.js +91 -55
- package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +462 -423
- package/dist/context/polyfill/context-data.js +16 -12
- package/dist/context/polyfill/get-parameter-polyfill.js +91 -76
- package/dist/context/polyfill/polyfill-context.js +75 -80
- package/dist/context/polyfill/polyfill-table.js +133 -139
- package/dist/context/polyfill/polyfill-vertex-array-object.js +255 -297
- package/dist/context/state-tracker/deep-array-equal.js +16 -18
- package/dist/context/state-tracker/track-context-state.js +183 -161
- package/dist/context/state-tracker/with-parameters.js +43 -35
- package/dist/dist.min.js +1 -0
- package/dist/es5/adapter/converters/device-parameters.js +3 -38
- package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +2 -14
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +2 -65
- package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/texture-formats.js +9 -81
- package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -12
- package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-features.js +6 -40
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -10
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -10
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +3 -25
- package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/es5/adapter/helpers/get-shader-info.js +31 -0
- package/dist/es5/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/es5/adapter/helpers/get-shader-layout.js +23 -101
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +6 -24
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -33
- package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/es5/adapter/helpers/uniforms.js +13 -37
- package/dist/es5/adapter/helpers/uniforms.js.map +1 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +1 -12
- package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +5 -33
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-resource.js +6 -60
- package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +7 -35
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +20 -66
- package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +6 -32
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -18
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +10 -82
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +2 -19
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +24 -133
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +2 -28
- package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-shader.js +13 -52
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-texture.js +137 -291
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -24
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/es5/adapter/webgl-device.js +40 -127
- package/dist/es5/adapter/webgl-device.js.map +1 -1
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classic/accessor.js +1 -31
- package/dist/es5/classic/accessor.js.map +1 -1
- package/dist/es5/classic/buffer.js +32 -102
- package/dist/es5/classic/buffer.js.map +1 -1
- package/dist/es5/classic/typed-array-utils.js +10 -37
- package/dist/es5/classic/typed-array-utils.js.map +1 -1
- package/dist/es5/context/context/create-browser-context.js +4 -21
- package/dist/es5/context/context/create-browser-context.js.map +1 -1
- package/dist/es5/context/context/create-headless-context.js +8 -21
- package/dist/es5/context/context/create-headless-context.js.map +1 -1
- package/dist/es5/context/context/webgl-checks.js +4 -14
- package/dist/es5/context/context/webgl-checks.js.map +1 -1
- package/dist/es5/context/debug/spector.js +20 -54
- package/dist/es5/context/debug/spector.js.map +1 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +19 -65
- package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +3 -28
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +18 -65
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/es5/context/polyfill/context-data.js +0 -3
- package/dist/es5/context/polyfill/context-data.js.map +1 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -12
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-context.js +8 -33
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-table.js +3 -27
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -5
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/es5/context/state-tracker/track-context-state.js +10 -53
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/context/state-tracker/with-parameters.js +1 -13
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/index.js +72 -99
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +0 -3
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/types/webgl.js +0 -1
- package/dist/es5/types/webgl.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -20
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -4
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +2 -57
- package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/esm/adapter/converters/texture-formats.js +8 -52
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -9
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-features.js +2 -19
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -3
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -6
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +2 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -17
- package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/esm/adapter/helpers/get-shader-info.js +25 -0
- package/dist/esm/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js +2 -48
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -7
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -30
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -10
- package/dist/esm/adapter/helpers/uniforms.js.map +1 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -7
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +2 -18
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-resource.js +10 -57
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +5 -15
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +12 -40
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +2 -17
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -12
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -60
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +1 -8
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -89
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -12
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-shader.js +2 -16
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-texture.js +36 -154
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -14
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/esm/adapter/webgl-device.js +19 -89
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classic/accessor.js +10 -34
- package/dist/esm/classic/accessor.js.map +1 -1
- package/dist/esm/classic/buffer.js +15 -71
- package/dist/esm/classic/buffer.js.map +1 -1
- package/dist/esm/classic/typed-array-utils.js +0 -20
- package/dist/esm/classic/typed-array-utils.js.map +1 -1
- package/dist/esm/context/context/create-browser-context.js +6 -14
- package/dist/esm/context/context/create-browser-context.js.map +1 -1
- package/dist/esm/context/context/create-headless-context.js +2 -6
- package/dist/esm/context/context/create-headless-context.js.map +1 -1
- package/dist/esm/context/context/webgl-checks.js +0 -3
- package/dist/esm/context/context/webgl-checks.js.map +1 -1
- package/dist/esm/context/debug/spector.js +2 -14
- package/dist/esm/context/debug/spector.js.map +1 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +4 -22
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +2 -13
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -19
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/context-data.js +0 -2
- package/dist/esm/context/polyfill/context-data.js.map +1 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -5
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +14 -21
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -23
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -4
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +11 -45
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -6
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/webgl.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/index.js +39 -25
- package/dist/init.js +1 -2
- package/dist/types/webgl.d.ts +20 -20
- package/dist/types/webgl.d.ts.map +1 -1
- package/dist/types/webgl.js +0 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/package.json +8 -8
- package/src/adapter/helpers/get-shader-info.ts +37 -0
- package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
- package/src/adapter/resources/webgl-render-pass.ts +1 -1
- package/src/adapter/resources/webgl-shader.ts +2 -2
- package/src/adapter/webgl-device.ts +1 -1
- package/src/context/debug/webgl-developer-tools.ts +0 -1
- package/src/types/webgl.ts +4 -4
- package/dist/adapter/converters/device-parameters.js.map +0 -1
- package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/adapter/converters/texture-formats.js.map +0 -1
- package/dist/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/adapter/helpers/uniforms.js.map +0 -1
- package/dist/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/adapter/webgl-device.js.map +0 -1
- package/dist/bundle.js.map +0 -1
- package/dist/classic/accessor.js.map +0 -1
- package/dist/classic/buffer.js.map +0 -1
- package/dist/classic/typed-array-utils.js.map +0 -1
- package/dist/context/context/create-browser-context.js.map +0 -1
- package/dist/context/context/create-headless-context.js.map +0 -1
- package/dist/context/context/webgl-checks.js.map +0 -1
- package/dist/context/debug/spector.js.map +0 -1
- package/dist/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/context/polyfill/context-data.js.map +0 -1
- package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init.js.map +0 -1
- package/dist/types/webgl.js.map +0 -1
- package/dist/types.js.map +0 -1
|
@@ -1,51 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.getShaderLayout = getShaderLayout;
|
|
9
7
|
exports.getProgramBindings = getProgramBindings;
|
|
10
|
-
|
|
8
|
+
exports.getShaderLayout = getShaderLayout;
|
|
11
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
-
|
|
13
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
|
|
15
11
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
16
|
-
|
|
17
12
|
var _webglChecks = require("../../context/context/webgl-checks");
|
|
18
|
-
|
|
19
13
|
var _accessor = _interopRequireDefault(require("../../classic/accessor"));
|
|
20
|
-
|
|
21
14
|
var _uniforms2 = require("./uniforms");
|
|
22
|
-
|
|
23
15
|
var _vertexFormats = require("../converters/vertex-formats");
|
|
24
|
-
|
|
25
16
|
var _SAMPLER_UNIFORMS_GL_;
|
|
26
|
-
|
|
27
|
-
function
|
|
28
|
-
|
|
29
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
30
|
-
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
19
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
32
|
-
|
|
33
20
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
34
|
-
|
|
35
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
36
|
-
|
|
21
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
37
22
|
function getShaderLayout(gl, program) {
|
|
38
23
|
var _programBindings$unif, _programBindings$vary;
|
|
39
|
-
|
|
40
24
|
var programBindings = getProgramBindings(gl, program);
|
|
41
25
|
var shaderLayout = {
|
|
42
26
|
attributes: [],
|
|
43
27
|
bindings: []
|
|
44
28
|
};
|
|
45
|
-
|
|
46
29
|
var _iterator = _createForOfIteratorHelper(programBindings.attributes),
|
|
47
|
-
|
|
48
|
-
|
|
30
|
+
_step;
|
|
49
31
|
try {
|
|
50
32
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
51
33
|
var attribute = _step.value;
|
|
@@ -63,14 +45,11 @@ function getShaderLayout(gl, program) {
|
|
|
63
45
|
} finally {
|
|
64
46
|
_iterator.f();
|
|
65
47
|
}
|
|
66
|
-
|
|
67
48
|
var _iterator2 = _createForOfIteratorHelper(programBindings.uniformBlocks),
|
|
68
|
-
|
|
69
|
-
|
|
49
|
+
_step2;
|
|
70
50
|
try {
|
|
71
51
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
72
52
|
var uniformBlock = _step2.value;
|
|
73
|
-
|
|
74
53
|
var _uniforms = uniformBlock.uniforms.map(function (uniform) {
|
|
75
54
|
return {
|
|
76
55
|
name: uniform.name,
|
|
@@ -80,7 +59,6 @@ function getShaderLayout(gl, program) {
|
|
|
80
59
|
arrayLength: uniform.arrayLength
|
|
81
60
|
};
|
|
82
61
|
});
|
|
83
|
-
|
|
84
62
|
shaderLayout.bindings.push({
|
|
85
63
|
type: 'uniform',
|
|
86
64
|
name: uniformBlock.name,
|
|
@@ -95,21 +73,16 @@ function getShaderLayout(gl, program) {
|
|
|
95
73
|
} finally {
|
|
96
74
|
_iterator2.f();
|
|
97
75
|
}
|
|
98
|
-
|
|
99
76
|
var textureUnit = 0;
|
|
100
|
-
|
|
101
77
|
var _iterator3 = _createForOfIteratorHelper(programBindings.uniforms),
|
|
102
|
-
|
|
103
|
-
|
|
78
|
+
_step3;
|
|
104
79
|
try {
|
|
105
80
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
106
81
|
var uniform = _step3.value;
|
|
107
|
-
|
|
108
82
|
if ((0, _uniforms2.isSamplerUniform)(uniform.type)) {
|
|
109
83
|
var _getSamplerInfo = getSamplerInfo(uniform.type),
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
84
|
+
viewDimension = _getSamplerInfo.viewDimension,
|
|
85
|
+
sampleType = _getSamplerInfo.sampleType;
|
|
113
86
|
shaderLayout.bindings.push({
|
|
114
87
|
type: 'texture',
|
|
115
88
|
name: uniform.name,
|
|
@@ -126,22 +99,17 @@ function getShaderLayout(gl, program) {
|
|
|
126
99
|
} finally {
|
|
127
100
|
_iterator3.f();
|
|
128
101
|
}
|
|
129
|
-
|
|
130
102
|
var uniforms = ((_programBindings$unif = programBindings.uniforms) === null || _programBindings$unif === void 0 ? void 0 : _programBindings$unif.filter(function (uniform) {
|
|
131
103
|
return uniform.location !== null;
|
|
132
104
|
})) || [];
|
|
133
|
-
|
|
134
105
|
if (uniforms.length) {
|
|
135
106
|
shaderLayout.uniforms = uniforms;
|
|
136
107
|
}
|
|
137
|
-
|
|
138
108
|
if ((_programBindings$vary = programBindings.varyings) !== null && _programBindings$vary !== void 0 && _programBindings$vary.length) {
|
|
139
109
|
shaderLayout.varyings = programBindings.varyings;
|
|
140
110
|
}
|
|
141
|
-
|
|
142
111
|
return shaderLayout;
|
|
143
112
|
}
|
|
144
|
-
|
|
145
113
|
function getProgramBindings(gl, program) {
|
|
146
114
|
var config = {
|
|
147
115
|
attributes: readAttributeBindings(gl, program),
|
|
@@ -152,38 +120,30 @@ function getProgramBindings(gl, program) {
|
|
|
152
120
|
Object.seal(config);
|
|
153
121
|
return config;
|
|
154
122
|
}
|
|
155
|
-
|
|
156
123
|
function readAttributeBindings(gl, program) {
|
|
157
124
|
var attributes = [];
|
|
158
125
|
var count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
|
|
159
|
-
|
|
160
126
|
for (var index = 0; index < count; index++) {
|
|
161
127
|
var activeInfo = gl.getActiveAttrib(program, index);
|
|
162
|
-
|
|
163
128
|
if (!activeInfo) {
|
|
164
129
|
throw new Error('activeInfo');
|
|
165
130
|
}
|
|
166
|
-
|
|
167
131
|
var name = activeInfo.name,
|
|
168
|
-
|
|
169
|
-
|
|
132
|
+
compositeType = activeInfo.type,
|
|
133
|
+
size = activeInfo.size;
|
|
170
134
|
var location = gl.getAttribLocation(program, name);
|
|
171
|
-
|
|
172
135
|
if (location >= 0) {
|
|
173
136
|
var _decodeAttributeType = (0, _uniforms2.decodeAttributeType)(compositeType),
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
137
|
+
glType = _decodeAttributeType.glType,
|
|
138
|
+
components = _decodeAttributeType.components;
|
|
177
139
|
;
|
|
178
140
|
var accessor = {
|
|
179
141
|
type: glType,
|
|
180
142
|
size: size * components
|
|
181
143
|
};
|
|
182
|
-
|
|
183
144
|
if (/instance/i.test(name)) {
|
|
184
145
|
accessor.divisor = 1;
|
|
185
146
|
}
|
|
186
|
-
|
|
187
147
|
var attributeInfo = {
|
|
188
148
|
location: location,
|
|
189
149
|
name: name,
|
|
@@ -192,37 +152,29 @@ function readAttributeBindings(gl, program) {
|
|
|
192
152
|
attributes.push(attributeInfo);
|
|
193
153
|
}
|
|
194
154
|
}
|
|
195
|
-
|
|
196
155
|
attributes.sort(function (a, b) {
|
|
197
156
|
return a.location - b.location;
|
|
198
157
|
});
|
|
199
158
|
return attributes;
|
|
200
159
|
}
|
|
201
|
-
|
|
202
160
|
function readVaryings(gl, program) {
|
|
203
161
|
if (!(0, _webglChecks.isWebGL2)(gl)) {
|
|
204
162
|
return [];
|
|
205
163
|
}
|
|
206
|
-
|
|
207
164
|
var gl2 = gl;
|
|
208
165
|
var varyings = [];
|
|
209
166
|
var count = gl.getProgramParameter(program, _constants.default.TRANSFORM_FEEDBACK_VARYINGS);
|
|
210
|
-
|
|
211
167
|
for (var location = 0; location < count; location++) {
|
|
212
168
|
var activeInfo = gl2.getTransformFeedbackVarying(program, location);
|
|
213
|
-
|
|
214
169
|
if (!activeInfo) {
|
|
215
170
|
throw new Error('activeInfo');
|
|
216
171
|
}
|
|
217
|
-
|
|
218
172
|
var name = activeInfo.name,
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
173
|
+
compositeType = activeInfo.type,
|
|
174
|
+
size = activeInfo.size;
|
|
222
175
|
var _decodeUniformType = (0, _uniforms2.decodeUniformType)(compositeType),
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
176
|
+
glType = _decodeUniformType.glType,
|
|
177
|
+
components = _decodeUniformType.components;
|
|
226
178
|
;
|
|
227
179
|
var accessor = new _accessor.default({
|
|
228
180
|
type: glType,
|
|
@@ -235,32 +187,25 @@ function readVaryings(gl, program) {
|
|
|
235
187
|
};
|
|
236
188
|
varyings.push(varying);
|
|
237
189
|
}
|
|
238
|
-
|
|
239
190
|
varyings.sort(function (a, b) {
|
|
240
191
|
return a.location - b.location;
|
|
241
192
|
});
|
|
242
193
|
return varyings;
|
|
243
194
|
}
|
|
244
|
-
|
|
245
195
|
function readUniformBindings(gl, program) {
|
|
246
196
|
var uniforms = [];
|
|
247
197
|
var uniformCount = gl.getProgramParameter(program, _constants.default.ACTIVE_UNIFORMS);
|
|
248
|
-
|
|
249
198
|
for (var i = 0; i < uniformCount; i++) {
|
|
250
199
|
var activeInfo = gl.getActiveUniform(program, i);
|
|
251
|
-
|
|
252
200
|
if (!activeInfo) {
|
|
253
201
|
throw new Error('activeInfo');
|
|
254
202
|
}
|
|
255
|
-
|
|
256
203
|
var rawName = activeInfo.name,
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
204
|
+
size = activeInfo.size,
|
|
205
|
+
type = activeInfo.type;
|
|
260
206
|
var _parseUniformName = parseUniformName(rawName),
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
207
|
+
name = _parseUniformName.name,
|
|
208
|
+
isArray = _parseUniformName.isArray;
|
|
264
209
|
var webglLocation = gl.getUniformLocation(program, name);
|
|
265
210
|
var uniformInfo = {
|
|
266
211
|
location: webglLocation,
|
|
@@ -270,39 +215,30 @@ function readUniformBindings(gl, program) {
|
|
|
270
215
|
isArray: isArray
|
|
271
216
|
};
|
|
272
217
|
uniforms.push(uniformInfo);
|
|
273
|
-
|
|
274
218
|
if (uniformInfo.size > 1) {
|
|
275
219
|
for (var j = 0; j < uniformInfo.size; j++) {
|
|
276
220
|
var elementName = "".concat(name, "[").concat(j, "]");
|
|
277
221
|
webglLocation = gl.getUniformLocation(program, elementName);
|
|
278
|
-
|
|
279
222
|
var arrayElementUniformInfo = _objectSpread(_objectSpread({}, uniformInfo), {}, {
|
|
280
223
|
name: elementName,
|
|
281
224
|
location: webglLocation
|
|
282
225
|
});
|
|
283
|
-
|
|
284
226
|
uniforms.push(arrayElementUniformInfo);
|
|
285
227
|
}
|
|
286
228
|
}
|
|
287
229
|
}
|
|
288
|
-
|
|
289
230
|
return uniforms;
|
|
290
231
|
}
|
|
291
|
-
|
|
292
232
|
function readUniformBlocks(gl, program) {
|
|
293
233
|
if (!(0, _webglChecks.isWebGL2)(gl)) {
|
|
294
234
|
return [];
|
|
295
235
|
}
|
|
296
|
-
|
|
297
236
|
var gl2 = gl;
|
|
298
|
-
|
|
299
237
|
var getBlockParameter = function getBlockParameter(blockIndex, pname) {
|
|
300
238
|
return gl2.getActiveUniformBlockParameter(program, blockIndex, pname);
|
|
301
239
|
};
|
|
302
|
-
|
|
303
240
|
var uniformBlocks = [];
|
|
304
241
|
var blockCount = gl2.getProgramParameter(program, _constants.default.ACTIVE_UNIFORM_BLOCKS);
|
|
305
|
-
|
|
306
242
|
for (var blockIndex = 0; blockIndex < blockCount; blockIndex++) {
|
|
307
243
|
var blockInfo = {
|
|
308
244
|
name: gl2.getActiveUniformBlockName(program, blockIndex) || '',
|
|
@@ -318,14 +254,11 @@ function readUniformBlocks(gl, program) {
|
|
|
318
254
|
var uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_SIZE);
|
|
319
255
|
var uniformOffset = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_OFFSET);
|
|
320
256
|
var uniformStride = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_ARRAY_STRIDE);
|
|
321
|
-
|
|
322
257
|
for (var i = 0; i < blockInfo.uniformCount; ++i) {
|
|
323
258
|
var activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);
|
|
324
|
-
|
|
325
259
|
if (!activeInfo) {
|
|
326
260
|
throw new Error('activeInfo');
|
|
327
261
|
}
|
|
328
|
-
|
|
329
262
|
blockInfo.uniforms.push({
|
|
330
263
|
name: activeInfo.name,
|
|
331
264
|
format: (0, _uniforms2.decodeUniformType)(uniformType[i]).format,
|
|
@@ -335,35 +268,27 @@ function readUniformBlocks(gl, program) {
|
|
|
335
268
|
byteStride: uniformStride[i]
|
|
336
269
|
});
|
|
337
270
|
}
|
|
338
|
-
|
|
339
271
|
uniformBlocks.push(blockInfo);
|
|
340
272
|
}
|
|
341
|
-
|
|
342
273
|
uniformBlocks.sort(function (a, b) {
|
|
343
274
|
return a.location - b.location;
|
|
344
275
|
});
|
|
345
276
|
return uniformBlocks;
|
|
346
277
|
}
|
|
347
|
-
|
|
348
278
|
var SAMPLER_UNIFORMS_GL_TO_GPU = (_SAMPLER_UNIFORMS_GL_ = {}, (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_2D, ['2d', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_CUBE, ['cube', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_3D, ['3d', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_2D_SHADOW, ['3d', 'depth']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_2D_ARRAY, ['2d-array', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_2D_ARRAY_SHADOW, ['2d-array', 'depth']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_CUBE_SHADOW, ['cube', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.INT_SAMPLER_2D, ['2d', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.INT_SAMPLER_3D, ['3d', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.INT_SAMPLER_CUBE, ['cube', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.INT_SAMPLER_2D_ARRAY, ['2d-array', 'uint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_2D, ['2d', 'uint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_3D, ['3d', 'uint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_CUBE, ['cube', 'uint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_2D_ARRAY, ['2d-array', 'uint']), _SAMPLER_UNIFORMS_GL_);
|
|
349
|
-
|
|
350
279
|
function getSamplerInfo(type) {
|
|
351
280
|
var sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
|
|
352
|
-
|
|
353
281
|
if (!sampler) {
|
|
354
282
|
throw new Error('sampler');
|
|
355
283
|
}
|
|
356
|
-
|
|
357
284
|
var _sampler = (0, _slicedToArray2.default)(sampler, 2),
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
285
|
+
viewDimension = _sampler[0],
|
|
286
|
+
sampleType = _sampler[1];
|
|
361
287
|
return {
|
|
362
288
|
viewDimension: viewDimension,
|
|
363
289
|
sampleType: sampleType
|
|
364
290
|
};
|
|
365
291
|
}
|
|
366
|
-
|
|
367
292
|
function parseUniformName(name) {
|
|
368
293
|
if (name[name.length - 1] !== ']') {
|
|
369
294
|
return {
|
|
@@ -372,14 +297,11 @@ function parseUniformName(name) {
|
|
|
372
297
|
isArray: false
|
|
373
298
|
};
|
|
374
299
|
}
|
|
375
|
-
|
|
376
300
|
var UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
|
|
377
301
|
var matches = name.match(UNIFORM_NAME_REGEXP);
|
|
378
|
-
|
|
379
302
|
if (!matches || matches.length < 2) {
|
|
380
303
|
throw new Error("Failed to parse GLSL uniform name ".concat(name));
|
|
381
304
|
}
|
|
382
|
-
|
|
383
305
|
return {
|
|
384
306
|
name: matches[1],
|
|
385
307
|
length: matches[2] ? 1 : 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/helpers/get-shader-layout.ts"],"names":["getShaderLayout","gl","program","programBindings","getProgramBindings","shaderLayout","attributes","bindings","attribute","size","Math","min","accessor","format","type","GL","FLOAT","push","name","location","stepMode","divisor","uniformBlocks","uniformBlock","uniforms","map","uniform","byteOffset","byteStride","arrayLength","visibility","vertex","fragment","minBindingSize","byteLength","textureUnit","getSamplerInfo","viewDimension","sampleType","filter","length","varyings","config","readAttributeBindings","readUniformBindings","readUniformBlocks","readVaryings","Object","seal","count","getProgramParameter","ACTIVE_ATTRIBUTES","index","activeInfo","getActiveAttrib","Error","compositeType","getAttribLocation","glType","components","test","attributeInfo","Accessor","sort","a","b","gl2","TRANSFORM_FEEDBACK_VARYINGS","getTransformFeedbackVarying","varying","uniformCount","ACTIVE_UNIFORMS","i","getActiveUniform","rawName","parseUniformName","isArray","webglLocation","getUniformLocation","uniformInfo","j","elementName","arrayElementUniformInfo","getBlockParameter","blockIndex","pname","getActiveUniformBlockParameter","blockCount","ACTIVE_UNIFORM_BLOCKS","blockInfo","getActiveUniformBlockName","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_ACTIVE_UNIFORMS","uniformIndices","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","uniformType","getActiveUniforms","UNIFORM_TYPE","uniformArrayLength","UNIFORM_SIZE","uniformOffset","UNIFORM_OFFSET","uniformStride","UNIFORM_ARRAY_STRIDE","SAMPLER_UNIFORMS_GL_TO_GPU","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","sampler","UNIFORM_NAME_REGEXP","matches","match","Boolean"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\n\nimport {\n ShaderLayout,\n // BindingLayout,\n UniformBinding,\n UniformBlockBinding,\n ProgramBindings,\n AttributeBinding,\n VaryingBinding,\n // AttributeLayout,\n AccessorObject\n} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport Accessor from '../../classic/accessor'; // TODO - should NOT depend on classic API\nimport {decodeUniformType, decodeAttributeType} from './uniforms';\nimport {getVertexFormat} from '../converters/vertex-formats';\nimport {isSamplerUniform} from './uniforms';\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram): ShaderLayout {\n const programBindings = getProgramBindings(gl, program);\n\n const shaderLayout: ShaderLayout = {\n attributes: [],\n bindings: []\n };\n\n for (const attribute of programBindings.attributes) {\n // TODO - multicolumn attributes like a matrix4 can be up to 16 elts...\n const size = Math.min(attribute.accessor.size, 4);\n const format =\n // attribute.accessor.format ||\n getVertexFormat(attribute.accessor.type || GL.FLOAT, size);\n shaderLayout.attributes.push({\n name: attribute.name,\n location: attribute.location,\n format,\n stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'\n });\n }\n\n // Uniform blocks\n for (const uniformBlock of programBindings.uniformBlocks) {\n const uniforms = uniformBlock.uniforms.map((uniform) => ({\n name: uniform.name,\n format: uniform.format,\n byteOffset: uniform.byteOffset,\n byteStride: uniform.byteStride,\n arrayLength: uniform.arrayLength\n }));\n shaderLayout.bindings.push({\n type: 'uniform',\n name: uniformBlock.name,\n location: uniformBlock.location,\n visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),\n minBindingSize: uniformBlock.byteLength,\n uniforms\n });\n }\n\n let textureUnit = 0;\n for (const uniform of programBindings.uniforms) {\n if (isSamplerUniform(uniform.type)) {\n const {viewDimension, sampleType} = getSamplerInfo(uniform.type);\n shaderLayout.bindings.push({\n type: 'texture',\n name: uniform.name,\n location: textureUnit,\n viewDimension,\n sampleType\n });\n\n // @ts-expect-error\n uniform.textureUnit = textureUnit;\n textureUnit += 1;\n }\n }\n\n const uniforms = programBindings.uniforms?.filter((uniform) => uniform.location !== null) || [];\n if (uniforms.length) {\n shaderLayout.uniforms = uniforms;\n }\n if (programBindings.varyings?.length) {\n shaderLayout.varyings = programBindings.varyings;\n }\n\n return shaderLayout;\n}\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getProgramBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): ProgramBindings {\n const config: ProgramBindings = {\n attributes: readAttributeBindings(gl, program),\n uniforms: readUniformBindings(gl, program),\n uniformBlocks: readUniformBlocks(gl, program),\n varyings: readVaryings(gl, program)\n };\n\n Object.seal(config);\n return config;\n // generateWebGPUStyleBindings(bindings);\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readAttributeBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): AttributeBinding[] {\n const attributes: AttributeBinding[] = [];\n\n const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (let index = 0; index < count; index++) {\n const activeInfo = gl.getActiveAttrib(program, index);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const location = gl.getAttribLocation(program, name);\n // Add only user provided attributes, for built-in attributes like\n // `gl_InstanceID` locaiton will be < 0\n if (location >= 0) {\n const {glType, components} = decodeAttributeType(compositeType);;\n const accessor: AccessorObject = {type: glType, size: size * components};\n // Any attribute name containing the word \"instance\" will be assumed to be instanced\n if (/instance/i.test(name)) {\n accessor.divisor = 1;\n }\n const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values\n attributes.push(attributeInfo);\n }\n }\n\n attributes.sort((a: AttributeBinding, b: AttributeBinding) => a.location - b.location);\n return attributes;\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): VaryingBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const varyings: VaryingBinding[] = [];\n\n const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);\n for (let location = 0; location < count; location++) {\n const activeInfo = gl2.getTransformFeedbackVarying(program, location);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const {glType, components} = decodeUniformType(compositeType);;\n const accessor = new Accessor({type: glType, size: size * components});\n const varying = {location, name, accessor}; // Base values\n varyings.push(varying);\n }\n\n varyings.sort((a, b) => a.location - b.location);\n return varyings;\n}\n\n/**\n * Extract info about all uniforms\n *\n * Query uniform locations and build name to setter map.\n */\nfunction readUniformBindings(gl: WebGLRenderingContext, program: WebGLProgram): UniformBinding[] {\n const uniforms: UniformBinding[] = [];\n\n const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);\n for (let i = 0; i < uniformCount; i++) {\n const activeInfo = gl.getActiveUniform(program, i);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name: rawName, size, type} = activeInfo;\n const {name, isArray} = parseUniformName(rawName);\n let webglLocation = gl.getUniformLocation(program, name);\n const uniformInfo = {\n // WebGL locations are uniquely typed but just numbers\n location: webglLocation as number,\n name,\n size,\n type,\n isArray\n };\n uniforms.push(uniformInfo);\n\n // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks\n if (uniformInfo.size > 1) {\n for (let j = 0; j < uniformInfo.size; j++) {\n const elementName = `${name}[${j}]`;\n\n webglLocation = gl.getUniformLocation(program, elementName);\n\n const arrayElementUniformInfo = {\n ...uniformInfo,\n name: elementName,\n location: webglLocation as number\n };\n\n uniforms.push(arrayElementUniformInfo);\n }\n }\n }\n return uniforms;\n}\n\n/**\n * Extract info about all \"active\" uniform blocks\n *\n * (\"Active\" just means that unused (aka inactive) blocks may have been\n * optimized away during linking)\n */\nfunction readUniformBlocks(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): UniformBlockBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const getBlockParameter = (blockIndex: number, pname: GL): any =>\n gl2.getActiveUniformBlockParameter(program, blockIndex, pname);\n\n const uniformBlocks: UniformBlockBinding[] = [];\n\n const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {\n const blockInfo: UniformBlockBinding = {\n name: gl2.getActiveUniformBlockName(program, blockIndex) || '',\n location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),\n byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),\n vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n uniforms: [] as any[]\n };\n\n const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) as number[] || [];\n\n const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.\n const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.\n // const uniformBlockIndex = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_BLOCK_INDEX\n // ); // Array of GLint indicating the block indices of the uniforms.\n const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.\n const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.\n // const uniformMatrixStride = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_MATRIX_STRIDE\n // ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.\n // const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);\n for (let i = 0; i < blockInfo.uniformCount; ++i) {\n const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n \n blockInfo.uniforms.push({\n name: activeInfo.name,\n format: decodeUniformType(uniformType[i]).format,\n type: uniformType[i],\n arrayLength: uniformArrayLength[i],\n byteOffset: uniformOffset[i],\n byteStride: uniformStride[i],\n // matrixStride: uniformStride[i],\n // rowMajor: uniformRowMajor[i]\n });\n }\n\n uniformBlocks.push(blockInfo);\n }\n\n uniformBlocks.sort((a, b) => a.location - b.location);\n return uniformBlocks;\n}\n\nconst SAMPLER_UNIFORMS_GL_TO_GPU: Record<\n number,\n [\n '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d',\n 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint'\n ]\n> = {\n [GL.SAMPLER_2D]: ['2d', 'float'],\n [GL.SAMPLER_CUBE]: ['cube', 'float'],\n [GL.SAMPLER_3D]: ['3d', 'float'],\n [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],\n [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],\n [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],\n [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],\n [GL.INT_SAMPLER_2D]: ['2d', 'sint'],\n [GL.INT_SAMPLER_3D]: ['3d', 'sint'],\n [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],\n [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']\n};\n\ntype SamplerInfo = | {\n viewDimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';\n sampleType: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint';\n};\n\nfunction getSamplerInfo(type: GL): SamplerInfo {\n let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];\n if (!sampler) {\n throw new Error('sampler');\n }\n const [viewDimension, sampleType] = sampler;\n return {viewDimension, sampleType};\n}\n\n// HELPERS\n\nfunction parseUniformName(name: string): {name: string; length: number; isArray: boolean} {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: matches[2] ? 1 : 0,\n isArray: Boolean(matches[2])\n };\n}\n\n/**\n * TODO - verify this is a copy of above and delete\n * import type {TextureFormat} from '@luma.gl/api';\n* Extract info about all \"active\" uniform blocks\n * (\"Active\" just means that unused (inactive) blocks may have been optimized away during linking)\n *\n function getUniformBlockBindings(gl: WebGLRenderingContext, program): Binding[] {\n if (!isWebGL2(gl)) {\n return;\n }\n const bindings: Binding[] = [];\n const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < count; blockIndex++) {\n const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n const visibility = (vertex) + (fragment);\n const binding: BufferBinding = {\n location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),\n // name: gl.getActiveUniformBlockName(program, blockIndex),\n type: 'uniform',\n visibility,\n minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),\n // uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n // uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),\n }\n bindings.push(binding);\n }\n return bindings;\n}\n\nfunction setBindings(gl2: WebGL2RenderingContext, program: WebGLProgram, bindings: Binding[][]): void {\n for (const bindGroup of bindings) {\n for (const binding of bindGroup) {\n\n }\n }\n\n // Set up indirection table\n // this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);\n}\n */\n"],"file":"get-shader-layout.js"}
|
|
1
|
+
{"version":3,"file":"get-shader-layout.js","names":["_constants","_interopRequireDefault","require","_webglChecks","_accessor","_uniforms2","_vertexFormats","_SAMPLER_UNIFORMS_GL_","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","getShaderLayout","gl","program","_programBindings$unif","_programBindings$vary","programBindings","getProgramBindings","shaderLayout","attributes","bindings","_iterator","_step","attribute","size","Math","min","accessor","format","getVertexFormat","type","GL","FLOAT","location","stepMode","divisor","_iterator2","uniformBlocks","_step2","uniformBlock","uniforms","map","uniform","byteOffset","byteStride","arrayLength","visibility","vertex","fragment","minBindingSize","byteLength","textureUnit","_iterator3","_step3","isSamplerUniform","_getSamplerInfo","getSamplerInfo","viewDimension","sampleType","varyings","config","readAttributeBindings","readUniformBindings","readUniformBlocks","readVaryings","seal","count","getProgramParameter","ACTIVE_ATTRIBUTES","index","activeInfo","getActiveAttrib","Error","compositeType","getAttribLocation","_decodeAttributeType","decodeAttributeType","glType","components","attributeInfo","Accessor","sort","a","b","isWebGL2","gl2","TRANSFORM_FEEDBACK_VARYINGS","getTransformFeedbackVarying","_decodeUniformType","decodeUniformType","varying","uniformCount","ACTIVE_UNIFORMS","getActiveUniform","rawName","_parseUniformName","parseUniformName","webglLocation","getUniformLocation","uniformInfo","j","elementName","concat","arrayElementUniformInfo","getBlockParameter","blockIndex","pname","getActiveUniformBlockParameter","blockCount","ACTIVE_UNIFORM_BLOCKS","blockInfo","getActiveUniformBlockName","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_ACTIVE_UNIFORMS","uniformIndices","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","uniformType","getActiveUniforms","UNIFORM_TYPE","uniformArrayLength","UNIFORM_SIZE","uniformOffset","UNIFORM_OFFSET","uniformStride","UNIFORM_ARRAY_STRIDE","SAMPLER_UNIFORMS_GL_TO_GPU","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","sampler","_sampler","_slicedToArray2","UNIFORM_NAME_REGEXP","matches","match","Boolean"],"sources":["../../../../src/adapter/helpers/get-shader-layout.ts"],"sourcesContent":["// luma.gl, MIT license\n\nimport {\n ShaderLayout,\n // BindingLayout,\n UniformBinding,\n UniformBlockBinding,\n ProgramBindings,\n AttributeBinding,\n VaryingBinding,\n // AttributeLayout,\n AccessorObject\n} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport Accessor from '../../classic/accessor'; // TODO - should NOT depend on classic API\nimport {decodeUniformType, decodeAttributeType} from './uniforms';\nimport {getVertexFormat} from '../converters/vertex-formats';\nimport {isSamplerUniform} from './uniforms';\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram): ShaderLayout {\n const programBindings = getProgramBindings(gl, program);\n\n const shaderLayout: ShaderLayout = {\n attributes: [],\n bindings: []\n };\n\n for (const attribute of programBindings.attributes) {\n // TODO - multicolumn attributes like a matrix4 can be up to 16 elts...\n const size = Math.min(attribute.accessor.size, 4);\n const format =\n // attribute.accessor.format ||\n getVertexFormat(attribute.accessor.type || GL.FLOAT, size);\n shaderLayout.attributes.push({\n name: attribute.name,\n location: attribute.location,\n format,\n stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'\n });\n }\n\n // Uniform blocks\n for (const uniformBlock of programBindings.uniformBlocks) {\n const uniforms = uniformBlock.uniforms.map((uniform) => ({\n name: uniform.name,\n format: uniform.format,\n byteOffset: uniform.byteOffset,\n byteStride: uniform.byteStride,\n arrayLength: uniform.arrayLength\n }));\n shaderLayout.bindings.push({\n type: 'uniform',\n name: uniformBlock.name,\n location: uniformBlock.location,\n visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),\n minBindingSize: uniformBlock.byteLength,\n uniforms\n });\n }\n\n let textureUnit = 0;\n for (const uniform of programBindings.uniforms) {\n if (isSamplerUniform(uniform.type)) {\n const {viewDimension, sampleType} = getSamplerInfo(uniform.type);\n shaderLayout.bindings.push({\n type: 'texture',\n name: uniform.name,\n location: textureUnit,\n viewDimension,\n sampleType\n });\n\n // @ts-expect-error\n uniform.textureUnit = textureUnit;\n textureUnit += 1;\n }\n }\n\n const uniforms = programBindings.uniforms?.filter((uniform) => uniform.location !== null) || [];\n if (uniforms.length) {\n shaderLayout.uniforms = uniforms;\n }\n if (programBindings.varyings?.length) {\n shaderLayout.varyings = programBindings.varyings;\n }\n\n return shaderLayout;\n}\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getProgramBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): ProgramBindings {\n const config: ProgramBindings = {\n attributes: readAttributeBindings(gl, program),\n uniforms: readUniformBindings(gl, program),\n uniformBlocks: readUniformBlocks(gl, program),\n varyings: readVaryings(gl, program)\n };\n\n Object.seal(config);\n return config;\n // generateWebGPUStyleBindings(bindings);\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readAttributeBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): AttributeBinding[] {\n const attributes: AttributeBinding[] = [];\n\n const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (let index = 0; index < count; index++) {\n const activeInfo = gl.getActiveAttrib(program, index);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const location = gl.getAttribLocation(program, name);\n // Add only user provided attributes, for built-in attributes like\n // `gl_InstanceID` locaiton will be < 0\n if (location >= 0) {\n const {glType, components} = decodeAttributeType(compositeType);;\n const accessor: AccessorObject = {type: glType, size: size * components};\n // Any attribute name containing the word \"instance\" will be assumed to be instanced\n if (/instance/i.test(name)) {\n accessor.divisor = 1;\n }\n const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values\n attributes.push(attributeInfo);\n }\n }\n\n attributes.sort((a: AttributeBinding, b: AttributeBinding) => a.location - b.location);\n return attributes;\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): VaryingBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const varyings: VaryingBinding[] = [];\n\n const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);\n for (let location = 0; location < count; location++) {\n const activeInfo = gl2.getTransformFeedbackVarying(program, location);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const {glType, components} = decodeUniformType(compositeType);;\n const accessor = new Accessor({type: glType, size: size * components});\n const varying = {location, name, accessor}; // Base values\n varyings.push(varying);\n }\n\n varyings.sort((a, b) => a.location - b.location);\n return varyings;\n}\n\n/**\n * Extract info about all uniforms\n *\n * Query uniform locations and build name to setter map.\n */\nfunction readUniformBindings(gl: WebGLRenderingContext, program: WebGLProgram): UniformBinding[] {\n const uniforms: UniformBinding[] = [];\n\n const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);\n for (let i = 0; i < uniformCount; i++) {\n const activeInfo = gl.getActiveUniform(program, i);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name: rawName, size, type} = activeInfo;\n const {name, isArray} = parseUniformName(rawName);\n let webglLocation = gl.getUniformLocation(program, name);\n const uniformInfo = {\n // WebGL locations are uniquely typed but just numbers\n location: webglLocation as number,\n name,\n size,\n type,\n isArray\n };\n uniforms.push(uniformInfo);\n\n // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks\n if (uniformInfo.size > 1) {\n for (let j = 0; j < uniformInfo.size; j++) {\n const elementName = `${name}[${j}]`;\n\n webglLocation = gl.getUniformLocation(program, elementName);\n\n const arrayElementUniformInfo = {\n ...uniformInfo,\n name: elementName,\n location: webglLocation as number\n };\n\n uniforms.push(arrayElementUniformInfo);\n }\n }\n }\n return uniforms;\n}\n\n/**\n * Extract info about all \"active\" uniform blocks\n *\n * (\"Active\" just means that unused (aka inactive) blocks may have been\n * optimized away during linking)\n */\nfunction readUniformBlocks(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): UniformBlockBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const getBlockParameter = (blockIndex: number, pname: GL): any =>\n gl2.getActiveUniformBlockParameter(program, blockIndex, pname);\n\n const uniformBlocks: UniformBlockBinding[] = [];\n\n const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {\n const blockInfo: UniformBlockBinding = {\n name: gl2.getActiveUniformBlockName(program, blockIndex) || '',\n location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),\n byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),\n vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n uniforms: [] as any[]\n };\n\n const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) as number[] || [];\n\n const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.\n const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.\n // const uniformBlockIndex = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_BLOCK_INDEX\n // ); // Array of GLint indicating the block indices of the uniforms.\n const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.\n const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.\n // const uniformMatrixStride = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_MATRIX_STRIDE\n // ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.\n // const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);\n for (let i = 0; i < blockInfo.uniformCount; ++i) {\n const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n \n blockInfo.uniforms.push({\n name: activeInfo.name,\n format: decodeUniformType(uniformType[i]).format,\n type: uniformType[i],\n arrayLength: uniformArrayLength[i],\n byteOffset: uniformOffset[i],\n byteStride: uniformStride[i],\n // matrixStride: uniformStride[i],\n // rowMajor: uniformRowMajor[i]\n });\n }\n\n uniformBlocks.push(blockInfo);\n }\n\n uniformBlocks.sort((a, b) => a.location - b.location);\n return uniformBlocks;\n}\n\nconst SAMPLER_UNIFORMS_GL_TO_GPU: Record<\n number,\n [\n '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d',\n 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint'\n ]\n> = {\n [GL.SAMPLER_2D]: ['2d', 'float'],\n [GL.SAMPLER_CUBE]: ['cube', 'float'],\n [GL.SAMPLER_3D]: ['3d', 'float'],\n [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],\n [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],\n [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],\n [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],\n [GL.INT_SAMPLER_2D]: ['2d', 'sint'],\n [GL.INT_SAMPLER_3D]: ['3d', 'sint'],\n [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],\n [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']\n};\n\ntype SamplerInfo = | {\n viewDimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';\n sampleType: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint';\n};\n\nfunction getSamplerInfo(type: GL): SamplerInfo {\n let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];\n if (!sampler) {\n throw new Error('sampler');\n }\n const [viewDimension, sampleType] = sampler;\n return {viewDimension, sampleType};\n}\n\n// HELPERS\n\nfunction parseUniformName(name: string): {name: string; length: number; isArray: boolean} {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: matches[2] ? 1 : 0,\n isArray: Boolean(matches[2])\n };\n}\n\n/**\n * TODO - verify this is a copy of above and delete\n * import type {TextureFormat} from '@luma.gl/api';\n* Extract info about all \"active\" uniform blocks\n * (\"Active\" just means that unused (inactive) blocks may have been optimized away during linking)\n *\n function getUniformBlockBindings(gl: WebGLRenderingContext, program): Binding[] {\n if (!isWebGL2(gl)) {\n return;\n }\n const bindings: Binding[] = [];\n const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < count; blockIndex++) {\n const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n const visibility = (vertex) + (fragment);\n const binding: BufferBinding = {\n location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),\n // name: gl.getActiveUniformBlockName(program, blockIndex),\n type: 'uniform',\n visibility,\n minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),\n // uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n // uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),\n }\n bindings.push(binding);\n }\n return bindings;\n}\n\nfunction setBindings(gl2: WebGL2RenderingContext, program: WebGLProgram, bindings: Binding[][]): void {\n for (const bindGroup of bindings) {\n for (const binding of bindGroup) {\n\n }\n }\n\n // Set up indirection table\n // this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);\n}\n */\n"],"mappings":"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"}
|
|
@@ -1,57 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.parseShaderCompilerLog = parseShaderCompilerLog;
|
|
9
|
-
|
|
10
8
|
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
|
|
11
|
-
|
|
12
9
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
13
|
-
|
|
14
10
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
-
|
|
16
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
-
|
|
11
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
18
12
|
var MESSAGE_TYPES = ['warning', 'error', 'info'];
|
|
19
|
-
|
|
20
13
|
function parseShaderCompilerLog(errLog) {
|
|
21
14
|
var lines = errLog.split(/\r?\n/);
|
|
22
15
|
var messages = [];
|
|
23
|
-
|
|
24
16
|
var _iterator = _createForOfIteratorHelper(lines),
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
_step;
|
|
27
18
|
try {
|
|
28
19
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
29
20
|
var line = _step.value;
|
|
30
|
-
|
|
31
21
|
if (line.length <= 1) {
|
|
32
22
|
continue;
|
|
33
23
|
}
|
|
34
|
-
|
|
35
24
|
var segments = line.split(':');
|
|
36
|
-
|
|
37
25
|
var _segments = (0, _toArray2.default)(segments),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
26
|
+
messageType = _segments[0],
|
|
27
|
+
linePosition = _segments[1],
|
|
28
|
+
lineNumber = _segments[2],
|
|
29
|
+
rest = _segments.slice(3);
|
|
43
30
|
var lineNum = parseInt(lineNumber, 10);
|
|
44
|
-
|
|
45
31
|
if (isNaN(lineNum)) {
|
|
46
32
|
lineNum = 0;
|
|
47
33
|
}
|
|
48
|
-
|
|
49
34
|
var linePos = parseInt(linePosition, 10);
|
|
50
|
-
|
|
51
35
|
if (isNaN(linePos)) {
|
|
52
36
|
linePos = 0;
|
|
53
37
|
}
|
|
54
|
-
|
|
55
38
|
var lowerCaseType = messageType.toLowerCase();
|
|
56
39
|
var type = MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info';
|
|
57
40
|
messages.push({
|
|
@@ -66,7 +49,6 @@ function parseShaderCompilerLog(errLog) {
|
|
|
66
49
|
} finally {
|
|
67
50
|
_iterator.f();
|
|
68
51
|
}
|
|
69
|
-
|
|
70
52
|
return messages;
|
|
71
53
|
}
|
|
72
54
|
//# sourceMappingURL=parse-shader-compiler-log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"parse-shader-compiler-log.js","names":["MESSAGE_TYPES","parseShaderCompilerLog","errLog","lines","split","messages","_iterator","_createForOfIteratorHelper","_step","s","n","done","line","value","length","segments","_segments","_toArray2","default","messageType","linePosition","lineNumber","rest","slice","lineNum","parseInt","isNaN","linePos","lowerCaseType","toLowerCase","type","includes","push","message","join","trim","err","e","f"],"sources":["../../../../src/adapter/helpers/parse-shader-compiler-log.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {CompilerMessage} from '@luma.gl/api';\n\nconst MESSAGE_TYPES = ['warning', 'error', 'info'];\n\n/**\n * Parse a WebGL-format GLSL compilation log into an array of WebGPU style message records.\n * This follows documented WebGL conventions for compilation logs.\n * Based on https://github.com/wwwtyro/gl-format-compiler-error (public domain)\n */\nexport function parseShaderCompilerLog(errLog: string) : readonly CompilerMessage[] {\n // Parse the error - note: browser and driver dependent\n const lines = errLog.split(/\\r?\\n/);\n\n const messages: CompilerMessage[] = [];\n\n for (const line of lines) {\n if (line.length <= 1) {\n continue;\n }\n\n const segments: string[] = line.split(':');\n const [messageType, linePosition, lineNumber, ...rest] = segments;\n\n let lineNum = parseInt(lineNumber, 10);\n if (isNaN(lineNum)) {\n lineNum = 0;\n }\n\n let linePos = parseInt(linePosition, 10);\n if (isNaN(linePos)) {\n linePos = 0;\n }\n\n // Ensure supported type\n const lowerCaseType = messageType.toLowerCase();\n const type = (MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info') as 'warning' | 'error' | 'info';\n\n messages.push({\n message: rest.join(':').trim(),\n type,\n lineNum,\n linePos // TODO\n })\n }\n\n return messages;\n}\n"],"mappings":";;;;;;;;;;;AAGA,IAAMA,aAAa,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AAO3C,SAASC,sBAAsBA,CAACC,MAAc,EAA+B;EAElF,IAAMC,KAAK,GAAGD,MAAM,CAACE,KAAK,CAAC,OAAO,CAAC;EAEnC,IAAMC,QAA2B,GAAG,EAAE;EAAC,IAAAC,SAAA,GAAAC,0BAAA,CAEpBJ,KAAK;IAAAK,KAAA;EAAA;IAAxB,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA0B;MAAA,IAAfC,IAAI,GAAAJ,KAAA,CAAAK,KAAA;MACb,IAAID,IAAI,CAACE,MAAM,IAAI,CAAC,EAAE;QACpB;MACF;MAEA,IAAMC,QAAkB,GAAGH,IAAI,CAACR,KAAK,CAAC,GAAG,CAAC;MAC1C,IAAAY,SAAA,OAAAC,SAAA,CAAAC,OAAA,EAAyDH,QAAQ;QAA1DI,WAAW,GAAAH,SAAA;QAAEI,YAAY,GAAAJ,SAAA;QAAEK,UAAU,GAAAL,SAAA;QAAKM,IAAI,GAAAN,SAAA,CAAAO,KAAA;MAErD,IAAIC,OAAO,GAAGC,QAAQ,CAACJ,UAAU,EAAE,EAAE,CAAC;MACtC,IAAIK,KAAK,CAACF,OAAO,CAAC,EAAE;QAClBA,OAAO,GAAG,CAAC;MACb;MAEA,IAAIG,OAAO,GAAGF,QAAQ,CAACL,YAAY,EAAE,EAAE,CAAC;MACxC,IAAIM,KAAK,CAACC,OAAO,CAAC,EAAE;QAClBA,OAAO,GAAG,CAAC;MACb;MAGA,IAAMC,aAAa,GAAGT,WAAW,CAACU,WAAW,EAAE;MAC/C,IAAMC,IAAI,GAAI9B,aAAa,CAAC+B,QAAQ,CAACH,aAAa,CAAC,GAAGA,aAAa,GAAG,MAAuC;MAE7GvB,QAAQ,CAAC2B,IAAI,CAAC;QACZC,OAAO,EAAEX,IAAI,CAACY,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,EAAE;QAC9BL,IAAI,EAAJA,IAAI;QACJN,OAAO,EAAPA,OAAO;QACPG,OAAO,EAAPA;MACF,CAAC,CAAC;IACJ;EAAC,SAAAS,GAAA;IAAA9B,SAAA,CAAA+B,CAAA,CAAAD,GAAA;EAAA;IAAA9B,SAAA,CAAAgC,CAAA;EAAA;EAED,OAAOjC,QAAQ;AACjB"}
|