@luma.gl/webgl 8.5.8 → 8.6.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/device2.d.ts +52 -0
- package/dist/api/device2.d.ts.map +1 -0
- package/dist/api/device2.js +23 -0
- package/dist/api/device2.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 +27 -0
- package/dist/classes/program-configuration.d.ts.map +1 -0
- package/dist/classes/program-configuration.js +160 -0
- package/dist/classes/program-configuration.js.map +1 -0
- package/dist/classes/program.d.ts +61 -0
- package/dist/classes/program.d.ts.map +1 -0
- package/dist/classes/program.js +370 -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/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 +75 -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/classes/webgl-shader.d.ts +53 -0
- package/dist/classes/webgl-shader.d.ts.map +1 -0
- package/dist/classes/webgl-shader.js +193 -0
- package/dist/classes/webgl-shader.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 +30 -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/device/check-glsl-extension.d.ts +4 -0
- package/dist/device/check-glsl-extension.d.ts.map +1 -0
- package/dist/device/check-glsl-extension.js +22 -0
- package/dist/device/check-glsl-extension.js.map +1 -0
- package/dist/device/device-features.d.ts +12 -0
- package/dist/device/device-features.d.ts.map +1 -0
- package/dist/device/device-features.js +123 -0
- package/dist/device/device-features.js.map +1 -0
- package/dist/device/device-limits.d.ts +51 -0
- package/dist/device/device-limits.d.ts.map +1 -0
- package/dist/device/device-limits.js +90 -0
- package/dist/device/device-limits.js.map +1 -0
- package/dist/device/get-device-info.d.ts +4 -0
- package/dist/device/get-device-info.d.ts.map +1 -0
- package/dist/device/get-device-info.js +44 -0
- package/dist/device/get-device-info.js.map +1 -0
- package/dist/device/webgl-device.d.ts +111 -0
- package/dist/device/webgl-device.d.ts.map +1 -0
- package/dist/device/webgl-device.js +208 -0
- package/dist/device/webgl-device.js.map +1 -0
- package/dist/es5/api/device2.js +42 -0
- package/dist/es5/api/device2.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 +14 -11
- package/dist/es5/classes/program-configuration.js.map +1 -1
- package/dist/es5/classes/program.js +79 -67
- 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/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 +47 -38
- 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/classes/webgl-shader.js +309 -0
- package/dist/es5/classes/webgl-shader.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/device/check-glsl-extension.js +33 -0
- package/dist/es5/device/check-glsl-extension.js.map +1 -0
- package/dist/es5/device/device-features.js +152 -0
- package/dist/es5/device/device-features.js.map +1 -0
- package/dist/es5/device/device-limits.js +64 -0
- package/dist/es5/device/device-limits.js.map +1 -0
- package/dist/es5/device/get-device-info.js +55 -0
- package/dist/es5/device/get-device-info.js.map +1 -0
- package/dist/es5/device/webgl-device.js +279 -0
- package/dist/es5/device/webgl-device.js.map +1 -0
- package/dist/es5/index.js +140 -96
- 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.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/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
- package/dist/es5/webgl-utils/is-old-ie.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/es5/webgl-utils/webgl-info.ts.disabled +135 -0
- package/dist/esm/api/device2.js +23 -0
- package/dist/esm/api/device2.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 +18 -10
- package/dist/esm/classes/program-configuration.js.map +1 -1
- package/dist/esm/classes/program.js +71 -44
- 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/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 +50 -29
- 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/classes/webgl-shader.js +193 -0
- package/dist/esm/classes/webgl-shader.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/device/check-glsl-extension.js +22 -0
- package/dist/esm/device/check-glsl-extension.js.map +1 -0
- package/dist/esm/device/device-features.js +123 -0
- package/dist/esm/device/device-features.js.map +1 -0
- package/dist/esm/device/device-limits.js +90 -0
- package/dist/esm/device/device-limits.js.map +1 -0
- package/dist/esm/device/get-device-info.js +44 -0
- package/dist/esm/device/get-device-info.js.map +1 -0
- package/dist/esm/device/webgl-device.js +208 -0
- package/dist/esm/device/webgl-device.js.map +1 -0
- package/dist/esm/index.js +15 -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.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/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
- package/dist/esm/webgl-utils/is-old-ie.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/esm/webgl-utils/webgl-info.ts.disabled +135 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -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.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/is-old-ie.d.ts +2 -0
- package/dist/webgl-utils/is-old-ie.d.ts.map +1 -0
- package/dist/webgl-utils/is-old-ie.js +8 -0
- package/dist/webgl-utils/is-old-ie.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/dist/webgl-utils/webgl-info.ts.disabled +135 -0
- package/package.json +9 -9
- package/src/.DS_Store +0 -0
- package/src/api/device2.ts +71 -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.js → program-configuration.ts} +19 -12
- package/src/classes/{program.js → program.ts} +66 -40
- 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/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} +133 -112
- package/src/classes/{vertex-array.js → vertex-array.ts} +74 -55
- package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
- package/src/classes/{resource.js → webgl-resource.ts} +55 -46
- package/src/classes/webgl-shader.ts +202 -0
- 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 +127 -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/device/check-glsl-extension.ts +44 -0
- package/src/device/device-features.ts +227 -0
- package/src/device/device-limits.ts +150 -0
- package/src/device/get-device-info.ts +49 -0
- package/src/device/webgl-device.ts +406 -0
- package/src/index.ts +127 -0
- package/src/{init.js → init.ts} +11 -25
- 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/{features/check-old-ie.js → webgl-utils/is-old-ie.ts} +3 -3
- 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/src/webgl-utils/webgl-info.ts.disabled +135 -0
- package/dist/dist.js +0 -13710
- 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/shader.js +0 -221
- package/dist/es5/classes/shader.js.map +0 -1
- 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/shader.js +0 -138
- package/dist/esm/classes/shader.js.map +0 -1
- 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 +0 -71
- 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.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-features-table.js +0 -104
- 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,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.withParameters = withParameters;
|
|
7
|
+
|
|
8
|
+
var _unifiedParameterApi = require("../parameters/unified-parameter-api");
|
|
9
|
+
|
|
10
|
+
var _trackContextState = require("./track-context-state");
|
|
11
|
+
|
|
12
|
+
function withParameters(gl, parameters, func) {
|
|
13
|
+
if (isObjectEmpty(parameters)) {
|
|
14
|
+
return func(gl);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
var _parameters$nocatch = parameters.nocatch,
|
|
18
|
+
nocatch = _parameters$nocatch === void 0 ? true : _parameters$nocatch;
|
|
19
|
+
(0, _trackContextState.pushContextState)(gl);
|
|
20
|
+
(0, _unifiedParameterApi.setParameters)(gl, parameters);
|
|
21
|
+
var value;
|
|
22
|
+
|
|
23
|
+
if (nocatch) {
|
|
24
|
+
value = func(gl);
|
|
25
|
+
(0, _trackContextState.popContextState)(gl);
|
|
26
|
+
} else {
|
|
27
|
+
try {
|
|
28
|
+
value = func(gl);
|
|
29
|
+
} finally {
|
|
30
|
+
(0, _trackContextState.popContextState)(gl);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function isObjectEmpty(object) {
|
|
38
|
+
for (var key in object) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=with-parameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/context/state-tracker/with-parameters.ts"],"names":["withParameters","gl","parameters","func","isObjectEmpty","nocatch","value","object","key"],"mappings":";;;;;;;AAAA;;AACA;;AAUQ,SAASA,cAAT,CAAwBC,EAAxB,EAAmDC,UAAnD,EAAmGC,IAAnG,EAAmH;AACzH,MAAIC,aAAa,CAACF,UAAD,CAAjB,EAA+B;AAE7B,WAAOC,IAAI,CAACF,EAAD,CAAX;AACD;;AAED,4BAAyBC,UAAzB,CAAOG,OAAP;AAAA,MAAOA,OAAP,oCAAiB,IAAjB;AAEA,2CAAiBJ,EAAjB;AACA,0CAAcA,EAAd,EAAkBC,UAAlB;AAGA,MAAII,KAAJ;;AAEA,MAAID,OAAJ,EAAa;AAEXC,IAAAA,KAAK,GAAGH,IAAI,CAACF,EAAD,CAAZ;AACA,4CAAgBA,EAAhB;AACD,GAJD,MAIO;AAEL,QAAI;AACFK,MAAAA,KAAK,GAAGH,IAAI,CAACF,EAAD,CAAZ;AACD,KAFD,SAEU;AACR,8CAAgBA,EAAhB;AACD;AACF;;AAED,SAAOK,KAAP;AACD;;AAKD,SAASF,aAAT,CAAuBG,MAAvB,EAA+B;AAC7B,OAAK,IAAMC,GAAX,IAAkBD,MAAlB,EAA0B;AACxB,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD","sourcesContent":["import {GLParameters, setParameters} from '../parameters/unified-parameter-api';\nimport {pushContextState, popContextState} from './track-context-state';\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n */\n export function withParameters(gl: WebGLRenderingContext, parameters: GLParameters & {nocatch?: boolean}, func: any): any {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(gl);\n }\n\n const {nocatch = true} = parameters;\n\n pushContextState(gl);\n setParameters(gl, parameters);\n\n // Setup is done, call the function\n let value;\n\n if (nocatch) {\n // Avoid try catch to minimize stack size impact for safe execution paths\n value = func(gl);\n popContextState(gl);\n } else {\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n try {\n value = func(gl);\n } finally {\n popContextState(gl);\n }\n }\n\n return value;\n}\n\n// Helpers\n\n// Returns true if given object is empty, false otherwise.\nfunction isObjectEmpty(object) {\n for (const key in object) {\n return false;\n }\n return true;\n}\n"],"file":"with-parameters.js"}
|
|
@@ -11,7 +11,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
11
11
|
|
|
12
12
|
var _attributeUtils = require("../webgl-utils/attribute-utils");
|
|
13
13
|
|
|
14
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it
|
|
14
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
15
15
|
|
|
16
16
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
17
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/debug/debug-program-configuration.
|
|
1
|
+
{"version":3,"sources":["../../../src/debug/debug-program-configuration.ts"],"names":["getDebugTableForProgramConfiguration","config","table","header","id","attributeInfos","attributeInfo","glslDeclaration","getGLSLDeclaration","JSON","stringify","accessor","varyingInfos","varyingInfo","type","size","typeAndName","name"],"mappings":";;;;;;;;;;;AAAA;;;;;;;;AAEO,SAASA,oCAAT,CAA8CC,MAA9C,EAAsD;AAC3D,MAAMC,KAAK,GAAG,EAAd;AAEA,MAAMC,MAAM,2BAAoBF,MAAM,CAACG,EAA3B,CAAZ;;AAH2D,6CAK/BH,MAAM,CAACI,cALwB;AAAA;;AAAA;AAK3D,wDAAmD;AAAA,UAAxCC,aAAwC;;AACjD,UAAIA,aAAJ,EAAmB;AACjB,YAAMC,eAAe,GAAGC,kBAAkB,CAACF,aAAD,CAA1C;AACAJ,QAAAA,KAAK,cAAOK,eAAP,EAAL,qCAAmCJ,MAAnC,EAA4CM,IAAI,CAACC,SAAL,CAAeJ,aAAa,CAACK,QAA7B,CAA5C;AACD;AACF;AAV0D;AAAA;AAAA;AAAA;AAAA;;AAAA,8CAYjCV,MAAM,CAACW,YAZ0B;AAAA;;AAAA;AAY3D,2DAA+C;AAAA,UAApCC,WAAoC;;AAC7C,UAAIA,WAAJ,EAAiB;AACf,YAAMN,gBAAe,GAAGC,kBAAkB,CAACK,WAAD,CAA1C;;AACAX,QAAAA,KAAK,eAAQK,gBAAR,EAAL,qCAAoCJ,MAApC,EAA6CM,IAAI,CAACC,SAAL,CAAeG,WAAW,CAACF,QAA3B,CAA7C;AACD;AACF;AAjB0D;AAAA;AAAA;AAAA;AAAA;;AAmB3D,SAAOT,KAAP;AACD;;AAED,SAASM,kBAAT,CAA4BF,aAA5B,EAA2C;AACzC,8BAAqBA,aAAa,CAACK,QAAnC;AAAA,MAAOG,IAAP,yBAAOA,IAAP;AAAA,MAAaC,IAAb,yBAAaA,IAAb;AACA,MAAMC,WAAW,GAAG,wCAAmBF,IAAnB,EAAyBC,IAAzB,CAApB;;AACA,MAAIC,WAAJ,EAAiB;AACf,qBAAUA,WAAW,CAACC,IAAtB,cAA8BX,aAAa,CAACW,IAA5C;AACD;;AACD,SAAOX,aAAa,CAACW,IAArB;AACD","sourcesContent":["import {getCompositeGLType} from '../webgl-utils/attribute-utils';\n\nexport function getDebugTableForProgramConfiguration(config) {\n const table = {};\n\n const header = `Accessors for ${config.id}`;\n\n for (const attributeInfo of config.attributeInfos) {\n if (attributeInfo) {\n const glslDeclaration = getGLSLDeclaration(attributeInfo);\n table[`in ${glslDeclaration}`] = {[header]: JSON.stringify(attributeInfo.accessor)};\n }\n }\n\n for (const varyingInfo of config.varyingInfos) {\n if (varyingInfo) {\n const glslDeclaration = getGLSLDeclaration(varyingInfo);\n table[`out ${glslDeclaration}`] = {[header]: JSON.stringify(varyingInfo.accessor)};\n }\n }\n\n return table;\n}\n\nfunction getGLSLDeclaration(attributeInfo) {\n const {type, size} = attributeInfo.accessor;\n const typeAndName = getCompositeGLType(type, size);\n if (typeAndName) {\n return `${typeAndName.name} ${attributeInfo.name}`;\n }\n return attributeInfo.name;\n}\n"],"file":"debug-program-configuration.js"}
|
|
@@ -9,24 +9,22 @@ exports.getDebugTableForUniforms = getDebugTableForUniforms;
|
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _api = require("@luma.gl/api");
|
|
13
13
|
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
14
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
17
15
|
|
|
18
16
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
17
|
|
|
20
18
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
21
19
|
|
|
22
|
-
function getDebugTableForUniforms(
|
|
23
|
-
var
|
|
24
|
-
header =
|
|
25
|
-
program =
|
|
26
|
-
uniforms =
|
|
27
|
-
|
|
28
|
-
undefinedOnly =
|
|
29
|
-
(0,
|
|
20
|
+
function getDebugTableForUniforms(options) {
|
|
21
|
+
var _options$header = options.header,
|
|
22
|
+
header = _options$header === void 0 ? 'Uniforms' : _options$header,
|
|
23
|
+
program = options.program,
|
|
24
|
+
uniforms = options.uniforms,
|
|
25
|
+
_options$undefinedOnl = options.undefinedOnly,
|
|
26
|
+
undefinedOnly = _options$undefinedOnl === void 0 ? false : _options$undefinedOnl;
|
|
27
|
+
(0, _api.assert)(program);
|
|
30
28
|
var SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';
|
|
31
29
|
var PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix';
|
|
32
30
|
var uniformLocations = program._uniformSetters;
|
|
@@ -120,7 +118,7 @@ function getDebugTableForUniforms(_ref) {
|
|
|
120
118
|
unusedCount++;
|
|
121
119
|
unusedTable[uniformName] = (0, _defineProperty2.default)({
|
|
122
120
|
Type: "NOT USED: ".concat(uniform)
|
|
123
|
-
}, header, (0,
|
|
121
|
+
}, header, (0, _api.formatValue)(uniform));
|
|
124
122
|
}
|
|
125
123
|
}
|
|
126
124
|
}
|
|
@@ -133,19 +131,19 @@ function getDebugTableForUniforms(_ref) {
|
|
|
133
131
|
};
|
|
134
132
|
}
|
|
135
133
|
|
|
136
|
-
function addUniformToTable(
|
|
137
|
-
var table =
|
|
138
|
-
header =
|
|
139
|
-
uniforms =
|
|
140
|
-
uniformName =
|
|
141
|
-
undefinedOnly =
|
|
134
|
+
function addUniformToTable(_ref) {
|
|
135
|
+
var table = _ref.table,
|
|
136
|
+
header = _ref.header,
|
|
137
|
+
uniforms = _ref.uniforms,
|
|
138
|
+
uniformName = _ref.uniformName,
|
|
139
|
+
undefinedOnly = _ref.undefinedOnly;
|
|
142
140
|
var value = uniforms[uniformName];
|
|
143
141
|
var isDefined = isUniformDefined(value);
|
|
144
142
|
|
|
145
143
|
if (!undefinedOnly || !isDefined) {
|
|
146
144
|
var _table$uniformName;
|
|
147
145
|
|
|
148
|
-
table[uniformName] = (_table$uniformName = {}, (0, _defineProperty2.default)(_table$uniformName, header, isDefined ? (0,
|
|
146
|
+
table[uniformName] = (_table$uniformName = {}, (0, _defineProperty2.default)(_table$uniformName, header, isDefined ? (0, _api.formatValue)(value) : 'N/A'), (0, _defineProperty2.default)(_table$uniformName, 'Uniform Type', isDefined ? value : 'NOT PROVIDED'), _table$uniformName);
|
|
149
147
|
return true;
|
|
150
148
|
}
|
|
151
149
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/debug/debug-uniforms.
|
|
1
|
+
{"version":3,"sources":["../../../src/debug/debug-uniforms.ts"],"names":["getDebugTableForUniforms","options","header","program","uniforms","undefinedOnly","SHADER_MODULE_UNIFORM_REGEXP","PROJECT_MODULE_UNIFORM_REGEXP","uniformLocations","_uniformSetters","table","uniformNames","Object","keys","sort","count","uniformName","match","addUniformToTable","unusedCount","unusedTable","uniform","Type","value","isDefined","isUniformDefined","undefined"],"mappings":"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","sourcesContent":["import {assert, formatValue} from '@luma.gl/api';\n\n// Prepares a table suitable for console.table\n/* eslint-disable max-statements, complexity */\nexport function getDebugTableForUniforms(options?: {\n header?: string;\n program: any;\n uniforms: any;\n undefinedOnly?: boolean;\n}): {\n table: {};\n count: number;\n unusedTable: {};\n unusedCount: number;\n} {\n const {\n header = 'Uniforms',\n program,\n uniforms,\n undefinedOnly = false\n } = options;\n assert(program);\n\n const SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';\n const PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix'; // TODO - Use explicit list\n\n const uniformLocations = program._uniformSetters;\n const table = {}; // {[header]: {}};\n\n // Add program's provided uniforms (in alphabetical order)\n const uniformNames = Object.keys(uniformLocations).sort();\n\n let count = 0;\n\n // First add non-underscored uniforms (assumed not coming from shader modules)\n for (const uniformName of uniformNames) {\n if (\n !uniformName.match(SHADER_MODULE_UNIFORM_REGEXP) &&\n !uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)\n ) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // add underscored uniforms (assumed from shader modules)\n for (const uniformName of uniformNames) {\n if (uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n for (const uniformName of uniformNames) {\n if (!table[uniformName]) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // Create a table of unused uniforms\n let unusedCount = 0;\n const unusedTable = {};\n if (!undefinedOnly) {\n for (const uniformName in uniforms) {\n const uniform = uniforms[uniformName];\n if (!table[uniformName]) {\n unusedCount++;\n unusedTable[uniformName] = {\n Type: `NOT USED: ${uniform}`,\n [header]: formatValue(uniform)\n };\n }\n }\n }\n\n return {table, count, unusedTable, unusedCount};\n}\n\n// Helper\nfunction addUniformToTable({table, header, uniforms, uniformName, undefinedOnly}) {\n const value = uniforms[uniformName];\n const isDefined = isUniformDefined(value);\n if (!undefinedOnly || !isDefined) {\n table[uniformName] = {\n // Add program's unprovided uniforms\n [header]: isDefined ? formatValue(value) : 'N/A',\n 'Uniform Type': isDefined ? value : 'NOT PROVIDED'\n };\n return true;\n }\n return false;\n}\n\nfunction isUniformDefined(value) {\n return value !== undefined && value !== null;\n}\n"],"file":"debug-uniforms.js"}
|
|
@@ -9,18 +9,18 @@ exports.getDebugTableForVertexArray = getDebugTableForVertexArray;
|
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _api = require("@luma.gl/api");
|
|
13
|
+
|
|
14
|
+
var _webglBuffer = _interopRequireDefault(require("../classes/webgl-buffer"));
|
|
13
15
|
|
|
14
16
|
var _constantsToKeys = require("../webgl-utils/constants-to-keys");
|
|
15
17
|
|
|
16
18
|
var _attributeUtils = require("../webgl-utils/attribute-utils");
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
_ref$header = _ref.header,
|
|
23
|
-
header = _ref$header === void 0 ? 'Attributes' : _ref$header;
|
|
20
|
+
function getDebugTableForVertexArray(options) {
|
|
21
|
+
var vertexArray = options.vertexArray,
|
|
22
|
+
_options$header = options.header,
|
|
23
|
+
header = _options$header === void 0 ? 'Attributes' : _options$header;
|
|
24
24
|
|
|
25
25
|
if (!vertexArray.configuration) {
|
|
26
26
|
return {};
|
|
@@ -53,14 +53,14 @@ function getDebugTableForVertexArray(_ref) {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
function getDebugTableRow(vertexArray, attribute, accessor, header) {
|
|
56
|
-
var
|
|
56
|
+
var _ref3;
|
|
57
57
|
|
|
58
58
|
var gl = vertexArray.gl;
|
|
59
59
|
|
|
60
60
|
if (!attribute) {
|
|
61
|
-
var
|
|
61
|
+
var _ref;
|
|
62
62
|
|
|
63
|
-
return
|
|
63
|
+
return _ref = {}, (0, _defineProperty2.default)(_ref, header, 'null'), (0, _defineProperty2.default)(_ref, 'Format ', 'N/A'), _ref;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
var type = 'NOT PROVIDED';
|
|
@@ -78,8 +78,8 @@ function getDebugTableRow(vertexArray, attribute, accessor, header) {
|
|
|
78
78
|
isInteger = type.indexOf('nt') !== -1;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
if (attribute instanceof
|
|
82
|
-
var
|
|
81
|
+
if (attribute instanceof _webglBuffer.default) {
|
|
82
|
+
var _ref2;
|
|
83
83
|
|
|
84
84
|
var buffer = attribute;
|
|
85
85
|
|
|
@@ -101,20 +101,20 @@ function getDebugTableRow(vertexArray, attribute, accessor, header) {
|
|
|
101
101
|
format = "".concat(bytes, " bytes");
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
return
|
|
104
|
+
return _ref2 = {}, (0, _defineProperty2.default)(_ref2, header, "".concat(marker).concat((0, _api.formatValue)(value, {
|
|
105
105
|
size: size,
|
|
106
106
|
isInteger: isInteger
|
|
107
|
-
}))), (0, _defineProperty2.default)(
|
|
107
|
+
}))), (0, _defineProperty2.default)(_ref2, 'Format ', format), _ref2;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
value = attribute;
|
|
111
111
|
size = attribute.length;
|
|
112
112
|
type = String(attribute.constructor.name).replace('Array', '');
|
|
113
113
|
isInteger = type.indexOf('nt') !== -1;
|
|
114
|
-
return
|
|
114
|
+
return _ref3 = {}, (0, _defineProperty2.default)(_ref3, header, "".concat((0, _api.formatValue)(value, {
|
|
115
115
|
size: size,
|
|
116
116
|
isInteger: isInteger
|
|
117
|
-
}), " (constant)")), (0, _defineProperty2.default)(
|
|
117
|
+
}), " (constant)")), (0, _defineProperty2.default)(_ref3, 'Format ', "".concat(size, "x").concat(type, " (constant)")), _ref3;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
function getGLSLDeclaration(name, accessor) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/debug/debug-vertex-array.
|
|
1
|
+
{"version":3,"sources":["../../../src/debug/debug-vertex-array.ts"],"names":["getDebugTableForVertexArray","options","vertexArray","header","configuration","table","elements","ELEMENT_ARRAY_BUFFER","getDebugTableRow","attributes","values","attributeLocation","info","_getAttributeInfo","rowHeader","name","accessor","accessors","location","getGLSLDeclaration","attribute","gl","type","size","verts","bytes","isInteger","marker","value","String","replace","indexOf","Buffer","buffer","getDebugData","data","changed","byteLength","BYTES_PER_ELEMENT","format","instanced","divisor","length","constructor","typeAndName"],"mappings":"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","sourcesContent":["import {formatValue} from '@luma.gl/api';\nimport Buffer from '../classes/webgl-buffer';\nimport {getKey} from '../webgl-utils/constants-to-keys';\nimport {getCompositeGLType} from '../webgl-utils/attribute-utils';\n\n// Creates object suitable as input for console.table\nexport function getDebugTableForVertexArray(options?: {vertexArray: any; header?: string}): {} {\n const {vertexArray, header = 'Attributes'} = options;\n\n if (!vertexArray.configuration) {\n return {};\n }\n\n const table = {}; // {[header]: {}};\n\n // Add index (elements) if available\n if (vertexArray.elements) {\n // const elements = Object.assign({size: 1}, vertexArray.elements);\n // @ts-expect-error\n table.ELEMENT_ARRAY_BUFFER = getDebugTableRow(vertexArray, vertexArray.elements, null, header);\n }\n\n // Add used attributes\n const attributes = vertexArray.values;\n\n for (const attributeLocation in attributes) {\n const info = vertexArray._getAttributeInfo(attributeLocation);\n if (info) {\n let rowHeader = `${attributeLocation}: ${info.name}`;\n const accessor = vertexArray.accessors[info.location];\n if (accessor) {\n rowHeader = `${attributeLocation}: ${getGLSLDeclaration(info.name, accessor)}`;\n }\n table[rowHeader] = getDebugTableRow(\n vertexArray,\n attributes[attributeLocation],\n accessor,\n header\n );\n }\n }\n\n return table;\n}\n\n/* eslint-disable max-statements */\nfunction getDebugTableRow(vertexArray, attribute, accessor, header) {\n const {gl} = vertexArray;\n\n if (!attribute) {\n return {\n [header]: 'null',\n 'Format ': 'N/A'\n };\n }\n\n let type = 'NOT PROVIDED';\n let size = 1;\n let verts = 0;\n let bytes = 0;\n\n let isInteger;\n let marker;\n let value;\n\n if (accessor) {\n type = accessor.type;\n size = accessor.size;\n\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(type).replace('Array', '');\n\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n }\n\n if (attribute instanceof Buffer) {\n const buffer = attribute;\n\n const {data, changed} = buffer.getDebugData();\n marker = changed ? '*' : '';\n\n value = data;\n bytes = buffer.byteLength;\n verts = bytes / data.BYTES_PER_ELEMENT / size;\n\n let format;\n\n if (accessor) {\n const instanced = accessor.divisor > 0;\n format = `${instanced ? 'I ' : 'P '} ${verts} (x${size}=${bytes} bytes ${getKey(gl, type)})`;\n } else {\n // element buffer\n isInteger = true;\n format = `${bytes} bytes`;\n }\n\n return {\n [header]: `${marker}${formatValue(value, {size, isInteger})}`,\n 'Format ': format\n };\n }\n\n // CONSTANT VALUE\n value = attribute;\n size = attribute.length;\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(attribute.constructor.name).replace('Array', '');\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n\n return {\n [header]: `${formatValue(value, {size, isInteger})} (constant)`,\n 'Format ': `${size}x${type} (constant)`\n };\n}\n/* eslint-ensable max-statements */\n\nfunction getGLSLDeclaration(name, accessor) {\n const {type, size} = accessor;\n const typeAndName = getCompositeGLType(type, size);\n return typeAndName ? `${name} (${typeAndName.name})` : name;\n}\n"],"file":"debug-vertex-array.js"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.canCompileGLSLExtension = canCompileGLSLExtension;
|
|
7
|
+
|
|
8
|
+
var _isOldIe = require("../webgl-utils/is-old-ie");
|
|
9
|
+
|
|
10
|
+
var compiledGLSLExtensions = {};
|
|
11
|
+
|
|
12
|
+
function canCompileGLSLExtension(gl, extensionName) {
|
|
13
|
+
var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
14
|
+
|
|
15
|
+
if (!(0, _isOldIe.isOldIE)(opts)) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (extensionName in compiledGLSLExtensions) {
|
|
20
|
+
return compiledGLSLExtensions[extensionName];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var behavior = opts.behavior || 'enable';
|
|
24
|
+
var source = "#extension GL_".concat(extensionName, " : ").concat(behavior, "\nvoid main(void) {}");
|
|
25
|
+
var shader = gl.createShader(gl.VERTEX_SHADER);
|
|
26
|
+
gl.shaderSource(shader, source);
|
|
27
|
+
gl.compileShader(shader);
|
|
28
|
+
var canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
|
|
29
|
+
gl.deleteShader(shader);
|
|
30
|
+
compiledGLSLExtensions[extensionName] = canCompile;
|
|
31
|
+
return canCompile;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=check-glsl-extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/device/check-glsl-extension.ts"],"names":["compiledGLSLExtensions","canCompileGLSLExtension","gl","extensionName","opts","behavior","source","shader","createShader","VERTEX_SHADER","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"mappings":";;;;;;;AACA;;AAQA,IAAMA,sBAAsB,GAAG,EAA/B;;AAeO,SAASC,uBAAT,CAAiCC,EAAjC,EAA4DC,aAA5D,EAAmG;AAAA,MAAxBC,IAAwB,uEAAJ,EAAI;;AACxG,MAAI,CAAC,sBAAQA,IAAR,CAAL,EAAoB;AAClB,WAAO,IAAP;AACD;;AAED,MAAID,aAAa,IAAIH,sBAArB,EAA6C;AAC3C,WAAOA,sBAAsB,CAACG,aAAD,CAA7B;AACD;;AAED,MAAME,QAAQ,GAAGD,IAAI,CAACC,QAAL,IAAiB,QAAlC;AACA,MAAMC,MAAM,2BAAoBH,aAApB,gBAAuCE,QAAvC,yBAAZ;AAEA,MAAME,MAAM,GAAGL,EAAE,CAACM,YAAH,CAAgBN,EAAE,CAACO,aAAnB,CAAf;AACAP,EAAAA,EAAE,CAACQ,YAAH,CAAgBH,MAAhB,EAAwBD,MAAxB;AACAJ,EAAAA,EAAE,CAACS,aAAH,CAAiBJ,MAAjB;AACA,MAAMK,UAAU,GAAGV,EAAE,CAACW,kBAAH,CAAsBN,MAAtB,EAA8BL,EAAE,CAACY,cAAjC,CAAnB;AACAZ,EAAAA,EAAE,CAACa,YAAH,CAAgBR,MAAhB;AACAP,EAAAA,sBAAsB,CAACG,aAAD,CAAtB,GAAwCS,UAAxC;AACA,SAAOA,UAAP;AACD","sourcesContent":["// luma.gl, MIT license\nimport {isOldIE} from '../webgl-utils/is-old-ie';\n\n// Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n// but fail to compile when the extension is enabled in the shader. Specifically,\n// the OES_standard_derivatives extension fails to compile in IE11 even though its included\n// in the list of supported extensions.\n// const compiledGLSLExtensions = {};\n\nconst compiledGLSLExtensions = {};\n\n// Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n// but fail to compile when the extension is enabled in the shader. Specifically,\n// the OES_standard_derivatives and WEBGL_draw_buffers extensions fails to compile in IE11 even though its included\n// in the list of supported extensions.\n// opts allows user agent to be overridden for testing\n/*\n * Inputs :\n * gl : WebGL context\n * cap : Key of WEBGL_FEATURES object identifying the extension\n * opts :\n * behavior : behavior of extension to be tested, by defualt `enable` is used\n * Returns : true, if shader is compiled successfully, false otherwise\n */\nexport function canCompileGLSLExtension(gl: WebGLRenderingContext, extensionName, opts: {behavior?} = {}) {\n if (!isOldIE(opts)) {\n return true;\n }\n\n if (extensionName in compiledGLSLExtensions) {\n return compiledGLSLExtensions[extensionName];\n }\n\n const behavior = opts.behavior || 'enable';\n const source = `#extension GL_${extensionName} : ${behavior}\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGLSLExtensions[extensionName] = canCompile;\n return canCompile;\n}\n"],"file":"check-glsl-extension.js"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.getDeviceFeatures = getDeviceFeatures;
|
|
9
|
+
exports.getWebGLFeatures = getWebGLFeatures;
|
|
10
|
+
exports.canCompileGLSLExtension = canCompileGLSLExtension;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
15
|
+
|
|
16
|
+
var _webglChecks = require("../context/context/webgl-checks");
|
|
17
|
+
|
|
18
|
+
var _isOldIe = require("../webgl-utils/is-old-ie");
|
|
19
|
+
|
|
20
|
+
function getDeviceFeatures(gl) {
|
|
21
|
+
var features = getWebGLFeatures(gl);
|
|
22
|
+
return features;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function getWebGLFeatures(gl) {
|
|
26
|
+
gl.getExtension('EXT_color_buffer_float');
|
|
27
|
+
gl.getExtension('WEBGL_color_buffer_float');
|
|
28
|
+
gl.getExtension('EXT_float_blend');
|
|
29
|
+
var features = new Set();
|
|
30
|
+
|
|
31
|
+
for (var feature in WEBGL_FEATURES) {
|
|
32
|
+
if (isFeatureSupported(gl, feature)) {
|
|
33
|
+
features.add(feature);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return features;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function isFeatureSupported(gl, feature) {
|
|
41
|
+
var _WEBGL_FEATURES$featu = (0, _slicedToArray2.default)(WEBGL_FEATURES[feature], 2),
|
|
42
|
+
webgl1Feature = _WEBGL_FEATURES$featu[0],
|
|
43
|
+
webgl2Feature = _WEBGL_FEATURES$featu[1];
|
|
44
|
+
|
|
45
|
+
;
|
|
46
|
+
var featureDefinition = (0, _webglChecks.isWebGL2)(gl) ? webgl2Feature : webgl1Feature;
|
|
47
|
+
|
|
48
|
+
if (typeof featureDefinition === 'boolean') {
|
|
49
|
+
return featureDefinition;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
switch (feature) {
|
|
53
|
+
case 'webgl-color-attachment-rgba32f':
|
|
54
|
+
return (0, _webglChecks.isWebGL2)(gl) ? Boolean(gl.getExtension(featureDefinition)) : checkFloat32ColorAttachment(gl);
|
|
55
|
+
|
|
56
|
+
case 'glsl-derivatives':
|
|
57
|
+
return canCompileGLSLExtension(gl, featureDefinition);
|
|
58
|
+
|
|
59
|
+
case 'glsl-frag-data':
|
|
60
|
+
return canCompileGLSLExtension(gl, featureDefinition, {
|
|
61
|
+
behavior: 'require'
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
case 'glsl-frag-depth':
|
|
65
|
+
return canCompileGLSLExtension(gl, featureDefinition);
|
|
66
|
+
|
|
67
|
+
default:
|
|
68
|
+
return Boolean(gl.getExtension(featureDefinition));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function checkFloat32ColorAttachment(gl) {
|
|
73
|
+
var texture;
|
|
74
|
+
var framebuffer;
|
|
75
|
+
|
|
76
|
+
try {
|
|
77
|
+
var _texture = gl.createTexture();
|
|
78
|
+
|
|
79
|
+
gl.bindTexture(_constants.default.TEXTURE_2D, _texture);
|
|
80
|
+
var level = 0;
|
|
81
|
+
var internalFormat = gl.RGBA;
|
|
82
|
+
var width = 1;
|
|
83
|
+
var height = 1;
|
|
84
|
+
var border = 0;
|
|
85
|
+
var srcFormat = gl.RGBA;
|
|
86
|
+
var srcType = gl.UNSIGNED_BYTE;
|
|
87
|
+
var pixel = new Uint8Array([0, 0, 255, 255]);
|
|
88
|
+
gl.texImage2D(gl.TEXTURE_2D, level, internalFormat, width, height, border, srcFormat, srcType, pixel);
|
|
89
|
+
|
|
90
|
+
var _framebuffer = gl.createFramebuffer();
|
|
91
|
+
|
|
92
|
+
gl.bindFramebuffer(_constants.default.FRAMEBUFFER, _framebuffer);
|
|
93
|
+
gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, _constants.default.COLOR_ATTACHMENT0, _constants.default.TEXTURE_2D, _texture, 0);
|
|
94
|
+
|
|
95
|
+
var status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER) === _constants.default.FRAMEBUFFER_COMPLETE;
|
|
96
|
+
|
|
97
|
+
return status;
|
|
98
|
+
} finally {
|
|
99
|
+
gl.deleteTexture(texture);
|
|
100
|
+
gl.deleteFramebuffer(framebuffer);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
var compiledGLSLExtensions = {};
|
|
105
|
+
|
|
106
|
+
function canCompileGLSLExtension(gl, extensionName) {
|
|
107
|
+
var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
108
|
+
|
|
109
|
+
if (!(0, _isOldIe.isOldIE)(opts)) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (extensionName in compiledGLSLExtensions) {
|
|
114
|
+
return compiledGLSLExtensions[extensionName];
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var behavior = opts.behavior || 'enable';
|
|
118
|
+
var source = "#extension GL_".concat(extensionName, " : ").concat(behavior, "\nvoid main(void) {}");
|
|
119
|
+
var shader = gl.createShader(gl.VERTEX_SHADER);
|
|
120
|
+
gl.shaderSource(shader, source);
|
|
121
|
+
gl.compileShader(shader);
|
|
122
|
+
var canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
|
|
123
|
+
gl.deleteShader(shader);
|
|
124
|
+
compiledGLSLExtensions[extensionName] = canCompile;
|
|
125
|
+
return canCompile;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
var WEBGL_FEATURES = {
|
|
129
|
+
'webgl2': [false, true],
|
|
130
|
+
'webgl-vertex-array-object': ['OES_vertex_array_object', true],
|
|
131
|
+
'webgl-timer-query': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],
|
|
132
|
+
'webgl-instanced-rendering': ['ANGLE_instanced_arrays', true],
|
|
133
|
+
'webgl-multiple-render-targets': ['WEBGL_draw_buffers', true],
|
|
134
|
+
'webgl-element-index-uint32': ['OES_element_index_uint', true],
|
|
135
|
+
'webgl-blend-equation-minmax': ['EXT_blend_minmax', true],
|
|
136
|
+
'webgl-float-blend': ['EXT_float_blend', 'EXT_float_blend'],
|
|
137
|
+
'webgl-color-encoding-srgb': ['EXT_sRGB', true],
|
|
138
|
+
'webgl-texture-depth': ['WEBGL_depth_texture', true],
|
|
139
|
+
'webgl-texture-float': ['OES_texture_float', true],
|
|
140
|
+
'webgl-texture-half-float': ['OES_texture_half_float', true],
|
|
141
|
+
'webgl-texture-filter-linear-float': ['OES_texture_float_linear', 'OES_texture_float_linear'],
|
|
142
|
+
'webgl-texture-filter-linear-half-float': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],
|
|
143
|
+
'webgl-texture-filter-anisotropic': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],
|
|
144
|
+
'webgl-color-attachment-rgba32f': [false, 'EXT_color_buffer_float'],
|
|
145
|
+
'webgl-color-attachment-float': [false, 'EXT_color_buffer_float'],
|
|
146
|
+
'webgl-color-attachment-half-float': ['EXT_color_buffer_half_float', 'EXT_color_buffer_half_float'],
|
|
147
|
+
'glsl-frag-data': ['WEBGL_draw_buffers', true],
|
|
148
|
+
'glsl-frag-depth': ['EXT_frag_depth', true],
|
|
149
|
+
'glsl-derivatives': ['OES_standard_derivatives', true],
|
|
150
|
+
'glsl-texture-lod': ['EXT_shader_texture_lod', true]
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=device-features.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/device/device-features.ts"],"names":["getDeviceFeatures","gl","features","getWebGLFeatures","getExtension","Set","feature","WEBGL_FEATURES","isFeatureSupported","add","webgl1Feature","webgl2Feature","featureDefinition","Boolean","checkFloat32ColorAttachment","canCompileGLSLExtension","behavior","texture","framebuffer","createTexture","bindTexture","GL","TEXTURE_2D","level","internalFormat","RGBA","width","height","border","srcFormat","srcType","UNSIGNED_BYTE","pixel","Uint8Array","texImage2D","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","status","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","deleteTexture","deleteFramebuffer","compiledGLSLExtensions","extensionName","opts","source","shader","createShader","VERTEX_SHADER","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"mappings":"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","sourcesContent":["// Feature detection for WebGL\n// Provides a function that enables simple checking of which WebGL features are\n// available in an WebGL1 or WebGL2 environment.\n\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../context/context/webgl-checks';\nimport {isOldIE} from '../webgl-utils/is-old-ie';\n\nexport type DeviceFeature = \n 'depth-clamping' |\n 'depth24unorm-stencil8' |\n 'depth32float-stencil8' |\n 'pipeline-statistics-query' |\n 'timestamp-query' |\n 'texture-compression-bc';\n\n// TODO - this should be the default export, test cases need updating\nexport type WebGLFeature = \n 'webgl2' |\n\n // api support (unify with WebGPU timestamp-query?)\n 'webgl-timer-query' |\n\n // api support\n 'webgl-vertex-array-object' |\n 'webgl-instanced-rendering' |\n 'webgl-multiple-render-targets' |\n\n // features\n 'webgl-element-index-uint32' |\n\n // blending\n 'webgl-blend-equation-minmax' |\n 'webgl-float-blend' |\n\n // textures | renderbuffers\n 'webgl-color-encoding-srgb' |\n\n // textures\n 'webgl-texture-depth' |\n 'webgl-texture-float' |\n 'webgl-texture-half-float' |\n\n 'webgl-texture-filter-linear-float' |\n 'webgl-texture-filter-linear-half-float' |\n 'webgl-texture-filter-anisotropic' |\n\n // framebuffers | textures and renderbuffers\n 'webgl-color-attachment-rgba32f' |\n 'webgl-color-attachment-float' |\n 'webgl-color-attachment-half-float' |\n\n // glsl extensions\n 'glsl-frag-data' |\n 'glsl-frag-depth' |\n 'glsl-derivatives' |\n 'glsl-texture-lod';\n\n/** Valid feature strings */\nexport type Feature = DeviceFeature | WebGLFeature;\n\n/** Get WebGPU style feature strings */\nexport function getDeviceFeatures(gl: WebGLRenderingContext): Set<DeviceFeature | WebGLFeature> {\n const features = getWebGLFeatures(gl);\n // features.add('depth-clamping'); // GPUPrimitiveState.clampDepth\n // features.add('depth24unorm-stencil8'); // GPUTextureFormat 'depth24unorm-stencil8'.\n // features.add('depth32float-stencil8'); // GPUTextureFormat 'depth32float-stencil8'.\n // features.add('pipeline-statistics-query'); // GPUQueryType \"pipeline-statistics\"\n // features.add('timestamp-query'); // GPUQueryType \"timestamp-query\"\n // TODO\n // features.add('texture-compression-bc'); // GPUQueryType \"timestamp\"\n // TODO\n return features;\n}\n\n/** Extract all WebGL features */\nexport function getWebGLFeatures(gl: WebGLRenderingContext): Set<WebGLFeature> {\n // Enable EXT_float_blend first: https://developer.mozilla.org/en-US/docs/Web/API/EXT_float_blend\n gl.getExtension('EXT_color_buffer_float');\n gl.getExtension('WEBGL_color_buffer_float');\n gl.getExtension('EXT_float_blend');\n\n const features = new Set<WebGLFeature>();\n for (const feature in WEBGL_FEATURES) {\n if (isFeatureSupported(gl, feature as WebGLFeature)) {\n features.add(feature as WebGLFeature );\n }\n }\n return features;\n}\n\nfunction isFeatureSupported(gl: WebGLRenderingContext, feature: WebGLFeature): boolean {\n const [webgl1Feature, webgl2Feature] = WEBGL_FEATURES[feature];;\n\n // Get extension name from table\n const featureDefinition = isWebGL2(gl) ? webgl2Feature : webgl1Feature;\n\n // Check if the value is dependent on checking one or more extensions\n if (typeof featureDefinition === 'boolean') {\n return featureDefinition;\n }\n\n switch (feature) {\n case 'webgl-color-attachment-rgba32f':\n return isWebGL2(gl) ? Boolean(gl.getExtension(featureDefinition)) :\n checkFloat32ColorAttachment(gl);\n case 'glsl-derivatives':\n return canCompileGLSLExtension(gl, featureDefinition); // TODO options\n case 'glsl-frag-data':\n return canCompileGLSLExtension(gl, featureDefinition, {behavior: 'require'}); // TODO options\n case 'glsl-frag-depth':\n return canCompileGLSLExtension(gl, featureDefinition); // TODO options\n default:\n return Boolean(gl.getExtension(featureDefinition));\n }\n}\n\n\n// function to test if Float 32 bit format texture can be bound as color attachment\nfunction checkFloat32ColorAttachment(gl: WebGLRenderingContext): boolean {\n let texture: WebGLTexture;\n let framebuffer: WebGLFramebuffer;\n try {\n const texture = gl.createTexture();\n gl.bindTexture(GL.TEXTURE_2D, texture);\n\n const level = 0;\n const internalFormat = gl.RGBA;\n const width = 1;\n const height = 1;\n const border = 0;\n const srcFormat = gl.RGBA;\n const srcType = gl.UNSIGNED_BYTE;\n const pixel = new Uint8Array([0, 0, 255, 255]); // opaque blue\n gl.texImage2D(gl.TEXTURE_2D, level, internalFormat,\n width, height, border, srcFormat, srcType,\n pixel);\n\n const framebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(GL.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(GL.FRAMEBUFFER, GL.COLOR_ATTACHMENT0, GL.TEXTURE_2D, texture, 0);\n const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER) === GL.FRAMEBUFFER_COMPLETE;\n return status;\n } finally {\n gl.deleteTexture(texture);\n gl.deleteFramebuffer(framebuffer);\n }\n}\n\nconst compiledGLSLExtensions = {};\n\n/*\n * Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n * but fail to compile when the extension is enabled in the shader. Specifically,\n * the OES_standard_derivatives and WEBGL_draw_buffers extensions fails to compile in IE11 even though its included\n * in the list of supported extensions.\n * opts allows user agent to be overridden for testing\n * Inputs :\n * gl : WebGL context\n * cap : Key of WEBGL_FEATURES object identifying the extension\n * opts :\n * behavior : behavior of extension to be tested, by defualt `enable` is used\n * Returns : true, if shader is compiled successfully, false otherwise\n */\nexport function canCompileGLSLExtension(gl: WebGLRenderingContext, extensionName, opts: {behavior?} = {}) {\n if (!isOldIE(opts)) {\n return true;\n }\n\n if (extensionName in compiledGLSLExtensions) {\n return compiledGLSLExtensions[extensionName];\n }\n\n const behavior = opts.behavior || 'enable';\n const source = `#extension GL_${extensionName} : ${behavior}\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGLSLExtensions[extensionName] = canCompile;\n return canCompile;\n}\n\n/** Defines luma.gl \"feature\" names and semantics\n * Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension\n */\nconst WEBGL_FEATURES: Record<WebGLFeature, [boolean | string, boolean | string]> = {\n 'webgl2': [false, true],\n\n // API SUPPORT\n 'webgl-vertex-array-object': ['OES_vertex_array_object', true],\n 'webgl-timer-query': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n 'webgl-instanced-rendering': ['ANGLE_instanced_arrays', true],\n 'webgl-multiple-render-targets': ['WEBGL_draw_buffers', true],\n\n // FEATURES\n 'webgl-element-index-uint32': ['OES_element_index_uint', true],\n\n // BLENDING\n 'webgl-blend-equation-minmax': ['EXT_blend_minmax', true],\n 'webgl-float-blend': ['EXT_float_blend', 'EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n 'webgl-color-encoding-srgb': ['EXT_sRGB', true],\n\n // TEXTURES\n 'webgl-texture-depth': ['WEBGL_depth_texture', true],\n 'webgl-texture-float': ['OES_texture_float', true],\n 'webgl-texture-half-float': ['OES_texture_half_float', true],\n\n 'webgl-texture-filter-linear-float': ['OES_texture_float_linear', 'OES_texture_float_linear'],\n 'webgl-texture-filter-linear-half-float': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],\n 'webgl-texture-filter-anisotropic': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n 'webgl-color-attachment-rgba32f': [false, 'EXT_color_buffer_float'], // Note override check\n 'webgl-color-attachment-float': [false, 'EXT_color_buffer_float'],\n 'webgl-color-attachment-half-float': ['EXT_color_buffer_half_float', 'EXT_color_buffer_half_float'],\n\n // GLSL extensions\n 'glsl-frag-data': ['WEBGL_draw_buffers', true],\n 'glsl-frag-depth': ['EXT_frag_depth', true],\n 'glsl-derivatives': ['OES_standard_derivatives', true],\n 'glsl-texture-lod': ['EXT_shader_texture_lod', true]\n};\n"],"file":"device-features.js"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.getDeviceLimits = getDeviceLimits;
|
|
9
|
+
exports.getWebGLLimits = getWebGLLimits;
|
|
10
|
+
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
|
|
13
|
+
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
14
|
+
|
|
15
|
+
var _webglChecks = require("../context/context/webgl-checks");
|
|
16
|
+
|
|
17
|
+
function getDeviceLimits(gl) {
|
|
18
|
+
var gl2 = (0, _webglChecks.getWebGL2Context)(gl);
|
|
19
|
+
return {
|
|
20
|
+
maxTextureDimension1D: 0,
|
|
21
|
+
maxTextureDimension2D: gl.getParameter(_constants.default.MAX_TEXTURE_SIZE),
|
|
22
|
+
maxTextureDimension3D: gl2 ? gl2.getParameter(_constants.default.MAX_3D_TEXTURE_SIZE) : 0,
|
|
23
|
+
maxTextureArrayLayers: gl2 ? gl2.getParameter(_constants.default.MAX_ARRAY_TEXTURE_LAYERS) : 0,
|
|
24
|
+
maxBindGroups: 1,
|
|
25
|
+
maxDynamicUniformBuffersPerPipelineLayout: 0,
|
|
26
|
+
maxDynamicStorageBuffersPerPipelineLayout: 0,
|
|
27
|
+
maxSampledTexturesPerShaderStage: gl.getParameter(_constants.default.MAX_VERTEX_TEXTURE_IMAGE_UNITS),
|
|
28
|
+
maxSamplersPerShaderStage: gl.getParameter(_constants.default.MAX_COMBINED_TEXTURE_IMAGE_UNITS),
|
|
29
|
+
maxStorageBuffersPerShaderStage: 0,
|
|
30
|
+
maxStorageTexturesPerShaderStage: 0,
|
|
31
|
+
maxUniformBuffersPerShaderStage: gl2 ? gl2.getParameter(_constants.default.MAX_UNIFORM_BUFFER_BINDINGS) : 0,
|
|
32
|
+
maxUniformBufferBindingSize: gl2 ? gl2.getParameter(_constants.default.MAX_UNIFORM_BLOCK_SIZE) : 0,
|
|
33
|
+
maxStorageBufferBindingSize: 0,
|
|
34
|
+
minUniformBufferOffsetAlignment: gl2 ? gl2.getParameter(_constants.default.UNIFORM_BUFFER_OFFSET_ALIGNMENT) : 0,
|
|
35
|
+
minStorageBufferOffsetAlignment: 0,
|
|
36
|
+
maxVertexBuffers: 0,
|
|
37
|
+
maxVertexAttributes: gl.getParameter(_constants.default.MAX_VERTEX_ATTRIBS),
|
|
38
|
+
maxVertexBufferArrayStride: 2048,
|
|
39
|
+
maxInterStageShaderComponents: gl2 ? gl2.getParameter(_constants.default.MAX_VARYING_COMPONENTS) : 0,
|
|
40
|
+
maxComputeWorkgroupStorageSize: 0,
|
|
41
|
+
maxComputeInvocationsPerWorkgroup: 0,
|
|
42
|
+
maxComputeWorkgroupSizeX: 0,
|
|
43
|
+
maxComputeWorkgroupSizeY: 0,
|
|
44
|
+
maxComputeWorkgroupSizeZ: 0,
|
|
45
|
+
maxComputeWorkgroupsPerDimension: 0
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function getWebGLLimits(gl) {
|
|
50
|
+
var _ref;
|
|
51
|
+
|
|
52
|
+
var gl2 = (0, _webglChecks.getWebGL2Context)(gl);
|
|
53
|
+
|
|
54
|
+
function get(pname) {
|
|
55
|
+
return gl.getParameter(pname);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function get2(pname, defaultValue) {
|
|
59
|
+
return gl2 ? gl2.getParameter(pname) : defaultValue || 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return _ref = {}, (0, _defineProperty2.default)(_ref, _constants.default.ALIASED_LINE_WIDTH_RANGE, get(_constants.default.ALIASED_LINE_WIDTH_RANGE)), (0, _defineProperty2.default)(_ref, _constants.default.ALIASED_POINT_SIZE_RANGE, get(_constants.default.ALIASED_POINT_SIZE_RANGE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TEXTURE_SIZE, get(_constants.default.MAX_TEXTURE_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_CUBE_MAP_TEXTURE_SIZE, get(_constants.default.MAX_CUBE_MAP_TEXTURE_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TEXTURE_IMAGE_UNITS, get(_constants.default.MAX_TEXTURE_IMAGE_UNITS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COMBINED_TEXTURE_IMAGE_UNITS, get(_constants.default.MAX_COMBINED_TEXTURE_IMAGE_UNITS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_TEXTURE_IMAGE_UNITS, get(_constants.default.MAX_VERTEX_TEXTURE_IMAGE_UNITS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_RENDERBUFFER_SIZE, get(_constants.default.MAX_RENDERBUFFER_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VARYING_VECTORS, get(_constants.default.MAX_VARYING_VECTORS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_ATTRIBS, get(_constants.default.MAX_VERTEX_ATTRIBS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_UNIFORM_VECTORS, get(_constants.default.MAX_VERTEX_UNIFORM_VECTORS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_FRAGMENT_UNIFORM_VECTORS, get(_constants.default.MAX_FRAGMENT_UNIFORM_VECTORS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VIEWPORT_DIMS, get(_constants.default.MAX_VIEWPORT_DIMS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_3D_TEXTURE_SIZE, get2(_constants.default.MAX_3D_TEXTURE_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_ARRAY_TEXTURE_LAYERS, get2(_constants.default.MAX_ARRAY_TEXTURE_LAYERS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_CLIENT_WAIT_TIMEOUT_WEBGL, get2(_constants.default.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COLOR_ATTACHMENTS, get2(_constants.default.MAX_COLOR_ATTACHMENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS, get2(_constants.default.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COMBINED_UNIFORM_BLOCKS, get2(_constants.default.MAX_COMBINED_UNIFORM_BLOCKS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, get2(_constants.default.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_DRAW_BUFFERS, get2(_constants.default.MAX_DRAW_BUFFERS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_ELEMENT_INDEX, get2(_constants.default.MAX_ELEMENT_INDEX)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_ELEMENTS_INDICES, get2(_constants.default.MAX_ELEMENTS_INDICES)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_ELEMENTS_VERTICES, get2(_constants.default.MAX_ELEMENTS_VERTICES)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_FRAGMENT_INPUT_COMPONENTS, get2(_constants.default.MAX_FRAGMENT_INPUT_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_FRAGMENT_UNIFORM_BLOCKS, get2(_constants.default.MAX_FRAGMENT_UNIFORM_BLOCKS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_FRAGMENT_UNIFORM_COMPONENTS, get2(_constants.default.MAX_FRAGMENT_UNIFORM_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_SAMPLES, get2(_constants.default.MAX_SAMPLES)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_SERVER_WAIT_TIMEOUT, get2(_constants.default.MAX_SERVER_WAIT_TIMEOUT)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TEXTURE_LOD_BIAS, get2(_constants.default.MAX_TEXTURE_LOD_BIAS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS, get2(_constants.default.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, get2(_constants.default.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS, get2(_constants.default.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_UNIFORM_BLOCK_SIZE, get2(_constants.default.MAX_UNIFORM_BLOCK_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_UNIFORM_BUFFER_BINDINGS, get2(_constants.default.MAX_UNIFORM_BUFFER_BINDINGS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VARYING_COMPONENTS, get2(_constants.default.MAX_VARYING_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_OUTPUT_COMPONENTS, get2(_constants.default.MAX_VERTEX_OUTPUT_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_UNIFORM_BLOCKS, get2(_constants.default.MAX_VERTEX_UNIFORM_BLOCKS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_UNIFORM_COMPONENTS, get2(_constants.default.MAX_VERTEX_UNIFORM_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MIN_PROGRAM_TEXEL_OFFSET, get2(_constants.default.MIN_PROGRAM_TEXEL_OFFSET)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_PROGRAM_TEXEL_OFFSET, get2(_constants.default.MAX_PROGRAM_TEXEL_OFFSET)), (0, _defineProperty2.default)(_ref, _constants.default.UNIFORM_BUFFER_OFFSET_ALIGNMENT, get2(_constants.default.UNIFORM_BUFFER_OFFSET_ALIGNMENT)), _ref;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=device-limits.js.map
|