@luma.gl/webgl 8.5.10 → 8.6.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +8 -1
- package/dist/_deprecated/context-api.d.ts +85 -0
- package/dist/_deprecated/context-api.d.ts.map +1 -0
- package/dist/_deprecated/context-api.js +70 -0
- package/dist/_deprecated/context-api.js.map +1 -0
- package/dist/_deprecated/features.d.ts +27 -0
- package/dist/_deprecated/features.d.ts.map +1 -0
- package/{src/features/webgl-features-table.js → dist/_deprecated/features.js} +66 -59
- package/dist/_deprecated/features.js.map +1 -0
- package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
- package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/set-device-parameters.js +124 -0
- package/dist/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
- package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
- package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.d.ts +12 -0
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
- package/dist/adapter/device-helpers/device-features.js +123 -0
- package/dist/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
- package/dist/adapter/device-helpers/device-limits.js +90 -0
- package/dist/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
- package/dist/adapter/device-helpers/get-device-info.js +44 -0
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
- package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +111 -0
- package/dist/adapter/webgl-device.d.ts.map +1 -0
- package/dist/adapter/webgl-device.js +208 -0
- package/dist/adapter/webgl-device.js.map +1 -0
- package/dist/adapter/webgl-shader.d.ts +18 -0
- package/dist/adapter/webgl-shader.d.ts.map +1 -0
- package/dist/adapter/webgl-shader.js +82 -0
- package/dist/adapter/webgl-shader.js.map +1 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +5 -0
- package/dist/bundle.js.map +1 -0
- package/dist/classes/accessor.d.ts +28 -0
- package/dist/classes/accessor.d.ts.map +1 -0
- package/dist/classes/accessor.js +112 -0
- package/dist/classes/accessor.js.map +1 -0
- package/dist/classes/accessor.ts.disabled +159 -0
- package/dist/classes/clear.d.ts +17 -0
- package/dist/classes/clear.d.ts.map +1 -0
- package/{src → dist}/classes/clear.js +29 -23
- package/dist/classes/clear.js.map +1 -0
- package/dist/classes/copy-and-blit.d.ts +86 -0
- package/dist/classes/copy-and-blit.d.ts.map +1 -0
- package/dist/classes/copy-and-blit.js +338 -0
- package/dist/classes/copy-and-blit.js.map +1 -0
- package/dist/classes/framebuffer.d.ts +139 -0
- package/dist/classes/framebuffer.d.ts.map +1 -0
- package/dist/classes/framebuffer.js +656 -0
- package/dist/classes/framebuffer.js.map +1 -0
- package/dist/classes/program-configuration.d.ts +24 -0
- package/dist/classes/program-configuration.d.ts.map +1 -0
- package/dist/classes/program-configuration.js +73 -0
- package/dist/classes/program-configuration.js.map +1 -0
- package/dist/classes/program.d.ts +66 -0
- package/dist/classes/program.d.ts.map +1 -0
- package/dist/classes/program.js +379 -0
- package/dist/classes/program.js.map +1 -0
- package/dist/classes/query.d.ts +27 -0
- package/dist/classes/query.d.ts.map +1 -0
- package/dist/classes/query.js +145 -0
- package/dist/classes/query.js.map +1 -0
- package/dist/classes/renderbuffer-formats.d.ts +16 -0
- package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
- package/dist/classes/renderbuffer-formats.js +185 -0
- package/dist/classes/renderbuffer-formats.js.map +1 -0
- package/dist/classes/renderbuffer.d.ts +60 -0
- package/dist/classes/renderbuffer.d.ts.map +1 -0
- package/dist/classes/renderbuffer.js +128 -0
- package/dist/classes/renderbuffer.js.map +1 -0
- package/dist/classes/shader.d.ts +42 -0
- package/dist/classes/shader.d.ts.map +1 -0
- package/dist/classes/shader.js +118 -0
- package/dist/classes/shader.js.map +1 -0
- package/dist/classes/texture-2d.d.ts +9 -0
- package/dist/classes/texture-2d.d.ts.map +1 -0
- package/dist/classes/texture-2d.js +36 -0
- package/dist/classes/texture-2d.js.map +1 -0
- package/dist/classes/texture-3d.d.ts +29 -0
- package/dist/classes/texture-3d.d.ts.map +1 -0
- package/dist/classes/texture-3d.js +76 -0
- package/dist/classes/texture-3d.js.map +1 -0
- package/dist/classes/texture-cube.d.ts +28 -0
- package/dist/classes/texture-cube.d.ts.map +1 -0
- package/dist/classes/texture-cube.js +130 -0
- package/dist/classes/texture-cube.js.map +1 -0
- package/dist/classes/texture-formats.d.ts +37 -0
- package/dist/classes/texture-formats.d.ts.map +1 -0
- package/dist/classes/texture-formats.js +98 -0
- package/dist/classes/texture-formats.js.map +1 -0
- package/dist/classes/texture.d.ts +123 -0
- package/dist/classes/texture.d.ts.map +1 -0
- package/dist/classes/texture.js +786 -0
- package/dist/classes/texture.js.map +1 -0
- package/dist/classes/transform-feedback.d.ts +33 -0
- package/dist/classes/transform-feedback.d.ts.map +1 -0
- package/dist/classes/transform-feedback.js +198 -0
- package/dist/classes/transform-feedback.js.map +1 -0
- package/dist/classes/uniform-buffer-layout.d.ts +17 -0
- package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
- package/dist/classes/uniform-buffer-layout.js +104 -0
- package/dist/classes/uniform-buffer-layout.js.map +1 -0
- package/dist/classes/uniforms.d.ts +37 -0
- package/dist/classes/uniforms.d.ts.map +1 -0
- package/dist/classes/uniforms.js +250 -0
- package/dist/classes/uniforms.js.map +1 -0
- package/dist/classes/vertex-array-object.d.ts +76 -0
- package/dist/classes/vertex-array-object.d.ts.map +1 -0
- package/dist/classes/vertex-array-object.js +261 -0
- package/dist/classes/vertex-array-object.js.map +1 -0
- package/dist/classes/vertex-array.d.ts +75 -0
- package/dist/classes/vertex-array.d.ts.map +1 -0
- package/dist/classes/vertex-array.js +408 -0
- package/dist/classes/vertex-array.js.map +1 -0
- package/dist/classes/webgl-buffer.d.ts +100 -0
- package/dist/classes/webgl-buffer.d.ts.map +1 -0
- package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
- package/dist/classes/webgl-buffer.js.map +1 -0
- package/dist/classes/webgl-resource.d.ts +56 -0
- package/dist/classes/webgl-resource.d.ts.map +1 -0
- package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
- package/dist/classes/webgl-resource.js.map +1 -0
- package/dist/context/context/context-state.d.ts +18 -0
- package/dist/context/context/context-state.d.ts.map +1 -0
- package/dist/context/context/context-state.js +26 -0
- package/dist/context/context/context-state.js.map +1 -0
- package/dist/context/context/create-context.d.ts +40 -0
- package/dist/context/context/create-context.d.ts.map +1 -0
- package/dist/context/context/create-context.js +37 -0
- package/dist/context/context/create-context.js.map +1 -0
- package/dist/context/context/device-pixels.d.ts +25 -0
- package/dist/context/context/device-pixels.d.ts.map +1 -0
- package/dist/context/context/device-pixels.js +98 -0
- package/dist/context/context/device-pixels.js.map +1 -0
- package/dist/context/context/get-canvas.d.ts +13 -0
- package/dist/context/context/get-canvas.d.ts.map +1 -0
- package/dist/context/context/get-canvas.js +31 -0
- package/dist/context/context/get-canvas.js.map +1 -0
- package/dist/context/context/resize-context.d.ts +20 -0
- package/dist/context/context/resize-context.d.ts.map +1 -0
- package/dist/context/context/resize-context.js +15 -0
- package/dist/context/context/resize-context.js.map +1 -0
- package/dist/context/context/webgl-checks.d.ts +13 -0
- package/dist/context/context/webgl-checks.d.ts.map +1 -0
- package/dist/context/context/webgl-checks.js +34 -0
- package/dist/context/context/webgl-checks.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
- package/dist/context/parameters/unified-parameter-api.js +65 -0
- package/dist/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.js +445 -0
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/context/parameters/webgl-parameters.d.ts +144 -0
- package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
- package/dist/context/parameters/webgl-parameters.js +2 -0
- package/dist/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/context/polyfill/polyfill-context.d.ts +5 -0
- package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-context.js +91 -0
- package/dist/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/context/polyfill/polyfill-table.d.ts +48 -0
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-table.js +160 -0
- package/dist/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.js +21 -0
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/context/state-tracker/track-context-state.d.ts +22 -0
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
- package/dist/context/state-tracker/track-context-state.js +169 -0
- package/dist/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/context/state-tracker/with-parameters.d.ts +13 -0
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
- package/dist/context/state-tracker/with-parameters.js +36 -0
- package/dist/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/debug/debug-program-configuration.d.ts +2 -0
- package/dist/debug/debug-program-configuration.d.ts.map +1 -0
- package/dist/debug/debug-program-configuration.js +40 -0
- package/dist/debug/debug-program-configuration.js.map +1 -0
- package/dist/debug/debug-uniforms.d.ts +12 -0
- package/dist/debug/debug-uniforms.d.ts.map +1 -0
- package/dist/debug/debug-uniforms.js +108 -0
- package/dist/debug/debug-uniforms.js.map +1 -0
- package/dist/debug/debug-vertex-array.d.ts +5 -0
- package/dist/debug/debug-vertex-array.d.ts.map +1 -0
- package/dist/debug/debug-vertex-array.js +118 -0
- package/dist/debug/debug-vertex-array.js.map +1 -0
- package/dist/es5/_deprecated/context-api.js +110 -0
- package/dist/es5/_deprecated/context-api.js.map +1 -0
- package/dist/es5/_deprecated/features.js +118 -0
- package/dist/es5/_deprecated/features.js.map +1 -0
- package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
- package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
- package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-features.js +152 -0
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/es5/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +279 -0
- package/dist/es5/adapter/webgl-device.js.map +1 -0
- package/dist/es5/adapter/webgl-shader.js +155 -0
- package/dist/es5/adapter/webgl-shader.js.map +1 -0
- package/dist/es5/bundle.js +2 -4
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classes/accessor.js +36 -38
- package/dist/es5/classes/accessor.js.map +1 -1
- package/dist/es5/classes/accessor.ts.disabled +159 -0
- package/dist/es5/classes/clear.js +17 -11
- package/dist/es5/classes/clear.js.map +1 -1
- package/dist/es5/classes/copy-and-blit.js +121 -117
- package/dist/es5/classes/copy-and-blit.js.map +1 -1
- package/dist/es5/classes/framebuffer.js +435 -423
- package/dist/es5/classes/framebuffer.js.map +1 -1
- package/dist/es5/classes/program-configuration.js +44 -108
- package/dist/es5/classes/program-configuration.js.map +1 -1
- package/dist/es5/classes/program.js +108 -85
- package/dist/es5/classes/program.js.map +1 -1
- package/dist/es5/classes/query.js +58 -59
- package/dist/es5/classes/query.js.map +1 -1
- package/dist/es5/classes/renderbuffer-formats.js +79 -52
- package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
- package/dist/es5/classes/renderbuffer.js +129 -100
- package/dist/es5/classes/renderbuffer.js.map +1 -1
- package/dist/es5/classes/shader.js +70 -96
- package/dist/es5/classes/shader.js.map +1 -1
- package/dist/es5/classes/texture-2d.js +25 -21
- package/dist/es5/classes/texture-2d.js.map +1 -1
- package/dist/es5/classes/texture-3d.js +49 -29
- package/dist/es5/classes/texture-3d.js.map +1 -1
- package/dist/es5/classes/texture-cube.js +45 -36
- package/dist/es5/classes/texture-cube.js.map +1 -1
- package/dist/es5/classes/texture-formats.js +35 -33
- package/dist/es5/classes/texture-formats.js.map +1 -1
- package/dist/es5/classes/texture.js +213 -101
- package/dist/es5/classes/texture.js.map +1 -1
- package/dist/es5/classes/transform-feedback.js +37 -34
- package/dist/es5/classes/transform-feedback.js.map +1 -1
- package/dist/es5/classes/uniform-buffer-layout.js +4 -4
- package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/es5/classes/uniforms.js +73 -73
- package/dist/es5/classes/uniforms.js.map +1 -1
- package/dist/es5/classes/vertex-array-object.js +106 -149
- package/dist/es5/classes/vertex-array-object.js.map +1 -1
- package/dist/es5/classes/vertex-array.js +52 -43
- package/dist/es5/classes/vertex-array.js.map +1 -1
- package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
- package/dist/es5/classes/webgl-buffer.js.map +1 -0
- package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
- package/dist/es5/classes/webgl-resource.js.map +1 -0
- package/dist/es5/context/context/context-state.js +31 -0
- package/dist/es5/context/context/context-state.js.map +1 -0
- package/dist/es5/context/context/create-context.js +57 -0
- package/dist/es5/context/context/create-context.js.map +1 -0
- package/dist/es5/context/context/device-pixels.js +115 -0
- package/dist/es5/context/context/device-pixels.js.map +1 -0
- package/dist/es5/context/context/get-canvas.js +40 -0
- package/dist/es5/context/context/get-canvas.js.map +1 -0
- package/dist/es5/context/context/resize-context.js +23 -0
- package/dist/es5/context/context/resize-context.js.map +1 -0
- package/dist/es5/context/context/webgl-checks.js +54 -0
- package/dist/es5/context/context/webgl-checks.js.map +1 -0
- package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/es5/context/parameters/webgl-parameters.js +6 -0
- package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-context.js +134 -0
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-table.js +166 -0
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/es5/context/state-tracker/track-context-state.js +196 -0
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/es5/context/state-tracker/with-parameters.js +44 -0
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/es5/debug/debug-program-configuration.js +1 -1
- package/dist/es5/debug/debug-program-configuration.js.map +1 -1
- package/dist/es5/debug/debug-uniforms.js +18 -20
- package/dist/es5/debug/debug-uniforms.js.map +1 -1
- package/dist/es5/debug/debug-vertex-array.js +16 -16
- package/dist/es5/debug/debug-vertex-array.js.map +1 -1
- package/dist/es5/helpers/get-program-bindings.js +274 -0
- package/dist/es5/helpers/get-program-bindings.js.map +1 -0
- package/dist/es5/helpers/program-bindings.js +2 -0
- package/dist/es5/helpers/program-bindings.js.map +1 -0
- package/dist/es5/index.js +229 -99
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +21 -41
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/types/accessor.d.ts +29 -0
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/webgl-utils/attribute-utils.js +4 -4
- package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
- package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/es5/webgl-utils/format-utils.js +21 -17
- package/dist/es5/webgl-utils/format-utils.js.map +1 -1
- package/dist/es5/webgl-utils/get-error.js.map +1 -1
- package/dist/es5/webgl-utils/index.js +74 -0
- package/dist/es5/webgl-utils/index.js.map +1 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
- package/dist/es5/webgl-utils/texture-utils.js +6 -4
- package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
- package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
- package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/esm/_deprecated/context-api.js +70 -0
- package/dist/esm/_deprecated/context-api.js.map +1 -0
- package/dist/esm/{features/webgl-features-table.js → _deprecated/features.js} +66 -26
- package/dist/esm/_deprecated/features.js.map +1 -0
- package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
- package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
- package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-features.js +123 -0
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/esm/adapter/device-helpers/is-old-ie.js +8 -0
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +208 -0
- package/dist/esm/adapter/webgl-device.js.map +1 -0
- package/dist/esm/adapter/webgl-shader.js +82 -0
- package/dist/esm/adapter/webgl-shader.js.map +1 -0
- package/dist/esm/bundle.js +2 -4
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classes/accessor.js +6 -6
- package/dist/esm/classes/accessor.js.map +1 -1
- package/dist/esm/classes/accessor.ts.disabled +159 -0
- package/dist/esm/classes/clear.js +19 -14
- package/dist/esm/classes/clear.js.map +1 -1
- package/dist/esm/classes/copy-and-blit.js +67 -64
- package/dist/esm/classes/copy-and-blit.js.map +1 -1
- package/dist/esm/classes/framebuffer.js +341 -313
- package/dist/esm/classes/framebuffer.js.map +1 -1
- package/dist/esm/classes/program-configuration.js +25 -104
- package/dist/esm/classes/program-configuration.js.map +1 -1
- package/dist/esm/classes/program.js +98 -62
- package/dist/esm/classes/program.js.map +1 -1
- package/dist/esm/classes/query.js +20 -16
- package/dist/esm/classes/query.js.map +1 -1
- package/dist/esm/classes/renderbuffer-formats.js +72 -49
- package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
- package/dist/esm/classes/renderbuffer.js +86 -73
- package/dist/esm/classes/renderbuffer.js.map +1 -1
- package/dist/esm/classes/shader.js +47 -67
- package/dist/esm/classes/shader.js.map +1 -1
- package/dist/esm/classes/texture-2d.js +13 -9
- package/dist/esm/classes/texture-2d.js.map +1 -1
- package/dist/esm/classes/texture-3d.js +28 -16
- package/dist/esm/classes/texture-3d.js.map +1 -1
- package/dist/esm/classes/texture-cube.js +45 -31
- package/dist/esm/classes/texture-cube.js.map +1 -1
- package/dist/esm/classes/texture-formats.js +52 -51
- package/dist/esm/classes/texture-formats.js.map +1 -1
- package/dist/esm/classes/texture.js +174 -58
- package/dist/esm/classes/texture.js.map +1 -1
- package/dist/esm/classes/transform-feedback.js +26 -14
- package/dist/esm/classes/transform-feedback.js.map +1 -1
- package/dist/esm/classes/uniform-buffer-layout.js +1 -1
- package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/esm/classes/uniforms.js +111 -113
- package/dist/esm/classes/uniforms.js.map +1 -1
- package/dist/esm/classes/vertex-array-object.js +52 -89
- package/dist/esm/classes/vertex-array-object.js.map +1 -1
- package/dist/esm/classes/vertex-array.js +52 -31
- package/dist/esm/classes/vertex-array.js.map +1 -1
- package/dist/esm/classes/webgl-buffer.js +382 -0
- package/dist/esm/classes/webgl-buffer.js.map +1 -0
- package/dist/esm/classes/webgl-resource.js +212 -0
- package/dist/esm/classes/webgl-resource.js.map +1 -0
- package/dist/esm/context/context/context-state.js +26 -0
- package/dist/esm/context/context/context-state.js.map +1 -0
- package/dist/esm/context/context/create-context.js +37 -0
- package/dist/esm/context/context/create-context.js.map +1 -0
- package/dist/esm/context/context/device-pixels.js +98 -0
- package/dist/esm/context/context/device-pixels.js.map +1 -0
- package/dist/esm/context/context/get-canvas.js +31 -0
- package/dist/esm/context/context/get-canvas.js.map +1 -0
- package/dist/esm/context/context/resize-context.js +15 -0
- package/dist/esm/context/context/resize-context.js.map +1 -0
- package/dist/esm/context/context/webgl-checks.js +34 -0
- package/dist/esm/context/context/webgl-checks.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/esm/context/parameters/webgl-parameters.js +2 -0
- package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-context.js +91 -0
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-table.js +160 -0
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/esm/context/state-tracker/track-context-state.js +169 -0
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/esm/context/state-tracker/with-parameters.js +36 -0
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/esm/debug/debug-program-configuration.js +4 -4
- package/dist/esm/debug/debug-program-configuration.js.map +1 -1
- package/dist/esm/debug/debug-uniforms.js +9 -9
- package/dist/esm/debug/debug-uniforms.js.map +1 -1
- package/dist/esm/debug/debug-vertex-array.js +18 -16
- package/dist/esm/debug/debug-vertex-array.js.map +1 -1
- package/dist/esm/helpers/get-program-bindings.js +228 -0
- package/dist/esm/helpers/get-program-bindings.js.map +1 -0
- package/dist/esm/helpers/program-bindings.js +2 -0
- package/dist/esm/helpers/program-bindings.js.map +1 -0
- package/dist/esm/index.js +19 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +12 -28
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/accessor.d.ts +29 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/webgl-utils/attribute-utils.js +1 -1
- package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
- package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/esm/webgl-utils/format-utils.js +16 -15
- package/dist/esm/webgl-utils/format-utils.js.map +1 -1
- package/dist/esm/webgl-utils/get-error.js +1 -1
- package/dist/esm/webgl-utils/get-error.js.map +1 -1
- package/dist/esm/webgl-utils/index.js +5 -0
- package/dist/esm/webgl-utils/index.js.map +1 -0
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
- package/dist/esm/webgl-utils/texture-utils.js +4 -3
- package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
- package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
- package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/helpers/get-program-bindings.d.ts +8 -0
- package/dist/helpers/get-program-bindings.d.ts.map +1 -0
- package/dist/helpers/get-program-bindings.js +228 -0
- package/dist/helpers/get-program-bindings.js.map +1 -0
- package/dist/helpers/program-bindings.d.ts +41 -0
- package/dist/helpers/program-bindings.d.ts.map +1 -0
- package/dist/helpers/program-bindings.js +2 -0
- package/dist/helpers/program-bindings.js.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +5 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +33 -0
- package/dist/init.js.map +1 -0
- package/dist/types/accessor.d.ts +29 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/webgl-utils/attribute-utils.d.ts +18 -0
- package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
- package/dist/webgl-utils/attribute-utils.js +182 -0
- package/dist/webgl-utils/attribute-utils.js.map +1 -0
- package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
- package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
- package/dist/webgl-utils/constants-to-keys.js +41 -0
- package/dist/webgl-utils/constants-to-keys.js.map +1 -0
- package/dist/webgl-utils/format-utils.d.ts +3 -0
- package/dist/webgl-utils/format-utils.d.ts.map +1 -0
- package/dist/webgl-utils/format-utils.js +45 -0
- package/dist/webgl-utils/format-utils.js.map +1 -0
- package/dist/webgl-utils/get-error.d.ts +3 -0
- package/dist/webgl-utils/get-error.d.ts.map +1 -0
- package/dist/webgl-utils/get-error.js +41 -0
- package/dist/webgl-utils/get-error.js.map +1 -0
- package/dist/webgl-utils/index.d.ts +5 -0
- package/dist/webgl-utils/index.d.ts.map +1 -0
- package/dist/webgl-utils/index.js +5 -0
- package/dist/webgl-utils/index.js.map +1 -0
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
- package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
- package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
- package/dist/webgl-utils/request-animation-frame.js +7 -0
- package/dist/webgl-utils/request-animation-frame.js.map +1 -0
- package/dist/webgl-utils/texture-utils.d.ts +15 -0
- package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
- package/dist/webgl-utils/texture-utils.js +48 -0
- package/dist/webgl-utils/texture-utils.js.map +1 -0
- package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
- package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
- package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
- package/dist/webgl-utils/typed-array-utils.js.map +1 -0
- package/package.json +9 -9
- package/src/.DS_Store +0 -0
- package/src/_deprecated/context-api.ts +140 -0
- package/src/_deprecated/features.ts +159 -0
- package/src/adapter/converters/set-device-parameters.ts +182 -0
- package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
- package/src/adapter/device-helpers/device-features.ts +227 -0
- package/src/adapter/device-helpers/device-limits.ts +150 -0
- package/src/adapter/device-helpers/get-device-info.ts +49 -0
- package/src/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.ts} +3 -3
- package/src/adapter/webgl-device.ts +406 -0
- package/src/adapter/webgl-shader.ts +84 -0
- package/src/bundle.ts +4 -0
- package/src/classes/accessor.js +2 -3
- package/src/classes/accessor.ts.disabled +159 -0
- package/src/classes/clear.ts +108 -0
- package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
- package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
- package/src/classes/program-configuration.ts +77 -0
- package/src/classes/{program.js → program.ts} +111 -77
- package/src/classes/{query.js → query.ts} +31 -25
- package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
- package/src/classes/renderbuffer.ts +154 -0
- package/src/classes/shader.ts +129 -0
- package/src/classes/texture-2d.ts +35 -0
- package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
- package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
- package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
- package/src/classes/{texture.js → texture.ts} +223 -57
- package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
- package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
- package/src/classes/{uniforms.js → uniforms.ts} +123 -77
- package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +136 -114
- package/src/classes/{vertex-array.js → vertex-array.ts} +84 -59
- package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
- package/src/classes/{resource.js → webgl-resource.ts} +55 -46
- package/src/context/context/context-state.ts +39 -0
- package/src/context/context/create-context.ts +83 -0
- package/src/context/context/device-pixels.ts +147 -0
- package/src/context/context/get-canvas.ts +37 -0
- package/src/context/context/resize-context.ts +37 -0
- package/src/context/context/webgl-checks.ts +49 -0
- package/src/context/parameters/unified-parameter-api.ts +128 -0
- package/src/context/parameters/webgl-parameter-tables.ts +625 -0
- package/src/context/parameters/webgl-parameters.ts +197 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
- package/src/context/polyfill/polyfill-context.ts +98 -0
- package/src/context/polyfill/polyfill-table.ts +162 -0
- package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
- package/src/context/state-tracker/deep-array-equal.ts +20 -0
- package/src/context/state-tracker/track-context-state.ts +250 -0
- package/src/context/state-tracker/with-parameters.ts +50 -0
- package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
- package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
- package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
- package/src/helpers/get-program-bindings.ts +244 -0
- package/src/helpers/program-bindings.ts +46 -0
- package/src/index.ts +144 -0
- package/src/{init.js → init.ts} +11 -25
- package/src/types/accessor.d.ts +29 -0
- package/src/{types.d.ts → types.ts} +1 -1
- package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
- package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
- package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
- package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
- package/src/webgl-utils/index.ts +12 -0
- package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
- package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
- package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
- package/src/webgl-utils/typed-array-utils.ts +137 -0
- package/dist/dist.js +0 -13555
- package/dist/dist.min.js +0 -1
- package/dist/es5/classes/buffer.d.ts +0 -84
- package/dist/es5/classes/buffer.js.map +0 -1
- package/dist/es5/classes/clear.d.ts +0 -11
- package/dist/es5/classes/copy-and-blit.d.ts +0 -101
- package/dist/es5/classes/framebuffer.d.ts +0 -96
- package/dist/es5/classes/program-configuration.d.ts +0 -15
- package/dist/es5/classes/program.d.ts +0 -44
- package/dist/es5/classes/query.d.ts +0 -21
- package/dist/es5/classes/renderbuffer.d.ts +0 -34
- package/dist/es5/classes/resource.d.ts +0 -47
- package/dist/es5/classes/resource.js.map +0 -1
- package/dist/es5/classes/shader.d.ts +0 -29
- package/dist/es5/classes/texture-2d.d.ts +0 -11
- package/dist/es5/classes/texture-3d.d.ts +0 -29
- package/dist/es5/classes/texture-cube.d.ts +0 -23
- package/dist/es5/classes/texture.d.ts +0 -80
- package/dist/es5/classes/transform-feedback.d.ts +0 -16
- package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
- package/dist/es5/classes/uniforms.d.ts +0 -63
- package/dist/es5/classes/vertex-array-object.d.ts +0 -25
- package/dist/es5/classes/vertex-array.d.ts +0 -37
- package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
- package/dist/es5/debug/debug-uniforms.d.ts +0 -11
- package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
- package/dist/es5/features/check-glsl-extension.js +0 -41
- package/dist/es5/features/check-glsl-extension.js.map +0 -1
- package/dist/es5/features/check-old-ie.js.map +0 -1
- package/dist/es5/features/features.js +0 -99
- package/dist/es5/features/features.js.map +0 -1
- package/dist/es5/features/index.js +0 -64
- package/dist/es5/features/index.js.map +0 -1
- package/dist/es5/features/limits.js +0 -64
- package/dist/es5/features/limits.js.map +0 -1
- package/dist/es5/features/webgl-features-table.js +0 -64
- package/dist/es5/features/webgl-features-table.js.map +0 -1
- package/dist/es5/features/webgl-limits-table.js +0 -132
- package/dist/es5/features/webgl-limits-table.js.map +0 -1
- package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
- package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
- package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-name.js +0 -14
- package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
- package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-version.js +0 -22
- package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
- package/dist/es5/glsl-utils/index.js +0 -48
- package/dist/es5/glsl-utils/index.js.map +0 -1
- package/dist/es5/index.d.ts +0 -71
- package/dist/es5/init.d.ts +0 -12
- package/dist/es5/types.d.ts +0 -8
- package/dist/es5/utils/array-utils-flat.js +0 -51
- package/dist/es5/utils/array-utils-flat.js.map +0 -1
- package/dist/es5/utils/assert.d.ts +0 -1
- package/dist/es5/utils/assert.js +0 -13
- package/dist/es5/utils/assert.js.map +0 -1
- package/dist/es5/utils/check-props.js +0 -51
- package/dist/es5/utils/check-props.js.map +0 -1
- package/dist/es5/utils/format-value.js +0 -57
- package/dist/es5/utils/format-value.js.map +0 -1
- package/dist/es5/utils/is-old-ie.d.ts +0 -1
- package/dist/es5/utils/is-old-ie.js +0 -14
- package/dist/es5/utils/is-old-ie.js.map +0 -1
- package/dist/es5/utils/load-file.js +0 -50
- package/dist/es5/utils/load-file.js.map +0 -1
- package/dist/es5/utils/stub-methods.js +0 -25
- package/dist/es5/utils/stub-methods.js.map +0 -1
- package/dist/es5/utils/utils.d.ts +0 -13
- package/dist/es5/utils/utils.js +0 -36
- package/dist/es5/utils/utils.js.map +0 -1
- package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
- package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
- package/dist/esm/classes/buffer.d.ts +0 -84
- package/dist/esm/classes/buffer.js.map +0 -1
- package/dist/esm/classes/clear.d.ts +0 -11
- package/dist/esm/classes/copy-and-blit.d.ts +0 -101
- package/dist/esm/classes/framebuffer.d.ts +0 -96
- package/dist/esm/classes/program-configuration.d.ts +0 -15
- package/dist/esm/classes/program.d.ts +0 -44
- package/dist/esm/classes/query.d.ts +0 -21
- package/dist/esm/classes/renderbuffer.d.ts +0 -34
- package/dist/esm/classes/resource.d.ts +0 -47
- package/dist/esm/classes/resource.js.map +0 -1
- package/dist/esm/classes/shader.d.ts +0 -29
- package/dist/esm/classes/texture-2d.d.ts +0 -11
- package/dist/esm/classes/texture-3d.d.ts +0 -29
- package/dist/esm/classes/texture-cube.d.ts +0 -23
- package/dist/esm/classes/texture.d.ts +0 -80
- package/dist/esm/classes/transform-feedback.d.ts +0 -16
- package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
- package/dist/esm/classes/uniforms.d.ts +0 -63
- package/dist/esm/classes/vertex-array-object.d.ts +0 -25
- package/dist/esm/classes/vertex-array.d.ts +0 -37
- package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
- package/dist/esm/debug/debug-uniforms.d.ts +0 -11
- package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
- package/dist/esm/features/check-glsl-extension.js +0 -27
- package/dist/esm/features/check-glsl-extension.js.map +0 -1
- package/dist/esm/features/check-old-ie.js.map +0 -1
- package/dist/esm/features/features.js +0 -66
- package/dist/esm/features/features.js.map +0 -1
- package/dist/esm/features/index.js +0 -5
- package/dist/esm/features/index.js.map +0 -1
- package/dist/esm/features/limits.js +0 -52
- package/dist/esm/features/limits.js.map +0 -1
- package/dist/esm/features/webgl-features-table.js.map +0 -1
- package/dist/esm/features/webgl-limits-table.js +0 -160
- package/dist/esm/features/webgl-limits-table.js.map +0 -1
- package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
- package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
- package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-name.js +0 -6
- package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
- package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-version.js +0 -15
- package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
- package/dist/esm/glsl-utils/index.js +0 -5
- package/dist/esm/glsl-utils/index.js.map +0 -1
- package/dist/esm/index.d.ts +0 -71
- package/dist/esm/init.d.ts +0 -12
- package/dist/esm/types.d.ts +0 -8
- package/dist/esm/utils/array-utils-flat.js +0 -39
- package/dist/esm/utils/array-utils-flat.js.map +0 -1
- package/dist/esm/utils/assert.d.ts +0 -1
- package/dist/esm/utils/assert.js +0 -6
- package/dist/esm/utils/assert.js.map +0 -1
- package/dist/esm/utils/check-props.js +0 -38
- package/dist/esm/utils/check-props.js.map +0 -1
- package/dist/esm/utils/format-value.js +0 -50
- package/dist/esm/utils/format-value.js.map +0 -1
- package/dist/esm/utils/is-old-ie.d.ts +0 -1
- package/dist/esm/utils/is-old-ie.js +0 -5
- package/dist/esm/utils/is-old-ie.js.map +0 -1
- package/dist/esm/utils/load-file.js +0 -30
- package/dist/esm/utils/load-file.js.map +0 -1
- package/dist/esm/utils/stub-methods.js +0 -17
- package/dist/esm/utils/stub-methods.js.map +0 -1
- package/dist/esm/utils/utils.d.ts +0 -13
- package/dist/esm/utils/utils.js +0 -22
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
- package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
- package/src/bundle.js +0 -8
- package/src/classes/buffer.d.ts +0 -84
- package/src/classes/clear.d.ts +0 -11
- package/src/classes/copy-and-blit.d.ts +0 -101
- package/src/classes/framebuffer.d.ts +0 -96
- package/src/classes/program-configuration.d.ts +0 -15
- package/src/classes/program-configuration.js +0 -123
- package/src/classes/program.d.ts +0 -44
- package/src/classes/query.d.ts +0 -21
- package/src/classes/renderbuffer.d.ts +0 -34
- package/src/classes/renderbuffer.js +0 -105
- package/src/classes/resource.d.ts +0 -47
- package/src/classes/shader.d.ts +0 -29
- package/src/classes/shader.js +0 -147
- package/src/classes/texture-2d.d.ts +0 -11
- package/src/classes/texture-2d.js +0 -30
- package/src/classes/texture-3d.d.ts +0 -29
- package/src/classes/texture-cube.d.ts +0 -23
- package/src/classes/texture.d.ts +0 -80
- package/src/classes/transform-feedback.d.ts +0 -16
- package/src/classes/uniform-buffer-layout.d.ts +0 -18
- package/src/classes/uniforms.d.ts +0 -63
- package/src/classes/vertex-array-object.d.ts +0 -25
- package/src/classes/vertex-array.d.ts +0 -37
- package/src/debug/debug-program-configuration.d.ts +0 -1
- package/src/debug/debug-uniforms.d.ts +0 -11
- package/src/debug/debug-vertex-array.d.ts +0 -1
- package/src/features/check-glsl-extension.js +0 -34
- package/src/features/features.js +0 -79
- package/src/features/index.js +0 -5
- package/src/features/limits.js +0 -65
- package/src/features/webgl-limits-table.js +0 -51
- package/src/glsl-utils/format-glsl-error.d.ts +0 -16
- package/src/glsl-utils/format-glsl-error.js +0 -107
- package/src/glsl-utils/get-shader-name.js +0 -7
- package/src/glsl-utils/get-shader-type-name.js +0 -13
- package/src/glsl-utils/get-shader-version.js +0 -12
- package/src/glsl-utils/index.js +0 -8
- package/src/index.d.ts +0 -71
- package/src/index.js +0 -70
- package/src/init.d.ts +0 -12
- package/src/utils/array-utils-flat.js +0 -56
- package/src/utils/assert.d.ts +0 -1
- package/src/utils/assert.js +0 -7
- package/src/utils/check-props.js +0 -68
- package/src/utils/format-value.js +0 -37
- package/src/utils/is-old-ie.d.ts +0 -1
- package/src/utils/is-old-ie.js +0 -6
- package/src/utils/load-file.js +0 -39
- package/src/utils/stub-methods.js +0 -20
- package/src/utils/utils.d.ts +0 -13
- package/src/utils/utils.js +0 -36
- package/src/webgl-utils/request-animation-frame.d.ts +0 -3
- package/src/webgl-utils/texture-utils.d.ts +0 -11
- package/src/webgl-utils/typed-array-utils.d.ts +0 -36
|
@@ -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,31 @@
|
|
|
1
|
+
import type {NumberArray} from '@luma.gl/api';
|
|
2
|
+
import {assert, getScratchArray, fillArray} from '@luma.gl/api';
|
|
1
3
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {isWebGL2} from '
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
4
|
+
import {getBrowser} from '@probe.gl/env';
|
|
5
|
+
import WebGLDevice from '../adapter/webgl-device';
|
|
6
|
+
import {assertWebGL2Context, isWebGL2} from '../context/context/webgl-checks';
|
|
7
|
+
import Program from './program';
|
|
8
|
+
import WebGLResource, {ResourceProps} from './webgl-resource';
|
|
9
|
+
import Buffer from './webgl-buffer';
|
|
8
10
|
|
|
9
11
|
const ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
/**
|
|
14
|
+
* VertexArrayObject properties
|
|
15
|
+
* @param constantAttributeZero Attribute 0 can not be disable on most desktop OpenGL based browsers
|
|
16
|
+
* and on iOS Safari browser.
|
|
17
|
+
*/
|
|
18
|
+
export type VertexArrayObjectProps = ResourceProps & {
|
|
19
|
+
constantAttributeZero?: boolean;
|
|
20
|
+
program?: Program;
|
|
21
|
+
isDefaultArray?: boolean;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default class VertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
|
|
25
|
+
private static MAX_ATTRIBUTES: number;
|
|
26
|
+
|
|
27
|
+
static isSupported(gl: WebGLRenderingContext | WebGL2RenderingContext, options?: VertexArrayObjectProps): boolean {
|
|
28
|
+
if (options?.constantAttributeZero) {
|
|
16
29
|
return isWebGL2(gl) || getBrowser() === 'Chrome';
|
|
17
30
|
}
|
|
18
31
|
|
|
@@ -20,65 +33,69 @@ export default class VertexArrayObject extends Resource {
|
|
|
20
33
|
return true;
|
|
21
34
|
}
|
|
22
35
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Returns the global (null) vertex array object. Exists even when no extension available.
|
|
38
|
+
* @todo (Tarek): VAOs are now polyfilled. Deprecate this in 9.0
|
|
39
|
+
*/
|
|
40
|
+
static getDefaultArray(gl: WebGLRenderingContext): VertexArrayObject {
|
|
41
|
+
const webglDevice = WebGLDevice.fromContext(gl);
|
|
42
|
+
webglDevice.defaultVertexArray = webglDevice.defaultVertexArray ||
|
|
43
|
+
new VertexArrayObject(gl, {handle: null, isDefaultArray: true});
|
|
44
|
+
return webglDevice.defaultVertexArray;
|
|
31
45
|
}
|
|
32
46
|
|
|
33
|
-
|
|
47
|
+
/** Get maximum number of attributes in a vertex array */
|
|
48
|
+
static getMaxAttributes(gl: WebGLRenderingContext): number {
|
|
34
49
|
// TODO - should be cached per context
|
|
35
|
-
// @ts-ignore
|
|
36
50
|
VertexArrayObject.MAX_ATTRIBUTES =
|
|
37
|
-
// @ts-ignore
|
|
38
51
|
VertexArrayObject.MAX_ATTRIBUTES || gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
|
|
39
|
-
// @ts-ignore
|
|
40
52
|
return VertexArrayObject.MAX_ATTRIBUTES;
|
|
41
53
|
}
|
|
42
54
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Set an attribute to a constant value
|
|
57
|
+
* @param gl
|
|
58
|
+
* @param location
|
|
59
|
+
* @param array
|
|
60
|
+
*
|
|
61
|
+
* @note Constants are stored globally on the WebGL context, not the VAO
|
|
62
|
+
* so they need to be updated before every render
|
|
63
|
+
* @todo - use known type (in configuration or passed in) to allow non-typed arrays?
|
|
64
|
+
* @todo - remember/cache values to avoid setting them unnecessarily?
|
|
65
|
+
*/
|
|
66
|
+
static setConstant(gl: WebGLRenderingContext, location: any, array: any): void {
|
|
48
67
|
switch (array.constructor) {
|
|
49
68
|
case Float32Array:
|
|
50
69
|
VertexArrayObject._setConstantFloatArray(gl, location, array);
|
|
51
70
|
break;
|
|
52
71
|
case Int32Array:
|
|
53
|
-
VertexArrayObject._setConstantIntArray(gl, location, array);
|
|
72
|
+
VertexArrayObject._setConstantIntArray(assertWebGL2Context(gl), location, array);
|
|
54
73
|
break;
|
|
55
74
|
case Uint32Array:
|
|
56
|
-
VertexArrayObject._setConstantUintArray(gl, location, array);
|
|
75
|
+
VertexArrayObject._setConstantUintArray(assertWebGL2Context(gl), location, array);
|
|
57
76
|
break;
|
|
58
77
|
default:
|
|
59
78
|
assert(false);
|
|
60
79
|
}
|
|
61
80
|
}
|
|
62
81
|
|
|
82
|
+
private buffer: Buffer | null = null;
|
|
83
|
+
private bufferValue = null;
|
|
84
|
+
private isDefaultArray: boolean = false;
|
|
85
|
+
|
|
63
86
|
// Create a VertexArray
|
|
64
|
-
constructor(gl,
|
|
87
|
+
constructor(gl: WebGLRenderingContext, props?: VertexArrayObjectProps) {
|
|
65
88
|
// Use program's id if program but no id is supplied
|
|
66
|
-
|
|
67
|
-
super(gl, Object.assign({}, opts, {id}));
|
|
89
|
+
super(WebGLDevice.attach(gl), {...props, id: props?.id || (props?.program && props?.program.id)}, {} as any);
|
|
68
90
|
|
|
69
91
|
this.buffer = null;
|
|
70
92
|
this.bufferValue = null;
|
|
71
|
-
this.isDefaultArray =
|
|
72
|
-
|
|
73
|
-
/** @type {WebGL2RenderingContext} */
|
|
74
|
-
this.gl2 = gl;
|
|
75
|
-
|
|
76
|
-
this.initialize(opts);
|
|
93
|
+
this.isDefaultArray = props?.isDefaultArray || false;
|
|
77
94
|
|
|
78
95
|
Object.seal(this);
|
|
79
96
|
}
|
|
80
97
|
|
|
81
|
-
delete() {
|
|
98
|
+
delete(): this {
|
|
82
99
|
super.delete();
|
|
83
100
|
if (this.buffer) {
|
|
84
101
|
this.buffer.delete();
|
|
@@ -86,22 +103,13 @@ export default class VertexArrayObject extends Resource {
|
|
|
86
103
|
return this;
|
|
87
104
|
}
|
|
88
105
|
|
|
89
|
-
get MAX_ATTRIBUTES() {
|
|
106
|
+
get MAX_ATTRIBUTES(): number {
|
|
90
107
|
return VertexArrayObject.getMaxAttributes(this.gl);
|
|
91
108
|
}
|
|
92
109
|
|
|
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
110
|
// Set (bind) an elements buffer, for indexed rendering.
|
|
103
111
|
// Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported
|
|
104
|
-
setElementBuffer(elementBuffer = null, opts = {}) {
|
|
112
|
+
setElementBuffer(elementBuffer: Buffer = null, opts = {}) {
|
|
105
113
|
assert(!elementBuffer || elementBuffer.target === GL.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);
|
|
106
114
|
|
|
107
115
|
// The GL.ELEMENT_ARRAY_BUFFER_BINDING is stored on the VertexArrayObject...
|
|
@@ -112,8 +120,8 @@ export default class VertexArrayObject extends Resource {
|
|
|
112
120
|
return this;
|
|
113
121
|
}
|
|
114
122
|
|
|
115
|
-
|
|
116
|
-
setBuffer(location, buffer, accessor) {
|
|
123
|
+
/** Set a location in vertex attributes array to a buffer, enables the location, sets divisor */
|
|
124
|
+
setBuffer(location: number, buffer: Buffer, accessor: any): this {
|
|
117
125
|
// Check target
|
|
118
126
|
if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {
|
|
119
127
|
return this.setElementBuffer(buffer, accessor);
|
|
@@ -145,11 +153,13 @@ export default class VertexArrayObject extends Resource {
|
|
|
145
153
|
return this;
|
|
146
154
|
}
|
|
147
155
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Enabling an attribute location makes it reference the currently bound buffer
|
|
158
|
+
* Disabling an attribute location makes it reference the global constant value
|
|
159
|
+
* TODO - handle single values for size 1 attributes?
|
|
160
|
+
* TODO - convert classic arrays based on known type?
|
|
161
|
+
*/
|
|
162
|
+
enable(location: number, enable = true): this {
|
|
153
163
|
// Attribute 0 cannot be disabled in most desktop OpenGL based browsers
|
|
154
164
|
const disablingAttributeZero =
|
|
155
165
|
!enable &&
|
|
@@ -158,21 +168,22 @@ export default class VertexArrayObject extends Resource {
|
|
|
158
168
|
|
|
159
169
|
if (!disablingAttributeZero) {
|
|
160
170
|
location = Number(location);
|
|
161
|
-
this.bind(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
: this.gl.disableVertexAttribArray(location)
|
|
171
|
+
this.bind(() =>
|
|
172
|
+
enable
|
|
173
|
+
? this.gl.enableVertexAttribArray(location)
|
|
174
|
+
: this.gl.disableVertexAttribArray(location)
|
|
166
175
|
);
|
|
167
176
|
}
|
|
168
177
|
return this;
|
|
169
178
|
}
|
|
170
179
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Provide a means to create a buffer that is equivalent to a constant.
|
|
182
|
+
* NOTE: Desktop OpenGL cannot disable attribute 0.
|
|
183
|
+
* https://stackoverflow.com/questions/20305231/webgl-warning-attribute-0-is-disabled-
|
|
184
|
+
* this-has-significant-performance-penalty
|
|
185
|
+
*/
|
|
186
|
+
getConstantBuffer(elementCount: number, value): Buffer {
|
|
176
187
|
// Create buffer only when needed, and reuse it (avoids inflating buffer creation statistics)
|
|
177
188
|
|
|
178
189
|
const constantValue = this._normalizeConstantArrayValue(value);
|
|
@@ -200,18 +211,31 @@ export default class VertexArrayObject extends Resource {
|
|
|
200
211
|
return this.buffer;
|
|
201
212
|
}
|
|
202
213
|
|
|
214
|
+
// DEPRECATED
|
|
215
|
+
|
|
216
|
+
/** @deprecated this function has no effect */
|
|
217
|
+
initialize(props?: VertexArrayObjectProps): this {
|
|
218
|
+
return this.setProps(props);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/** @deprecated this function is not implemented */
|
|
222
|
+
setProps(props: VertexArrayObjectProps): this {
|
|
223
|
+
// TODO: decide which props should be supported
|
|
224
|
+
return this;
|
|
225
|
+
}
|
|
226
|
+
|
|
203
227
|
// PRIVATE
|
|
204
228
|
|
|
205
229
|
// TODO - convert Arrays based on known type? (read type from accessor, don't assume Float32Array)
|
|
206
230
|
// TODO - handle single values for size 1 attributes?
|
|
207
|
-
_normalizeConstantArrayValue(arrayValue) {
|
|
231
|
+
_normalizeConstantArrayValue(arrayValue: NumberArray) {
|
|
208
232
|
if (Array.isArray(arrayValue)) {
|
|
209
233
|
return new Float32Array(arrayValue);
|
|
210
234
|
}
|
|
211
235
|
return arrayValue;
|
|
212
236
|
}
|
|
213
237
|
|
|
214
|
-
_compareConstantArrayValues(v1, v2) {
|
|
238
|
+
_compareConstantArrayValues(v1, v2): boolean {
|
|
215
239
|
if (!v1 || !v2 || v1.length !== v2.length || v1.constructor !== v2.constructor) {
|
|
216
240
|
return false;
|
|
217
241
|
}
|
|
@@ -223,7 +247,7 @@ export default class VertexArrayObject extends Resource {
|
|
|
223
247
|
return true;
|
|
224
248
|
}
|
|
225
249
|
|
|
226
|
-
static _setConstantFloatArray(gl, location, array) {
|
|
250
|
+
static _setConstantFloatArray(gl: WebGLRenderingContext, location, array): void {
|
|
227
251
|
switch (array.length) {
|
|
228
252
|
case 1:
|
|
229
253
|
gl.vertexAttrib1fv(location, array);
|
|
@@ -242,68 +266,66 @@ export default class VertexArrayObject extends Resource {
|
|
|
242
266
|
}
|
|
243
267
|
}
|
|
244
268
|
|
|
245
|
-
static _setConstantIntArray(gl, location, array) {
|
|
269
|
+
static _setConstantIntArray(gl: WebGL2RenderingContext, location, array) {
|
|
246
270
|
assert(isWebGL2(gl));
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
271
|
+
gl.vertexAttribI4iv(location, array);
|
|
272
|
+
// switch (array.length) {
|
|
273
|
+
// case 1:
|
|
274
|
+
// gl.vertexAttribI1iv(location, array);
|
|
275
|
+
// break;
|
|
276
|
+
// case 2:
|
|
277
|
+
// gl.vertexAttribI2iv(location, array);
|
|
278
|
+
// break;
|
|
279
|
+
// case 3:
|
|
280
|
+
// gl.vertexAttribI3iv(location, array);
|
|
281
|
+
// break;
|
|
282
|
+
// case 4:
|
|
283
|
+
// break;
|
|
284
|
+
// default:
|
|
285
|
+
// assert(false);
|
|
286
|
+
// }
|
|
263
287
|
}
|
|
264
288
|
|
|
265
|
-
static _setConstantUintArray(gl, location, array) {
|
|
289
|
+
static _setConstantUintArray(gl: WebGL2RenderingContext, location, array) {
|
|
266
290
|
assert(isWebGL2(gl));
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
291
|
+
gl.vertexAttribI4uiv(location, array);
|
|
292
|
+
// switch (array.length) {
|
|
293
|
+
// case 1:
|
|
294
|
+
// gl.vertexAttribI1uiv(location, array);
|
|
295
|
+
// break;
|
|
296
|
+
// case 2:
|
|
297
|
+
// gl.vertexAttribI2uiv(location, array);
|
|
298
|
+
// break;
|
|
299
|
+
// case 3:
|
|
300
|
+
// gl.vertexAttribI3uiv(location, array);
|
|
301
|
+
// break;
|
|
302
|
+
// case 4:
|
|
303
|
+
// gl.vertexAttribI4uiv(location, array);
|
|
304
|
+
// break;
|
|
305
|
+
// default:
|
|
306
|
+
// assert(false);
|
|
307
|
+
// }
|
|
283
308
|
}
|
|
284
309
|
|
|
285
310
|
// RESOURCE IMPLEMENTATION
|
|
286
311
|
|
|
287
312
|
_createHandle() {
|
|
288
|
-
|
|
289
|
-
// @ts-ignore
|
|
290
|
-
const gl2 = this.gl;
|
|
291
|
-
return gl2.createVertexArray();
|
|
313
|
+
return this.gl2.createVertexArray();
|
|
292
314
|
}
|
|
293
315
|
|
|
294
|
-
_deleteHandle(
|
|
295
|
-
this.gl2.deleteVertexArray(handle);
|
|
296
|
-
// @ts-
|
|
316
|
+
_deleteHandle(): void {
|
|
317
|
+
this.gl2.deleteVertexArray(this.handle);
|
|
318
|
+
// @ts-expect-error
|
|
297
319
|
return [this.elements];
|
|
298
320
|
// return [this.elements, ...this.buffers];
|
|
299
321
|
}
|
|
300
322
|
|
|
301
|
-
_bindHandle(handle) {
|
|
323
|
+
_bindHandle(handle): void {
|
|
302
324
|
this.gl2.bindVertexArray(handle);
|
|
303
325
|
}
|
|
304
326
|
|
|
305
327
|
// Generic getter for information about a vertex attribute at a given position
|
|
306
|
-
_getParameter(pname, {location}) {
|
|
328
|
+
_getParameter(pname: number, {location}) {
|
|
307
329
|
assert(Number.isFinite(location));
|
|
308
330
|
return this.bind(() => {
|
|
309
331
|
switch (pname) {
|