@luma.gl/webgl 8.5.10 → 8.6.0-alpha.4
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 +8 -1
- package/dist/_deprecated/context-api.d.ts +85 -0
- package/dist/_deprecated/context-api.d.ts.map +1 -0
- package/dist/_deprecated/context-api.js +70 -0
- package/dist/_deprecated/context-api.js.map +1 -0
- package/dist/_deprecated/features.d.ts +27 -0
- package/dist/_deprecated/features.d.ts.map +1 -0
- package/{src/features/webgl-features-table.js → dist/_deprecated/features.js} +66 -59
- package/dist/_deprecated/features.js.map +1 -0
- package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
- package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/set-device-parameters.js +124 -0
- package/dist/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
- package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
- package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.d.ts +12 -0
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
- package/dist/adapter/device-helpers/device-features.js +123 -0
- package/dist/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
- package/dist/adapter/device-helpers/device-limits.js +90 -0
- package/dist/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
- package/dist/adapter/device-helpers/get-device-info.js +44 -0
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
- package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +111 -0
- package/dist/adapter/webgl-device.d.ts.map +1 -0
- package/dist/adapter/webgl-device.js +208 -0
- package/dist/adapter/webgl-device.js.map +1 -0
- package/dist/adapter/webgl-shader.d.ts +18 -0
- package/dist/adapter/webgl-shader.d.ts.map +1 -0
- package/dist/adapter/webgl-shader.js +82 -0
- package/dist/adapter/webgl-shader.js.map +1 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +5 -0
- package/dist/bundle.js.map +1 -0
- package/dist/classes/accessor.d.ts +28 -0
- package/dist/classes/accessor.d.ts.map +1 -0
- package/dist/classes/accessor.js +112 -0
- package/dist/classes/accessor.js.map +1 -0
- package/dist/classes/accessor.ts.disabled +159 -0
- package/dist/classes/clear.d.ts +17 -0
- package/dist/classes/clear.d.ts.map +1 -0
- package/{src → dist}/classes/clear.js +29 -23
- package/dist/classes/clear.js.map +1 -0
- package/dist/classes/copy-and-blit.d.ts +86 -0
- package/dist/classes/copy-and-blit.d.ts.map +1 -0
- package/dist/classes/copy-and-blit.js +338 -0
- package/dist/classes/copy-and-blit.js.map +1 -0
- package/dist/classes/framebuffer.d.ts +139 -0
- package/dist/classes/framebuffer.d.ts.map +1 -0
- package/dist/classes/framebuffer.js +656 -0
- package/dist/classes/framebuffer.js.map +1 -0
- package/dist/classes/program-configuration.d.ts +24 -0
- package/dist/classes/program-configuration.d.ts.map +1 -0
- package/dist/classes/program-configuration.js +73 -0
- package/dist/classes/program-configuration.js.map +1 -0
- package/dist/classes/program.d.ts +66 -0
- package/dist/classes/program.d.ts.map +1 -0
- package/dist/classes/program.js +379 -0
- package/dist/classes/program.js.map +1 -0
- package/dist/classes/query.d.ts +27 -0
- package/dist/classes/query.d.ts.map +1 -0
- package/dist/classes/query.js +145 -0
- package/dist/classes/query.js.map +1 -0
- package/dist/classes/renderbuffer-formats.d.ts +16 -0
- package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
- package/dist/classes/renderbuffer-formats.js +185 -0
- package/dist/classes/renderbuffer-formats.js.map +1 -0
- package/dist/classes/renderbuffer.d.ts +60 -0
- package/dist/classes/renderbuffer.d.ts.map +1 -0
- package/dist/classes/renderbuffer.js +128 -0
- package/dist/classes/renderbuffer.js.map +1 -0
- package/dist/classes/shader.d.ts +42 -0
- package/dist/classes/shader.d.ts.map +1 -0
- package/dist/classes/shader.js +118 -0
- package/dist/classes/shader.js.map +1 -0
- package/dist/classes/texture-2d.d.ts +9 -0
- package/dist/classes/texture-2d.d.ts.map +1 -0
- package/dist/classes/texture-2d.js +36 -0
- package/dist/classes/texture-2d.js.map +1 -0
- package/dist/classes/texture-3d.d.ts +29 -0
- package/dist/classes/texture-3d.d.ts.map +1 -0
- package/dist/classes/texture-3d.js +76 -0
- package/dist/classes/texture-3d.js.map +1 -0
- package/dist/classes/texture-cube.d.ts +28 -0
- package/dist/classes/texture-cube.d.ts.map +1 -0
- package/dist/classes/texture-cube.js +130 -0
- package/dist/classes/texture-cube.js.map +1 -0
- package/dist/classes/texture-formats.d.ts +37 -0
- package/dist/classes/texture-formats.d.ts.map +1 -0
- package/dist/classes/texture-formats.js +98 -0
- package/dist/classes/texture-formats.js.map +1 -0
- package/dist/classes/texture.d.ts +123 -0
- package/dist/classes/texture.d.ts.map +1 -0
- package/dist/classes/texture.js +786 -0
- package/dist/classes/texture.js.map +1 -0
- package/dist/classes/transform-feedback.d.ts +33 -0
- package/dist/classes/transform-feedback.d.ts.map +1 -0
- package/dist/classes/transform-feedback.js +198 -0
- package/dist/classes/transform-feedback.js.map +1 -0
- package/dist/classes/uniform-buffer-layout.d.ts +17 -0
- package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
- package/dist/classes/uniform-buffer-layout.js +104 -0
- package/dist/classes/uniform-buffer-layout.js.map +1 -0
- package/dist/classes/uniforms.d.ts +37 -0
- package/dist/classes/uniforms.d.ts.map +1 -0
- package/dist/classes/uniforms.js +250 -0
- package/dist/classes/uniforms.js.map +1 -0
- package/dist/classes/vertex-array-object.d.ts +76 -0
- package/dist/classes/vertex-array-object.d.ts.map +1 -0
- package/dist/classes/vertex-array-object.js +261 -0
- package/dist/classes/vertex-array-object.js.map +1 -0
- package/dist/classes/vertex-array.d.ts +75 -0
- package/dist/classes/vertex-array.d.ts.map +1 -0
- package/dist/classes/vertex-array.js +408 -0
- package/dist/classes/vertex-array.js.map +1 -0
- package/dist/classes/webgl-buffer.d.ts +100 -0
- package/dist/classes/webgl-buffer.d.ts.map +1 -0
- package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
- package/dist/classes/webgl-buffer.js.map +1 -0
- package/dist/classes/webgl-resource.d.ts +56 -0
- package/dist/classes/webgl-resource.d.ts.map +1 -0
- package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
- package/dist/classes/webgl-resource.js.map +1 -0
- package/dist/context/context/context-state.d.ts +18 -0
- package/dist/context/context/context-state.d.ts.map +1 -0
- package/dist/context/context/context-state.js +26 -0
- package/dist/context/context/context-state.js.map +1 -0
- package/dist/context/context/create-context.d.ts +40 -0
- package/dist/context/context/create-context.d.ts.map +1 -0
- package/dist/context/context/create-context.js +37 -0
- package/dist/context/context/create-context.js.map +1 -0
- package/dist/context/context/device-pixels.d.ts +25 -0
- package/dist/context/context/device-pixels.d.ts.map +1 -0
- package/dist/context/context/device-pixels.js +98 -0
- package/dist/context/context/device-pixels.js.map +1 -0
- package/dist/context/context/get-canvas.d.ts +13 -0
- package/dist/context/context/get-canvas.d.ts.map +1 -0
- package/dist/context/context/get-canvas.js +31 -0
- package/dist/context/context/get-canvas.js.map +1 -0
- package/dist/context/context/resize-context.d.ts +20 -0
- package/dist/context/context/resize-context.d.ts.map +1 -0
- package/dist/context/context/resize-context.js +15 -0
- package/dist/context/context/resize-context.js.map +1 -0
- package/dist/context/context/webgl-checks.d.ts +13 -0
- package/dist/context/context/webgl-checks.d.ts.map +1 -0
- package/dist/context/context/webgl-checks.js +34 -0
- package/dist/context/context/webgl-checks.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
- package/dist/context/parameters/unified-parameter-api.js +65 -0
- package/dist/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.js +445 -0
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/context/parameters/webgl-parameters.d.ts +144 -0
- package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
- package/dist/context/parameters/webgl-parameters.js +2 -0
- package/dist/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/context/polyfill/polyfill-context.d.ts +5 -0
- package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-context.js +91 -0
- package/dist/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/context/polyfill/polyfill-table.d.ts +48 -0
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-table.js +160 -0
- package/dist/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.js +21 -0
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/context/state-tracker/track-context-state.d.ts +22 -0
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
- package/dist/context/state-tracker/track-context-state.js +169 -0
- package/dist/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/context/state-tracker/with-parameters.d.ts +13 -0
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
- package/dist/context/state-tracker/with-parameters.js +36 -0
- package/dist/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/debug/debug-program-configuration.d.ts +2 -0
- package/dist/debug/debug-program-configuration.d.ts.map +1 -0
- package/dist/debug/debug-program-configuration.js +40 -0
- package/dist/debug/debug-program-configuration.js.map +1 -0
- package/dist/debug/debug-uniforms.d.ts +12 -0
- package/dist/debug/debug-uniforms.d.ts.map +1 -0
- package/dist/debug/debug-uniforms.js +108 -0
- package/dist/debug/debug-uniforms.js.map +1 -0
- package/dist/debug/debug-vertex-array.d.ts +5 -0
- package/dist/debug/debug-vertex-array.d.ts.map +1 -0
- package/dist/debug/debug-vertex-array.js +118 -0
- package/dist/debug/debug-vertex-array.js.map +1 -0
- package/dist/es5/_deprecated/context-api.js +110 -0
- package/dist/es5/_deprecated/context-api.js.map +1 -0
- package/dist/es5/_deprecated/features.js +118 -0
- package/dist/es5/_deprecated/features.js.map +1 -0
- package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
- package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
- package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-features.js +152 -0
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/es5/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +279 -0
- package/dist/es5/adapter/webgl-device.js.map +1 -0
- package/dist/es5/adapter/webgl-shader.js +155 -0
- package/dist/es5/adapter/webgl-shader.js.map +1 -0
- package/dist/es5/bundle.js +2 -4
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classes/accessor.js +36 -38
- package/dist/es5/classes/accessor.js.map +1 -1
- package/dist/es5/classes/accessor.ts.disabled +159 -0
- package/dist/es5/classes/clear.js +17 -11
- package/dist/es5/classes/clear.js.map +1 -1
- package/dist/es5/classes/copy-and-blit.js +121 -117
- package/dist/es5/classes/copy-and-blit.js.map +1 -1
- package/dist/es5/classes/framebuffer.js +435 -423
- package/dist/es5/classes/framebuffer.js.map +1 -1
- package/dist/es5/classes/program-configuration.js +44 -108
- package/dist/es5/classes/program-configuration.js.map +1 -1
- package/dist/es5/classes/program.js +108 -85
- package/dist/es5/classes/program.js.map +1 -1
- package/dist/es5/classes/query.js +58 -59
- package/dist/es5/classes/query.js.map +1 -1
- package/dist/es5/classes/renderbuffer-formats.js +79 -52
- package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
- package/dist/es5/classes/renderbuffer.js +129 -100
- package/dist/es5/classes/renderbuffer.js.map +1 -1
- package/dist/es5/classes/shader.js +70 -96
- package/dist/es5/classes/shader.js.map +1 -1
- package/dist/es5/classes/texture-2d.js +25 -21
- package/dist/es5/classes/texture-2d.js.map +1 -1
- package/dist/es5/classes/texture-3d.js +49 -29
- package/dist/es5/classes/texture-3d.js.map +1 -1
- package/dist/es5/classes/texture-cube.js +45 -36
- package/dist/es5/classes/texture-cube.js.map +1 -1
- package/dist/es5/classes/texture-formats.js +35 -33
- package/dist/es5/classes/texture-formats.js.map +1 -1
- package/dist/es5/classes/texture.js +213 -101
- package/dist/es5/classes/texture.js.map +1 -1
- package/dist/es5/classes/transform-feedback.js +37 -34
- package/dist/es5/classes/transform-feedback.js.map +1 -1
- package/dist/es5/classes/uniform-buffer-layout.js +4 -4
- package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/es5/classes/uniforms.js +73 -73
- package/dist/es5/classes/uniforms.js.map +1 -1
- package/dist/es5/classes/vertex-array-object.js +106 -149
- package/dist/es5/classes/vertex-array-object.js.map +1 -1
- package/dist/es5/classes/vertex-array.js +52 -43
- package/dist/es5/classes/vertex-array.js.map +1 -1
- package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
- package/dist/es5/classes/webgl-buffer.js.map +1 -0
- package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
- package/dist/es5/classes/webgl-resource.js.map +1 -0
- package/dist/es5/context/context/context-state.js +31 -0
- package/dist/es5/context/context/context-state.js.map +1 -0
- package/dist/es5/context/context/create-context.js +57 -0
- package/dist/es5/context/context/create-context.js.map +1 -0
- package/dist/es5/context/context/device-pixels.js +115 -0
- package/dist/es5/context/context/device-pixels.js.map +1 -0
- package/dist/es5/context/context/get-canvas.js +40 -0
- package/dist/es5/context/context/get-canvas.js.map +1 -0
- package/dist/es5/context/context/resize-context.js +23 -0
- package/dist/es5/context/context/resize-context.js.map +1 -0
- package/dist/es5/context/context/webgl-checks.js +54 -0
- package/dist/es5/context/context/webgl-checks.js.map +1 -0
- package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/es5/context/parameters/webgl-parameters.js +6 -0
- package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-context.js +134 -0
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-table.js +166 -0
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/es5/context/state-tracker/track-context-state.js +196 -0
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/es5/context/state-tracker/with-parameters.js +44 -0
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/es5/debug/debug-program-configuration.js +1 -1
- package/dist/es5/debug/debug-program-configuration.js.map +1 -1
- package/dist/es5/debug/debug-uniforms.js +18 -20
- package/dist/es5/debug/debug-uniforms.js.map +1 -1
- package/dist/es5/debug/debug-vertex-array.js +16 -16
- package/dist/es5/debug/debug-vertex-array.js.map +1 -1
- package/dist/es5/helpers/get-program-bindings.js +274 -0
- package/dist/es5/helpers/get-program-bindings.js.map +1 -0
- package/dist/es5/helpers/program-bindings.js +2 -0
- package/dist/es5/helpers/program-bindings.js.map +1 -0
- package/dist/es5/index.js +229 -99
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +21 -41
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/types/accessor.d.ts +29 -0
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/webgl-utils/attribute-utils.js +4 -4
- package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
- package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/es5/webgl-utils/format-utils.js +21 -17
- package/dist/es5/webgl-utils/format-utils.js.map +1 -1
- package/dist/es5/webgl-utils/get-error.js.map +1 -1
- package/dist/es5/webgl-utils/index.js +74 -0
- package/dist/es5/webgl-utils/index.js.map +1 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
- package/dist/es5/webgl-utils/texture-utils.js +6 -4
- package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
- package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
- package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/esm/_deprecated/context-api.js +70 -0
- package/dist/esm/_deprecated/context-api.js.map +1 -0
- package/dist/esm/{features/webgl-features-table.js → _deprecated/features.js} +66 -26
- package/dist/esm/_deprecated/features.js.map +1 -0
- package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
- package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
- package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-features.js +123 -0
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/esm/adapter/device-helpers/is-old-ie.js +8 -0
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +208 -0
- package/dist/esm/adapter/webgl-device.js.map +1 -0
- package/dist/esm/adapter/webgl-shader.js +82 -0
- package/dist/esm/adapter/webgl-shader.js.map +1 -0
- package/dist/esm/bundle.js +2 -4
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classes/accessor.js +6 -6
- package/dist/esm/classes/accessor.js.map +1 -1
- package/dist/esm/classes/accessor.ts.disabled +159 -0
- package/dist/esm/classes/clear.js +19 -14
- package/dist/esm/classes/clear.js.map +1 -1
- package/dist/esm/classes/copy-and-blit.js +67 -64
- package/dist/esm/classes/copy-and-blit.js.map +1 -1
- package/dist/esm/classes/framebuffer.js +341 -313
- package/dist/esm/classes/framebuffer.js.map +1 -1
- package/dist/esm/classes/program-configuration.js +25 -104
- package/dist/esm/classes/program-configuration.js.map +1 -1
- package/dist/esm/classes/program.js +98 -62
- package/dist/esm/classes/program.js.map +1 -1
- package/dist/esm/classes/query.js +20 -16
- package/dist/esm/classes/query.js.map +1 -1
- package/dist/esm/classes/renderbuffer-formats.js +72 -49
- package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
- package/dist/esm/classes/renderbuffer.js +86 -73
- package/dist/esm/classes/renderbuffer.js.map +1 -1
- package/dist/esm/classes/shader.js +47 -67
- package/dist/esm/classes/shader.js.map +1 -1
- package/dist/esm/classes/texture-2d.js +13 -9
- package/dist/esm/classes/texture-2d.js.map +1 -1
- package/dist/esm/classes/texture-3d.js +28 -16
- package/dist/esm/classes/texture-3d.js.map +1 -1
- package/dist/esm/classes/texture-cube.js +45 -31
- package/dist/esm/classes/texture-cube.js.map +1 -1
- package/dist/esm/classes/texture-formats.js +52 -51
- package/dist/esm/classes/texture-formats.js.map +1 -1
- package/dist/esm/classes/texture.js +174 -58
- package/dist/esm/classes/texture.js.map +1 -1
- package/dist/esm/classes/transform-feedback.js +26 -14
- package/dist/esm/classes/transform-feedback.js.map +1 -1
- package/dist/esm/classes/uniform-buffer-layout.js +1 -1
- package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/esm/classes/uniforms.js +111 -113
- package/dist/esm/classes/uniforms.js.map +1 -1
- package/dist/esm/classes/vertex-array-object.js +52 -89
- package/dist/esm/classes/vertex-array-object.js.map +1 -1
- package/dist/esm/classes/vertex-array.js +52 -31
- package/dist/esm/classes/vertex-array.js.map +1 -1
- package/dist/esm/classes/webgl-buffer.js +382 -0
- package/dist/esm/classes/webgl-buffer.js.map +1 -0
- package/dist/esm/classes/webgl-resource.js +212 -0
- package/dist/esm/classes/webgl-resource.js.map +1 -0
- package/dist/esm/context/context/context-state.js +26 -0
- package/dist/esm/context/context/context-state.js.map +1 -0
- package/dist/esm/context/context/create-context.js +37 -0
- package/dist/esm/context/context/create-context.js.map +1 -0
- package/dist/esm/context/context/device-pixels.js +98 -0
- package/dist/esm/context/context/device-pixels.js.map +1 -0
- package/dist/esm/context/context/get-canvas.js +31 -0
- package/dist/esm/context/context/get-canvas.js.map +1 -0
- package/dist/esm/context/context/resize-context.js +15 -0
- package/dist/esm/context/context/resize-context.js.map +1 -0
- package/dist/esm/context/context/webgl-checks.js +34 -0
- package/dist/esm/context/context/webgl-checks.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/esm/context/parameters/webgl-parameters.js +2 -0
- package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-context.js +91 -0
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-table.js +160 -0
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/esm/context/state-tracker/track-context-state.js +169 -0
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/esm/context/state-tracker/with-parameters.js +36 -0
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/esm/debug/debug-program-configuration.js +4 -4
- package/dist/esm/debug/debug-program-configuration.js.map +1 -1
- package/dist/esm/debug/debug-uniforms.js +9 -9
- package/dist/esm/debug/debug-uniforms.js.map +1 -1
- package/dist/esm/debug/debug-vertex-array.js +18 -16
- package/dist/esm/debug/debug-vertex-array.js.map +1 -1
- package/dist/esm/helpers/get-program-bindings.js +228 -0
- package/dist/esm/helpers/get-program-bindings.js.map +1 -0
- package/dist/esm/helpers/program-bindings.js +2 -0
- package/dist/esm/helpers/program-bindings.js.map +1 -0
- package/dist/esm/index.js +19 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +12 -28
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/accessor.d.ts +29 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/webgl-utils/attribute-utils.js +1 -1
- package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
- package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/esm/webgl-utils/format-utils.js +16 -15
- package/dist/esm/webgl-utils/format-utils.js.map +1 -1
- package/dist/esm/webgl-utils/get-error.js +1 -1
- package/dist/esm/webgl-utils/get-error.js.map +1 -1
- package/dist/esm/webgl-utils/index.js +5 -0
- package/dist/esm/webgl-utils/index.js.map +1 -0
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
- package/dist/esm/webgl-utils/texture-utils.js +4 -3
- package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
- package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
- package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/helpers/get-program-bindings.d.ts +8 -0
- package/dist/helpers/get-program-bindings.d.ts.map +1 -0
- package/dist/helpers/get-program-bindings.js +228 -0
- package/dist/helpers/get-program-bindings.js.map +1 -0
- package/dist/helpers/program-bindings.d.ts +41 -0
- package/dist/helpers/program-bindings.d.ts.map +1 -0
- package/dist/helpers/program-bindings.js +2 -0
- package/dist/helpers/program-bindings.js.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +5 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +33 -0
- package/dist/init.js.map +1 -0
- package/dist/types/accessor.d.ts +29 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/webgl-utils/attribute-utils.d.ts +18 -0
- package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
- package/dist/webgl-utils/attribute-utils.js +182 -0
- package/dist/webgl-utils/attribute-utils.js.map +1 -0
- package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
- package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
- package/dist/webgl-utils/constants-to-keys.js +41 -0
- package/dist/webgl-utils/constants-to-keys.js.map +1 -0
- package/dist/webgl-utils/format-utils.d.ts +3 -0
- package/dist/webgl-utils/format-utils.d.ts.map +1 -0
- package/dist/webgl-utils/format-utils.js +45 -0
- package/dist/webgl-utils/format-utils.js.map +1 -0
- package/dist/webgl-utils/get-error.d.ts +3 -0
- package/dist/webgl-utils/get-error.d.ts.map +1 -0
- package/dist/webgl-utils/get-error.js +41 -0
- package/dist/webgl-utils/get-error.js.map +1 -0
- package/dist/webgl-utils/index.d.ts +5 -0
- package/dist/webgl-utils/index.d.ts.map +1 -0
- package/dist/webgl-utils/index.js +5 -0
- package/dist/webgl-utils/index.js.map +1 -0
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
- package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
- package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
- package/dist/webgl-utils/request-animation-frame.js +7 -0
- package/dist/webgl-utils/request-animation-frame.js.map +1 -0
- package/dist/webgl-utils/texture-utils.d.ts +15 -0
- package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
- package/dist/webgl-utils/texture-utils.js +48 -0
- package/dist/webgl-utils/texture-utils.js.map +1 -0
- package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
- package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
- package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
- package/dist/webgl-utils/typed-array-utils.js.map +1 -0
- package/package.json +9 -9
- package/src/.DS_Store +0 -0
- package/src/_deprecated/context-api.ts +140 -0
- package/src/_deprecated/features.ts +159 -0
- package/src/adapter/converters/set-device-parameters.ts +182 -0
- package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
- package/src/adapter/device-helpers/device-features.ts +227 -0
- package/src/adapter/device-helpers/device-limits.ts +150 -0
- package/src/adapter/device-helpers/get-device-info.ts +49 -0
- package/src/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.ts} +3 -3
- package/src/adapter/webgl-device.ts +406 -0
- package/src/adapter/webgl-shader.ts +84 -0
- package/src/bundle.ts +4 -0
- package/src/classes/accessor.js +2 -3
- package/src/classes/accessor.ts.disabled +159 -0
- package/src/classes/clear.ts +108 -0
- package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
- package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
- package/src/classes/program-configuration.ts +77 -0
- package/src/classes/{program.js → program.ts} +111 -77
- package/src/classes/{query.js → query.ts} +31 -25
- package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
- package/src/classes/renderbuffer.ts +154 -0
- package/src/classes/shader.ts +129 -0
- package/src/classes/texture-2d.ts +35 -0
- package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
- package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
- package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
- package/src/classes/{texture.js → texture.ts} +223 -57
- package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
- package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
- package/src/classes/{uniforms.js → uniforms.ts} +123 -77
- package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +136 -114
- package/src/classes/{vertex-array.js → vertex-array.ts} +84 -59
- package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
- package/src/classes/{resource.js → webgl-resource.ts} +55 -46
- package/src/context/context/context-state.ts +39 -0
- package/src/context/context/create-context.ts +83 -0
- package/src/context/context/device-pixels.ts +147 -0
- package/src/context/context/get-canvas.ts +37 -0
- package/src/context/context/resize-context.ts +37 -0
- package/src/context/context/webgl-checks.ts +49 -0
- package/src/context/parameters/unified-parameter-api.ts +128 -0
- package/src/context/parameters/webgl-parameter-tables.ts +625 -0
- package/src/context/parameters/webgl-parameters.ts +197 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
- package/src/context/polyfill/polyfill-context.ts +98 -0
- package/src/context/polyfill/polyfill-table.ts +162 -0
- package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
- package/src/context/state-tracker/deep-array-equal.ts +20 -0
- package/src/context/state-tracker/track-context-state.ts +250 -0
- package/src/context/state-tracker/with-parameters.ts +50 -0
- package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
- package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
- package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
- package/src/helpers/get-program-bindings.ts +244 -0
- package/src/helpers/program-bindings.ts +46 -0
- package/src/index.ts +144 -0
- package/src/{init.js → init.ts} +11 -25
- package/src/types/accessor.d.ts +29 -0
- package/src/{types.d.ts → types.ts} +1 -1
- package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
- package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
- package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
- package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
- package/src/webgl-utils/index.ts +12 -0
- package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
- package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
- package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
- package/src/webgl-utils/typed-array-utils.ts +137 -0
- package/dist/dist.js +0 -13555
- package/dist/dist.min.js +0 -1
- package/dist/es5/classes/buffer.d.ts +0 -84
- package/dist/es5/classes/buffer.js.map +0 -1
- package/dist/es5/classes/clear.d.ts +0 -11
- package/dist/es5/classes/copy-and-blit.d.ts +0 -101
- package/dist/es5/classes/framebuffer.d.ts +0 -96
- package/dist/es5/classes/program-configuration.d.ts +0 -15
- package/dist/es5/classes/program.d.ts +0 -44
- package/dist/es5/classes/query.d.ts +0 -21
- package/dist/es5/classes/renderbuffer.d.ts +0 -34
- package/dist/es5/classes/resource.d.ts +0 -47
- package/dist/es5/classes/resource.js.map +0 -1
- package/dist/es5/classes/shader.d.ts +0 -29
- package/dist/es5/classes/texture-2d.d.ts +0 -11
- package/dist/es5/classes/texture-3d.d.ts +0 -29
- package/dist/es5/classes/texture-cube.d.ts +0 -23
- package/dist/es5/classes/texture.d.ts +0 -80
- package/dist/es5/classes/transform-feedback.d.ts +0 -16
- package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
- package/dist/es5/classes/uniforms.d.ts +0 -63
- package/dist/es5/classes/vertex-array-object.d.ts +0 -25
- package/dist/es5/classes/vertex-array.d.ts +0 -37
- package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
- package/dist/es5/debug/debug-uniforms.d.ts +0 -11
- package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
- package/dist/es5/features/check-glsl-extension.js +0 -41
- package/dist/es5/features/check-glsl-extension.js.map +0 -1
- package/dist/es5/features/check-old-ie.js.map +0 -1
- package/dist/es5/features/features.js +0 -99
- package/dist/es5/features/features.js.map +0 -1
- package/dist/es5/features/index.js +0 -64
- package/dist/es5/features/index.js.map +0 -1
- package/dist/es5/features/limits.js +0 -64
- package/dist/es5/features/limits.js.map +0 -1
- package/dist/es5/features/webgl-features-table.js +0 -64
- package/dist/es5/features/webgl-features-table.js.map +0 -1
- package/dist/es5/features/webgl-limits-table.js +0 -132
- package/dist/es5/features/webgl-limits-table.js.map +0 -1
- package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
- package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
- package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-name.js +0 -14
- package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
- package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-version.js +0 -22
- package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
- package/dist/es5/glsl-utils/index.js +0 -48
- package/dist/es5/glsl-utils/index.js.map +0 -1
- package/dist/es5/index.d.ts +0 -71
- package/dist/es5/init.d.ts +0 -12
- package/dist/es5/types.d.ts +0 -8
- package/dist/es5/utils/array-utils-flat.js +0 -51
- package/dist/es5/utils/array-utils-flat.js.map +0 -1
- package/dist/es5/utils/assert.d.ts +0 -1
- package/dist/es5/utils/assert.js +0 -13
- package/dist/es5/utils/assert.js.map +0 -1
- package/dist/es5/utils/check-props.js +0 -51
- package/dist/es5/utils/check-props.js.map +0 -1
- package/dist/es5/utils/format-value.js +0 -57
- package/dist/es5/utils/format-value.js.map +0 -1
- package/dist/es5/utils/is-old-ie.d.ts +0 -1
- package/dist/es5/utils/is-old-ie.js +0 -14
- package/dist/es5/utils/is-old-ie.js.map +0 -1
- package/dist/es5/utils/load-file.js +0 -50
- package/dist/es5/utils/load-file.js.map +0 -1
- package/dist/es5/utils/stub-methods.js +0 -25
- package/dist/es5/utils/stub-methods.js.map +0 -1
- package/dist/es5/utils/utils.d.ts +0 -13
- package/dist/es5/utils/utils.js +0 -36
- package/dist/es5/utils/utils.js.map +0 -1
- package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
- package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
- package/dist/esm/classes/buffer.d.ts +0 -84
- package/dist/esm/classes/buffer.js.map +0 -1
- package/dist/esm/classes/clear.d.ts +0 -11
- package/dist/esm/classes/copy-and-blit.d.ts +0 -101
- package/dist/esm/classes/framebuffer.d.ts +0 -96
- package/dist/esm/classes/program-configuration.d.ts +0 -15
- package/dist/esm/classes/program.d.ts +0 -44
- package/dist/esm/classes/query.d.ts +0 -21
- package/dist/esm/classes/renderbuffer.d.ts +0 -34
- package/dist/esm/classes/resource.d.ts +0 -47
- package/dist/esm/classes/resource.js.map +0 -1
- package/dist/esm/classes/shader.d.ts +0 -29
- package/dist/esm/classes/texture-2d.d.ts +0 -11
- package/dist/esm/classes/texture-3d.d.ts +0 -29
- package/dist/esm/classes/texture-cube.d.ts +0 -23
- package/dist/esm/classes/texture.d.ts +0 -80
- package/dist/esm/classes/transform-feedback.d.ts +0 -16
- package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
- package/dist/esm/classes/uniforms.d.ts +0 -63
- package/dist/esm/classes/vertex-array-object.d.ts +0 -25
- package/dist/esm/classes/vertex-array.d.ts +0 -37
- package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
- package/dist/esm/debug/debug-uniforms.d.ts +0 -11
- package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
- package/dist/esm/features/check-glsl-extension.js +0 -27
- package/dist/esm/features/check-glsl-extension.js.map +0 -1
- package/dist/esm/features/check-old-ie.js.map +0 -1
- package/dist/esm/features/features.js +0 -66
- package/dist/esm/features/features.js.map +0 -1
- package/dist/esm/features/index.js +0 -5
- package/dist/esm/features/index.js.map +0 -1
- package/dist/esm/features/limits.js +0 -52
- package/dist/esm/features/limits.js.map +0 -1
- package/dist/esm/features/webgl-features-table.js.map +0 -1
- package/dist/esm/features/webgl-limits-table.js +0 -160
- package/dist/esm/features/webgl-limits-table.js.map +0 -1
- package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
- package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
- package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-name.js +0 -6
- package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
- package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-version.js +0 -15
- package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
- package/dist/esm/glsl-utils/index.js +0 -5
- package/dist/esm/glsl-utils/index.js.map +0 -1
- package/dist/esm/index.d.ts +0 -71
- package/dist/esm/init.d.ts +0 -12
- package/dist/esm/types.d.ts +0 -8
- package/dist/esm/utils/array-utils-flat.js +0 -39
- package/dist/esm/utils/array-utils-flat.js.map +0 -1
- package/dist/esm/utils/assert.d.ts +0 -1
- package/dist/esm/utils/assert.js +0 -6
- package/dist/esm/utils/assert.js.map +0 -1
- package/dist/esm/utils/check-props.js +0 -38
- package/dist/esm/utils/check-props.js.map +0 -1
- package/dist/esm/utils/format-value.js +0 -50
- package/dist/esm/utils/format-value.js.map +0 -1
- package/dist/esm/utils/is-old-ie.d.ts +0 -1
- package/dist/esm/utils/is-old-ie.js +0 -5
- package/dist/esm/utils/is-old-ie.js.map +0 -1
- package/dist/esm/utils/load-file.js +0 -30
- package/dist/esm/utils/load-file.js.map +0 -1
- package/dist/esm/utils/stub-methods.js +0 -17
- package/dist/esm/utils/stub-methods.js.map +0 -1
- package/dist/esm/utils/utils.d.ts +0 -13
- package/dist/esm/utils/utils.js +0 -22
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
- package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
- package/src/bundle.js +0 -8
- package/src/classes/buffer.d.ts +0 -84
- package/src/classes/clear.d.ts +0 -11
- package/src/classes/copy-and-blit.d.ts +0 -101
- package/src/classes/framebuffer.d.ts +0 -96
- package/src/classes/program-configuration.d.ts +0 -15
- package/src/classes/program-configuration.js +0 -123
- package/src/classes/program.d.ts +0 -44
- package/src/classes/query.d.ts +0 -21
- package/src/classes/renderbuffer.d.ts +0 -34
- package/src/classes/renderbuffer.js +0 -105
- package/src/classes/resource.d.ts +0 -47
- package/src/classes/shader.d.ts +0 -29
- package/src/classes/shader.js +0 -147
- package/src/classes/texture-2d.d.ts +0 -11
- package/src/classes/texture-2d.js +0 -30
- package/src/classes/texture-3d.d.ts +0 -29
- package/src/classes/texture-cube.d.ts +0 -23
- package/src/classes/texture.d.ts +0 -80
- package/src/classes/transform-feedback.d.ts +0 -16
- package/src/classes/uniform-buffer-layout.d.ts +0 -18
- package/src/classes/uniforms.d.ts +0 -63
- package/src/classes/vertex-array-object.d.ts +0 -25
- package/src/classes/vertex-array.d.ts +0 -37
- package/src/debug/debug-program-configuration.d.ts +0 -1
- package/src/debug/debug-uniforms.d.ts +0 -11
- package/src/debug/debug-vertex-array.d.ts +0 -1
- package/src/features/check-glsl-extension.js +0 -34
- package/src/features/features.js +0 -79
- package/src/features/index.js +0 -5
- package/src/features/limits.js +0 -65
- package/src/features/webgl-limits-table.js +0 -51
- package/src/glsl-utils/format-glsl-error.d.ts +0 -16
- package/src/glsl-utils/format-glsl-error.js +0 -107
- package/src/glsl-utils/get-shader-name.js +0 -7
- package/src/glsl-utils/get-shader-type-name.js +0 -13
- package/src/glsl-utils/get-shader-version.js +0 -12
- package/src/glsl-utils/index.js +0 -8
- package/src/index.d.ts +0 -71
- package/src/index.js +0 -70
- package/src/init.d.ts +0 -12
- package/src/utils/array-utils-flat.js +0 -56
- package/src/utils/assert.d.ts +0 -1
- package/src/utils/assert.js +0 -7
- package/src/utils/check-props.js +0 -68
- package/src/utils/format-value.js +0 -37
- package/src/utils/is-old-ie.d.ts +0 -1
- package/src/utils/is-old-ie.js +0 -6
- package/src/utils/load-file.js +0 -39
- package/src/utils/stub-methods.js +0 -20
- package/src/utils/utils.d.ts +0 -13
- package/src/utils/utils.js +0 -36
- package/src/webgl-utils/request-animation-frame.d.ts +0 -3
- package/src/webgl-utils/texture-utils.d.ts +0 -11
- package/src/webgl-utils/typed-array-utils.d.ts +0 -36
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
import GL from '@luma.gl/constants';
|
|
2
|
+
import { isWebGL2 } from '../context/webgl-checks';
|
|
3
|
+
export const GL_PARAMETER_DEFAULTS = {
|
|
4
|
+
[GL.BLEND]: false,
|
|
5
|
+
[GL.BLEND_COLOR]: new Float32Array([0, 0, 0, 0]),
|
|
6
|
+
[GL.BLEND_EQUATION_RGB]: GL.FUNC_ADD,
|
|
7
|
+
[GL.BLEND_EQUATION_ALPHA]: GL.FUNC_ADD,
|
|
8
|
+
[GL.BLEND_SRC_RGB]: GL.ONE,
|
|
9
|
+
[GL.BLEND_DST_RGB]: GL.ZERO,
|
|
10
|
+
[GL.BLEND_SRC_ALPHA]: GL.ONE,
|
|
11
|
+
[GL.BLEND_DST_ALPHA]: GL.ZERO,
|
|
12
|
+
[GL.COLOR_CLEAR_VALUE]: new Float32Array([0, 0, 0, 0]),
|
|
13
|
+
[GL.COLOR_WRITEMASK]: [true, true, true, true],
|
|
14
|
+
[GL.CULL_FACE]: false,
|
|
15
|
+
[GL.CULL_FACE_MODE]: GL.BACK,
|
|
16
|
+
[GL.DEPTH_TEST]: false,
|
|
17
|
+
[GL.DEPTH_CLEAR_VALUE]: 1,
|
|
18
|
+
[GL.DEPTH_FUNC]: GL.LESS,
|
|
19
|
+
[GL.DEPTH_RANGE]: new Float32Array([0, 1]),
|
|
20
|
+
[GL.DEPTH_WRITEMASK]: true,
|
|
21
|
+
[GL.DITHER]: true,
|
|
22
|
+
[GL.CURRENT_PROGRAM]: null,
|
|
23
|
+
[GL.FRAMEBUFFER_BINDING]: null,
|
|
24
|
+
[GL.RENDERBUFFER_BINDING]: null,
|
|
25
|
+
[GL.VERTEX_ARRAY_BINDING]: null,
|
|
26
|
+
[GL.ARRAY_BUFFER_BINDING]: null,
|
|
27
|
+
[GL.FRONT_FACE]: GL.CCW,
|
|
28
|
+
[GL.GENERATE_MIPMAP_HINT]: GL.DONT_CARE,
|
|
29
|
+
[GL.LINE_WIDTH]: 1,
|
|
30
|
+
[GL.POLYGON_OFFSET_FILL]: false,
|
|
31
|
+
[GL.POLYGON_OFFSET_FACTOR]: 0,
|
|
32
|
+
[GL.POLYGON_OFFSET_UNITS]: 0,
|
|
33
|
+
[GL.SAMPLE_ALPHA_TO_COVERAGE]: false,
|
|
34
|
+
[GL.SAMPLE_COVERAGE]: false,
|
|
35
|
+
[GL.SAMPLE_COVERAGE_VALUE]: 1.0,
|
|
36
|
+
[GL.SAMPLE_COVERAGE_INVERT]: false,
|
|
37
|
+
[GL.SCISSOR_TEST]: false,
|
|
38
|
+
[GL.SCISSOR_BOX]: new Int32Array([0, 0, 1024, 1024]),
|
|
39
|
+
[GL.STENCIL_TEST]: false,
|
|
40
|
+
[GL.STENCIL_CLEAR_VALUE]: 0,
|
|
41
|
+
[GL.STENCIL_WRITEMASK]: 0xffffffff,
|
|
42
|
+
[GL.STENCIL_BACK_WRITEMASK]: 0xffffffff,
|
|
43
|
+
[GL.STENCIL_FUNC]: GL.ALWAYS,
|
|
44
|
+
[GL.STENCIL_REF]: 0,
|
|
45
|
+
[GL.STENCIL_VALUE_MASK]: 0xffffffff,
|
|
46
|
+
[GL.STENCIL_BACK_FUNC]: GL.ALWAYS,
|
|
47
|
+
[GL.STENCIL_BACK_REF]: 0,
|
|
48
|
+
[GL.STENCIL_BACK_VALUE_MASK]: 0xffffffff,
|
|
49
|
+
[GL.STENCIL_FAIL]: GL.KEEP,
|
|
50
|
+
[GL.STENCIL_PASS_DEPTH_FAIL]: GL.KEEP,
|
|
51
|
+
[GL.STENCIL_PASS_DEPTH_PASS]: GL.KEEP,
|
|
52
|
+
[GL.STENCIL_BACK_FAIL]: GL.KEEP,
|
|
53
|
+
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]: GL.KEEP,
|
|
54
|
+
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: GL.KEEP,
|
|
55
|
+
[GL.VIEWPORT]: [0, 0, 1024, 1024],
|
|
56
|
+
[GL.PACK_ALIGNMENT]: 4,
|
|
57
|
+
[GL.UNPACK_ALIGNMENT]: 4,
|
|
58
|
+
[GL.UNPACK_FLIP_Y_WEBGL]: false,
|
|
59
|
+
[GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,
|
|
60
|
+
[GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,
|
|
61
|
+
[GL.TRANSFORM_FEEDBACK_BINDING]: null,
|
|
62
|
+
[GL.COPY_READ_BUFFER_BINDING]: null,
|
|
63
|
+
[GL.COPY_WRITE_BUFFER_BINDING]: null,
|
|
64
|
+
[GL.PIXEL_PACK_BUFFER_BINDING]: null,
|
|
65
|
+
[GL.PIXEL_UNPACK_BUFFER_BINDING]: null,
|
|
66
|
+
[GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: GL.DONT_CARE,
|
|
67
|
+
[GL.READ_FRAMEBUFFER_BINDING]: null,
|
|
68
|
+
[GL.RASTERIZER_DISCARD]: false,
|
|
69
|
+
[GL.PACK_ROW_LENGTH]: 0,
|
|
70
|
+
[GL.PACK_SKIP_PIXELS]: 0,
|
|
71
|
+
[GL.PACK_SKIP_ROWS]: 0,
|
|
72
|
+
[GL.UNPACK_ROW_LENGTH]: 0,
|
|
73
|
+
[GL.UNPACK_IMAGE_HEIGHT]: 0,
|
|
74
|
+
[GL.UNPACK_SKIP_PIXELS]: 0,
|
|
75
|
+
[GL.UNPACK_SKIP_ROWS]: 0,
|
|
76
|
+
[GL.UNPACK_SKIP_IMAGES]: 0
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const enable = (gl, value, key) => value ? gl.enable(key) : gl.disable(key);
|
|
80
|
+
|
|
81
|
+
const hint = (gl, value, key) => gl.hint(key, value);
|
|
82
|
+
|
|
83
|
+
const pixelStorei = (gl, value, key) => gl.pixelStorei(key, value);
|
|
84
|
+
|
|
85
|
+
const bindFramebuffer = (gl, value, key) => {
|
|
86
|
+
let target;
|
|
87
|
+
|
|
88
|
+
if (key === GL.FRAMEBUFFER_BINDING) {
|
|
89
|
+
target = isWebGL2(gl) ? GL.DRAW_FRAMEBUFFER : GL.FRAMEBUFFER;
|
|
90
|
+
} else {
|
|
91
|
+
target = GL.READ_FRAMEBUFFER;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return gl.bindFramebuffer(target, value);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const bindBuffer = (gl, value, key) => {
|
|
98
|
+
const target = {
|
|
99
|
+
[GL.ARRAY_BUFFER_BINDING]: [GL.ARRAY_BUFFER],
|
|
100
|
+
[GL.COPY_READ_BUFFER_BINDING]: [GL.COPY_READ_BUFFER],
|
|
101
|
+
[GL.COPY_WRITE_BUFFER_BINDING]: [GL.COPY_WRITE_BUFFER],
|
|
102
|
+
[GL.PIXEL_PACK_BUFFER_BINDING]: [GL.PIXEL_PACK_BUFFER],
|
|
103
|
+
[GL.PIXEL_UNPACK_BUFFER_BINDING]: [GL.PIXEL_UNPACK_BUFFER]
|
|
104
|
+
}[key];
|
|
105
|
+
gl.bindBuffer(target, value);
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
function isArray(array) {
|
|
109
|
+
return Array.isArray(array) || ArrayBuffer.isView(array);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export const GL_PARAMETER_SETTERS = {
|
|
113
|
+
[GL.BLEND]: enable,
|
|
114
|
+
[GL.BLEND_COLOR]: (gl, value) => gl.blendColor(...value),
|
|
115
|
+
[GL.BLEND_EQUATION_RGB]: 'blendEquation',
|
|
116
|
+
[GL.BLEND_EQUATION_ALPHA]: 'blendEquation',
|
|
117
|
+
[GL.BLEND_SRC_RGB]: 'blendFunc',
|
|
118
|
+
[GL.BLEND_DST_RGB]: 'blendFunc',
|
|
119
|
+
[GL.BLEND_SRC_ALPHA]: 'blendFunc',
|
|
120
|
+
[GL.BLEND_DST_ALPHA]: 'blendFunc',
|
|
121
|
+
[GL.COLOR_CLEAR_VALUE]: (gl, value) => gl.clearColor(...value),
|
|
122
|
+
[GL.COLOR_WRITEMASK]: (gl, value) => gl.colorMask(...value),
|
|
123
|
+
[GL.CULL_FACE]: enable,
|
|
124
|
+
[GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),
|
|
125
|
+
[GL.DEPTH_TEST]: enable,
|
|
126
|
+
[GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),
|
|
127
|
+
[GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),
|
|
128
|
+
[GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),
|
|
129
|
+
[GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),
|
|
130
|
+
[GL.DITHER]: enable,
|
|
131
|
+
[GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,
|
|
132
|
+
[GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),
|
|
133
|
+
[GL.RENDERBUFFER_BINDING]: (gl, value) => gl.bindRenderbuffer(GL.RENDERBUFFER, value),
|
|
134
|
+
[GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) => {
|
|
135
|
+
var _gl$bindTransformFeed;
|
|
136
|
+
|
|
137
|
+
return (_gl$bindTransformFeed = gl.bindTransformFeedback) === null || _gl$bindTransformFeed === void 0 ? void 0 : _gl$bindTransformFeed.call(gl, GL.TRANSFORM_FEEDBACK, value);
|
|
138
|
+
},
|
|
139
|
+
[GL.VERTEX_ARRAY_BINDING]: (gl, value) => gl.bindVertexArray(value),
|
|
140
|
+
[GL.FRAMEBUFFER_BINDING]: bindFramebuffer,
|
|
141
|
+
[GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,
|
|
142
|
+
[GL.ARRAY_BUFFER_BINDING]: bindBuffer,
|
|
143
|
+
[GL.COPY_READ_BUFFER_BINDING]: bindBuffer,
|
|
144
|
+
[GL.COPY_WRITE_BUFFER_BINDING]: bindBuffer,
|
|
145
|
+
[GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,
|
|
146
|
+
[GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,
|
|
147
|
+
[GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),
|
|
148
|
+
[GL.GENERATE_MIPMAP_HINT]: hint,
|
|
149
|
+
[GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),
|
|
150
|
+
[GL.POLYGON_OFFSET_FILL]: enable,
|
|
151
|
+
[GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',
|
|
152
|
+
[GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',
|
|
153
|
+
[GL.RASTERIZER_DISCARD]: enable,
|
|
154
|
+
[GL.SAMPLE_ALPHA_TO_COVERAGE]: enable,
|
|
155
|
+
[GL.SAMPLE_COVERAGE]: enable,
|
|
156
|
+
[GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',
|
|
157
|
+
[GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',
|
|
158
|
+
[GL.SCISSOR_TEST]: enable,
|
|
159
|
+
[GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),
|
|
160
|
+
[GL.STENCIL_TEST]: enable,
|
|
161
|
+
[GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),
|
|
162
|
+
[GL.STENCIL_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.FRONT, value),
|
|
163
|
+
[GL.STENCIL_BACK_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.BACK, value),
|
|
164
|
+
[GL.STENCIL_FUNC]: 'stencilFuncFront',
|
|
165
|
+
[GL.STENCIL_REF]: 'stencilFuncFront',
|
|
166
|
+
[GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',
|
|
167
|
+
[GL.STENCIL_BACK_FUNC]: 'stencilFuncBack',
|
|
168
|
+
[GL.STENCIL_BACK_REF]: 'stencilFuncBack',
|
|
169
|
+
[GL.STENCIL_BACK_VALUE_MASK]: 'stencilFuncBack',
|
|
170
|
+
[GL.STENCIL_FAIL]: 'stencilOpFront',
|
|
171
|
+
[GL.STENCIL_PASS_DEPTH_FAIL]: 'stencilOpFront',
|
|
172
|
+
[GL.STENCIL_PASS_DEPTH_PASS]: 'stencilOpFront',
|
|
173
|
+
[GL.STENCIL_BACK_FAIL]: 'stencilOpBack',
|
|
174
|
+
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',
|
|
175
|
+
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',
|
|
176
|
+
[GL.VIEWPORT]: (gl, value) => gl.viewport(...value),
|
|
177
|
+
[GL.PACK_ALIGNMENT]: pixelStorei,
|
|
178
|
+
[GL.UNPACK_ALIGNMENT]: pixelStorei,
|
|
179
|
+
[GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,
|
|
180
|
+
[GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,
|
|
181
|
+
[GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,
|
|
182
|
+
[GL.PACK_ROW_LENGTH]: pixelStorei,
|
|
183
|
+
[GL.PACK_SKIP_PIXELS]: pixelStorei,
|
|
184
|
+
[GL.PACK_SKIP_ROWS]: pixelStorei,
|
|
185
|
+
[GL.UNPACK_ROW_LENGTH]: pixelStorei,
|
|
186
|
+
[GL.UNPACK_IMAGE_HEIGHT]: pixelStorei,
|
|
187
|
+
[GL.UNPACK_SKIP_PIXELS]: pixelStorei,
|
|
188
|
+
[GL.UNPACK_SKIP_ROWS]: pixelStorei,
|
|
189
|
+
[GL.UNPACK_SKIP_IMAGES]: pixelStorei,
|
|
190
|
+
framebuffer: (gl, framebuffer) => {
|
|
191
|
+
const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
|
|
192
|
+
return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
|
|
193
|
+
},
|
|
194
|
+
blend: (gl, value) => value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND),
|
|
195
|
+
blendColor: (gl, value) => gl.blendColor(...value),
|
|
196
|
+
blendEquation: (gl, args) => {
|
|
197
|
+
args = isArray(args) ? args : [args, args];
|
|
198
|
+
gl.blendEquationSeparate(...args);
|
|
199
|
+
},
|
|
200
|
+
blendFunc: (gl, args) => {
|
|
201
|
+
args = isArray(args) && args.length === 2 ? [...args, ...args] : args;
|
|
202
|
+
gl.blendFuncSeparate(...args);
|
|
203
|
+
},
|
|
204
|
+
clearColor: (gl, value) => gl.clearColor(...value),
|
|
205
|
+
clearDepth: (gl, value) => gl.clearDepth(value),
|
|
206
|
+
clearStencil: (gl, value) => gl.clearStencil(value),
|
|
207
|
+
colorMask: (gl, value) => gl.colorMask(...value),
|
|
208
|
+
cull: (gl, value) => value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE),
|
|
209
|
+
cullFace: (gl, value) => gl.cullFace(value),
|
|
210
|
+
depthTest: (gl, value) => value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST),
|
|
211
|
+
depthFunc: (gl, value) => gl.depthFunc(value),
|
|
212
|
+
depthMask: (gl, value) => gl.depthMask(value),
|
|
213
|
+
depthRange: (gl, value) => gl.depthRange(...value),
|
|
214
|
+
dither: (gl, value) => value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER),
|
|
215
|
+
derivativeHint: (gl, value) => {
|
|
216
|
+
gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);
|
|
217
|
+
},
|
|
218
|
+
frontFace: (gl, value) => gl.frontFace(value),
|
|
219
|
+
mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
|
|
220
|
+
lineWidth: (gl, value) => gl.lineWidth(value),
|
|
221
|
+
polygonOffsetFill: (gl, value) => value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),
|
|
222
|
+
polygonOffset: (gl, value) => gl.polygonOffset(...value),
|
|
223
|
+
sampleCoverage: (gl, value) => gl.sampleCoverage(...value),
|
|
224
|
+
scissorTest: (gl, value) => value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST),
|
|
225
|
+
scissor: (gl, value) => gl.scissor(...value),
|
|
226
|
+
stencilTest: (gl, value) => value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST),
|
|
227
|
+
stencilMask: (gl, value) => {
|
|
228
|
+
value = isArray(value) ? value : [value, value];
|
|
229
|
+
const [mask, backMask] = value;
|
|
230
|
+
gl.stencilMaskSeparate(GL.FRONT, mask);
|
|
231
|
+
gl.stencilMaskSeparate(GL.BACK, backMask);
|
|
232
|
+
},
|
|
233
|
+
stencilFunc: (gl, args) => {
|
|
234
|
+
args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
|
|
235
|
+
const [func, ref, mask, backFunc, backRef, backMask] = args;
|
|
236
|
+
gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);
|
|
237
|
+
gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);
|
|
238
|
+
},
|
|
239
|
+
stencilOp: (gl, args) => {
|
|
240
|
+
args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
|
|
241
|
+
const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;
|
|
242
|
+
gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);
|
|
243
|
+
gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);
|
|
244
|
+
},
|
|
245
|
+
viewport: (gl, value) => gl.viewport(...value)
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
function getValue(glEnum, values, cache) {
|
|
249
|
+
return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export const GL_COMPOSITE_PARAMETER_SETTERS = {
|
|
253
|
+
blendEquation: (gl, values, cache) => gl.blendEquationSeparate(getValue(GL.BLEND_EQUATION_RGB, values, cache), getValue(GL.BLEND_EQUATION_ALPHA, values, cache)),
|
|
254
|
+
blendFunc: (gl, values, cache) => gl.blendFuncSeparate(getValue(GL.BLEND_SRC_RGB, values, cache), getValue(GL.BLEND_DST_RGB, values, cache), getValue(GL.BLEND_SRC_ALPHA, values, cache), getValue(GL.BLEND_DST_ALPHA, values, cache)),
|
|
255
|
+
polygonOffset: (gl, values, cache) => gl.polygonOffset(getValue(GL.POLYGON_OFFSET_FACTOR, values, cache), getValue(GL.POLYGON_OFFSET_UNITS, values, cache)),
|
|
256
|
+
sampleCoverage: (gl, values, cache) => gl.sampleCoverage(getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache), getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)),
|
|
257
|
+
stencilFuncFront: (gl, values, cache) => gl.stencilFuncSeparate(GL.FRONT, getValue(GL.STENCIL_FUNC, values, cache), getValue(GL.STENCIL_REF, values, cache), getValue(GL.STENCIL_VALUE_MASK, values, cache)),
|
|
258
|
+
stencilFuncBack: (gl, values, cache) => gl.stencilFuncSeparate(GL.BACK, getValue(GL.STENCIL_BACK_FUNC, values, cache), getValue(GL.STENCIL_BACK_REF, values, cache), getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)),
|
|
259
|
+
stencilOpFront: (gl, values, cache) => gl.stencilOpSeparate(GL.FRONT, getValue(GL.STENCIL_FAIL, values, cache), getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache), getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)),
|
|
260
|
+
stencilOpBack: (gl, values, cache) => gl.stencilOpSeparate(GL.BACK, getValue(GL.STENCIL_BACK_FAIL, values, cache), getValue(GL.STENCIL_BACK_PASS_DEPTH_FAIL, values, cache), getValue(GL.STENCIL_BACK_PASS_DEPTH_PASS, values, cache))
|
|
261
|
+
};
|
|
262
|
+
export const GL_HOOKED_SETTERS = {
|
|
263
|
+
enable: (update, capability) => update({
|
|
264
|
+
[capability]: true
|
|
265
|
+
}),
|
|
266
|
+
disable: (update, capability) => update({
|
|
267
|
+
[capability]: false
|
|
268
|
+
}),
|
|
269
|
+
pixelStorei: (update, pname, value) => update({
|
|
270
|
+
[pname]: value
|
|
271
|
+
}),
|
|
272
|
+
hint: (update, pname, hint) => update({
|
|
273
|
+
[pname]: hint
|
|
274
|
+
}),
|
|
275
|
+
useProgram: (update, value) => update({
|
|
276
|
+
[GL.CURRENT_PROGRAM]: value
|
|
277
|
+
}),
|
|
278
|
+
bindRenderbuffer: (update, target, value) => update({
|
|
279
|
+
[GL.RENDERBUFFER_BINDING]: value
|
|
280
|
+
}),
|
|
281
|
+
bindTransformFeedback: (update, target, value) => update({
|
|
282
|
+
[GL.TRANSFORM_FEEDBACK_BINDING]: value
|
|
283
|
+
}),
|
|
284
|
+
bindVertexArray: (update, value) => update({
|
|
285
|
+
[GL.VERTEX_ARRAY_BINDING]: value
|
|
286
|
+
}),
|
|
287
|
+
bindFramebuffer: (update, target, framebuffer) => {
|
|
288
|
+
switch (target) {
|
|
289
|
+
case GL.FRAMEBUFFER:
|
|
290
|
+
return update({
|
|
291
|
+
[GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer,
|
|
292
|
+
[GL.READ_FRAMEBUFFER_BINDING]: framebuffer
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
case GL.DRAW_FRAMEBUFFER:
|
|
296
|
+
return update({
|
|
297
|
+
[GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
case GL.READ_FRAMEBUFFER:
|
|
301
|
+
return update({
|
|
302
|
+
[GL.READ_FRAMEBUFFER_BINDING]: framebuffer
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
default:
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
bindBuffer: (update, target, buffer) => {
|
|
310
|
+
const pname = {
|
|
311
|
+
[GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],
|
|
312
|
+
[GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],
|
|
313
|
+
[GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],
|
|
314
|
+
[GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],
|
|
315
|
+
[GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]
|
|
316
|
+
}[target];
|
|
317
|
+
|
|
318
|
+
if (pname) {
|
|
319
|
+
return update({
|
|
320
|
+
[pname]: buffer
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
return {
|
|
325
|
+
valueChanged: true
|
|
326
|
+
};
|
|
327
|
+
},
|
|
328
|
+
blendColor: (update, r, g, b, a) => update({
|
|
329
|
+
[GL.BLEND_COLOR]: new Float32Array([r, g, b, a])
|
|
330
|
+
}),
|
|
331
|
+
blendEquation: (update, mode) => update({
|
|
332
|
+
[GL.BLEND_EQUATION_RGB]: mode,
|
|
333
|
+
[GL.BLEND_EQUATION_ALPHA]: mode
|
|
334
|
+
}),
|
|
335
|
+
blendEquationSeparate: (update, modeRGB, modeAlpha) => update({
|
|
336
|
+
[GL.BLEND_EQUATION_RGB]: modeRGB,
|
|
337
|
+
[GL.BLEND_EQUATION_ALPHA]: modeAlpha
|
|
338
|
+
}),
|
|
339
|
+
blendFunc: (update, src, dst) => update({
|
|
340
|
+
[GL.BLEND_SRC_RGB]: src,
|
|
341
|
+
[GL.BLEND_DST_RGB]: dst,
|
|
342
|
+
[GL.BLEND_SRC_ALPHA]: src,
|
|
343
|
+
[GL.BLEND_DST_ALPHA]: dst
|
|
344
|
+
}),
|
|
345
|
+
blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) => update({
|
|
346
|
+
[GL.BLEND_SRC_RGB]: srcRGB,
|
|
347
|
+
[GL.BLEND_DST_RGB]: dstRGB,
|
|
348
|
+
[GL.BLEND_SRC_ALPHA]: srcAlpha,
|
|
349
|
+
[GL.BLEND_DST_ALPHA]: dstAlpha
|
|
350
|
+
}),
|
|
351
|
+
clearColor: (update, r, g, b, a) => update({
|
|
352
|
+
[GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])
|
|
353
|
+
}),
|
|
354
|
+
clearDepth: (update, depth) => update({
|
|
355
|
+
[GL.DEPTH_CLEAR_VALUE]: depth
|
|
356
|
+
}),
|
|
357
|
+
clearStencil: (update, s) => update({
|
|
358
|
+
[GL.STENCIL_CLEAR_VALUE]: s
|
|
359
|
+
}),
|
|
360
|
+
colorMask: (update, r, g, b, a) => update({
|
|
361
|
+
[GL.COLOR_WRITEMASK]: [r, g, b, a]
|
|
362
|
+
}),
|
|
363
|
+
cullFace: (update, mode) => update({
|
|
364
|
+
[GL.CULL_FACE_MODE]: mode
|
|
365
|
+
}),
|
|
366
|
+
depthFunc: (update, func) => update({
|
|
367
|
+
[GL.DEPTH_FUNC]: func
|
|
368
|
+
}),
|
|
369
|
+
depthRange: (update, zNear, zFar) => update({
|
|
370
|
+
[GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])
|
|
371
|
+
}),
|
|
372
|
+
depthMask: (update, mask) => update({
|
|
373
|
+
[GL.DEPTH_WRITEMASK]: mask
|
|
374
|
+
}),
|
|
375
|
+
frontFace: (update, face) => update({
|
|
376
|
+
[GL.FRONT_FACE]: face
|
|
377
|
+
}),
|
|
378
|
+
lineWidth: (update, width) => update({
|
|
379
|
+
[GL.LINE_WIDTH]: width
|
|
380
|
+
}),
|
|
381
|
+
polygonOffset: (update, factor, units) => update({
|
|
382
|
+
[GL.POLYGON_OFFSET_FACTOR]: factor,
|
|
383
|
+
[GL.POLYGON_OFFSET_UNITS]: units
|
|
384
|
+
}),
|
|
385
|
+
sampleCoverage: (update, value, invert) => update({
|
|
386
|
+
[GL.SAMPLE_COVERAGE_VALUE]: value,
|
|
387
|
+
[GL.SAMPLE_COVERAGE_INVERT]: invert
|
|
388
|
+
}),
|
|
389
|
+
scissor: (update, x, y, width, height) => update({
|
|
390
|
+
[GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])
|
|
391
|
+
}),
|
|
392
|
+
stencilMask: (update, mask) => update({
|
|
393
|
+
[GL.STENCIL_WRITEMASK]: mask,
|
|
394
|
+
[GL.STENCIL_BACK_WRITEMASK]: mask
|
|
395
|
+
}),
|
|
396
|
+
stencilMaskSeparate: (update, face, mask) => update({
|
|
397
|
+
[face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask
|
|
398
|
+
}),
|
|
399
|
+
stencilFunc: (update, func, ref, mask) => update({
|
|
400
|
+
[GL.STENCIL_FUNC]: func,
|
|
401
|
+
[GL.STENCIL_REF]: ref,
|
|
402
|
+
[GL.STENCIL_VALUE_MASK]: mask,
|
|
403
|
+
[GL.STENCIL_BACK_FUNC]: func,
|
|
404
|
+
[GL.STENCIL_BACK_REF]: ref,
|
|
405
|
+
[GL.STENCIL_BACK_VALUE_MASK]: mask
|
|
406
|
+
}),
|
|
407
|
+
stencilFuncSeparate: (update, face, func, ref, mask) => update({
|
|
408
|
+
[face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,
|
|
409
|
+
[face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,
|
|
410
|
+
[face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask
|
|
411
|
+
}),
|
|
412
|
+
stencilOp: (update, fail, zfail, zpass) => update({
|
|
413
|
+
[GL.STENCIL_FAIL]: fail,
|
|
414
|
+
[GL.STENCIL_PASS_DEPTH_FAIL]: zfail,
|
|
415
|
+
[GL.STENCIL_PASS_DEPTH_PASS]: zpass,
|
|
416
|
+
[GL.STENCIL_BACK_FAIL]: fail,
|
|
417
|
+
[GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
|
|
418
|
+
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
|
|
419
|
+
}),
|
|
420
|
+
stencilOpSeparate: (update, face, fail, zfail, zpass) => update({
|
|
421
|
+
[face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,
|
|
422
|
+
[face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
|
|
423
|
+
[face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
|
|
424
|
+
}),
|
|
425
|
+
viewport: (update, x, y, width, height) => update({
|
|
426
|
+
[GL.VIEWPORT]: [x, y, width, height]
|
|
427
|
+
})
|
|
428
|
+
};
|
|
429
|
+
|
|
430
|
+
const isEnabled = (gl, key) => gl.isEnabled(key);
|
|
431
|
+
|
|
432
|
+
export const GL_PARAMETER_GETTERS = {
|
|
433
|
+
[GL.BLEND]: isEnabled,
|
|
434
|
+
[GL.CULL_FACE]: isEnabled,
|
|
435
|
+
[GL.DEPTH_TEST]: isEnabled,
|
|
436
|
+
[GL.DITHER]: isEnabled,
|
|
437
|
+
[GL.POLYGON_OFFSET_FILL]: isEnabled,
|
|
438
|
+
[GL.SAMPLE_ALPHA_TO_COVERAGE]: isEnabled,
|
|
439
|
+
[GL.SAMPLE_COVERAGE]: isEnabled,
|
|
440
|
+
[GL.SCISSOR_TEST]: isEnabled,
|
|
441
|
+
[GL.STENCIL_TEST]: isEnabled,
|
|
442
|
+
[GL.RASTERIZER_DISCARD]: isEnabled
|
|
443
|
+
};
|
|
444
|
+
export const NON_CACHE_PARAMETERS = new Set([GL.ACTIVE_TEXTURE, GL.TRANSFORM_FEEDBACK_ACTIVE, GL.TRANSFORM_FEEDBACK_PAUSED, GL.TRANSFORM_FEEDBACK_BUFFER_BINDING, GL.UNIFORM_BUFFER_BINDING, GL.ELEMENT_ARRAY_BUFFER_BINDING, GL.IMPLEMENTATION_COLOR_READ_FORMAT, GL.IMPLEMENTATION_COLOR_READ_TYPE, GL.READ_BUFFER, GL.DRAW_BUFFER0, GL.DRAW_BUFFER1, GL.DRAW_BUFFER2, GL.DRAW_BUFFER3, GL.DRAW_BUFFER4, GL.DRAW_BUFFER5, GL.DRAW_BUFFER6, GL.DRAW_BUFFER7, GL.DRAW_BUFFER8, GL.DRAW_BUFFER9, GL.DRAW_BUFFER10, GL.DRAW_BUFFER11, GL.DRAW_BUFFER12, GL.DRAW_BUFFER13, GL.DRAW_BUFFER14, GL.DRAW_BUFFER15, GL.SAMPLER_BINDING, GL.TEXTURE_BINDING_2D, GL.TEXTURE_BINDING_2D_ARRAY, GL.TEXTURE_BINDING_3D, GL.TEXTURE_BINDING_CUBE_MAP]);
|
|
445
|
+
//# sourceMappingURL=webgl-parameter-tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/context/parameters/webgl-parameter-tables.ts"],"names":["GL","isWebGL2","GL_PARAMETER_DEFAULTS","BLEND","BLEND_COLOR","Float32Array","BLEND_EQUATION_RGB","FUNC_ADD","BLEND_EQUATION_ALPHA","BLEND_SRC_RGB","ONE","BLEND_DST_RGB","ZERO","BLEND_SRC_ALPHA","BLEND_DST_ALPHA","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","CULL_FACE","CULL_FACE_MODE","BACK","DEPTH_TEST","DEPTH_CLEAR_VALUE","DEPTH_FUNC","LESS","DEPTH_RANGE","DEPTH_WRITEMASK","DITHER","CURRENT_PROGRAM","FRAMEBUFFER_BINDING","RENDERBUFFER_BINDING","VERTEX_ARRAY_BINDING","ARRAY_BUFFER_BINDING","FRONT_FACE","CCW","GENERATE_MIPMAP_HINT","DONT_CARE","LINE_WIDTH","POLYGON_OFFSET_FILL","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_UNITS","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_COVERAGE","SAMPLE_COVERAGE_VALUE","SAMPLE_COVERAGE_INVERT","SCISSOR_TEST","SCISSOR_BOX","Int32Array","STENCIL_TEST","STENCIL_CLEAR_VALUE","STENCIL_WRITEMASK","STENCIL_BACK_WRITEMASK","STENCIL_FUNC","ALWAYS","STENCIL_REF","STENCIL_VALUE_MASK","STENCIL_BACK_FUNC","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_FAIL","KEEP","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_BACK_FAIL","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","VIEWPORT","PACK_ALIGNMENT","UNPACK_ALIGNMENT","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_COLORSPACE_CONVERSION_WEBGL","BROWSER_DEFAULT_WEBGL","TRANSFORM_FEEDBACK_BINDING","COPY_READ_BUFFER_BINDING","COPY_WRITE_BUFFER_BINDING","PIXEL_PACK_BUFFER_BINDING","PIXEL_UNPACK_BUFFER_BINDING","FRAGMENT_SHADER_DERIVATIVE_HINT","READ_FRAMEBUFFER_BINDING","RASTERIZER_DISCARD","PACK_ROW_LENGTH","PACK_SKIP_PIXELS","PACK_SKIP_ROWS","UNPACK_ROW_LENGTH","UNPACK_IMAGE_HEIGHT","UNPACK_SKIP_PIXELS","UNPACK_SKIP_ROWS","UNPACK_SKIP_IMAGES","enable","gl","value","key","disable","hint","pixelStorei","bindFramebuffer","target","DRAW_FRAMEBUFFER","FRAMEBUFFER","READ_FRAMEBUFFER","bindBuffer","ARRAY_BUFFER","COPY_READ_BUFFER","COPY_WRITE_BUFFER","PIXEL_PACK_BUFFER","PIXEL_UNPACK_BUFFER","isArray","array","Array","ArrayBuffer","isView","GL_PARAMETER_SETTERS","blendColor","clearColor","colorMask","cullFace","clearDepth","depthFunc","depthRange","depthMask","useProgram","bindRenderbuffer","RENDERBUFFER","bindTransformFeedback","TRANSFORM_FEEDBACK","bindVertexArray","frontFace","lineWidth","scissor","clearStencil","stencilMaskSeparate","FRONT","viewport","framebuffer","handle","blend","blendEquation","args","blendEquationSeparate","blendFunc","length","blendFuncSeparate","cull","depthTest","dither","derivativeHint","mipmapHint","polygonOffsetFill","polygonOffset","sampleCoverage","scissorTest","stencilTest","stencilMask","mask","backMask","stencilFunc","func","ref","backFunc","backRef","stencilFuncSeparate","stencilOp","sfail","dpfail","dppass","backSfail","backDpfail","backDppass","stencilOpSeparate","getValue","glEnum","values","cache","undefined","GL_COMPOSITE_PARAMETER_SETTERS","stencilFuncFront","stencilFuncBack","stencilOpFront","stencilOpBack","GL_HOOKED_SETTERS","update","capability","pname","DRAW_FRAMEBUFFER_BINDING","buffer","valueChanged","r","g","b","a","mode","modeRGB","modeAlpha","src","dst","srcRGB","dstRGB","srcAlpha","dstAlpha","depth","s","zNear","zFar","face","width","factor","units","invert","x","y","height","fail","zfail","zpass","isEnabled","GL_PARAMETER_GETTERS","NON_CACHE_PARAMETERS","Set","ACTIVE_TEXTURE","TRANSFORM_FEEDBACK_ACTIVE","TRANSFORM_FEEDBACK_PAUSED","TRANSFORM_FEEDBACK_BUFFER_BINDING","UNIFORM_BUFFER_BINDING","ELEMENT_ARRAY_BUFFER_BINDING","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","READ_BUFFER","DRAW_BUFFER0","DRAW_BUFFER1","DRAW_BUFFER2","DRAW_BUFFER3","DRAW_BUFFER4","DRAW_BUFFER5","DRAW_BUFFER6","DRAW_BUFFER7","DRAW_BUFFER8","DRAW_BUFFER9","DRAW_BUFFER10","DRAW_BUFFER11","DRAW_BUFFER12","DRAW_BUFFER13","DRAW_BUFFER14","DRAW_BUFFER15","SAMPLER_BINDING","TEXTURE_BINDING_2D","TEXTURE_BINDING_2D_ARRAY","TEXTURE_BINDING_3D","TEXTURE_BINDING_CUBE_MAP"],"mappings":"AACA,OAAOA,EAAP,MAAe,oBAAf;AACA,SAAQC,QAAR,QAAuB,yBAAvB;AAMA,OAAO,MAAMC,qBAAmC,GAAG;AACjD,GAACF,EAAE,CAACG,KAAJ,GAAY,KADqC;AAEjD,GAACH,EAAE,CAACI,WAAJ,GAAkB,IAAIC,YAAJ,CAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAjB,CAF+B;AAGjD,GAACL,EAAE,CAACM,kBAAJ,GAAyBN,EAAE,CAACO,QAHqB;AAIjD,GAACP,EAAE,CAACQ,oBAAJ,GAA2BR,EAAE,CAACO,QAJmB;AAKjD,GAACP,EAAE,CAACS,aAAJ,GAAoBT,EAAE,CAACU,GAL0B;AAMjD,GAACV,EAAE,CAACW,aAAJ,GAAoBX,EAAE,CAACY,IAN0B;AAOjD,GAACZ,EAAE,CAACa,eAAJ,GAAsBb,EAAE,CAACU,GAPwB;AAQjD,GAACV,EAAE,CAACc,eAAJ,GAAsBd,EAAE,CAACY,IARwB;AASjD,GAACZ,EAAE,CAACe,iBAAJ,GAAwB,IAAIV,YAAJ,CAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAjB,CATyB;AAUjD,GAACL,EAAE,CAACgB,eAAJ,GAAsB,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,CAV2B;AAWjD,GAAChB,EAAE,CAACiB,SAAJ,GAAgB,KAXiC;AAYjD,GAACjB,EAAE,CAACkB,cAAJ,GAAqBlB,EAAE,CAACmB,IAZyB;AAajD,GAACnB,EAAE,CAACoB,UAAJ,GAAiB,KAbgC;AAcjD,GAACpB,EAAE,CAACqB,iBAAJ,GAAwB,CAdyB;AAejD,GAACrB,EAAE,CAACsB,UAAJ,GAAiBtB,EAAE,CAACuB,IAf6B;AAgBjD,GAACvB,EAAE,CAACwB,WAAJ,GAAkB,IAAInB,YAAJ,CAAiB,CAAC,CAAD,EAAI,CAAJ,CAAjB,CAhB+B;AAiBjD,GAACL,EAAE,CAACyB,eAAJ,GAAsB,IAjB2B;AAkBjD,GAACzB,EAAE,CAAC0B,MAAJ,GAAa,IAlBoC;AAmBjD,GAAC1B,EAAE,CAAC2B,eAAJ,GAAsB,IAnB2B;AAqBjD,GAAC3B,EAAE,CAAC4B,mBAAJ,GAA0B,IArBuB;AAsBjD,GAAC5B,EAAE,CAAC6B,oBAAJ,GAA2B,IAtBsB;AAuBjD,GAAC7B,EAAE,CAAC8B,oBAAJ,GAA2B,IAvBsB;AAwBjD,GAAC9B,EAAE,CAAC+B,oBAAJ,GAA2B,IAxBsB;AAyBjD,GAAC/B,EAAE,CAACgC,UAAJ,GAAiBhC,EAAE,CAACiC,GAzB6B;AA0BjD,GAACjC,EAAE,CAACkC,oBAAJ,GAA2BlC,EAAE,CAACmC,SA1BmB;AA2BjD,GAACnC,EAAE,CAACoC,UAAJ,GAAiB,CA3BgC;AA4BjD,GAACpC,EAAE,CAACqC,mBAAJ,GAA0B,KA5BuB;AA6BjD,GAACrC,EAAE,CAACsC,qBAAJ,GAA4B,CA7BqB;AA8BjD,GAACtC,EAAE,CAACuC,oBAAJ,GAA2B,CA9BsB;AA+BjD,GAACvC,EAAE,CAACwC,wBAAJ,GAA+B,KA/BkB;AAgCjD,GAACxC,EAAE,CAACyC,eAAJ,GAAsB,KAhC2B;AAiCjD,GAACzC,EAAE,CAAC0C,qBAAJ,GAA4B,GAjCqB;AAkCjD,GAAC1C,EAAE,CAAC2C,sBAAJ,GAA6B,KAlCoB;AAmCjD,GAAC3C,EAAE,CAAC4C,YAAJ,GAAmB,KAnC8B;AAqCjD,GAAC5C,EAAE,CAAC6C,WAAJ,GAAkB,IAAIC,UAAJ,CAAe,CAAC,CAAD,EAAI,CAAJ,EAAO,IAAP,EAAa,IAAb,CAAf,CArC+B;AAsCjD,GAAC9C,EAAE,CAAC+C,YAAJ,GAAmB,KAtC8B;AAuCjD,GAAC/C,EAAE,CAACgD,mBAAJ,GAA0B,CAvCuB;AAwCjD,GAAChD,EAAE,CAACiD,iBAAJ,GAAwB,UAxCyB;AAyCjD,GAACjD,EAAE,CAACkD,sBAAJ,GAA6B,UAzCoB;AA0CjD,GAAClD,EAAE,CAACmD,YAAJ,GAAmBnD,EAAE,CAACoD,MA1C2B;AA2CjD,GAACpD,EAAE,CAACqD,WAAJ,GAAkB,CA3C+B;AA4CjD,GAACrD,EAAE,CAACsD,kBAAJ,GAAyB,UA5CwB;AA6CjD,GAACtD,EAAE,CAACuD,iBAAJ,GAAwBvD,EAAE,CAACoD,MA7CsB;AA8CjD,GAACpD,EAAE,CAACwD,gBAAJ,GAAuB,CA9C0B;AA+CjD,GAACxD,EAAE,CAACyD,uBAAJ,GAA8B,UA/CmB;AAgDjD,GAACzD,EAAE,CAAC0D,YAAJ,GAAmB1D,EAAE,CAAC2D,IAhD2B;AAiDjD,GAAC3D,EAAE,CAAC4D,uBAAJ,GAA8B5D,EAAE,CAAC2D,IAjDgB;AAkDjD,GAAC3D,EAAE,CAAC6D,uBAAJ,GAA8B7D,EAAE,CAAC2D,IAlDgB;AAmDjD,GAAC3D,EAAE,CAAC8D,iBAAJ,GAAwB9D,EAAE,CAAC2D,IAnDsB;AAoDjD,GAAC3D,EAAE,CAAC+D,4BAAJ,GAAmC/D,EAAE,CAAC2D,IApDW;AAqDjD,GAAC3D,EAAE,CAACgE,4BAAJ,GAAmChE,EAAE,CAAC2D,IArDW;AAuDjD,GAAC3D,EAAE,CAACiE,QAAJ,GAAe,CAAC,CAAD,EAAI,CAAJ,EAAO,IAAP,EAAa,IAAb,CAvDkC;AAyDjD,GAACjE,EAAE,CAACkE,cAAJ,GAAqB,CAzD4B;AA0DjD,GAAClE,EAAE,CAACmE,gBAAJ,GAAuB,CA1D0B;AA2DjD,GAACnE,EAAE,CAACoE,mBAAJ,GAA0B,KA3DuB;AA4DjD,GAACpE,EAAE,CAACqE,8BAAJ,GAAqC,KA5DY;AA6DjD,GAACrE,EAAE,CAACsE,kCAAJ,GAAyCtE,EAAE,CAACuE,qBA7DK;AAiEjD,GAACvE,EAAE,CAACwE,0BAAJ,GAAiC,IAjEgB;AAkEjD,GAACxE,EAAE,CAACyE,wBAAJ,GAA+B,IAlEkB;AAmEjD,GAACzE,EAAE,CAAC0E,yBAAJ,GAAgC,IAnEiB;AAoEjD,GAAC1E,EAAE,CAAC2E,yBAAJ,GAAgC,IApEiB;AAqEjD,GAAC3E,EAAE,CAAC4E,2BAAJ,GAAkC,IArEe;AAsEjD,GAAC5E,EAAE,CAAC6E,+BAAJ,GAAsC7E,EAAE,CAACmC,SAtEQ;AAuEjD,GAACnC,EAAE,CAAC8E,wBAAJ,GAA+B,IAvEkB;AAwEjD,GAAC9E,EAAE,CAAC+E,kBAAJ,GAAyB,KAxEwB;AAyEjD,GAAC/E,EAAE,CAACgF,eAAJ,GAAsB,CAzE2B;AA0EjD,GAAChF,EAAE,CAACiF,gBAAJ,GAAuB,CA1E0B;AA2EjD,GAACjF,EAAE,CAACkF,cAAJ,GAAqB,CA3E4B;AA4EjD,GAAClF,EAAE,CAACmF,iBAAJ,GAAwB,CA5EyB;AA6EjD,GAACnF,EAAE,CAACoF,mBAAJ,GAA0B,CA7EuB;AA8EjD,GAACpF,EAAE,CAACqF,kBAAJ,GAAyB,CA9EwB;AA+EjD,GAACrF,EAAE,CAACsF,gBAAJ,GAAuB,CA/E0B;AAgFjD,GAACtF,EAAE,CAACuF,kBAAJ,GAAyB;AAhFwB,CAA5C;;AAqFP,MAAMC,MAAM,GAAG,CAACC,EAAD,EAAKC,KAAL,EAAYC,GAAZ,KAAqBD,KAAK,GAAGD,EAAE,CAACD,MAAH,CAAUG,GAAV,CAAH,GAAoBF,EAAE,CAACG,OAAH,CAAWD,GAAX,CAA7D;;AACA,MAAME,IAAI,GAAG,CAACJ,EAAD,EAAKC,KAAL,EAAYC,GAAZ,KAAoBF,EAAE,CAACI,IAAH,CAAQF,GAAR,EAAaD,KAAb,CAAjC;;AACA,MAAMI,WAAW,GAAG,CAACL,EAAD,EAAKC,KAAL,EAAYC,GAAZ,KAAoBF,EAAE,CAACK,WAAH,CAAeH,GAAf,EAAoBD,KAApB,CAAxC;;AAEA,MAAMK,eAAe,GAAG,CAACN,EAAD,EAAKC,KAAL,EAAYC,GAAZ,KAAoB;AAC1C,MAAIK,MAAJ;;AACA,MAAIL,GAAG,KAAK3F,EAAE,CAAC4B,mBAAf,EAAoC;AAClCoE,IAAAA,MAAM,GAAG/F,QAAQ,CAACwF,EAAD,CAAR,GAAezF,EAAE,CAACiG,gBAAlB,GAAqCjG,EAAE,CAACkG,WAAjD;AACD,GAFD,MAEO;AAELF,IAAAA,MAAM,GAAGhG,EAAE,CAACmG,gBAAZ;AACD;;AACD,SAAOV,EAAE,CAACM,eAAH,CAAmBC,MAAnB,EAA2BN,KAA3B,CAAP;AACD,CATD;;AAWA,MAAMU,UAAU,GAAG,CAACX,EAAD,EAAKC,KAAL,EAAYC,GAAZ,KAAoB;AACrC,QAAMK,MAAM,GAAI;AACd,KAAChG,EAAE,CAAC+B,oBAAJ,GAA2B,CAAC/B,EAAE,CAACqG,YAAJ,CADb;AAEd,KAACrG,EAAE,CAACyE,wBAAJ,GAA+B,CAACzE,EAAE,CAACsG,gBAAJ,CAFjB;AAGd,KAACtG,EAAE,CAAC0E,yBAAJ,GAAgC,CAAC1E,EAAE,CAACuG,iBAAJ,CAHlB;AAId,KAACvG,EAAE,CAAC2E,yBAAJ,GAAgC,CAAC3E,EAAE,CAACwG,iBAAJ,CAJlB;AAKd,KAACxG,EAAE,CAAC4E,2BAAJ,GAAkC,CAAC5E,EAAE,CAACyG,mBAAJ;AALpB,GAAD,CAMZd,GANY,CAAf;AAQAF,EAAAA,EAAE,CAACW,UAAH,CAAcJ,MAAd,EAAsBN,KAAtB;AACD,CAVD;;AAaA,SAASgB,OAAT,CAAiBC,KAAjB,EAAwB;AACtB,SAAOC,KAAK,CAACF,OAAN,CAAcC,KAAd,KAAwBE,WAAW,CAACC,MAAZ,CAAmBH,KAAnB,CAA/B;AACD;;AAKD,OAAO,MAAMI,oBAAoB,GAAG;AAClC,GAAC/G,EAAE,CAACG,KAAJ,GAAYqF,MADsB;AAElC,GAACxF,EAAE,CAACI,WAAJ,GAAkB,CAACqF,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACuB,UAAH,CAAc,GAAGtB,KAAjB,CAFC;AAGlC,GAAC1F,EAAE,CAACM,kBAAJ,GAAyB,eAHS;AAIlC,GAACN,EAAE,CAACQ,oBAAJ,GAA2B,eAJO;AAKlC,GAACR,EAAE,CAACS,aAAJ,GAAoB,WALc;AAMlC,GAACT,EAAE,CAACW,aAAJ,GAAoB,WANc;AAOlC,GAACX,EAAE,CAACa,eAAJ,GAAsB,WAPY;AAQlC,GAACb,EAAE,CAACc,eAAJ,GAAsB,WARY;AASlC,GAACd,EAAE,CAACe,iBAAJ,GAAwB,CAAC0E,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACwB,UAAH,CAAc,GAAGvB,KAAjB,CATL;AAUlC,GAAC1F,EAAE,CAACgB,eAAJ,GAAsB,CAACyE,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACyB,SAAH,CAAa,GAAGxB,KAAhB,CAVH;AAWlC,GAAC1F,EAAE,CAACiB,SAAJ,GAAgBuE,MAXkB;AAYlC,GAACxF,EAAE,CAACkB,cAAJ,GAAqB,CAACuE,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC0B,QAAH,CAAYzB,KAAZ,CAZF;AAalC,GAAC1F,EAAE,CAACoB,UAAJ,GAAiBoE,MAbiB;AAclC,GAACxF,EAAE,CAACqB,iBAAJ,GAAwB,CAACoE,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC2B,UAAH,CAAc1B,KAAd,CAdL;AAelC,GAAC1F,EAAE,CAACsB,UAAJ,GAAiB,CAACmE,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC4B,SAAH,CAAa3B,KAAb,CAfE;AAgBlC,GAAC1F,EAAE,CAACwB,WAAJ,GAAkB,CAACiE,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC6B,UAAH,CAAc,GAAG5B,KAAjB,CAhBC;AAiBlC,GAAC1F,EAAE,CAACyB,eAAJ,GAAsB,CAACgE,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC8B,SAAH,CAAa7B,KAAb,CAjBH;AAkBlC,GAAC1F,EAAE,CAAC0B,MAAJ,GAAa8D,MAlBqB;AAmBlC,GAACxF,EAAE,CAAC6E,+BAAJ,GAAsCgB,IAnBJ;AAqBlC,GAAC7F,EAAE,CAAC2B,eAAJ,GAAsB,CAAC8D,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC+B,UAAH,CAAc9B,KAAd,CArBH;AAsBlC,GAAC1F,EAAE,CAAC6B,oBAAJ,GAA2B,CAAC4D,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACgC,gBAAH,CAAoBzH,EAAE,CAAC0H,YAAvB,EAAqChC,KAArC,CAtBR;AAuBlC,GAAC1F,EAAE,CAACwE,0BAAJ,GAAiC,CAACiB,EAAD,EAAKC,KAAL;AAAA;;AAAA,oCAAeD,EAAE,CAACkC,qBAAlB,0DAAe,2BAAAlC,EAAE,EAAyBzF,EAAE,CAAC4H,kBAA5B,EAAgDlC,KAAhD,CAAjB;AAAA,GAvBC;AAwBlC,GAAC1F,EAAE,CAAC8B,oBAAJ,GAA2B,CAAC2D,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACoC,eAAH,CAAmBnC,KAAnB,CAxBR;AA0BlC,GAAC1F,EAAE,CAAC4B,mBAAJ,GAA0BmE,eA1BQ;AA2BlC,GAAC/F,EAAE,CAAC8E,wBAAJ,GAA+BiB,eA3BG;AA8BlC,GAAC/F,EAAE,CAAC+B,oBAAJ,GAA2BqE,UA9BO;AA+BlC,GAACpG,EAAE,CAACyE,wBAAJ,GAA+B2B,UA/BG;AAgClC,GAACpG,EAAE,CAAC0E,yBAAJ,GAAgC0B,UAhCE;AAiClC,GAACpG,EAAE,CAAC2E,yBAAJ,GAAgCyB,UAjCE;AAkClC,GAACpG,EAAE,CAAC4E,2BAAJ,GAAkCwB,UAlCA;AAoClC,GAACpG,EAAE,CAACgC,UAAJ,GAAiB,CAACyD,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACqC,SAAH,CAAapC,KAAb,CApCE;AAqClC,GAAC1F,EAAE,CAACkC,oBAAJ,GAA2B2D,IArCO;AAsClC,GAAC7F,EAAE,CAACoC,UAAJ,GAAiB,CAACqD,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACsC,SAAH,CAAarC,KAAb,CAtCE;AAuClC,GAAC1F,EAAE,CAACqC,mBAAJ,GAA0BmD,MAvCQ;AAwClC,GAACxF,EAAE,CAACsC,qBAAJ,GAA4B,eAxCM;AAyClC,GAACtC,EAAE,CAACuC,oBAAJ,GAA2B,eAzCO;AA0ClC,GAACvC,EAAE,CAAC+E,kBAAJ,GAAyBS,MA1CS;AA2ClC,GAACxF,EAAE,CAACwC,wBAAJ,GAA+BgD,MA3CG;AA4ClC,GAACxF,EAAE,CAACyC,eAAJ,GAAsB+C,MA5CY;AA6ClC,GAACxF,EAAE,CAAC0C,qBAAJ,GAA4B,gBA7CM;AA8ClC,GAAC1C,EAAE,CAAC2C,sBAAJ,GAA6B,gBA9CK;AA+ClC,GAAC3C,EAAE,CAAC4C,YAAJ,GAAmB4C,MA/Ce;AAgDlC,GAACxF,EAAE,CAAC6C,WAAJ,GAAkB,CAAC4C,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACuC,OAAH,CAAW,GAAGtC,KAAd,CAhDC;AAiDlC,GAAC1F,EAAE,CAAC+C,YAAJ,GAAmByC,MAjDe;AAkDlC,GAACxF,EAAE,CAACgD,mBAAJ,GAA0B,CAACyC,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACwC,YAAH,CAAgBvC,KAAhB,CAlDP;AAmDlC,GAAC1F,EAAE,CAACiD,iBAAJ,GAAwB,CAACwC,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACyC,mBAAH,CAAuBlI,EAAE,CAACmI,KAA1B,EAAiCzC,KAAjC,CAnDL;AAoDlC,GAAC1F,EAAE,CAACkD,sBAAJ,GAA6B,CAACuC,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACyC,mBAAH,CAAuBlI,EAAE,CAACmB,IAA1B,EAAgCuE,KAAhC,CApDV;AAqDlC,GAAC1F,EAAE,CAACmD,YAAJ,GAAmB,kBArDe;AAsDlC,GAACnD,EAAE,CAACqD,WAAJ,GAAkB,kBAtDgB;AAuDlC,GAACrD,EAAE,CAACsD,kBAAJ,GAAyB,kBAvDS;AAwDlC,GAACtD,EAAE,CAACuD,iBAAJ,GAAwB,iBAxDU;AAyDlC,GAACvD,EAAE,CAACwD,gBAAJ,GAAuB,iBAzDW;AA0DlC,GAACxD,EAAE,CAACyD,uBAAJ,GAA8B,iBA1DI;AA2DlC,GAACzD,EAAE,CAAC0D,YAAJ,GAAmB,gBA3De;AA4DlC,GAAC1D,EAAE,CAAC4D,uBAAJ,GAA8B,gBA5DI;AA6DlC,GAAC5D,EAAE,CAAC6D,uBAAJ,GAA8B,gBA7DI;AA8DlC,GAAC7D,EAAE,CAAC8D,iBAAJ,GAAwB,eA9DU;AA+DlC,GAAC9D,EAAE,CAAC+D,4BAAJ,GAAmC,eA/DD;AAgElC,GAAC/D,EAAE,CAACgE,4BAAJ,GAAmC,eAhED;AAiElC,GAAChE,EAAE,CAACiE,QAAJ,GAAe,CAACwB,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC2C,QAAH,CAAY,GAAG1C,KAAf,CAjEI;AAoElC,GAAC1F,EAAE,CAACkE,cAAJ,GAAqB4B,WApEa;AAqElC,GAAC9F,EAAE,CAACmE,gBAAJ,GAAuB2B,WArEW;AAsElC,GAAC9F,EAAE,CAACoE,mBAAJ,GAA0B0B,WAtEQ;AAuElC,GAAC9F,EAAE,CAACqE,8BAAJ,GAAqCyB,WAvEH;AAwElC,GAAC9F,EAAE,CAACsE,kCAAJ,GAAyCwB,WAxEP;AA4ElC,GAAC9F,EAAE,CAACgF,eAAJ,GAAsBc,WA5EY;AA6ElC,GAAC9F,EAAE,CAACiF,gBAAJ,GAAuBa,WA7EW;AA8ElC,GAAC9F,EAAE,CAACkF,cAAJ,GAAqBY,WA9Ea;AA+ElC,GAAC9F,EAAE,CAACmF,iBAAJ,GAAwBW,WA/EU;AAgFlC,GAAC9F,EAAE,CAACoF,mBAAJ,GAA0BU,WAhFQ;AAiFlC,GAAC9F,EAAE,CAACqF,kBAAJ,GAAyBS,WAjFS;AAkFlC,GAAC9F,EAAE,CAACsF,gBAAJ,GAAuBQ,WAlFW;AAmFlC,GAAC9F,EAAE,CAACuF,kBAAJ,GAAyBO,WAnFS;AAsFlCuC,EAAAA,WAAW,EAAE,CAAC5C,EAAD,EAAK4C,WAAL,KAAqB;AAGhC,UAAMC,MAAM,GAAGD,WAAW,IAAI,YAAYA,WAA3B,GAAyCA,WAAW,CAACC,MAArD,GAA8DD,WAA7E;AACA,WAAO5C,EAAE,CAACM,eAAH,CAAmB/F,EAAE,CAACkG,WAAtB,EAAmCoC,MAAnC,CAAP;AACD,GA3FiC;AA4FlCC,EAAAA,KAAK,EAAE,CAAC9C,EAAD,EAAKC,KAAL,KAAgBA,KAAK,GAAGD,EAAE,CAACD,MAAH,CAAUxF,EAAE,CAACG,KAAb,CAAH,GAAyBsF,EAAE,CAACG,OAAH,CAAW5F,EAAE,CAACG,KAAd,CA5FnB;AA6FlC6G,EAAAA,UAAU,EAAE,CAACvB,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACuB,UAAH,CAAc,GAAGtB,KAAjB,CA7FO;AA8FlC8C,EAAAA,aAAa,EAAE,CAAC/C,EAAD,EAAKgD,IAAL,KAAc;AAC3BA,IAAAA,IAAI,GAAG/B,OAAO,CAAC+B,IAAD,CAAP,GAAgBA,IAAhB,GAAuB,CAACA,IAAD,EAAOA,IAAP,CAA9B;AACAhD,IAAAA,EAAE,CAACiD,qBAAH,CAAyB,GAAGD,IAA5B;AACD,GAjGiC;AAkGlCE,EAAAA,SAAS,EAAE,CAAClD,EAAD,EAAKgD,IAAL,KAAc;AACvBA,IAAAA,IAAI,GAAG/B,OAAO,CAAC+B,IAAD,CAAP,IAAiBA,IAAI,CAACG,MAAL,KAAgB,CAAjC,GAAqC,CAAC,GAAGH,IAAJ,EAAU,GAAGA,IAAb,CAArC,GAA0DA,IAAjE;AACAhD,IAAAA,EAAE,CAACoD,iBAAH,CAAqB,GAAGJ,IAAxB;AACD,GArGiC;AAuGlCxB,EAAAA,UAAU,EAAE,CAACxB,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACwB,UAAH,CAAc,GAAGvB,KAAjB,CAvGO;AAwGlC0B,EAAAA,UAAU,EAAE,CAAC3B,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC2B,UAAH,CAAc1B,KAAd,CAxGO;AAyGlCuC,EAAAA,YAAY,EAAE,CAACxC,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACwC,YAAH,CAAgBvC,KAAhB,CAzGK;AA2GlCwB,EAAAA,SAAS,EAAE,CAACzB,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACyB,SAAH,CAAa,GAAGxB,KAAhB,CA3GQ;AA6GlCoD,EAAAA,IAAI,EAAE,CAACrD,EAAD,EAAKC,KAAL,KAAgBA,KAAK,GAAGD,EAAE,CAACD,MAAH,CAAUxF,EAAE,CAACiB,SAAb,CAAH,GAA6BwE,EAAE,CAACG,OAAH,CAAW5F,EAAE,CAACiB,SAAd,CA7GtB;AA8GlCkG,EAAAA,QAAQ,EAAE,CAAC1B,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC0B,QAAH,CAAYzB,KAAZ,CA9GS;AAgHlCqD,EAAAA,SAAS,EAAE,CAACtD,EAAD,EAAKC,KAAL,KAAgBA,KAAK,GAAGD,EAAE,CAACD,MAAH,CAAUxF,EAAE,CAACoB,UAAb,CAAH,GAA8BqE,EAAE,CAACG,OAAH,CAAW5F,EAAE,CAACoB,UAAd,CAhH5B;AAiHlCiG,EAAAA,SAAS,EAAE,CAAC5B,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC4B,SAAH,CAAa3B,KAAb,CAjHQ;AAkHlC6B,EAAAA,SAAS,EAAE,CAAC9B,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC8B,SAAH,CAAa7B,KAAb,CAlHQ;AAmHlC4B,EAAAA,UAAU,EAAE,CAAC7B,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC6B,UAAH,CAAc,GAAG5B,KAAjB,CAnHO;AAqHlCsD,EAAAA,MAAM,EAAE,CAACvD,EAAD,EAAKC,KAAL,KAAgBA,KAAK,GAAGD,EAAE,CAACD,MAAH,CAAUxF,EAAE,CAAC0B,MAAb,CAAH,GAA0B+D,EAAE,CAACG,OAAH,CAAW5F,EAAE,CAAC0B,MAAd,CArHrB;AAuHlCuH,EAAAA,cAAc,EAAE,CAACxD,EAAD,EAAKC,KAAL,KAAe;AAE7BD,IAAAA,EAAE,CAACI,IAAH,CAAQ7F,EAAE,CAAC6E,+BAAX,EAA4Ca,KAA5C;AACD,GA1HiC;AA4HlCoC,EAAAA,SAAS,EAAE,CAACrC,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACqC,SAAH,CAAapC,KAAb,CA5HQ;AA8HlCwD,EAAAA,UAAU,EAAE,CAACzD,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACI,IAAH,CAAQ7F,EAAE,CAACkC,oBAAX,EAAiCwD,KAAjC,CA9HO;AAgIlCqC,EAAAA,SAAS,EAAE,CAACtC,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACsC,SAAH,CAAarC,KAAb,CAhIQ;AAkIlCyD,EAAAA,iBAAiB,EAAE,CAAC1D,EAAD,EAAKC,KAAL,KACjBA,KAAK,GAAGD,EAAE,CAACD,MAAH,CAAUxF,EAAE,CAACqC,mBAAb,CAAH,GAAuCoD,EAAE,CAACG,OAAH,CAAW5F,EAAE,CAACqC,mBAAd,CAnIZ;AAoIlC+G,EAAAA,aAAa,EAAE,CAAC3D,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC2D,aAAH,CAAiB,GAAG1D,KAApB,CApII;AAsIlC2D,EAAAA,cAAc,EAAE,CAAC5D,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC4D,cAAH,CAAkB,GAAG3D,KAArB,CAtIG;AAwIlC4D,EAAAA,WAAW,EAAE,CAAC7D,EAAD,EAAKC,KAAL,KAAgBA,KAAK,GAAGD,EAAE,CAACD,MAAH,CAAUxF,EAAE,CAAC4C,YAAb,CAAH,GAAgC6C,EAAE,CAACG,OAAH,CAAW5F,EAAE,CAAC4C,YAAd,CAxIhC;AAyIlCoF,EAAAA,OAAO,EAAE,CAACvC,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAACuC,OAAH,CAAW,GAAGtC,KAAd,CAzIU;AA2IlC6D,EAAAA,WAAW,EAAE,CAAC9D,EAAD,EAAKC,KAAL,KAAgBA,KAAK,GAAGD,EAAE,CAACD,MAAH,CAAUxF,EAAE,CAAC+C,YAAb,CAAH,GAAgC0C,EAAE,CAACG,OAAH,CAAW5F,EAAE,CAAC+C,YAAd,CA3IhC;AA4IlCyG,EAAAA,WAAW,EAAE,CAAC/D,EAAD,EAAKC,KAAL,KAAe;AAC1BA,IAAAA,KAAK,GAAGgB,OAAO,CAAChB,KAAD,CAAP,GAAiBA,KAAjB,GAAyB,CAACA,KAAD,EAAQA,KAAR,CAAjC;AACA,UAAM,CAAC+D,IAAD,EAAOC,QAAP,IAAmBhE,KAAzB;AACAD,IAAAA,EAAE,CAACyC,mBAAH,CAAuBlI,EAAE,CAACmI,KAA1B,EAAiCsB,IAAjC;AACAhE,IAAAA,EAAE,CAACyC,mBAAH,CAAuBlI,EAAE,CAACmB,IAA1B,EAAgCuI,QAAhC;AACD,GAjJiC;AAkJlCC,EAAAA,WAAW,EAAE,CAAClE,EAAD,EAAKgD,IAAL,KAAc;AACzBA,IAAAA,IAAI,GAAG/B,OAAO,CAAC+B,IAAD,CAAP,IAAiBA,IAAI,CAACG,MAAL,KAAgB,CAAjC,GAAqC,CAAC,GAAGH,IAAJ,EAAU,GAAGA,IAAb,CAArC,GAA0DA,IAAjE;AACA,UAAM,CAACmB,IAAD,EAAOC,GAAP,EAAYJ,IAAZ,EAAkBK,QAAlB,EAA4BC,OAA5B,EAAqCL,QAArC,IAAiDjB,IAAvD;AACAhD,IAAAA,EAAE,CAACuE,mBAAH,CAAuBhK,EAAE,CAACmI,KAA1B,EAAiCyB,IAAjC,EAAuCC,GAAvC,EAA4CJ,IAA5C;AACAhE,IAAAA,EAAE,CAACuE,mBAAH,CAAuBhK,EAAE,CAACmB,IAA1B,EAAgC2I,QAAhC,EAA0CC,OAA1C,EAAmDL,QAAnD;AACD,GAvJiC;AAwJlCO,EAAAA,SAAS,EAAE,CAACxE,EAAD,EAAKgD,IAAL,KAAc;AACvBA,IAAAA,IAAI,GAAG/B,OAAO,CAAC+B,IAAD,CAAP,IAAiBA,IAAI,CAACG,MAAL,KAAgB,CAAjC,GAAqC,CAAC,GAAGH,IAAJ,EAAU,GAAGA,IAAb,CAArC,GAA0DA,IAAjE;AACA,UAAM,CAACyB,KAAD,EAAQC,MAAR,EAAgBC,MAAhB,EAAwBC,SAAxB,EAAmCC,UAAnC,EAA+CC,UAA/C,IAA6D9B,IAAnE;AACAhD,IAAAA,EAAE,CAAC+E,iBAAH,CAAqBxK,EAAE,CAACmI,KAAxB,EAA+B+B,KAA/B,EAAsCC,MAAtC,EAA8CC,MAA9C;AACA3E,IAAAA,EAAE,CAAC+E,iBAAH,CAAqBxK,EAAE,CAACmB,IAAxB,EAA8BkJ,SAA9B,EAAyCC,UAAzC,EAAqDC,UAArD;AACD,GA7JiC;AA+JlCnC,EAAAA,QAAQ,EAAE,CAAC3C,EAAD,EAAKC,KAAL,KAAeD,EAAE,CAAC2C,QAAH,CAAY,GAAG1C,KAAf;AA/JS,CAA7B;;AAkKP,SAAS+E,QAAT,CAAkBC,MAAlB,EAA0BC,MAA1B,EAAkCC,KAAlC,EAAyC;AACvC,SAAOD,MAAM,CAACD,MAAD,CAAN,KAAmBG,SAAnB,GAA+BF,MAAM,CAACD,MAAD,CAArC,GAAgDE,KAAK,CAACF,MAAD,CAA5D;AACD;;AAGD,OAAO,MAAMI,8BAA8B,GAAG;AAC5CtC,EAAAA,aAAa,EAAE,CAAC/C,EAAD,EAAKkF,MAAL,EAAaC,KAAb,KACbnF,EAAE,CAACiD,qBAAH,CACE+B,QAAQ,CAACzK,EAAE,CAACM,kBAAJ,EAAwBqK,MAAxB,EAAgCC,KAAhC,CADV,EAEEH,QAAQ,CAACzK,EAAE,CAACQ,oBAAJ,EAA0BmK,MAA1B,EAAkCC,KAAlC,CAFV,CAF0C;AAM5CjC,EAAAA,SAAS,EAAE,CAAClD,EAAD,EAAKkF,MAAL,EAAaC,KAAb,KACTnF,EAAE,CAACoD,iBAAH,CACE4B,QAAQ,CAACzK,EAAE,CAACS,aAAJ,EAAmBkK,MAAnB,EAA2BC,KAA3B,CADV,EAEEH,QAAQ,CAACzK,EAAE,CAACW,aAAJ,EAAmBgK,MAAnB,EAA2BC,KAA3B,CAFV,EAGEH,QAAQ,CAACzK,EAAE,CAACa,eAAJ,EAAqB8J,MAArB,EAA6BC,KAA7B,CAHV,EAIEH,QAAQ,CAACzK,EAAE,CAACc,eAAJ,EAAqB6J,MAArB,EAA6BC,KAA7B,CAJV,CAP0C;AAa5CxB,EAAAA,aAAa,EAAE,CAAC3D,EAAD,EAAKkF,MAAL,EAAaC,KAAb,KACbnF,EAAE,CAAC2D,aAAH,CACEqB,QAAQ,CAACzK,EAAE,CAACsC,qBAAJ,EAA2BqI,MAA3B,EAAmCC,KAAnC,CADV,EAEEH,QAAQ,CAACzK,EAAE,CAACuC,oBAAJ,EAA0BoI,MAA1B,EAAkCC,KAAlC,CAFV,CAd0C;AAkB5CvB,EAAAA,cAAc,EAAE,CAAC5D,EAAD,EAAKkF,MAAL,EAAaC,KAAb,KACdnF,EAAE,CAAC4D,cAAH,CACEoB,QAAQ,CAACzK,EAAE,CAAC0C,qBAAJ,EAA2BiI,MAA3B,EAAmCC,KAAnC,CADV,EAEEH,QAAQ,CAACzK,EAAE,CAAC2C,sBAAJ,EAA4BgI,MAA5B,EAAoCC,KAApC,CAFV,CAnB0C;AAuB5CG,EAAAA,gBAAgB,EAAE,CAACtF,EAAD,EAAKkF,MAAL,EAAaC,KAAb,KAChBnF,EAAE,CAACuE,mBAAH,CACEhK,EAAE,CAACmI,KADL,EAEEsC,QAAQ,CAACzK,EAAE,CAACmD,YAAJ,EAAkBwH,MAAlB,EAA0BC,KAA1B,CAFV,EAGEH,QAAQ,CAACzK,EAAE,CAACqD,WAAJ,EAAiBsH,MAAjB,EAAyBC,KAAzB,CAHV,EAIEH,QAAQ,CAACzK,EAAE,CAACsD,kBAAJ,EAAwBqH,MAAxB,EAAgCC,KAAhC,CAJV,CAxB0C;AA8B5CI,EAAAA,eAAe,EAAE,CAACvF,EAAD,EAAKkF,MAAL,EAAaC,KAAb,KACfnF,EAAE,CAACuE,mBAAH,CACEhK,EAAE,CAACmB,IADL,EAEEsJ,QAAQ,CAACzK,EAAE,CAACuD,iBAAJ,EAAuBoH,MAAvB,EAA+BC,KAA/B,CAFV,EAGEH,QAAQ,CAACzK,EAAE,CAACwD,gBAAJ,EAAsBmH,MAAtB,EAA8BC,KAA9B,CAHV,EAIEH,QAAQ,CAACzK,EAAE,CAACyD,uBAAJ,EAA6BkH,MAA7B,EAAqCC,KAArC,CAJV,CA/B0C;AAqC5CK,EAAAA,cAAc,EAAE,CAACxF,EAAD,EAAKkF,MAAL,EAAaC,KAAb,KACdnF,EAAE,CAAC+E,iBAAH,CACExK,EAAE,CAACmI,KADL,EAEEsC,QAAQ,CAACzK,EAAE,CAAC0D,YAAJ,EAAkBiH,MAAlB,EAA0BC,KAA1B,CAFV,EAGEH,QAAQ,CAACzK,EAAE,CAAC4D,uBAAJ,EAA6B+G,MAA7B,EAAqCC,KAArC,CAHV,EAIEH,QAAQ,CAACzK,EAAE,CAAC6D,uBAAJ,EAA6B8G,MAA7B,EAAqCC,KAArC,CAJV,CAtC0C;AA4C5CM,EAAAA,aAAa,EAAE,CAACzF,EAAD,EAAKkF,MAAL,EAAaC,KAAb,KACbnF,EAAE,CAAC+E,iBAAH,CACExK,EAAE,CAACmB,IADL,EAEEsJ,QAAQ,CAACzK,EAAE,CAAC8D,iBAAJ,EAAuB6G,MAAvB,EAA+BC,KAA/B,CAFV,EAGEH,QAAQ,CAACzK,EAAE,CAAC+D,4BAAJ,EAAkC4G,MAAlC,EAA0CC,KAA1C,CAHV,EAIEH,QAAQ,CAACzK,EAAE,CAACgE,4BAAJ,EAAkC2G,MAAlC,EAA0CC,KAA1C,CAJV;AA7C0C,CAAvC;AAsDP,OAAO,MAAMO,iBAAiB,GAAG;AAG/B3F,EAAAA,MAAM,EAAE,CAAC4F,MAAD,EAASC,UAAT,KACND,MAAM,CAAC;AACL,KAACC,UAAD,GAAc;AADT,GAAD,CAJuB;AAO/BzF,EAAAA,OAAO,EAAE,CAACwF,MAAD,EAASC,UAAT,KACPD,MAAM,CAAC;AACL,KAACC,UAAD,GAAc;AADT,GAAD,CARuB;AAW/BvF,EAAAA,WAAW,EAAE,CAACsF,MAAD,EAASE,KAAT,EAAgB5F,KAAhB,KACX0F,MAAM,CAAC;AACL,KAACE,KAAD,GAAS5F;AADJ,GAAD,CAZuB;AAe/BG,EAAAA,IAAI,EAAE,CAACuF,MAAD,EAASE,KAAT,EAAgBzF,IAAhB,KACJuF,MAAM,CAAC;AACL,KAACE,KAAD,GAASzF;AADJ,GAAD,CAhBuB;AAqB/B2B,EAAAA,UAAU,EAAE,CAAC4D,MAAD,EAAS1F,KAAT,KAAmB0F,MAAM,CAAC;AACpC,KAACpL,EAAE,CAAC2B,eAAJ,GAAsB+D;AADc,GAAD,CArBN;AAwB/B+B,EAAAA,gBAAgB,EAAE,CAAC2D,MAAD,EAASpF,MAAT,EAAiBN,KAAjB,KAA2B0F,MAAM,CAAC;AAClD,KAACpL,EAAE,CAAC6B,oBAAJ,GAA2B6D;AADuB,GAAD,CAxBpB;AA2B/BiC,EAAAA,qBAAqB,EAAE,CAACyD,MAAD,EAASpF,MAAT,EAAiBN,KAAjB,KAA2B0F,MAAM,CAAC;AACvD,KAACpL,EAAE,CAACwE,0BAAJ,GAAiCkB;AADsB,GAAD,CA3BzB;AA8B/BmC,EAAAA,eAAe,EAAE,CAACuD,MAAD,EAAS1F,KAAT,KAAmB0F,MAAM,CAAC;AACzC,KAACpL,EAAE,CAAC8B,oBAAJ,GAA2B4D;AADc,GAAD,CA9BX;AAkC/BK,EAAAA,eAAe,EAAE,CAACqF,MAAD,EAASpF,MAAT,EAAiBqC,WAAjB,KAAiC;AAChD,YAAQrC,MAAR;AACE,WAAKhG,EAAE,CAACkG,WAAR;AACE,eAAOkF,MAAM,CAAC;AACZ,WAACpL,EAAE,CAACuL,wBAAJ,GAA+BlD,WADnB;AAEZ,WAACrI,EAAE,CAAC8E,wBAAJ,GAA+BuD;AAFnB,SAAD,CAAb;;AAIF,WAAKrI,EAAE,CAACiG,gBAAR;AACE,eAAOmF,MAAM,CAAC;AAAC,WAACpL,EAAE,CAACuL,wBAAJ,GAA+BlD;AAAhC,SAAD,CAAb;;AACF,WAAKrI,EAAE,CAACmG,gBAAR;AACE,eAAOiF,MAAM,CAAC;AAAC,WAACpL,EAAE,CAAC8E,wBAAJ,GAA+BuD;AAAhC,SAAD,CAAb;;AACF;AACE,eAAO,IAAP;AAXJ;AAaD,GAhD8B;AAiD/BjC,EAAAA,UAAU,EAAE,CAACgF,MAAD,EAASpF,MAAT,EAAiBwF,MAAjB,KAA4B;AACtC,UAAMF,KAAK,GAAI;AACb,OAACtL,EAAE,CAACqG,YAAJ,GAAmB,CAACrG,EAAE,CAAC+B,oBAAJ,CADN;AAEb,OAAC/B,EAAE,CAACsG,gBAAJ,GAAuB,CAACtG,EAAE,CAACyE,wBAAJ,CAFV;AAGb,OAACzE,EAAE,CAACuG,iBAAJ,GAAwB,CAACvG,EAAE,CAAC0E,yBAAJ,CAHX;AAIb,OAAC1E,EAAE,CAACwG,iBAAJ,GAAwB,CAACxG,EAAE,CAAC2E,yBAAJ,CAJX;AAKb,OAAC3E,EAAE,CAACyG,mBAAJ,GAA0B,CAACzG,EAAE,CAAC4E,2BAAJ;AALb,KAAD,CAMXoB,MANW,CAAd;;AAQA,QAAIsF,KAAJ,EAAW;AACT,aAAOF,MAAM,CAAC;AAAC,SAACE,KAAD,GAASE;AAAV,OAAD,CAAb;AACD;;AAED,WAAO;AAACC,MAAAA,YAAY,EAAE;AAAf,KAAP;AACD,GA/D8B;AAiE/BzE,EAAAA,UAAU,EAAE,CAACoE,MAAD,EAASM,CAAT,EAAYC,CAAZ,EAAeC,CAAf,EAAkBC,CAAlB,KACVT,MAAM,CAAC;AACL,KAACpL,EAAE,CAACI,WAAJ,GAAkB,IAAIC,YAAJ,CAAiB,CAACqL,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUC,CAAV,CAAjB;AADb,GAAD,CAlEuB;AAsE/BrD,EAAAA,aAAa,EAAE,CAAC4C,MAAD,EAASU,IAAT,KACbV,MAAM,CAAC;AACL,KAACpL,EAAE,CAACM,kBAAJ,GAAyBwL,IADpB;AAEL,KAAC9L,EAAE,CAACQ,oBAAJ,GAA2BsL;AAFtB,GAAD,CAvEuB;AA4E/BpD,EAAAA,qBAAqB,EAAE,CAAC0C,MAAD,EAASW,OAAT,EAAkBC,SAAlB,KACrBZ,MAAM,CAAC;AACL,KAACpL,EAAE,CAACM,kBAAJ,GAAyByL,OADpB;AAEL,KAAC/L,EAAE,CAACQ,oBAAJ,GAA2BwL;AAFtB,GAAD,CA7EuB;AAkF/BrD,EAAAA,SAAS,EAAE,CAACyC,MAAD,EAASa,GAAT,EAAcC,GAAd,KACTd,MAAM,CAAC;AACL,KAACpL,EAAE,CAACS,aAAJ,GAAoBwL,GADf;AAEL,KAACjM,EAAE,CAACW,aAAJ,GAAoBuL,GAFf;AAGL,KAAClM,EAAE,CAACa,eAAJ,GAAsBoL,GAHjB;AAIL,KAACjM,EAAE,CAACc,eAAJ,GAAsBoL;AAJjB,GAAD,CAnFuB;AA0F/BrD,EAAAA,iBAAiB,EAAE,CAACuC,MAAD,EAASe,MAAT,EAAiBC,MAAjB,EAAyBC,QAAzB,EAAmCC,QAAnC,KACjBlB,MAAM,CAAC;AACL,KAACpL,EAAE,CAACS,aAAJ,GAAoB0L,MADf;AAEL,KAACnM,EAAE,CAACW,aAAJ,GAAoByL,MAFf;AAGL,KAACpM,EAAE,CAACa,eAAJ,GAAsBwL,QAHjB;AAIL,KAACrM,EAAE,CAACc,eAAJ,GAAsBwL;AAJjB,GAAD,CA3FuB;AAkG/BrF,EAAAA,UAAU,EAAE,CAACmE,MAAD,EAASM,CAAT,EAAYC,CAAZ,EAAeC,CAAf,EAAkBC,CAAlB,KACVT,MAAM,CAAC;AACL,KAACpL,EAAE,CAACe,iBAAJ,GAAwB,IAAIV,YAAJ,CAAiB,CAACqL,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUC,CAAV,CAAjB;AADnB,GAAD,CAnGuB;AAuG/BzE,EAAAA,UAAU,EAAE,CAACgE,MAAD,EAASmB,KAAT,KACVnB,MAAM,CAAC;AACL,KAACpL,EAAE,CAACqB,iBAAJ,GAAwBkL;AADnB,GAAD,CAxGuB;AA4G/BtE,EAAAA,YAAY,EAAE,CAACmD,MAAD,EAASoB,CAAT,KACZpB,MAAM,CAAC;AACL,KAACpL,EAAE,CAACgD,mBAAJ,GAA0BwJ;AADrB,GAAD,CA7GuB;AAiH/BtF,EAAAA,SAAS,EAAE,CAACkE,MAAD,EAASM,CAAT,EAAYC,CAAZ,EAAeC,CAAf,EAAkBC,CAAlB,KACTT,MAAM,CAAC;AACL,KAACpL,EAAE,CAACgB,eAAJ,GAAsB,CAAC0K,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUC,CAAV;AADjB,GAAD,CAlHuB;AAsH/B1E,EAAAA,QAAQ,EAAE,CAACiE,MAAD,EAASU,IAAT,KACRV,MAAM,CAAC;AACL,KAACpL,EAAE,CAACkB,cAAJ,GAAqB4K;AADhB,GAAD,CAvHuB;AA2H/BzE,EAAAA,SAAS,EAAE,CAAC+D,MAAD,EAASxB,IAAT,KACTwB,MAAM,CAAC;AACL,KAACpL,EAAE,CAACsB,UAAJ,GAAiBsI;AADZ,GAAD,CA5HuB;AAgI/BtC,EAAAA,UAAU,EAAE,CAAC8D,MAAD,EAASqB,KAAT,EAAgBC,IAAhB,KACVtB,MAAM,CAAC;AACL,KAACpL,EAAE,CAACwB,WAAJ,GAAkB,IAAInB,YAAJ,CAAiB,CAACoM,KAAD,EAAQC,IAAR,CAAjB;AADb,GAAD,CAjIuB;AAqI/BnF,EAAAA,SAAS,EAAE,CAAC6D,MAAD,EAAS3B,IAAT,KACT2B,MAAM,CAAC;AACL,KAACpL,EAAE,CAACyB,eAAJ,GAAsBgI;AADjB,GAAD,CAtIuB;AA0I/B3B,EAAAA,SAAS,EAAE,CAACsD,MAAD,EAASuB,IAAT,KACTvB,MAAM,CAAC;AACL,KAACpL,EAAE,CAACgC,UAAJ,GAAiB2K;AADZ,GAAD,CA3IuB;AA+I/B5E,EAAAA,SAAS,EAAE,CAACqD,MAAD,EAASwB,KAAT,KACTxB,MAAM,CAAC;AACL,KAACpL,EAAE,CAACoC,UAAJ,GAAiBwK;AADZ,GAAD,CAhJuB;AAoJ/BxD,EAAAA,aAAa,EAAE,CAACgC,MAAD,EAASyB,MAAT,EAAiBC,KAAjB,KACb1B,MAAM,CAAC;AACL,KAACpL,EAAE,CAACsC,qBAAJ,GAA4BuK,MADvB;AAEL,KAAC7M,EAAE,CAACuC,oBAAJ,GAA2BuK;AAFtB,GAAD,CArJuB;AA0J/BzD,EAAAA,cAAc,EAAE,CAAC+B,MAAD,EAAS1F,KAAT,EAAgBqH,MAAhB,KACd3B,MAAM,CAAC;AACL,KAACpL,EAAE,CAAC0C,qBAAJ,GAA4BgD,KADvB;AAEL,KAAC1F,EAAE,CAAC2C,sBAAJ,GAA6BoK;AAFxB,GAAD,CA3JuB;AAgK/B/E,EAAAA,OAAO,EAAE,CAACoD,MAAD,EAAS4B,CAAT,EAAYC,CAAZ,EAAeL,KAAf,EAAsBM,MAAtB,KACP9B,MAAM,CAAC;AACL,KAACpL,EAAE,CAAC6C,WAAJ,GAAkB,IAAIC,UAAJ,CAAe,CAACkK,CAAD,EAAIC,CAAJ,EAAOL,KAAP,EAAcM,MAAd,CAAf;AADb,GAAD,CAjKuB;AAqK/B1D,EAAAA,WAAW,EAAE,CAAC4B,MAAD,EAAS3B,IAAT,KACX2B,MAAM,CAAC;AACL,KAACpL,EAAE,CAACiD,iBAAJ,GAAwBwG,IADnB;AAEL,KAACzJ,EAAE,CAACkD,sBAAJ,GAA6BuG;AAFxB,GAAD,CAtKuB;AA2K/BvB,EAAAA,mBAAmB,EAAE,CAACkD,MAAD,EAASuB,IAAT,EAAelD,IAAf,KACnB2B,MAAM,CAAC;AACL,KAACuB,IAAI,KAAK3M,EAAE,CAACmI,KAAZ,GAAoBnI,EAAE,CAACiD,iBAAvB,GAA2CjD,EAAE,CAACkD,sBAA/C,GAAwEuG;AADnE,GAAD,CA5KuB;AAgL/BE,EAAAA,WAAW,EAAE,CAACyB,MAAD,EAASxB,IAAT,EAAeC,GAAf,EAAoBJ,IAApB,KACX2B,MAAM,CAAC;AACL,KAACpL,EAAE,CAACmD,YAAJ,GAAmByG,IADd;AAEL,KAAC5J,EAAE,CAACqD,WAAJ,GAAkBwG,GAFb;AAGL,KAAC7J,EAAE,CAACsD,kBAAJ,GAAyBmG,IAHpB;AAIL,KAACzJ,EAAE,CAACuD,iBAAJ,GAAwBqG,IAJnB;AAKL,KAAC5J,EAAE,CAACwD,gBAAJ,GAAuBqG,GALlB;AAML,KAAC7J,EAAE,CAACyD,uBAAJ,GAA8BgG;AANzB,GAAD,CAjLuB;AA0L/BO,EAAAA,mBAAmB,EAAE,CAACoB,MAAD,EAASuB,IAAT,EAAe/C,IAAf,EAAqBC,GAArB,EAA0BJ,IAA1B,KACnB2B,MAAM,CAAC;AACL,KAACuB,IAAI,KAAK3M,EAAE,CAACmI,KAAZ,GAAoBnI,EAAE,CAACmD,YAAvB,GAAsCnD,EAAE,CAACuD,iBAA1C,GAA8DqG,IADzD;AAEL,KAAC+C,IAAI,KAAK3M,EAAE,CAACmI,KAAZ,GAAoBnI,EAAE,CAACqD,WAAvB,GAAqCrD,EAAE,CAACwD,gBAAzC,GAA4DqG,GAFvD;AAGL,KAAC8C,IAAI,KAAK3M,EAAE,CAACmI,KAAZ,GAAoBnI,EAAE,CAACsD,kBAAvB,GAA4CtD,EAAE,CAACyD,uBAAhD,GAA0EgG;AAHrE,GAAD,CA3LuB;AAiM/BQ,EAAAA,SAAS,EAAE,CAACmB,MAAD,EAAS+B,IAAT,EAAeC,KAAf,EAAsBC,KAAtB,KACTjC,MAAM,CAAC;AACL,KAACpL,EAAE,CAAC0D,YAAJ,GAAmByJ,IADd;AAEL,KAACnN,EAAE,CAAC4D,uBAAJ,GAA8BwJ,KAFzB;AAGL,KAACpN,EAAE,CAAC6D,uBAAJ,GAA8BwJ,KAHzB;AAIL,KAACrN,EAAE,CAAC8D,iBAAJ,GAAwBqJ,IAJnB;AAKL,KAACnN,EAAE,CAAC+D,4BAAJ,GAAmCqJ,KAL9B;AAML,KAACpN,EAAE,CAACgE,4BAAJ,GAAmCqJ;AAN9B,GAAD,CAlMuB;AA2M/B7C,EAAAA,iBAAiB,EAAE,CAACY,MAAD,EAASuB,IAAT,EAAeQ,IAAf,EAAqBC,KAArB,EAA4BC,KAA5B,KACjBjC,MAAM,CAAC;AACL,KAACuB,IAAI,KAAK3M,EAAE,CAACmI,KAAZ,GAAoBnI,EAAE,CAAC0D,YAAvB,GAAsC1D,EAAE,CAAC8D,iBAA1C,GAA8DqJ,IADzD;AAEL,KAACR,IAAI,KAAK3M,EAAE,CAACmI,KAAZ,GAAoBnI,EAAE,CAAC4D,uBAAvB,GAAiD5D,EAAE,CAAC+D,4BAArD,GAAoFqJ,KAF/E;AAGL,KAACT,IAAI,KAAK3M,EAAE,CAACmI,KAAZ,GAAoBnI,EAAE,CAAC6D,uBAAvB,GAAiD7D,EAAE,CAACgE,4BAArD,GAAoFqJ;AAH/E,GAAD,CA5MuB;AAkN/BjF,EAAAA,QAAQ,EAAE,CAACgD,MAAD,EAAS4B,CAAT,EAAYC,CAAZ,EAAeL,KAAf,EAAsBM,MAAtB,KACR9B,MAAM,CAAC;AACL,KAACpL,EAAE,CAACiE,QAAJ,GAAe,CAAC+I,CAAD,EAAIC,CAAJ,EAAOL,KAAP,EAAcM,MAAd;AADV,GAAD;AAnNuB,CAA1B;;AA0NP,MAAMI,SAAS,GAAG,CAAC7H,EAAD,EAAKE,GAAL,KAAaF,EAAE,CAAC6H,SAAH,CAAa3H,GAAb,CAA/B;;AAGA,OAAO,MAAM4H,oBAAoB,GAAG;AAClC,GAACvN,EAAE,CAACG,KAAJ,GAAYmN,SADsB;AAElC,GAACtN,EAAE,CAACiB,SAAJ,GAAgBqM,SAFkB;AAGlC,GAACtN,EAAE,CAACoB,UAAJ,GAAiBkM,SAHiB;AAIlC,GAACtN,EAAE,CAAC0B,MAAJ,GAAa4L,SAJqB;AAKlC,GAACtN,EAAE,CAACqC,mBAAJ,GAA0BiL,SALQ;AAMlC,GAACtN,EAAE,CAACwC,wBAAJ,GAA+B8K,SANG;AAOlC,GAACtN,EAAE,CAACyC,eAAJ,GAAsB6K,SAPY;AAQlC,GAACtN,EAAE,CAAC4C,YAAJ,GAAmB0K,SARe;AASlC,GAACtN,EAAE,CAAC+C,YAAJ,GAAmBuK,SATe;AAYlC,GAACtN,EAAE,CAAC+E,kBAAJ,GAAyBuI;AAZS,CAA7B;AAeP,OAAO,MAAME,oBAAoB,GAAG,IAAIC,GAAJ,CAAQ,CAE1CzN,EAAE,CAAC0N,cAFuC,EAG1C1N,EAAE,CAAC2N,yBAHuC,EAI1C3N,EAAE,CAAC4N,yBAJuC,EAO1C5N,EAAE,CAAC6N,iCAPuC,EAQ1C7N,EAAE,CAAC8N,sBARuC,EAW1C9N,EAAE,CAAC+N,4BAXuC,EAa1C/N,EAAE,CAACgO,gCAbuC,EAc1ChO,EAAE,CAACiO,8BAduC,EAgB1CjO,EAAE,CAACkO,WAhBuC,EAiB1ClO,EAAE,CAACmO,YAjBuC,EAkB1CnO,EAAE,CAACoO,YAlBuC,EAmB1CpO,EAAE,CAACqO,YAnBuC,EAoB1CrO,EAAE,CAACsO,YApBuC,EAqB1CtO,EAAE,CAACuO,YArBuC,EAsB1CvO,EAAE,CAACwO,YAtBuC,EAuB1CxO,EAAE,CAACyO,YAvBuC,EAwB1CzO,EAAE,CAAC0O,YAxBuC,EAyB1C1O,EAAE,CAAC2O,YAzBuC,EA0B1C3O,EAAE,CAAC4O,YA1BuC,EA2B1C5O,EAAE,CAAC6O,aA3BuC,EA4B1C7O,EAAE,CAAC8O,aA5BuC,EA6B1C9O,EAAE,CAAC+O,aA7BuC,EA8B1C/O,EAAE,CAACgP,aA9BuC,EA+B1ChP,EAAE,CAACiP,aA/BuC,EAgC1CjP,EAAE,CAACkP,aAhCuC,EAkC1ClP,EAAE,CAACmP,eAlCuC,EAmC1CnP,EAAE,CAACoP,kBAnCuC,EAoC1CpP,EAAE,CAACqP,wBApCuC,EAqC1CrP,EAAE,CAACsP,kBArCuC,EAsC1CtP,EAAE,CAACuP,wBAtCuC,CAAR,CAA7B","sourcesContent":["// Tables describing WebGL parameters\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../context/webgl-checks';\nimport {GLParameters} from './webgl-parameters';\n// DEFAULT SETTINGS - FOR FAST CACHE INITIALIZATION AND CONTEXT RESETS\n\n/* eslint-disable no-shadow */\n\nexport const GL_PARAMETER_DEFAULTS: GLParameters = {\n [GL.BLEND]: false,\n [GL.BLEND_COLOR]: new Float32Array([0, 0, 0, 0]),\n [GL.BLEND_EQUATION_RGB]: GL.FUNC_ADD,\n [GL.BLEND_EQUATION_ALPHA]: GL.FUNC_ADD,\n [GL.BLEND_SRC_RGB]: GL.ONE,\n [GL.BLEND_DST_RGB]: GL.ZERO,\n [GL.BLEND_SRC_ALPHA]: GL.ONE,\n [GL.BLEND_DST_ALPHA]: GL.ZERO,\n [GL.COLOR_CLEAR_VALUE]: new Float32Array([0, 0, 0, 0]), // TBD\n [GL.COLOR_WRITEMASK]: [true, true, true, true],\n [GL.CULL_FACE]: false,\n [GL.CULL_FACE_MODE]: GL.BACK,\n [GL.DEPTH_TEST]: false,\n [GL.DEPTH_CLEAR_VALUE]: 1,\n [GL.DEPTH_FUNC]: GL.LESS,\n [GL.DEPTH_RANGE]: new Float32Array([0, 1]), // TBD\n [GL.DEPTH_WRITEMASK]: true,\n [GL.DITHER]: true,\n [GL.CURRENT_PROGRAM]: null,\n // FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.\n [GL.FRAMEBUFFER_BINDING]: null,\n [GL.RENDERBUFFER_BINDING]: null,\n [GL.VERTEX_ARRAY_BINDING]: null,\n [GL.ARRAY_BUFFER_BINDING]: null,\n [GL.FRONT_FACE]: GL.CCW,\n [GL.GENERATE_MIPMAP_HINT]: GL.DONT_CARE,\n [GL.LINE_WIDTH]: 1,\n [GL.POLYGON_OFFSET_FILL]: false,\n [GL.POLYGON_OFFSET_FACTOR]: 0,\n [GL.POLYGON_OFFSET_UNITS]: 0,\n [GL.SAMPLE_ALPHA_TO_COVERAGE]: false,\n [GL.SAMPLE_COVERAGE]: false,\n [GL.SAMPLE_COVERAGE_VALUE]: 1.0,\n [GL.SAMPLE_COVERAGE_INVERT]: false,\n [GL.SCISSOR_TEST]: false,\n // Note: Dynamic value. If scissor test enabled we expect users to set correct scissor box\n [GL.SCISSOR_BOX]: new Int32Array([0, 0, 1024, 1024]),\n [GL.STENCIL_TEST]: false,\n [GL.STENCIL_CLEAR_VALUE]: 0,\n [GL.STENCIL_WRITEMASK]: 0xffffffff,\n [GL.STENCIL_BACK_WRITEMASK]: 0xffffffff,\n [GL.STENCIL_FUNC]: GL.ALWAYS,\n [GL.STENCIL_REF]: 0,\n [GL.STENCIL_VALUE_MASK]: 0xffffffff,\n [GL.STENCIL_BACK_FUNC]: GL.ALWAYS,\n [GL.STENCIL_BACK_REF]: 0,\n [GL.STENCIL_BACK_VALUE_MASK]: 0xffffffff,\n [GL.STENCIL_FAIL]: GL.KEEP,\n [GL.STENCIL_PASS_DEPTH_FAIL]: GL.KEEP,\n [GL.STENCIL_PASS_DEPTH_PASS]: GL.KEEP,\n [GL.STENCIL_BACK_FAIL]: GL.KEEP,\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: GL.KEEP,\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: GL.KEEP,\n // Dynamic value: We use [0, 0, 1024, 1024] as default, but usually this is updated in each frame.\n [GL.VIEWPORT]: [0, 0, 1024, 1024],\n // WEBGL1 PIXEL PACK/UNPACK MODES\n [GL.PACK_ALIGNMENT]: 4,\n [GL.UNPACK_ALIGNMENT]: 4,\n [GL.UNPACK_FLIP_Y_WEBGL]: false,\n [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,\n [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,\n\n // WEBGL2 / EXTENSIONS\n // gl1: 'OES_standard_derivatives'\n [GL.TRANSFORM_FEEDBACK_BINDING]: null,\n [GL.COPY_READ_BUFFER_BINDING]: null,\n [GL.COPY_WRITE_BUFFER_BINDING]: null,\n [GL.PIXEL_PACK_BUFFER_BINDING]: null,\n [GL.PIXEL_UNPACK_BUFFER_BINDING]: null,\n [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: GL.DONT_CARE,\n [GL.READ_FRAMEBUFFER_BINDING]: null,\n [GL.RASTERIZER_DISCARD]: false,\n [GL.PACK_ROW_LENGTH]: 0,\n [GL.PACK_SKIP_PIXELS]: 0,\n [GL.PACK_SKIP_ROWS]: 0,\n [GL.UNPACK_ROW_LENGTH]: 0,\n [GL.UNPACK_IMAGE_HEIGHT]: 0,\n [GL.UNPACK_SKIP_PIXELS]: 0,\n [GL.UNPACK_SKIP_ROWS]: 0,\n [GL.UNPACK_SKIP_IMAGES]: 0\n};\n\n// SETTER TABLES - ENABLES SETTING ANY PARAMETER WITH A COMMON API\n\nconst enable = (gl, value, key) => (value ? gl.enable(key) : gl.disable(key));\nconst hint = (gl, value, key) => gl.hint(key, value);\nconst pixelStorei = (gl, value, key) => gl.pixelStorei(key, value);\n\nconst bindFramebuffer = (gl, value, key) => {\n let target;\n if (key === GL.FRAMEBUFFER_BINDING) {\n target = isWebGL2(gl) ? GL.DRAW_FRAMEBUFFER : GL.FRAMEBUFFER;\n } else {\n // GL.READ_FRAMEBUFFER_BINDING\n target = GL.READ_FRAMEBUFFER;\n }\n return gl.bindFramebuffer(target, value);\n};\n\nconst bindBuffer = (gl, value, key) => {\n const target = ({\n [GL.ARRAY_BUFFER_BINDING]: [GL.ARRAY_BUFFER],\n [GL.COPY_READ_BUFFER_BINDING]: [GL.COPY_READ_BUFFER],\n [GL.COPY_WRITE_BUFFER_BINDING]: [GL.COPY_WRITE_BUFFER],\n [GL.PIXEL_PACK_BUFFER_BINDING]: [GL.PIXEL_PACK_BUFFER],\n [GL.PIXEL_UNPACK_BUFFER_BINDING]: [GL.PIXEL_UNPACK_BUFFER]\n })[key];\n\n gl.bindBuffer(target, value);\n};\n\n// Utility\nfunction isArray(array) {\n return Array.isArray(array) || ArrayBuffer.isView(array);\n}\n\n// Map from WebGL parameter names to corresponding WebGL setter functions\n// WegGL constants are read by parameter names, but set by function names\n// NOTE: When value type is a string, it will be handled by 'GL_COMPOSITE_PARAMETER_SETTERS'\nexport const GL_PARAMETER_SETTERS = {\n [GL.BLEND]: enable,\n [GL.BLEND_COLOR]: (gl, value) => gl.blendColor(...value),\n [GL.BLEND_EQUATION_RGB]: 'blendEquation',\n [GL.BLEND_EQUATION_ALPHA]: 'blendEquation',\n [GL.BLEND_SRC_RGB]: 'blendFunc',\n [GL.BLEND_DST_RGB]: 'blendFunc',\n [GL.BLEND_SRC_ALPHA]: 'blendFunc',\n [GL.BLEND_DST_ALPHA]: 'blendFunc',\n [GL.COLOR_CLEAR_VALUE]: (gl, value) => gl.clearColor(...value),\n [GL.COLOR_WRITEMASK]: (gl, value) => gl.colorMask(...value),\n [GL.CULL_FACE]: enable,\n [GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),\n [GL.DEPTH_TEST]: enable,\n [GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),\n [GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),\n [GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),\n [GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),\n [GL.DITHER]: enable,\n [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,\n\n [GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),\n [GL.RENDERBUFFER_BINDING]: (gl, value) => gl.bindRenderbuffer(GL.RENDERBUFFER, value),\n [GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) => gl.bindTransformFeedback?.(GL.TRANSFORM_FEEDBACK, value),\n [GL.VERTEX_ARRAY_BINDING]: (gl, value) => gl.bindVertexArray(value),\n // NOTE: FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.\n [GL.FRAMEBUFFER_BINDING]: bindFramebuffer,\n [GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,\n\n // Buffers\n [GL.ARRAY_BUFFER_BINDING]: bindBuffer,\n [GL.COPY_READ_BUFFER_BINDING]: bindBuffer,\n [GL.COPY_WRITE_BUFFER_BINDING]: bindBuffer,\n [GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,\n [GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,\n\n [GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),\n [GL.GENERATE_MIPMAP_HINT]: hint,\n [GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),\n [GL.POLYGON_OFFSET_FILL]: enable,\n [GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',\n [GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',\n [GL.RASTERIZER_DISCARD]: enable,\n [GL.SAMPLE_ALPHA_TO_COVERAGE]: enable,\n [GL.SAMPLE_COVERAGE]: enable,\n [GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',\n [GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',\n [GL.SCISSOR_TEST]: enable,\n [GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),\n [GL.STENCIL_TEST]: enable,\n [GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),\n [GL.STENCIL_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.FRONT, value),\n [GL.STENCIL_BACK_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.BACK, value),\n [GL.STENCIL_FUNC]: 'stencilFuncFront',\n [GL.STENCIL_REF]: 'stencilFuncFront',\n [GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',\n [GL.STENCIL_BACK_FUNC]: 'stencilFuncBack',\n [GL.STENCIL_BACK_REF]: 'stencilFuncBack',\n [GL.STENCIL_BACK_VALUE_MASK]: 'stencilFuncBack',\n [GL.STENCIL_FAIL]: 'stencilOpFront',\n [GL.STENCIL_PASS_DEPTH_FAIL]: 'stencilOpFront',\n [GL.STENCIL_PASS_DEPTH_PASS]: 'stencilOpFront',\n [GL.STENCIL_BACK_FAIL]: 'stencilOpBack',\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',\n [GL.VIEWPORT]: (gl, value) => gl.viewport(...value),\n\n // WEBGL1 PIXEL PACK/UNPACK MODES\n [GL.PACK_ALIGNMENT]: pixelStorei,\n [GL.UNPACK_ALIGNMENT]: pixelStorei,\n [GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,\n [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,\n [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,\n\n // WEBGL2 PIXEL PACK/UNPACK MODES\n // RASTERIZER_DISCARD ...\n [GL.PACK_ROW_LENGTH]: pixelStorei,\n [GL.PACK_SKIP_PIXELS]: pixelStorei,\n [GL.PACK_SKIP_ROWS]: pixelStorei,\n [GL.UNPACK_ROW_LENGTH]: pixelStorei,\n [GL.UNPACK_IMAGE_HEIGHT]: pixelStorei,\n [GL.UNPACK_SKIP_PIXELS]: pixelStorei,\n [GL.UNPACK_SKIP_ROWS]: pixelStorei,\n [GL.UNPACK_SKIP_IMAGES]: pixelStorei,\n\n // Function-style setters\n framebuffer: (gl, framebuffer) => {\n // accepts 1) a WebGLFramebuffer 2) null (default framebuffer), or 3) luma.gl Framebuffer class\n // framebuffer is null when restoring to default framebuffer, otherwise use the WebGL handle.\n const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;\n return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n },\n blend: (gl, value) => (value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND)),\n blendColor: (gl, value) => gl.blendColor(...value),\n blendEquation: (gl, args) => {\n args = isArray(args) ? args : [args, args];\n gl.blendEquationSeparate(...args);\n },\n blendFunc: (gl, args) => {\n args = isArray(args) && args.length === 2 ? [...args, ...args] : args;\n gl.blendFuncSeparate(...args);\n },\n\n clearColor: (gl, value) => gl.clearColor(...value),\n clearDepth: (gl, value) => gl.clearDepth(value),\n clearStencil: (gl, value) => gl.clearStencil(value),\n\n colorMask: (gl, value) => gl.colorMask(...value),\n\n cull: (gl, value) => (value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE)),\n cullFace: (gl, value) => gl.cullFace(value),\n\n depthTest: (gl, value) => (value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST)),\n depthFunc: (gl, value) => gl.depthFunc(value),\n depthMask: (gl, value) => gl.depthMask(value),\n depthRange: (gl, value) => gl.depthRange(...value),\n\n dither: (gl, value) => (value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER)),\n\n derivativeHint: (gl, value) => {\n // gl1: 'OES_standard_derivatives'\n gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);\n },\n\n frontFace: (gl, value) => gl.frontFace(value),\n\n mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),\n\n lineWidth: (gl, value) => gl.lineWidth(value),\n\n polygonOffsetFill: (gl, value) =>\n value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),\n polygonOffset: (gl, value) => gl.polygonOffset(...value),\n\n sampleCoverage: (gl, value) => gl.sampleCoverage(...value),\n\n scissorTest: (gl, value) => (value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST)),\n scissor: (gl, value) => gl.scissor(...value),\n\n stencilTest: (gl, value) => (value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST)),\n stencilMask: (gl, value) => {\n value = isArray(value) ? value : [value, value];\n const [mask, backMask] = value;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, backMask);\n },\n stencilFunc: (gl, args) => {\n args = isArray(args) && args.length === 3 ? [...args, ...args] : args;\n const [func, ref, mask, backFunc, backRef, backMask] = args;\n gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);\n gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);\n },\n stencilOp: (gl, args) => {\n args = isArray(args) && args.length === 3 ? [...args, ...args] : args;\n const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);\n },\n\n viewport: (gl, value) => gl.viewport(...value)\n};\n\nfunction getValue(glEnum, values, cache) {\n return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];\n}\n\n// COMPOSITE_WEBGL_PARAMETER_\nexport const GL_COMPOSITE_PARAMETER_SETTERS = {\n blendEquation: (gl, values, cache) =>\n gl.blendEquationSeparate(\n getValue(GL.BLEND_EQUATION_RGB, values, cache),\n getValue(GL.BLEND_EQUATION_ALPHA, values, cache)\n ),\n blendFunc: (gl, values, cache) =>\n gl.blendFuncSeparate(\n getValue(GL.BLEND_SRC_RGB, values, cache),\n getValue(GL.BLEND_DST_RGB, values, cache),\n getValue(GL.BLEND_SRC_ALPHA, values, cache),\n getValue(GL.BLEND_DST_ALPHA, values, cache)\n ),\n polygonOffset: (gl, values, cache) =>\n gl.polygonOffset(\n getValue(GL.POLYGON_OFFSET_FACTOR, values, cache),\n getValue(GL.POLYGON_OFFSET_UNITS, values, cache)\n ),\n sampleCoverage: (gl, values, cache) =>\n gl.sampleCoverage(\n getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache),\n getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)\n ),\n stencilFuncFront: (gl, values, cache) =>\n gl.stencilFuncSeparate(\n GL.FRONT,\n getValue(GL.STENCIL_FUNC, values, cache),\n getValue(GL.STENCIL_REF, values, cache),\n getValue(GL.STENCIL_VALUE_MASK, values, cache)\n ),\n stencilFuncBack: (gl, values, cache) =>\n gl.stencilFuncSeparate(\n GL.BACK,\n getValue(GL.STENCIL_BACK_FUNC, values, cache),\n getValue(GL.STENCIL_BACK_REF, values, cache),\n getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)\n ),\n stencilOpFront: (gl, values, cache) =>\n gl.stencilOpSeparate(\n GL.FRONT,\n getValue(GL.STENCIL_FAIL, values, cache),\n getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache),\n getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)\n ),\n stencilOpBack: (gl, values, cache) =>\n gl.stencilOpSeparate(\n GL.BACK,\n getValue(GL.STENCIL_BACK_FAIL, values, cache),\n getValue(GL.STENCIL_BACK_PASS_DEPTH_FAIL, values, cache),\n getValue(GL.STENCIL_BACK_PASS_DEPTH_PASS, values, cache)\n )\n};\n\n// Setter functions intercepted for cache updates\nexport const GL_HOOKED_SETTERS = {\n // GENERIC SETTERS\n\n enable: (update, capability) =>\n update({\n [capability]: true\n }),\n disable: (update, capability) =>\n update({\n [capability]: false\n }),\n pixelStorei: (update, pname, value) =>\n update({\n [pname]: value\n }),\n hint: (update, pname, hint) =>\n update({\n [pname]: hint\n }),\n\n // SPECIFIC SETTERS\n useProgram: (update, value) => update({\n [GL.CURRENT_PROGRAM]: value,\n }),\n bindRenderbuffer: (update, target, value) => update({\n [GL.RENDERBUFFER_BINDING]: value\n }),\n bindTransformFeedback: (update, target, value) => update({\n [GL.TRANSFORM_FEEDBACK_BINDING]: value\n }),\n bindVertexArray: (update, value) => update({\n [GL.VERTEX_ARRAY_BINDING]: value\n }),\n\n bindFramebuffer: (update, target, framebuffer) => {\n switch (target) {\n case GL.FRAMEBUFFER:\n return update({\n [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer,\n [GL.READ_FRAMEBUFFER_BINDING]: framebuffer\n });\n case GL.DRAW_FRAMEBUFFER:\n return update({[GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer});\n case GL.READ_FRAMEBUFFER:\n return update({[GL.READ_FRAMEBUFFER_BINDING]: framebuffer});\n default:\n return null;\n }\n },\n bindBuffer: (update, target, buffer) => {\n const pname = ({\n [GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],\n [GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],\n [GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],\n [GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],\n [GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]\n })[target];\n\n if (pname) {\n return update({[pname]: buffer});\n }\n // targets that should not be cached\n return {valueChanged: true};\n },\n\n blendColor: (update, r, g, b, a) =>\n update({\n [GL.BLEND_COLOR]: new Float32Array([r, g, b, a])\n }),\n\n blendEquation: (update, mode) =>\n update({\n [GL.BLEND_EQUATION_RGB]: mode,\n [GL.BLEND_EQUATION_ALPHA]: mode\n }),\n\n blendEquationSeparate: (update, modeRGB, modeAlpha) =>\n update({\n [GL.BLEND_EQUATION_RGB]: modeRGB,\n [GL.BLEND_EQUATION_ALPHA]: modeAlpha\n }),\n\n blendFunc: (update, src, dst) =>\n update({\n [GL.BLEND_SRC_RGB]: src,\n [GL.BLEND_DST_RGB]: dst,\n [GL.BLEND_SRC_ALPHA]: src,\n [GL.BLEND_DST_ALPHA]: dst\n }),\n\n blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) =>\n update({\n [GL.BLEND_SRC_RGB]: srcRGB,\n [GL.BLEND_DST_RGB]: dstRGB,\n [GL.BLEND_SRC_ALPHA]: srcAlpha,\n [GL.BLEND_DST_ALPHA]: dstAlpha\n }),\n\n clearColor: (update, r, g, b, a) =>\n update({\n [GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])\n }),\n\n clearDepth: (update, depth) =>\n update({\n [GL.DEPTH_CLEAR_VALUE]: depth\n }),\n\n clearStencil: (update, s) =>\n update({\n [GL.STENCIL_CLEAR_VALUE]: s\n }),\n\n colorMask: (update, r, g, b, a) =>\n update({\n [GL.COLOR_WRITEMASK]: [r, g, b, a]\n }),\n\n cullFace: (update, mode) =>\n update({\n [GL.CULL_FACE_MODE]: mode\n }),\n\n depthFunc: (update, func) =>\n update({\n [GL.DEPTH_FUNC]: func\n }),\n\n depthRange: (update, zNear, zFar) =>\n update({\n [GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])\n }),\n\n depthMask: (update, mask) =>\n update({\n [GL.DEPTH_WRITEMASK]: mask\n }),\n\n frontFace: (update, face) =>\n update({\n [GL.FRONT_FACE]: face\n }),\n\n lineWidth: (update, width) =>\n update({\n [GL.LINE_WIDTH]: width\n }),\n\n polygonOffset: (update, factor, units) =>\n update({\n [GL.POLYGON_OFFSET_FACTOR]: factor,\n [GL.POLYGON_OFFSET_UNITS]: units\n }),\n\n sampleCoverage: (update, value, invert) =>\n update({\n [GL.SAMPLE_COVERAGE_VALUE]: value,\n [GL.SAMPLE_COVERAGE_INVERT]: invert\n }),\n\n scissor: (update, x, y, width, height) =>\n update({\n [GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])\n }),\n\n stencilMask: (update, mask) =>\n update({\n [GL.STENCIL_WRITEMASK]: mask,\n [GL.STENCIL_BACK_WRITEMASK]: mask\n }),\n\n stencilMaskSeparate: (update, face, mask) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask\n }),\n\n stencilFunc: (update, func, ref, mask) =>\n update({\n [GL.STENCIL_FUNC]: func,\n [GL.STENCIL_REF]: ref,\n [GL.STENCIL_VALUE_MASK]: mask,\n [GL.STENCIL_BACK_FUNC]: func,\n [GL.STENCIL_BACK_REF]: ref,\n [GL.STENCIL_BACK_VALUE_MASK]: mask\n }),\n\n stencilFuncSeparate: (update, face, func, ref, mask) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,\n [face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,\n [face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask\n }),\n\n stencilOp: (update, fail, zfail, zpass) =>\n update({\n [GL.STENCIL_FAIL]: fail,\n [GL.STENCIL_PASS_DEPTH_FAIL]: zfail,\n [GL.STENCIL_PASS_DEPTH_PASS]: zpass,\n [GL.STENCIL_BACK_FAIL]: fail,\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass\n }),\n\n stencilOpSeparate: (update, face, fail, zfail, zpass) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,\n [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,\n [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass\n }),\n\n viewport: (update, x, y, width, height) =>\n update({\n [GL.VIEWPORT]: [x, y, width, height]\n })\n};\n\n// GETTER TABLE - FOR READING OUT AN ENTIRE CONTEXT\n\nconst isEnabled = (gl, key) => gl.isEnabled(key);\n\n// Exceptions for any keys that cannot be queried by gl.getParameters\nexport const GL_PARAMETER_GETTERS = {\n [GL.BLEND]: isEnabled,\n [GL.CULL_FACE]: isEnabled,\n [GL.DEPTH_TEST]: isEnabled,\n [GL.DITHER]: isEnabled,\n [GL.POLYGON_OFFSET_FILL]: isEnabled,\n [GL.SAMPLE_ALPHA_TO_COVERAGE]: isEnabled,\n [GL.SAMPLE_COVERAGE]: isEnabled,\n [GL.SCISSOR_TEST]: isEnabled,\n [GL.STENCIL_TEST]: isEnabled,\n\n // WebGL 2\n [GL.RASTERIZER_DISCARD]: isEnabled\n};\n\nexport const NON_CACHE_PARAMETERS = new Set([\n // setter not intercepted\n GL.ACTIVE_TEXTURE,\n GL.TRANSFORM_FEEDBACK_ACTIVE,\n GL.TRANSFORM_FEEDBACK_PAUSED,\n\n // setters bindBufferRange/bindBufferBase cannot be pruned based on cache\n GL.TRANSFORM_FEEDBACK_BUFFER_BINDING,\n GL.UNIFORM_BUFFER_BINDING,\n\n // states depending on VERTEX_ARRAY_BINDING\n GL.ELEMENT_ARRAY_BUFFER_BINDING,\n // states depending on READ_FRAMEBUFFER_BINDING\n GL.IMPLEMENTATION_COLOR_READ_FORMAT,\n GL.IMPLEMENTATION_COLOR_READ_TYPE,\n // states depending on FRAMEBUFFER_BINDING\n GL.READ_BUFFER,\n GL.DRAW_BUFFER0,\n GL.DRAW_BUFFER1,\n GL.DRAW_BUFFER2,\n GL.DRAW_BUFFER3,\n GL.DRAW_BUFFER4,\n GL.DRAW_BUFFER5,\n GL.DRAW_BUFFER6,\n GL.DRAW_BUFFER7,\n GL.DRAW_BUFFER8,\n GL.DRAW_BUFFER9,\n GL.DRAW_BUFFER10,\n GL.DRAW_BUFFER11,\n GL.DRAW_BUFFER12,\n GL.DRAW_BUFFER13,\n GL.DRAW_BUFFER14,\n GL.DRAW_BUFFER15,\n // states depending on ACTIVE_TEXTURE\n GL.SAMPLER_BINDING,\n GL.TEXTURE_BINDING_2D,\n GL.TEXTURE_BINDING_2D_ARRAY,\n GL.TEXTURE_BINDING_3D,\n GL.TEXTURE_BINDING_CUBE_MAP\n]);\n"],"file":"webgl-parameter-tables.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/context/parameters/webgl-parameters.ts"],"names":["GL"],"mappings":"AACA,OAAOA,EAAP,MAAe,oBAAf","sourcesContent":["// WebGL parameter types\nimport GL from '@luma.gl/constants';\n\nexport type TypedArray =\n | Int8Array\n | Uint8Array\n | Int16Array\n | Uint16Array\n | Int32Array\n | Uint32Array\n | Uint8ClampedArray\n | Float32Array\n | Float64Array;\n\n/**\n * TypeScript type covering all typed arrays and classic arrays consisting of numbers\n */\nexport type NumberArray = number[] | TypedArray;\n\ntype Framebuffer = any;\n\ntype GL_FUNCTION =\n GL.NEVER |\n GL.LESS |\n GL.EQUAL |\n GL.LEQUAL |\n GL.GREATER |\n GL.NOTEQUAL |\n GL.GEQUAL |\n GL.ALWAYS;\n\ntype GL_BLEND_EQUATION = GL.FUNC_ADD | GL.FUNC_SUBTRACT | GL.FUNC_REVERSE_SUBTRACT | GL.MIN_EXT | GL.MAX_EXT;\n\ntype GL_BLEND_FUNCTION =\n GL.ZERO |\n GL.ONE |\n GL.SRC_COLOR |\n GL.ONE_MINUS_SRC_COLOR |\n GL.DST_COLOR |\n GL.ONE_MINUS_DST_COLOR |\n GL.SRC_ALPHA |\n GL.ONE_MINUS_SRC_ALPHA |\n GL.DST_ALPHA |\n GL.ONE_MINUS_DST_ALPHA |\n GL.CONSTANT_COLOR |\n GL.ONE_MINUS_CONSTANT_COLOR |\n GL.CONSTANT_ALPHA |\n GL.ONE_MINUS_CONSTANT_ALPHA |\n GL.SRC_ALPHA_SATURATE;\n\ntype GL_STENCIL_OP =\n GL.KEEP |\n GL.ZERO |\n GL.REPLACE |\n GL.INCR |\n GL.INCR_WRAP |\n GL.DECR |\n GL.DECR_WRAP |\n GL.INVERT;\n\nexport type GLValueParameters = {\n [GL.BLEND]?: boolean;\n [GL.BLEND_COLOR]?: [number, number, number, number] | NumberArray;\n [GL.BLEND_EQUATION_RGB]?: GL_BLEND_EQUATION;\n [GL.BLEND_EQUATION_ALPHA]?: GL_BLEND_EQUATION;\n [GL.BLEND_SRC_RGB]?: GL_BLEND_FUNCTION;\n [GL.BLEND_DST_RGB]?: GL_BLEND_FUNCTION;\n [GL.BLEND_SRC_ALPHA]?: GL_BLEND_FUNCTION;\n [GL.BLEND_DST_ALPHA]?: GL_BLEND_FUNCTION;\n [GL.COLOR_CLEAR_VALUE]?: [number, number, number, number] | NumberArray;\n [GL.COLOR_WRITEMASK]?: [boolean, boolean, boolean, boolean] | boolean[];\n [GL.CULL_FACE]?: boolean;\n [GL.CULL_FACE_MODE]?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;\n [GL.DEPTH_TEST]?: boolean;\n [GL.DEPTH_CLEAR_VALUE]?: number;\n [GL.DEPTH_FUNC]?: GL_FUNCTION;\n [GL.DEPTH_RANGE]?: [number, number] | NumberArray;\n [GL.DEPTH_WRITEMASK]?: boolean;\n [GL.DITHER]?: boolean;\n [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;\n [GL.CURRENT_PROGRAM]?: WebGLProgram | null,\n [GL.FRAMEBUFFER_BINDING]?: WebGLFramebuffer | null;\n [GL.RENDERBUFFER_BINDING]?: WebGLRenderbuffer | null,\n [GL.TRANSFORM_FEEDBACK_BINDING]?: WebGLTransformFeedback | null,\n [GL.VERTEX_ARRAY_BINDING]?: WebGLVertexArrayObject | null,\n [GL.ARRAY_BUFFER_BINDING]?: WebGLBuffer | null,\n [GL.COPY_READ_BUFFER_BINDING]?: WebGLBuffer | null,\n [GL.COPY_WRITE_BUFFER_BINDING]?: WebGLBuffer | null,\n [GL.PIXEL_PACK_BUFFER_BINDING]?: WebGLBuffer | null,\n [GL.PIXEL_UNPACK_BUFFER_BINDING]?: WebGLBuffer | null,\n [GL.TEXTURE_BINDING_2D]?: WebGLTexture | null,\n [GL.TEXTURE_BINDING_2D_ARRAY]?: WebGLTexture | null,\n [GL.TEXTURE_BINDING_3D]?: WebGLTexture | null,\n [GL.TEXTURE_BINDING_CUBE_MAP]?: WebGLTexture | null,\n [GL.FRONT_FACE]?: GL.CW | GL.CCW;\n [GL.GENERATE_MIPMAP_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;\n [GL.LINE_WIDTH]?: number;\n [GL.POLYGON_OFFSET_FILL]?: boolean;\n [GL.POLYGON_OFFSET_FACTOR]?: number;\n [GL.POLYGON_OFFSET_UNITS]?: number;\n [GL.SAMPLE_ALPHA_TO_COVERAGE]?: boolean,\n [GL.SAMPLE_COVERAGE]?: boolean,\n [GL.RASTERIZER_DISCARD]?: boolean;\n [GL.SAMPLE_COVERAGE_VALUE]?: number;\n [GL.SAMPLE_COVERAGE_INVERT]?: boolean;\n [GL.SCISSOR_TEST]?: boolean;\n [GL.SCISSOR_BOX]?: [number, number, number, number] | NumberArray;\n [GL.STENCIL_TEST]?: boolean;\n [GL.STENCIL_CLEAR_VALUE]?: number;\n [GL.STENCIL_WRITEMASK]?: number;\n [GL.STENCIL_BACK_WRITEMASK]?: number;\n [GL.STENCIL_FUNC]?: GL_FUNCTION;\n [GL.STENCIL_REF]?: GL_FUNCTION;\n [GL.STENCIL_VALUE_MASK]?: GL_FUNCTION;\n [GL.STENCIL_BACK_FUNC]?: GL_FUNCTION;\n [GL.STENCIL_BACK_REF]?: GL_FUNCTION;\n [GL.STENCIL_BACK_VALUE_MASK]?: GL_FUNCTION;\n [GL.STENCIL_FAIL]?: GL_STENCIL_OP;\n [GL.STENCIL_PASS_DEPTH_FAIL]?: GL_STENCIL_OP;\n [GL.STENCIL_PASS_DEPTH_PASS]?: GL_STENCIL_OP;\n [GL.STENCIL_BACK_FAIL]?: GL_STENCIL_OP;\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]?: GL_STENCIL_OP;\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]?: GL_STENCIL_OP;\n [GL.VIEWPORT]?: [number, number, number, number] | NumberArray;\n\n // WEBGL1 PIXEL PACK/UNPACK MODES\n [GL.PACK_ALIGNMENT]?: number;\n [GL.UNPACK_ALIGNMENT]?: number;\n [GL.UNPACK_FLIP_Y_WEBGL]?: boolean;\n [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]?: boolean;\n [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]?: GL.NONE | GL.BROWSER_DEFAULT_WEBGL;\n\n // WEBGL2 PIXEL PACK/UNPACK MODES\n // RASTERIZER_DISCARD ...\n [GL.PACK_ROW_LENGTH]?: number;\n [GL.PACK_SKIP_PIXELS]?: number;\n [GL.PACK_SKIP_ROWS]?: number;\n [GL.READ_FRAMEBUFFER_BINDING]?: Framebuffer | null;\n [GL.UNPACK_ROW_LENGTH]?: number;\n [GL.UNPACK_IMAGE_HEIGHT]?: number;\n [GL.UNPACK_SKIP_PIXELS]?: number;\n [GL.UNPACK_SKIP_ROWS]?: number;\n [GL.UNPACK_SKIP_IMAGES]?: number;\n};\n\nexport type GLFunctionStyleParameters = {\n // Function-style setters\n framebuffer?: Framebuffer | null;\n blend?: boolean;\n blendColor?: [number, number, number, number] | NumberArray;\n blendEquation?: GL_BLEND_EQUATION | [GL_BLEND_EQUATION, GL_BLEND_EQUATION];\n blendFunc?:\n [GL_BLEND_FUNCTION, GL_BLEND_FUNCTION] |\n [GL_BLEND_FUNCTION, GL_BLEND_FUNCTION, GL_BLEND_FUNCTION, GL_BLEND_FUNCTION];\n\n clearColor?: [number, number, number, number] | NumberArray;\n clearDepth?: number;\n clearStencil?: number;\n\n colorMask?: [boolean, boolean, boolean, boolean];\n\n cull?: boolean;\n cullFace?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;\n\n depthTest?: boolean;\n depthFunc?: GL_FUNCTION;\n depthMask?: boolean;\n depthRange?: [number, number] | NumberArray;\n\n dither?: boolean;\n\n derivativeHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;\n\n frontFace?: GL.CW | GL.CCW;\n\n mipmapHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;\n\n lineWidth?: number;\n\n polygonOffsetFill?: boolean;\n polygonOffset?: [number, number];\n\n sampleCoverage?: [number, boolean];\n\n scissorTest?: boolean;\n scissor?: [number, number, number, number] | NumberArray;\n\n stencilTest?: boolean;\n stencilMask?: number | [number, number];\n stencilFunc?: [GL_FUNCTION, number, number] | [GL_FUNCTION, number, number, GL_FUNCTION, number, number];\n stencilOp?:\n [GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP] |\n [GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP];\n viewport?: [number, number, number, number] | NumberArray;\n};\n\nexport type GLParameters = GLValueParameters | GLFunctionStyleParameters;\n"],"file":"webgl-parameters.js"}
|