@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
|
@@ -1,17 +1,56 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import {log, assert} from '@luma.gl/api';
|
|
3
2
|
import GL from '@luma.gl/constants';
|
|
4
|
-
import {
|
|
3
|
+
import {Matrix4} from '@math.gl/core';
|
|
5
4
|
|
|
6
5
|
import Framebuffer from './framebuffer';
|
|
7
6
|
import Renderbuffer from './renderbuffer';
|
|
8
7
|
import Texture from './texture';
|
|
9
|
-
|
|
8
|
+
|
|
9
|
+
type NumberUniformInfo = {
|
|
10
|
+
type: 'number'
|
|
11
|
+
value: number
|
|
12
|
+
min: number
|
|
13
|
+
max: number
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
type BooleanUniformInfo = {
|
|
17
|
+
type: 'boolean'
|
|
18
|
+
value: boolean
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type ArrayUniformInfo = {
|
|
22
|
+
type: 'array'
|
|
23
|
+
value: Array<any>
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
type ObjectUniformInfo = {
|
|
27
|
+
type: 'object'
|
|
28
|
+
value: Object
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
type UniformInfo = NumberUniformInfo |
|
|
32
|
+
BooleanUniformInfo |
|
|
33
|
+
ArrayUniformInfo |
|
|
34
|
+
ObjectUniformInfo
|
|
35
|
+
|
|
36
|
+
// https://luma.gl/docs/developer-guide/shader-modules#getuniforms
|
|
37
|
+
type UniformsOptions = {
|
|
38
|
+
[uniformName: string]: UniformInfo
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
type Uniform = UniformInfo |
|
|
42
|
+
Buffer | (() => Buffer) | Framebuffer |
|
|
43
|
+
Texture |
|
|
44
|
+
Matrix4 | // TODO: which other math.gl classes?
|
|
45
|
+
number | [number, number] | [number, number, number] | [number, number, number, number]
|
|
46
|
+
|
|
47
|
+
type Uniforms = {
|
|
48
|
+
[uniformName: string]: Uniform
|
|
49
|
+
}
|
|
10
50
|
|
|
11
51
|
const UNIFORM_SETTERS = {
|
|
12
52
|
// WEBGL1
|
|
13
53
|
|
|
14
|
-
/* eslint-disable max-len */
|
|
15
54
|
[GL.FLOAT]: getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform),
|
|
16
55
|
[GL.FLOAT_VEC2]: getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform),
|
|
17
56
|
[GL.FLOAT_VEC3]: getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform),
|
|
@@ -126,7 +165,6 @@ const UNIFORM_SETTERS = {
|
|
|
126
165
|
[GL.UNSIGNED_INT_SAMPLER_3D]: getSamplerSetter,
|
|
127
166
|
[GL.UNSIGNED_INT_SAMPLER_CUBE]: getSamplerSetter,
|
|
128
167
|
[GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: getSamplerSetter
|
|
129
|
-
/* eslint-enable max-len */
|
|
130
168
|
};
|
|
131
169
|
|
|
132
170
|
// Pre-allocated typed arrays for temporary conversion
|
|
@@ -136,52 +174,10 @@ const UINT_ARRAY = {};
|
|
|
136
174
|
|
|
137
175
|
const array1 = [0];
|
|
138
176
|
|
|
139
|
-
// Functions to ensure the type of uniform values
|
|
140
|
-
// This is done because uniform*v functions
|
|
141
|
-
// are extremely slow when consuming JS arrays directly.
|
|
142
|
-
function toTypedArray(value, uniformLength, Type, cache) {
|
|
143
|
-
// convert boolean uniforms to Number
|
|
144
|
-
if (uniformLength === 1 && typeof value === 'boolean') {
|
|
145
|
-
value = value ? 1 : 0;
|
|
146
|
-
}
|
|
147
|
-
if (Number.isFinite(value)) {
|
|
148
|
-
array1[0] = value;
|
|
149
|
-
value = array1;
|
|
150
|
-
}
|
|
151
|
-
const length = value.length;
|
|
152
|
-
if (length % uniformLength) {
|
|
153
|
-
log.warn(`Uniform size should be multiples of ${uniformLength}`, value)();
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (value instanceof Type) {
|
|
157
|
-
return value;
|
|
158
|
-
}
|
|
159
|
-
let result = cache[length];
|
|
160
|
-
if (!result) {
|
|
161
|
-
result = new Type(length);
|
|
162
|
-
cache[length] = result;
|
|
163
|
-
}
|
|
164
|
-
for (let i = 0; i < length; i++) {
|
|
165
|
-
result[i] = value[i];
|
|
166
|
-
}
|
|
167
|
-
return result;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function toFloatArray(value, uniformLength) {
|
|
171
|
-
return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
function toIntArray(value, uniformLength) {
|
|
175
|
-
return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
function toUIntArray(value, uniformLength) {
|
|
179
|
-
return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);
|
|
180
|
-
} // Returns a Magic Uniform Setter
|
|
181
|
-
|
|
182
177
|
// PUBLIC API
|
|
183
178
|
|
|
184
|
-
/**
|
|
179
|
+
/** Returns a Magic Uniform Setter */
|
|
180
|
+
export function getUniformSetter(gl: WebGLRenderingContext, location: number, info: UniformInfo): any {
|
|
185
181
|
const setter = UNIFORM_SETTERS[info.type];
|
|
186
182
|
if (!setter) {
|
|
187
183
|
throw new Error(`Unknown GLSL uniform type ${info.type}`);
|
|
@@ -192,8 +188,7 @@ function toUIntArray(value, uniformLength) {
|
|
|
192
188
|
return setter().bind(null, gl, location);
|
|
193
189
|
}
|
|
194
190
|
|
|
195
|
-
|
|
196
|
-
export function parseUniformName(name) {
|
|
191
|
+
export function parseUniformName(name: string): {name: string; isArray: boolean, length: number} {
|
|
197
192
|
// Shortcut to avoid redundant or bad matches
|
|
198
193
|
if (name[name.length - 1] !== ']') {
|
|
199
194
|
return {
|
|
@@ -212,15 +207,20 @@ export function parseUniformName(name) {
|
|
|
212
207
|
|
|
213
208
|
return {
|
|
214
209
|
name: matches[1],
|
|
215
|
-
length: matches[2] || 1,
|
|
210
|
+
length: Number(matches[2]) || 1,
|
|
216
211
|
isArray: Boolean(matches[2])
|
|
217
212
|
};
|
|
218
|
-
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// To facilitate early detection of e.g. undefined values in JavaScript
|
|
219
216
|
|
|
220
217
|
// Basic checks of uniform values (with or without knowledge of program)
|
|
221
218
|
|
|
222
|
-
/**
|
|
223
|
-
|
|
219
|
+
/**
|
|
220
|
+
* Basic checks of uniform values (with or without knowledge of program)
|
|
221
|
+
* To facilitate early detection of e.g. undefined values in JavaScript
|
|
222
|
+
*/
|
|
223
|
+
export function checkUniformValues(uniforms: object, source?: string, uniformMap?: object): boolean {
|
|
224
224
|
for (const uniformName in uniforms) {
|
|
225
225
|
const value = uniforms[uniformName];
|
|
226
226
|
const shouldCheck = !uniformMap || Boolean(uniformMap[uniformName]);
|
|
@@ -228,14 +228,35 @@ export function checkUniformValues(uniforms, source, uniformMap) {
|
|
|
228
228
|
// Add space to source
|
|
229
229
|
source = source ? `${source} ` : '';
|
|
230
230
|
// Value could be unprintable so write the object on console
|
|
231
|
-
console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line
|
|
232
|
-
/* eslint-enable no-console */
|
|
231
|
+
console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line no-console
|
|
233
232
|
throw new Error(`${source} Bad uniform ${uniformName}`);
|
|
234
233
|
}
|
|
235
234
|
}
|
|
236
235
|
return true;
|
|
237
236
|
}
|
|
238
237
|
|
|
238
|
+
/**
|
|
239
|
+
* Creates a copy of the uniform
|
|
240
|
+
*/
|
|
241
|
+
export function copyUniform(uniforms: object, key: string, value: any): void {
|
|
242
|
+
if (Array.isArray(value) || ArrayBuffer.isView(value)) {
|
|
243
|
+
if (uniforms[key]) {
|
|
244
|
+
const dest = uniforms[key];
|
|
245
|
+
// @ts-expect-error
|
|
246
|
+
for (let i = 0, len = value.length; i < len; ++i) {
|
|
247
|
+
dest[i] = value[i];
|
|
248
|
+
}
|
|
249
|
+
} else {
|
|
250
|
+
// @ts-expect-error
|
|
251
|
+
uniforms[key] = value.slice();
|
|
252
|
+
}
|
|
253
|
+
} else {
|
|
254
|
+
uniforms[key] = value;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// HELPERS
|
|
259
|
+
|
|
239
260
|
// TODO use type information during validation
|
|
240
261
|
function checkUniformValue(value) {
|
|
241
262
|
if (Array.isArray(value) || ArrayBuffer.isView(value)) {
|
|
@@ -257,25 +278,6 @@ function checkUniformValue(value) {
|
|
|
257
278
|
return false;
|
|
258
279
|
}
|
|
259
280
|
|
|
260
|
-
/** @type {types['copyUniform']} */
|
|
261
|
-
export function copyUniform(uniforms, key, value) {
|
|
262
|
-
if (Array.isArray(value) || ArrayBuffer.isView(value)) {
|
|
263
|
-
if (uniforms[key]) {
|
|
264
|
-
const dest = uniforms[key];
|
|
265
|
-
// @ts-ignore
|
|
266
|
-
for (let i = 0, len = value.length; i < len; ++i) {
|
|
267
|
-
dest[i] = value[i];
|
|
268
|
-
}
|
|
269
|
-
} else {
|
|
270
|
-
// @ts-ignore
|
|
271
|
-
uniforms[key] = value.slice();
|
|
272
|
-
}
|
|
273
|
-
} else {
|
|
274
|
-
uniforms[key] = value;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
// HELPERS
|
|
279
281
|
|
|
280
282
|
function checkUniformArray(value) {
|
|
281
283
|
// Check that every element in array is a number, and at least 1 element
|
|
@@ -346,3 +348,47 @@ function setVectorUniform(gl, functionName, location, value) {
|
|
|
346
348
|
function setMatrixUniform(gl, functionName, location, value) {
|
|
347
349
|
gl[functionName](location, false, value);
|
|
348
350
|
}
|
|
351
|
+
|
|
352
|
+
// Functions to ensure the type of uniform values
|
|
353
|
+
// This is done because uniform*v functions
|
|
354
|
+
// are extremely slow when consuming JS arrays directly.
|
|
355
|
+
|
|
356
|
+
function toTypedArray(value, uniformLength, Type, cache) {
|
|
357
|
+
// convert boolean uniforms to Number
|
|
358
|
+
if (uniformLength === 1 && typeof value === 'boolean') {
|
|
359
|
+
value = value ? 1 : 0;
|
|
360
|
+
}
|
|
361
|
+
if (Number.isFinite(value)) {
|
|
362
|
+
array1[0] = value;
|
|
363
|
+
value = array1;
|
|
364
|
+
}
|
|
365
|
+
const length = value.length;
|
|
366
|
+
if (length % uniformLength) {
|
|
367
|
+
log.warn(`Uniform size should be multiples of ${uniformLength}`, value)();
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
if (value instanceof Type) {
|
|
371
|
+
return value;
|
|
372
|
+
}
|
|
373
|
+
let result = cache[length];
|
|
374
|
+
if (!result) {
|
|
375
|
+
result = new Type(length);
|
|
376
|
+
cache[length] = result;
|
|
377
|
+
}
|
|
378
|
+
for (let i = 0; i < length; i++) {
|
|
379
|
+
result[i] = value[i];
|
|
380
|
+
}
|
|
381
|
+
return result;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
function toFloatArray(value, uniformLength) {
|
|
385
|
+
return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
function toIntArray(value, uniformLength) {
|
|
389
|
+
return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
function toUIntArray(value, uniformLength) {
|
|
393
|
+
return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);
|
|
394
|
+
}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
|
+
import {assert, getScratchArray, fillArray} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {isWebGL2} from '
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
3
|
+
import {getBrowser} from '@probe.gl/env';
|
|
4
|
+
import WebGLDevice from '../device/webgl-device';
|
|
5
|
+
import {assertWebGL2Context, isWebGL2} from '../context/context/webgl-checks';
|
|
6
|
+
import Program from './program';
|
|
7
|
+
import WebGLResource, {ResourceProps} from './webgl-resource';
|
|
8
|
+
import Buffer from './webgl-buffer';
|
|
8
9
|
|
|
9
10
|
const ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
/**
|
|
13
|
+
* VertexArrayObject properties
|
|
14
|
+
* @param constantAttributeZero Attribute 0 can not be disable on most desktop OpenGL based browsers
|
|
15
|
+
* and on iOS Safari browser.
|
|
16
|
+
*/
|
|
17
|
+
export type VertexArrayObjectProps = ResourceProps & {
|
|
18
|
+
constantAttributeZero?: boolean;
|
|
19
|
+
program?: Program;
|
|
20
|
+
isDefaultArray?: boolean;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default class VertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
|
|
24
|
+
private static MAX_ATTRIBUTES: number;
|
|
25
|
+
|
|
26
|
+
static isSupported(gl: WebGLRenderingContext | WebGL2RenderingContext, options?: VertexArrayObjectProps): boolean {
|
|
27
|
+
if (options?.constantAttributeZero) {
|
|
16
28
|
return isWebGL2(gl) || getBrowser() === 'Chrome';
|
|
17
29
|
}
|
|
18
30
|
|
|
@@ -20,65 +32,69 @@ export default class VertexArrayObject extends Resource {
|
|
|
20
32
|
return true;
|
|
21
33
|
}
|
|
22
34
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Returns the global (null) vertex array object. Exists even when no extension available.
|
|
37
|
+
* @todo (Tarek): VAOs are now polyfilled. Deprecate this in 9.0
|
|
38
|
+
*/
|
|
39
|
+
static getDefaultArray(gl: WebGLRenderingContext): VertexArrayObject {
|
|
40
|
+
const webglDevice = WebGLDevice.fromContext(gl);
|
|
41
|
+
webglDevice.defaultVertexArray = webglDevice.defaultVertexArray ||
|
|
42
|
+
new VertexArrayObject(gl, {handle: null, isDefaultArray: true});
|
|
43
|
+
return webglDevice.defaultVertexArray;
|
|
31
44
|
}
|
|
32
45
|
|
|
33
|
-
|
|
46
|
+
/** Get maximum number of attributes in a vertex array */
|
|
47
|
+
static getMaxAttributes(gl: WebGLRenderingContext): number {
|
|
34
48
|
// TODO - should be cached per context
|
|
35
|
-
// @ts-ignore
|
|
36
49
|
VertexArrayObject.MAX_ATTRIBUTES =
|
|
37
|
-
// @ts-ignore
|
|
38
50
|
VertexArrayObject.MAX_ATTRIBUTES || gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
|
|
39
|
-
// @ts-ignore
|
|
40
51
|
return VertexArrayObject.MAX_ATTRIBUTES;
|
|
41
52
|
}
|
|
42
53
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Set an attribute to a constant value
|
|
56
|
+
* @param gl
|
|
57
|
+
* @param location
|
|
58
|
+
* @param array
|
|
59
|
+
*
|
|
60
|
+
* @note Constants are stored globally on the WebGL context, not the VAO
|
|
61
|
+
* so they need to be updated before every render
|
|
62
|
+
* @todo - use known type (in configuration or passed in) to allow non-typed arrays?
|
|
63
|
+
* @todo - remember/cache values to avoid setting them unnecessarily?
|
|
64
|
+
*/
|
|
65
|
+
static setConstant(gl: WebGLRenderingContext, location: any, array: any): void {
|
|
48
66
|
switch (array.constructor) {
|
|
49
67
|
case Float32Array:
|
|
50
68
|
VertexArrayObject._setConstantFloatArray(gl, location, array);
|
|
51
69
|
break;
|
|
52
70
|
case Int32Array:
|
|
53
|
-
VertexArrayObject._setConstantIntArray(gl, location, array);
|
|
71
|
+
VertexArrayObject._setConstantIntArray(assertWebGL2Context(gl), location, array);
|
|
54
72
|
break;
|
|
55
73
|
case Uint32Array:
|
|
56
|
-
VertexArrayObject._setConstantUintArray(gl, location, array);
|
|
74
|
+
VertexArrayObject._setConstantUintArray(assertWebGL2Context(gl), location, array);
|
|
57
75
|
break;
|
|
58
76
|
default:
|
|
59
77
|
assert(false);
|
|
60
78
|
}
|
|
61
79
|
}
|
|
62
80
|
|
|
81
|
+
private buffer: Buffer | null = null;
|
|
82
|
+
private bufferValue = null;
|
|
83
|
+
private isDefaultArray: boolean = false;
|
|
84
|
+
|
|
63
85
|
// Create a VertexArray
|
|
64
|
-
constructor(gl, opts
|
|
86
|
+
constructor(gl: WebGLRenderingContext, opts?: VertexArrayObjectProps) {
|
|
65
87
|
// Use program's id if program but no id is supplied
|
|
66
|
-
|
|
67
|
-
super(gl, Object.assign({}, opts, {id}));
|
|
88
|
+
super(WebGLDevice.attach(gl), {...opts, id: opts?.id || (opts?.program && opts?.program.id)}, {} as any);
|
|
68
89
|
|
|
69
90
|
this.buffer = null;
|
|
70
91
|
this.bufferValue = null;
|
|
71
|
-
this.isDefaultArray = opts
|
|
72
|
-
|
|
73
|
-
/** @type {WebGL2RenderingContext} */
|
|
74
|
-
this.gl2 = gl;
|
|
75
|
-
|
|
76
|
-
this.initialize(opts);
|
|
92
|
+
this.isDefaultArray = opts?.isDefaultArray || false;
|
|
77
93
|
|
|
78
94
|
Object.seal(this);
|
|
79
95
|
}
|
|
80
96
|
|
|
81
|
-
delete() {
|
|
97
|
+
delete(): this {
|
|
82
98
|
super.delete();
|
|
83
99
|
if (this.buffer) {
|
|
84
100
|
this.buffer.delete();
|
|
@@ -86,19 +102,10 @@ export default class VertexArrayObject extends Resource {
|
|
|
86
102
|
return this;
|
|
87
103
|
}
|
|
88
104
|
|
|
89
|
-
get MAX_ATTRIBUTES() {
|
|
105
|
+
get MAX_ATTRIBUTES(): number {
|
|
90
106
|
return VertexArrayObject.getMaxAttributes(this.gl);
|
|
91
107
|
}
|
|
92
108
|
|
|
93
|
-
initialize(props = {}) {
|
|
94
|
-
return this.setProps(props);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
setProps(props) {
|
|
98
|
-
// TODO: decide which props should be supported
|
|
99
|
-
return this;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
109
|
// Set (bind) an elements buffer, for indexed rendering.
|
|
103
110
|
// Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported
|
|
104
111
|
setElementBuffer(elementBuffer = null, opts = {}) {
|
|
@@ -112,8 +119,8 @@ export default class VertexArrayObject extends Resource {
|
|
|
112
119
|
return this;
|
|
113
120
|
}
|
|
114
121
|
|
|
115
|
-
|
|
116
|
-
setBuffer(location, buffer, accessor) {
|
|
122
|
+
/** Set a location in vertex attributes array to a buffer, enables the location, sets divisor */
|
|
123
|
+
setBuffer(location, buffer, accessor): this {
|
|
117
124
|
// Check target
|
|
118
125
|
if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {
|
|
119
126
|
return this.setElementBuffer(buffer, accessor);
|
|
@@ -145,11 +152,13 @@ export default class VertexArrayObject extends Resource {
|
|
|
145
152
|
return this;
|
|
146
153
|
}
|
|
147
154
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
155
|
+
/**
|
|
156
|
+
* Enabling an attribute location makes it reference the currently bound buffer
|
|
157
|
+
* Disabling an attribute location makes it reference the global constant value
|
|
158
|
+
* TODO - handle single values for size 1 attributes?
|
|
159
|
+
* TODO - convert classic arrays based on known type?
|
|
160
|
+
*/
|
|
161
|
+
enable(location, enable = true): this {
|
|
153
162
|
// Attribute 0 cannot be disabled in most desktop OpenGL based browsers
|
|
154
163
|
const disablingAttributeZero =
|
|
155
164
|
!enable &&
|
|
@@ -158,21 +167,22 @@ export default class VertexArrayObject extends Resource {
|
|
|
158
167
|
|
|
159
168
|
if (!disablingAttributeZero) {
|
|
160
169
|
location = Number(location);
|
|
161
|
-
this.bind(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
: this.gl.disableVertexAttribArray(location)
|
|
170
|
+
this.bind(() =>
|
|
171
|
+
enable
|
|
172
|
+
? this.gl.enableVertexAttribArray(location)
|
|
173
|
+
: this.gl.disableVertexAttribArray(location)
|
|
166
174
|
);
|
|
167
175
|
}
|
|
168
176
|
return this;
|
|
169
177
|
}
|
|
170
178
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
179
|
+
/**
|
|
180
|
+
* Provide a means to create a buffer that is equivalent to a constant.
|
|
181
|
+
* NOTE: Desktop OpenGL cannot disable attribute 0.
|
|
182
|
+
* https://stackoverflow.com/questions/20305231/webgl-warning-attribute-0-is-disabled-
|
|
183
|
+
* this-has-significant-performance-penalty
|
|
184
|
+
*/
|
|
185
|
+
getConstantBuffer(elementCount: number, value): Buffer {
|
|
176
186
|
// Create buffer only when needed, and reuse it (avoids inflating buffer creation statistics)
|
|
177
187
|
|
|
178
188
|
const constantValue = this._normalizeConstantArrayValue(value);
|
|
@@ -200,6 +210,19 @@ export default class VertexArrayObject extends Resource {
|
|
|
200
210
|
return this.buffer;
|
|
201
211
|
}
|
|
202
212
|
|
|
213
|
+
// DEPRECATED
|
|
214
|
+
|
|
215
|
+
/** @deprecated this function has no effect */
|
|
216
|
+
initialize(props?: VertexArrayObjectProps): this {
|
|
217
|
+
return this.setProps(props);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** @deprecated this function is not implemented */
|
|
221
|
+
setProps(props: VertexArrayObjectProps): this {
|
|
222
|
+
// TODO: decide which props should be supported
|
|
223
|
+
return this;
|
|
224
|
+
}
|
|
225
|
+
|
|
203
226
|
// PRIVATE
|
|
204
227
|
|
|
205
228
|
// TODO - convert Arrays based on known type? (read type from accessor, don't assume Float32Array)
|
|
@@ -211,7 +234,7 @@ export default class VertexArrayObject extends Resource {
|
|
|
211
234
|
return arrayValue;
|
|
212
235
|
}
|
|
213
236
|
|
|
214
|
-
_compareConstantArrayValues(v1, v2) {
|
|
237
|
+
_compareConstantArrayValues(v1, v2): boolean {
|
|
215
238
|
if (!v1 || !v2 || v1.length !== v2.length || v1.constructor !== v2.constructor) {
|
|
216
239
|
return false;
|
|
217
240
|
}
|
|
@@ -223,7 +246,7 @@ export default class VertexArrayObject extends Resource {
|
|
|
223
246
|
return true;
|
|
224
247
|
}
|
|
225
248
|
|
|
226
|
-
static _setConstantFloatArray(gl, location, array) {
|
|
249
|
+
static _setConstantFloatArray(gl: WebGLRenderingContext, location, array): void {
|
|
227
250
|
switch (array.length) {
|
|
228
251
|
case 1:
|
|
229
252
|
gl.vertexAttrib1fv(location, array);
|
|
@@ -242,68 +265,66 @@ export default class VertexArrayObject extends Resource {
|
|
|
242
265
|
}
|
|
243
266
|
}
|
|
244
267
|
|
|
245
|
-
static _setConstantIntArray(gl, location, array) {
|
|
268
|
+
static _setConstantIntArray(gl: WebGL2RenderingContext, location, array) {
|
|
246
269
|
assert(isWebGL2(gl));
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
270
|
+
gl.vertexAttribI4iv(location, array);
|
|
271
|
+
// switch (array.length) {
|
|
272
|
+
// case 1:
|
|
273
|
+
// gl.vertexAttribI1iv(location, array);
|
|
274
|
+
// break;
|
|
275
|
+
// case 2:
|
|
276
|
+
// gl.vertexAttribI2iv(location, array);
|
|
277
|
+
// break;
|
|
278
|
+
// case 3:
|
|
279
|
+
// gl.vertexAttribI3iv(location, array);
|
|
280
|
+
// break;
|
|
281
|
+
// case 4:
|
|
282
|
+
// break;
|
|
283
|
+
// default:
|
|
284
|
+
// assert(false);
|
|
285
|
+
// }
|
|
263
286
|
}
|
|
264
287
|
|
|
265
|
-
static _setConstantUintArray(gl, location, array) {
|
|
288
|
+
static _setConstantUintArray(gl: WebGL2RenderingContext, location, array) {
|
|
266
289
|
assert(isWebGL2(gl));
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
290
|
+
gl.vertexAttribI4uiv(location, array);
|
|
291
|
+
// switch (array.length) {
|
|
292
|
+
// case 1:
|
|
293
|
+
// gl.vertexAttribI1uiv(location, array);
|
|
294
|
+
// break;
|
|
295
|
+
// case 2:
|
|
296
|
+
// gl.vertexAttribI2uiv(location, array);
|
|
297
|
+
// break;
|
|
298
|
+
// case 3:
|
|
299
|
+
// gl.vertexAttribI3uiv(location, array);
|
|
300
|
+
// break;
|
|
301
|
+
// case 4:
|
|
302
|
+
// gl.vertexAttribI4uiv(location, array);
|
|
303
|
+
// break;
|
|
304
|
+
// default:
|
|
305
|
+
// assert(false);
|
|
306
|
+
// }
|
|
283
307
|
}
|
|
284
308
|
|
|
285
309
|
// RESOURCE IMPLEMENTATION
|
|
286
310
|
|
|
287
311
|
_createHandle() {
|
|
288
|
-
|
|
289
|
-
// @ts-ignore
|
|
290
|
-
const gl2 = this.gl;
|
|
291
|
-
return gl2.createVertexArray();
|
|
312
|
+
return this.gl2.createVertexArray();
|
|
292
313
|
}
|
|
293
314
|
|
|
294
|
-
_deleteHandle(
|
|
295
|
-
this.gl2.deleteVertexArray(handle);
|
|
296
|
-
// @ts-
|
|
315
|
+
_deleteHandle(): void {
|
|
316
|
+
this.gl2.deleteVertexArray(this.handle);
|
|
317
|
+
// @ts-expect-error
|
|
297
318
|
return [this.elements];
|
|
298
319
|
// return [this.elements, ...this.buffers];
|
|
299
320
|
}
|
|
300
321
|
|
|
301
|
-
_bindHandle(handle) {
|
|
322
|
+
_bindHandle(handle): void {
|
|
302
323
|
this.gl2.bindVertexArray(handle);
|
|
303
324
|
}
|
|
304
325
|
|
|
305
326
|
// Generic getter for information about a vertex attribute at a given position
|
|
306
|
-
_getParameter(pname, {location}) {
|
|
327
|
+
_getParameter(pname: number, {location}) {
|
|
307
328
|
assert(Number.isFinite(location));
|
|
308
329
|
return this.bind(() => {
|
|
309
330
|
switch (pname) {
|