@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,10 +1,10 @@
|
|
|
1
|
+
import {log, assert} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import {log} from '@luma.gl/gltools';
|
|
3
3
|
import Accessor from './accessor';
|
|
4
|
-
import Buffer from './buffer';
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
4
|
+
import Buffer from './webgl-buffer';
|
|
5
|
+
import Program from './program';
|
|
6
|
+
import ProgramConfiguration from './program-configuration';
|
|
7
|
+
import VertexArrayObject, {VertexArrayObjectProps} from './vertex-array-object';
|
|
8
8
|
|
|
9
9
|
const ERR_ATTRIBUTE_TYPE =
|
|
10
10
|
'VertexArray: attributes must be Buffers or constants (i.e. typed array)';
|
|
@@ -14,48 +14,61 @@ const ERR_ATTRIBUTE_TYPE =
|
|
|
14
14
|
// in vertex-array.md
|
|
15
15
|
const MULTI_LOCATION_ATTRIBUTE_REGEXP = /^(.+)__LOCATION_([0-9]+)$/;
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
export type VertexArrayProps = {
|
|
18
|
+
id?: string;
|
|
19
|
+
program?: Program;
|
|
20
|
+
configuration?: ProgramConfiguration;
|
|
21
|
+
attributes?: Record<string, any>;
|
|
22
|
+
elements?: any;
|
|
23
|
+
bindOnUse?: boolean;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export type DrawParams = {
|
|
27
|
+
elementCount: number;
|
|
28
|
+
indexType: Uint16ArrayConstructor | Uint32ArrayConstructor;
|
|
29
|
+
indexOffset: number;
|
|
30
|
+
isIndexed: boolean;
|
|
31
|
+
isInstanced: boolean;
|
|
32
|
+
indexCount: number;
|
|
33
|
+
vertexCount: number;
|
|
34
|
+
instanceCount: number;
|
|
35
|
+
};
|
|
27
36
|
|
|
28
37
|
export default class VertexArray {
|
|
29
|
-
|
|
38
|
+
id: string;
|
|
39
|
+
gl: WebGLRenderingContext;
|
|
40
|
+
readonly attributes: object = {};
|
|
41
|
+
|
|
42
|
+
vertexArrayObject: VertexArrayObject;
|
|
43
|
+
accessors: Accessor[] = [];
|
|
44
|
+
configuration: ProgramConfiguration | null = null;
|
|
45
|
+
|
|
46
|
+
// Extracted information
|
|
47
|
+
elements = null;
|
|
48
|
+
elementsAccessor = null;
|
|
49
|
+
values = null;
|
|
50
|
+
unused = null;
|
|
51
|
+
drawParams = null;
|
|
52
|
+
buffer = null; // For attribute 0 on desktops, and created when unbinding buffers
|
|
53
|
+
|
|
54
|
+
bindOnUse = false;
|
|
55
|
+
|
|
56
|
+
constructor(gl: WebGLRenderingContext, props?: VertexArrayProps) {
|
|
30
57
|
// Use program's id if program is supplied but no id is supplied
|
|
31
|
-
const id =
|
|
32
|
-
// super(gl, Object.assign({},
|
|
58
|
+
const id = props?.id || (props?.program && props?.program.id);
|
|
59
|
+
// super(gl, Object.assign({}, props, {id}));
|
|
60
|
+
|
|
61
|
+
this.vertexArrayObject = new VertexArrayObject(gl);
|
|
33
62
|
|
|
34
63
|
this.id = id;
|
|
35
64
|
this.gl = gl;
|
|
36
65
|
this.configuration = null;
|
|
37
66
|
|
|
38
|
-
|
|
39
|
-
this.elements = null;
|
|
40
|
-
this.elementsAccessor = null;
|
|
41
|
-
this.values = null;
|
|
42
|
-
this.accessors = null;
|
|
43
|
-
this.unused = null;
|
|
44
|
-
this.drawParams = null;
|
|
45
|
-
this.buffer = null; // For attribute 0 on desktops, and created when unbinding buffers
|
|
46
|
-
|
|
47
|
-
this.attributes = {};
|
|
48
|
-
|
|
49
|
-
this.vertexArrayObject = new VertexArrayObject(gl);
|
|
50
|
-
|
|
51
|
-
// Issue errors when using removed methods
|
|
52
|
-
stubRemovedMethods(this, 'VertexArray', 'v6.0', DEPRECATIONS_V6);
|
|
53
|
-
|
|
54
|
-
this.initialize(opts);
|
|
67
|
+
this.initialize(props);
|
|
55
68
|
Object.seal(this);
|
|
56
69
|
}
|
|
57
70
|
|
|
58
|
-
delete() {
|
|
71
|
+
delete(): void {
|
|
59
72
|
if (this.buffer) {
|
|
60
73
|
this.buffer.delete();
|
|
61
74
|
}
|
|
@@ -63,11 +76,11 @@ export default class VertexArray {
|
|
|
63
76
|
this.vertexArrayObject.delete();
|
|
64
77
|
}
|
|
65
78
|
|
|
66
|
-
initialize(props
|
|
79
|
+
initialize(props?: VertexArrayProps) {
|
|
67
80
|
this.reset();
|
|
68
81
|
this.configuration = null;
|
|
69
82
|
this.bindOnUse = false;
|
|
70
|
-
return this.setProps(props);
|
|
83
|
+
return this.setProps(props || {});
|
|
71
84
|
}
|
|
72
85
|
|
|
73
86
|
// Resets all attributes (to default valued constants)
|
|
@@ -87,7 +100,7 @@ export default class VertexArray {
|
|
|
87
100
|
return this;
|
|
88
101
|
}
|
|
89
102
|
|
|
90
|
-
setProps(props) {
|
|
103
|
+
setProps(props: VertexArrayProps) {
|
|
91
104
|
if ('program' in props) {
|
|
92
105
|
this.configuration = props.program && props.program.configuration;
|
|
93
106
|
}
|
|
@@ -101,17 +114,18 @@ export default class VertexArray {
|
|
|
101
114
|
this.setElementBuffer(props.elements);
|
|
102
115
|
}
|
|
103
116
|
if ('bindOnUse' in props) {
|
|
117
|
+
// @ts-expect-error
|
|
104
118
|
props = props.bindOnUse;
|
|
105
119
|
}
|
|
106
120
|
return this;
|
|
107
121
|
}
|
|
108
122
|
|
|
109
123
|
// Automatically called if buffers changed through VertexArray API
|
|
110
|
-
clearDrawParams() {
|
|
124
|
+
clearDrawParams(): void {
|
|
111
125
|
this.drawParams = null;
|
|
112
126
|
}
|
|
113
127
|
|
|
114
|
-
getDrawParams() {
|
|
128
|
+
getDrawParams(): DrawParams {
|
|
115
129
|
// Auto deduced draw parameters
|
|
116
130
|
this.drawParams = this.drawParams || this._updateDrawParams();
|
|
117
131
|
|
|
@@ -125,7 +139,7 @@ export default class VertexArray {
|
|
|
125
139
|
// {attributeName: buffer}
|
|
126
140
|
// {attributeName: [buffer, accessor]}
|
|
127
141
|
// {attributeName: (typed) array} => constant
|
|
128
|
-
setAttributes(attributes) {
|
|
142
|
+
setAttributes(attributes): this {
|
|
129
143
|
Object.assign(this.attributes, attributes);
|
|
130
144
|
this.vertexArrayObject.bind(() => {
|
|
131
145
|
for (const locationOrName in attributes) {
|
|
@@ -141,7 +155,7 @@ export default class VertexArray {
|
|
|
141
155
|
|
|
142
156
|
// Set (bind) an elements buffer, for indexed rendering.
|
|
143
157
|
// Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported
|
|
144
|
-
setElementBuffer(elementBuffer = null, accessor = {}) {
|
|
158
|
+
setElementBuffer(elementBuffer: Buffer | null = null, accessor = {}): this {
|
|
145
159
|
this.elements = elementBuffer; // Save value for debugging
|
|
146
160
|
this.elementsAccessor = accessor;
|
|
147
161
|
this.clearDrawParams();
|
|
@@ -151,10 +165,11 @@ export default class VertexArray {
|
|
|
151
165
|
}
|
|
152
166
|
|
|
153
167
|
// Set a location in vertex attributes array to a buffer
|
|
154
|
-
setBuffer(locationOrName, buffer, appAccessor = {}) {
|
|
168
|
+
setBuffer(locationOrName, buffer: Buffer, appAccessor = {}): this {
|
|
155
169
|
// Check target
|
|
156
170
|
if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {
|
|
157
|
-
|
|
171
|
+
this.setElementBuffer(buffer, appAccessor);
|
|
172
|
+
return this;
|
|
158
173
|
}
|
|
159
174
|
|
|
160
175
|
const {location, accessor} = this._resolveLocationAndAccessor(
|
|
@@ -175,13 +190,14 @@ export default class VertexArray {
|
|
|
175
190
|
}
|
|
176
191
|
|
|
177
192
|
// Set attribute to constant value (small typed array corresponding to one vertex' worth of data)
|
|
178
|
-
setConstant(locationOrName, arrayValue, appAccessor = {}) {
|
|
193
|
+
setConstant(locationOrName, arrayValue, appAccessor = {}): this {
|
|
194
|
+
// @ts-expect-error
|
|
179
195
|
const {location, accessor} = this._resolveLocationAndAccessor(
|
|
180
196
|
locationOrName,
|
|
181
197
|
arrayValue,
|
|
182
198
|
// Ensure that size isn't taken from program for multi-column
|
|
183
199
|
// attributes
|
|
184
|
-
|
|
200
|
+
{size: arrayValue.length, ...appAccessor}
|
|
185
201
|
);
|
|
186
202
|
|
|
187
203
|
if (location >= 0) {
|
|
@@ -203,7 +219,7 @@ export default class VertexArray {
|
|
|
203
219
|
|
|
204
220
|
// Workaround for Chrome TransformFeedback binding issue
|
|
205
221
|
// If required, unbind temporarily to avoid conflicting with TransformFeedback
|
|
206
|
-
unbindBuffers() {
|
|
222
|
+
unbindBuffers(): this {
|
|
207
223
|
this.vertexArrayObject.bind(() => {
|
|
208
224
|
if (this.elements) {
|
|
209
225
|
this.vertexArrayObject.setElementBuffer(null);
|
|
@@ -228,7 +244,7 @@ export default class VertexArray {
|
|
|
228
244
|
|
|
229
245
|
// Workaround for Chrome TransformFeedback binding issue
|
|
230
246
|
// If required, rebind rebind after temporary unbind
|
|
231
|
-
bindBuffers() {
|
|
247
|
+
bindBuffers(): this {
|
|
232
248
|
this.vertexArrayObject.bind(() => {
|
|
233
249
|
if (this.elements) {
|
|
234
250
|
this.setElementBuffer(this.elements);
|
|
@@ -325,7 +341,7 @@ export default class VertexArray {
|
|
|
325
341
|
return {location: -1};
|
|
326
342
|
}
|
|
327
343
|
|
|
328
|
-
_setAttribute(locationOrName, value) {
|
|
344
|
+
_setAttribute(locationOrName, value): void {
|
|
329
345
|
if (value instanceof Buffer) {
|
|
330
346
|
// Signature: {attributeName: Buffer}
|
|
331
347
|
this.setBuffer(locationOrName, value);
|
|
@@ -352,7 +368,7 @@ export default class VertexArray {
|
|
|
352
368
|
// Updates all constant attribute values (constants are used when vertex attributes are disabled).
|
|
353
369
|
// This needs to be done repeatedly since in contrast to buffer bindings,
|
|
354
370
|
// constants are stored on the WebGL context, not the VAO
|
|
355
|
-
_setConstantAttributes(vertexCount, instanceCount) {
|
|
371
|
+
_setConstantAttributes(vertexCount, instanceCount): void {
|
|
356
372
|
// TODO - use accessor to determine what length to use
|
|
357
373
|
const elementCount = Math.max(vertexCount | 0, instanceCount | 0);
|
|
358
374
|
let constant = this.values[0];
|
|
@@ -368,7 +384,7 @@ export default class VertexArray {
|
|
|
368
384
|
}
|
|
369
385
|
}
|
|
370
386
|
|
|
371
|
-
_setConstantAttributeZero(constant, elementCount) {
|
|
387
|
+
_setConstantAttributeZero(constant, elementCount: number): void {
|
|
372
388
|
if (VertexArrayObject.isSupported(this.gl, {constantAttributeZero: true})) {
|
|
373
389
|
this._setConstantAttribute(0, constant);
|
|
374
390
|
return;
|
|
@@ -381,13 +397,16 @@ export default class VertexArray {
|
|
|
381
397
|
this.vertexArrayObject.setBuffer(0, buffer, this.accessors[0]);
|
|
382
398
|
}
|
|
383
399
|
|
|
384
|
-
_setConstantAttribute(location, constant) {
|
|
400
|
+
_setConstantAttribute(location, constant): void {
|
|
385
401
|
VertexArrayObject.setConstant(this.gl, location, constant);
|
|
386
402
|
}
|
|
387
403
|
|
|
388
404
|
// Walks the buffers and updates draw parameters
|
|
389
|
-
_updateDrawParams() {
|
|
405
|
+
_updateDrawParams(): DrawParams {
|
|
390
406
|
const drawParams = {
|
|
407
|
+
elementCount: 0,
|
|
408
|
+
indexType: Uint16Array,
|
|
409
|
+
indexOffset: 0,
|
|
391
410
|
isIndexed: false,
|
|
392
411
|
isInstanced: false,
|
|
393
412
|
indexCount: Infinity,
|
|
@@ -422,7 +441,7 @@ export default class VertexArray {
|
|
|
422
441
|
return drawParams;
|
|
423
442
|
}
|
|
424
443
|
|
|
425
|
-
_updateDrawParamsForLocation(drawParams, location) {
|
|
444
|
+
_updateDrawParamsForLocation(drawParams: DrawParams, location): void {
|
|
426
445
|
const value = this.values[location];
|
|
427
446
|
const accessor = this.accessors[location];
|
|
428
447
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import {log, assert, checkProps} from '@luma.gl/api';
|
|
2
|
+
import {Buffer, BufferProps} from '@luma.gl/api';
|
|
1
3
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import
|
|
4
|
+
import {getWebGL2Context, assertWebGL2Context} from '../context/context/webgl-checks';
|
|
5
|
+
import {AccessorObject} from '../types';
|
|
3
6
|
import Accessor from './accessor';
|
|
4
7
|
import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from '../webgl-utils/typed-array-utils';
|
|
5
|
-
import
|
|
6
|
-
import {assert} from '../utils/assert';
|
|
7
|
-
import {checkProps} from '../utils/check-props';
|
|
8
|
+
import WebGLDevice from '../device/webgl-device';
|
|
8
9
|
|
|
9
10
|
const DEBUG_DATA_LENGTH = 10;
|
|
10
11
|
|
|
@@ -37,16 +38,58 @@ const PROP_CHECKS_SET_PROPS = {
|
|
|
37
38
|
removedProps: DEPRECATED_PROPS
|
|
38
39
|
};
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
/** WebGL Buffer interface */
|
|
42
|
+
export type WebGLBufferProps = BufferProps & {
|
|
43
|
+
handle?: WebGLBuffer;
|
|
44
|
+
data?: any; // ArrayBufferView;
|
|
45
|
+
byteLength?: number;
|
|
46
|
+
target?: number;
|
|
47
|
+
usage?: number;
|
|
48
|
+
accessor?: AccessorObject;
|
|
49
|
+
|
|
50
|
+
/** @deprecated */
|
|
51
|
+
index?: number;
|
|
52
|
+
/** @deprecated */
|
|
53
|
+
offset?: number;
|
|
54
|
+
/** @deprecated */
|
|
55
|
+
size?: number;
|
|
56
|
+
/** @deprecated */
|
|
57
|
+
type?: number
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** WebGL Buffer interface */
|
|
61
|
+
export default class WEBGLBuffer extends Buffer {
|
|
62
|
+
readonly device: WebGLDevice;
|
|
63
|
+
readonly gl: WebGLRenderingContext;
|
|
64
|
+
readonly gl2: WebGL2RenderingContext | null;
|
|
65
|
+
readonly handle: WebGLBuffer;
|
|
66
|
+
|
|
67
|
+
target: number;
|
|
68
|
+
usage: number;
|
|
69
|
+
|
|
70
|
+
byteLength: number;
|
|
71
|
+
bytesUsed: number;
|
|
72
|
+
|
|
73
|
+
accessor: Accessor;
|
|
43
74
|
|
|
44
|
-
|
|
45
|
-
|
|
75
|
+
debugData;
|
|
76
|
+
|
|
77
|
+
constructor(gl: WebGLRenderingContext, props?: BufferProps);
|
|
78
|
+
constructor(gl: WebGLRenderingContext, data: ArrayBufferView | number[]);
|
|
79
|
+
constructor(gl: WebGLRenderingContext, byteLength: number);
|
|
80
|
+
|
|
81
|
+
constructor(gl: WebGLRenderingContext, props = {}) {
|
|
82
|
+
super(WebGLDevice.attach(gl), props);
|
|
83
|
+
|
|
84
|
+
this.gl = gl;
|
|
85
|
+
this.gl2 = getWebGL2Context(gl);
|
|
86
|
+
const handle = typeof props === 'object' ? (props as BufferProps).handle : undefined;
|
|
87
|
+
this.handle = handle || this.gl.createBuffer();
|
|
46
88
|
|
|
47
89
|
// In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers
|
|
48
90
|
// otherwise buffer type will lock to generic (non-element) buffer
|
|
49
91
|
// In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here
|
|
92
|
+
// @ts-expect-error
|
|
50
93
|
this.target = props.target || (this.gl.webgl2 ? GL.COPY_READ_BUFFER : GL.ARRAY_BUFFER);
|
|
51
94
|
|
|
52
95
|
this.initialize(props);
|
|
@@ -54,13 +97,23 @@ export default class Buffer extends Resource {
|
|
|
54
97
|
Object.seal(this);
|
|
55
98
|
}
|
|
56
99
|
|
|
100
|
+
destroy(): void {
|
|
101
|
+
if (this.handle) {
|
|
102
|
+
this.removeStats();
|
|
103
|
+
this.trackDeallocatedMemory();
|
|
104
|
+
this.gl.deleteBuffer(this.handle);
|
|
105
|
+
// @ts-expect-error
|
|
106
|
+
this.handle = null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
57
110
|
// returns number of elements in the buffer (assuming that the full buffer is used)
|
|
58
|
-
getElementCount(accessor = this.accessor) {
|
|
111
|
+
getElementCount(accessor = this.accessor): number {
|
|
59
112
|
return Math.round(this.byteLength / Accessor.getBytesPerElement(accessor));
|
|
60
113
|
}
|
|
61
114
|
|
|
62
115
|
// returns number of vertices in the buffer (assuming that the full buffer is used)
|
|
63
|
-
getVertexCount(accessor = this.accessor) {
|
|
116
|
+
getVertexCount(accessor = this.accessor): number {
|
|
64
117
|
return Math.round(this.byteLength / Accessor.getBytesPerVertex(accessor));
|
|
65
118
|
}
|
|
66
119
|
|
|
@@ -68,7 +121,7 @@ export default class Buffer extends Resource {
|
|
|
68
121
|
// Signature: `new Buffer(gl, {data: new Float32Array(...)})`
|
|
69
122
|
// Signature: `new Buffer(gl, new Float32Array(...))`
|
|
70
123
|
// Signature: `new Buffer(gl, 100)`
|
|
71
|
-
initialize(props = {}) {
|
|
124
|
+
initialize(props: BufferProps = {}): this {
|
|
72
125
|
// Signature `new Buffer(gl, new Float32Array(...)`
|
|
73
126
|
if (ArrayBuffer.isView(props)) {
|
|
74
127
|
props = {data: props};
|
|
@@ -76,6 +129,7 @@ export default class Buffer extends Resource {
|
|
|
76
129
|
|
|
77
130
|
// Signature: `new Buffer(gl, 100)`
|
|
78
131
|
if (Number.isFinite(props)) {
|
|
132
|
+
// @ts-expect-error
|
|
79
133
|
props = {byteLength: props};
|
|
80
134
|
}
|
|
81
135
|
|
|
@@ -98,7 +152,7 @@ export default class Buffer extends Resource {
|
|
|
98
152
|
return this;
|
|
99
153
|
}
|
|
100
154
|
|
|
101
|
-
setProps(props) {
|
|
155
|
+
setProps(props: BufferProps): this {
|
|
102
156
|
props = checkProps('Buffer', props, PROP_CHECKS_SET_PROPS);
|
|
103
157
|
|
|
104
158
|
if ('accessor' in props) {
|
|
@@ -110,7 +164,7 @@ export default class Buffer extends Resource {
|
|
|
110
164
|
|
|
111
165
|
// Optionally stores an accessor with the buffer, makes it easier to use it as an attribute later
|
|
112
166
|
// {type, size = 1, offset = 0, stride = 0, normalized = false, integer = false, divisor = 0}
|
|
113
|
-
setAccessor(accessor) {
|
|
167
|
+
setAccessor(accessor): this {
|
|
114
168
|
// NOTE: From luma.gl v7.0, Accessors have an optional `buffer `field
|
|
115
169
|
// (mainly to support "interleaving")
|
|
116
170
|
// To avoid confusion, ensure `buffer.accessor` does not have a `buffer.accessor.buffer` field:
|
|
@@ -159,11 +213,13 @@ export default class Buffer extends Resource {
|
|
|
159
213
|
|
|
160
214
|
// Create the buffer - binding it here for the first time locks the type
|
|
161
215
|
// In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
|
|
216
|
+
// @ts-expect-error
|
|
162
217
|
const target = this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;
|
|
163
218
|
this.gl.bindBuffer(target, this.handle);
|
|
164
219
|
// WebGL2: subData supports additional srcOffset and length parameters
|
|
165
220
|
if (srcOffset !== 0 || byteLength !== undefined) {
|
|
166
221
|
assertWebGL2Context(this.gl);
|
|
222
|
+
// @ts-expect-error
|
|
167
223
|
this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
|
|
168
224
|
} else {
|
|
169
225
|
this.gl.bufferSubData(target, offset, data);
|
|
@@ -178,15 +234,24 @@ export default class Buffer extends Resource {
|
|
|
178
234
|
return this;
|
|
179
235
|
}
|
|
180
236
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
237
|
+
/**
|
|
238
|
+
* Copies part of the data of another buffer into this buffer
|
|
239
|
+
* @note WEBGL2 ONLY
|
|
240
|
+
*/
|
|
241
|
+
copyData(options: {
|
|
242
|
+
sourceBuffer: any;
|
|
243
|
+
readOffset?: number;
|
|
244
|
+
writeOffset?: number;
|
|
245
|
+
size: any;
|
|
246
|
+
}): this {
|
|
247
|
+
const {sourceBuffer, readOffset = 0, writeOffset = 0, size} = options;
|
|
248
|
+
const {gl, gl2} = this;
|
|
184
249
|
assertWebGL2Context(gl);
|
|
185
250
|
|
|
186
251
|
// Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type
|
|
187
252
|
gl.bindBuffer(GL.COPY_READ_BUFFER, sourceBuffer.handle);
|
|
188
253
|
gl.bindBuffer(GL.COPY_WRITE_BUFFER, this.handle);
|
|
189
|
-
|
|
254
|
+
gl2.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
|
|
190
255
|
gl.bindBuffer(GL.COPY_READ_BUFFER, null);
|
|
191
256
|
gl.bindBuffer(GL.COPY_WRITE_BUFFER, null);
|
|
192
257
|
|
|
@@ -196,8 +261,18 @@ export default class Buffer extends Resource {
|
|
|
196
261
|
return this;
|
|
197
262
|
}
|
|
198
263
|
|
|
199
|
-
|
|
200
|
-
|
|
264
|
+
/**
|
|
265
|
+
* Reads data from buffer into an ArrayBufferView or SharedArrayBuffer.
|
|
266
|
+
* @note WEBGL2 ONLY
|
|
267
|
+
*/
|
|
268
|
+
getData(options?: {
|
|
269
|
+
dstData?: any;
|
|
270
|
+
srcByteOffset?: number;
|
|
271
|
+
dstOffset?: number;
|
|
272
|
+
length?: number;
|
|
273
|
+
}): any {
|
|
274
|
+
let {dstData = null, length = 0} = options || {};
|
|
275
|
+
const {srcByteOffset = 0, dstOffset = 0} = options || {};
|
|
201
276
|
assertWebGL2Context(this.gl);
|
|
202
277
|
|
|
203
278
|
const ArrayType = getTypedArrayFromGLType(this.accessor.type || GL.FLOAT, {clamped: false});
|
|
@@ -226,7 +301,7 @@ export default class Buffer extends Resource {
|
|
|
226
301
|
|
|
227
302
|
// Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type
|
|
228
303
|
this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);
|
|
229
|
-
this.
|
|
304
|
+
this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
|
|
230
305
|
this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
|
|
231
306
|
|
|
232
307
|
// TODO - update local `data` if offsets are 0
|
|
@@ -240,21 +315,23 @@ export default class Buffer extends Resource {
|
|
|
240
315
|
* - GL.UNIFORM_BUFFER: `offset` must be aligned to GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT.
|
|
241
316
|
* - GL.UNIFORM_BUFFER: `size` must be a minimum of GL.UNIFORM_BLOCK_SIZE_DATA.
|
|
242
317
|
*/
|
|
243
|
-
bind({
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
318
|
+
bind(options?: {target?: number; index?: any; offset?: number; size: any}): this {
|
|
319
|
+
const {
|
|
320
|
+
target = this.target, // target for the bind operation
|
|
321
|
+
// @ts-expect-error
|
|
322
|
+
index = this.accessor && this.accessor.index, // index = index of target (indexed bind point)
|
|
323
|
+
offset = 0,
|
|
324
|
+
size
|
|
325
|
+
} = options || {};
|
|
249
326
|
// NOTE: While GL.TRANSFORM_FEEDBACK_BUFFER and GL.UNIFORM_BUFFER could
|
|
250
327
|
// be used as direct binding points, they will not affect transform feedback or
|
|
251
328
|
// uniform buffer state. Instead indexed bindings need to be made.
|
|
252
329
|
if (target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER) {
|
|
253
330
|
if (size !== undefined) {
|
|
254
|
-
this.
|
|
331
|
+
this.gl2.bindBufferRange(target, index, this.handle, offset, size);
|
|
255
332
|
} else {
|
|
256
333
|
assert(offset === 0); // Make sure offset wasn't supplied
|
|
257
|
-
this.
|
|
334
|
+
this.gl2.bindBufferBase(target, index, this.handle);
|
|
258
335
|
}
|
|
259
336
|
} else {
|
|
260
337
|
this.gl.bindBuffer(target, this.handle);
|
|
@@ -263,10 +340,12 @@ export default class Buffer extends Resource {
|
|
|
263
340
|
return this;
|
|
264
341
|
}
|
|
265
342
|
|
|
266
|
-
unbind({target
|
|
343
|
+
unbind(options?: {target?: any; index?: any}): this {
|
|
344
|
+
// @ts-expect-error
|
|
345
|
+
const {target = this.target, index = this.accessor && this.accessor.index} = options || {};
|
|
267
346
|
const isIndexedBuffer = target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER;
|
|
268
347
|
if (isIndexedBuffer) {
|
|
269
|
-
this.
|
|
348
|
+
this.gl2.bindBufferBase(target, index, null);
|
|
270
349
|
} else {
|
|
271
350
|
this.gl.bindBuffer(target, null);
|
|
272
351
|
}
|
|
@@ -276,7 +355,10 @@ export default class Buffer extends Resource {
|
|
|
276
355
|
// PROTECTED METHODS (INTENDED FOR USE BY OTHER FRAMEWORK CODE ONLY)
|
|
277
356
|
|
|
278
357
|
// Returns a short initial data array
|
|
279
|
-
getDebugData() {
|
|
358
|
+
getDebugData(): {
|
|
359
|
+
data: any;
|
|
360
|
+
changed: boolean;
|
|
361
|
+
} {
|
|
280
362
|
if (!this.debugData) {
|
|
281
363
|
this.debugData = this.getData({length: Math.min(DEBUG_DATA_LENGTH, this.byteLength)});
|
|
282
364
|
return {data: this.debugData, changed: true};
|
|
@@ -291,10 +373,10 @@ export default class Buffer extends Resource {
|
|
|
291
373
|
// PRIVATE METHODS
|
|
292
374
|
|
|
293
375
|
// Allocate a new buffer and initialize to contents of typed array
|
|
294
|
-
_setData(data, offset = 0, byteLength = data.byteLength + offset) {
|
|
376
|
+
_setData(data, offset: number = 0, byteLength: number = data.byteLength + offset): this {
|
|
295
377
|
assert(ArrayBuffer.isView(data));
|
|
296
378
|
|
|
297
|
-
this.
|
|
379
|
+
this.trackDeallocatedMemory();
|
|
298
380
|
|
|
299
381
|
const target = this._getTarget();
|
|
300
382
|
this.gl.bindBuffer(target, this.handle);
|
|
@@ -304,8 +386,8 @@ export default class Buffer extends Resource {
|
|
|
304
386
|
|
|
305
387
|
this.debugData = data.slice(0, DEBUG_DATA_LENGTH);
|
|
306
388
|
this.bytesUsed = byteLength;
|
|
307
|
-
|
|
308
|
-
this.
|
|
389
|
+
this.byteLength = byteLength;
|
|
390
|
+
this.trackAllocatedMemory(byteLength);
|
|
309
391
|
|
|
310
392
|
// infer GL type from supplied typed array
|
|
311
393
|
const type = getGLTypeFromTypedArray(data);
|
|
@@ -315,15 +397,16 @@ export default class Buffer extends Resource {
|
|
|
315
397
|
}
|
|
316
398
|
|
|
317
399
|
// Allocate a GPU buffer of specified size.
|
|
318
|
-
_setByteLength(byteLength, usage = this.usage) {
|
|
400
|
+
_setByteLength(byteLength: number, usage = this.usage): this {
|
|
319
401
|
assert(byteLength >= 0);
|
|
320
402
|
|
|
321
|
-
this.
|
|
403
|
+
this.trackDeallocatedMemory();
|
|
322
404
|
|
|
323
405
|
// Workaround needed for Safari (#291):
|
|
324
406
|
// gl.bufferData with size equal to 0 crashes. Instead create zero sized array.
|
|
325
407
|
let data = byteLength;
|
|
326
408
|
if (byteLength === 0) {
|
|
409
|
+
// @ts-expect-error
|
|
327
410
|
data = new Float32Array(0);
|
|
328
411
|
}
|
|
329
412
|
|
|
@@ -335,8 +418,9 @@ export default class Buffer extends Resource {
|
|
|
335
418
|
this.usage = usage;
|
|
336
419
|
this.debugData = null;
|
|
337
420
|
this.bytesUsed = byteLength;
|
|
421
|
+
this.byteLength = byteLength;
|
|
338
422
|
|
|
339
|
-
this.
|
|
423
|
+
this.trackAllocatedMemory(byteLength);
|
|
340
424
|
|
|
341
425
|
return this;
|
|
342
426
|
}
|
|
@@ -344,6 +428,7 @@ export default class Buffer extends Resource {
|
|
|
344
428
|
// Binding a buffer for the first time locks the type
|
|
345
429
|
// In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
|
|
346
430
|
_getTarget() {
|
|
431
|
+
// @ts-expect-error
|
|
347
432
|
return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;
|
|
348
433
|
}
|
|
349
434
|
|
|
@@ -363,16 +448,7 @@ export default class Buffer extends Resource {
|
|
|
363
448
|
|
|
364
449
|
// RESOURCE METHODS
|
|
365
450
|
|
|
366
|
-
|
|
367
|
-
return this.gl.createBuffer();
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
_deleteHandle() {
|
|
371
|
-
this.gl.deleteBuffer(this.handle);
|
|
372
|
-
this._trackDeallocatedMemory();
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
_getParameter(pname) {
|
|
451
|
+
getParameter(pname) {
|
|
376
452
|
this.gl.bindBuffer(this.target, this.handle);
|
|
377
453
|
const value = this.gl.getBufferParameter(this.target, pname);
|
|
378
454
|
this.gl.bindBuffer(this.target, null);
|
|
@@ -380,8 +456,8 @@ export default class Buffer extends Resource {
|
|
|
380
456
|
}
|
|
381
457
|
|
|
382
458
|
// DEPRECATIONS - v7.0
|
|
459
|
+
/** @deprecated Use Buffer.accessor.type */
|
|
383
460
|
get type() {
|
|
384
|
-
log.deprecated('Buffer.type', 'Buffer.accessor.type')();
|
|
385
461
|
return this.accessor.type;
|
|
386
462
|
}
|
|
387
463
|
|