@luma.gl/webgl 8.6.0-alpha.1 → 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/classes/accessor.js +2 -2
- package/dist/classes/accessor.js.map +1 -1
- package/dist/classes/accessor.ts.disabled +1 -1
- package/dist/classes/clear.d.ts +3 -2
- package/dist/classes/clear.d.ts.map +1 -1
- package/dist/classes/clear.js +7 -4
- package/dist/classes/clear.js.map +1 -1
- package/dist/classes/copy-and-blit.d.ts +18 -1
- package/dist/classes/copy-and-blit.d.ts.map +1 -1
- package/dist/classes/copy-and-blit.js +30 -25
- package/dist/classes/copy-and-blit.js.map +1 -1
- package/dist/classes/framebuffer.d.ts +10 -1
- package/dist/classes/framebuffer.d.ts.map +1 -1
- package/dist/classes/framebuffer.js +15 -15
- package/dist/classes/framebuffer.js.map +1 -1
- package/dist/classes/program-configuration.d.ts +2 -2
- package/dist/classes/program-configuration.d.ts.map +1 -1
- package/dist/classes/program-configuration.js +1 -1
- package/dist/classes/program-configuration.js.map +1 -1
- package/dist/classes/program.d.ts +6 -6
- package/dist/classes/program.d.ts.map +1 -1
- package/dist/classes/program.js +11 -9
- package/dist/classes/program.js.map +1 -1
- package/dist/classes/query.d.ts.map +1 -1
- package/dist/classes/query.js +6 -5
- package/dist/classes/query.js.map +1 -1
- package/dist/classes/renderbuffer-formats.js +1 -1
- package/dist/classes/renderbuffer-formats.js.map +1 -1
- package/dist/classes/renderbuffer.d.ts.map +1 -1
- package/dist/classes/renderbuffer.js +4 -3
- package/dist/classes/renderbuffer.js.map +1 -1
- package/dist/classes/texture-2d.d.ts +4 -3
- package/dist/classes/texture-2d.d.ts.map +1 -1
- package/dist/classes/texture-2d.js +5 -8
- package/dist/classes/texture-2d.js.map +1 -1
- package/dist/classes/texture-3d.d.ts +3 -2
- package/dist/classes/texture-3d.d.ts.map +1 -1
- package/dist/classes/texture-3d.js +15 -6
- package/dist/classes/texture-3d.js.map +1 -1
- package/dist/classes/texture-cube.d.ts +2 -1
- package/dist/classes/texture-cube.d.ts.map +1 -1
- package/dist/classes/texture-cube.js +3 -4
- package/dist/classes/texture-cube.js.map +1 -1
- package/dist/classes/texture-formats.js +1 -1
- package/dist/classes/texture-formats.js.map +1 -1
- package/dist/classes/texture.d.ts +14 -9
- package/dist/classes/texture.d.ts.map +1 -1
- package/dist/classes/texture.js +19 -18
- package/dist/classes/texture.js.map +1 -1
- package/dist/classes/transform-feedback.d.ts.map +1 -1
- package/dist/classes/transform-feedback.js +5 -4
- package/dist/classes/transform-feedback.js.map +1 -1
- package/dist/classes/uniform-buffer-layout.js +1 -1
- package/dist/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/classes/uniforms.d.ts +0 -1
- package/dist/classes/uniforms.d.ts.map +1 -1
- package/dist/classes/uniforms.js +1 -2
- package/dist/classes/uniforms.js.map +1 -1
- package/dist/classes/vertex-array-object.d.ts +1 -1
- package/dist/classes/vertex-array-object.d.ts.map +1 -1
- package/dist/classes/vertex-array-object.js +8 -9
- package/dist/classes/vertex-array-object.js.map +1 -1
- package/dist/classes/vertex-array.d.ts +1 -1
- package/dist/classes/vertex-array.d.ts.map +1 -1
- package/dist/classes/vertex-array.js +1 -2
- package/dist/classes/vertex-array.js.map +1 -1
- package/dist/classes/webgl-buffer.d.ts +2 -0
- package/dist/classes/webgl-buffer.d.ts.map +1 -1
- package/dist/classes/webgl-buffer.js +8 -5
- package/dist/classes/webgl-buffer.js.map +1 -1
- package/dist/classes/webgl-resource.d.ts +6 -4
- package/dist/classes/webgl-resource.d.ts.map +1 -1
- package/dist/classes/webgl-resource.js +12 -8
- package/dist/classes/webgl-resource.js.map +1 -1
- package/dist/classes/webgl-shader.d.ts +3 -1
- package/dist/classes/webgl-shader.d.ts.map +1 -1
- package/dist/classes/webgl-shader.js +7 -4
- package/dist/classes/webgl-shader.js.map +1 -1
- 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-uniforms.js +1 -1
- package/dist/debug/debug-uniforms.js.map +1 -1
- package/dist/debug/debug-vertex-array.js +2 -2
- package/dist/debug/debug-vertex-array.js.map +1 -1
- 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 +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classes/accessor.js +104 -74
- package/dist/es5/classes/accessor.js.map +1 -1
- package/dist/es5/classes/accessor.ts.disabled +1 -1
- package/dist/es5/classes/clear.js +55 -34
- package/dist/es5/classes/clear.js.map +1 -1
- package/dist/es5/classes/copy-and-blit.js +175 -156
- package/dist/es5/classes/copy-and-blit.js.map +1 -1
- package/dist/es5/classes/framebuffer.js +647 -518
- package/dist/es5/classes/framebuffer.js.map +1 -1
- package/dist/es5/classes/program-configuration.js +138 -121
- package/dist/es5/classes/program-configuration.js.map +1 -1
- package/dist/es5/classes/program.js +368 -292
- package/dist/es5/classes/program.js.map +1 -1
- package/dist/es5/classes/query.js +172 -107
- package/dist/es5/classes/query.js.map +1 -1
- package/dist/es5/classes/renderbuffer-formats.js +126 -164
- package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
- package/dist/es5/classes/renderbuffer.js +151 -98
- package/dist/es5/classes/renderbuffer.js.map +1 -1
- package/dist/es5/classes/texture-2d.js +44 -17
- package/dist/es5/classes/texture-2d.js.map +1 -1
- package/dist/es5/classes/texture-3d.js +107 -48
- package/dist/es5/classes/texture-3d.js.map +1 -1
- package/dist/es5/classes/texture-cube.js +169 -110
- package/dist/es5/classes/texture-cube.js.map +1 -1
- package/dist/es5/classes/texture-formats.js +42 -71
- package/dist/es5/classes/texture-formats.js.map +1 -1
- package/dist/es5/classes/texture.js +780 -665
- package/dist/es5/classes/texture.js.map +1 -1
- package/dist/es5/classes/transform-feedback.js +206 -150
- package/dist/es5/classes/transform-feedback.js.map +1 -1
- package/dist/es5/classes/uniform-buffer-layout.js +103 -89
- package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/es5/classes/uniforms.js +39 -80
- package/dist/es5/classes/uniforms.js.map +1 -1
- package/dist/es5/classes/vertex-array-object.js +268 -209
- package/dist/es5/classes/vertex-array-object.js.map +1 -1
- package/dist/es5/classes/vertex-array.js +348 -303
- package/dist/es5/classes/vertex-array.js.map +1 -1
- package/dist/es5/classes/webgl-buffer.js +374 -303
- package/dist/es5/classes/webgl-buffer.js.map +1 -1
- package/dist/es5/classes/webgl-resource.js +231 -161
- package/dist/es5/classes/webgl-resource.js.map +1 -1
- package/dist/es5/classes/webgl-shader.js +230 -134
- package/dist/es5/classes/webgl-shader.js.map +1 -1
- 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 +48 -20
- package/dist/es5/debug/debug-program-configuration.js.map +1 -1
- package/dist/es5/debug/debug-uniforms.js +110 -70
- package/dist/es5/debug/debug-uniforms.js.map +1 -1
- package/dist/es5/debug/debug-vertex-array.js +49 -54
- 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 +179 -189
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +18 -14
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/webgl-utils/attribute-utils.js +74 -87
- package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
- package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/es5/webgl-utils/format-utils.js +4 -4
- package/dist/es5/webgl-utils/format-utils.js.map +1 -1
- package/dist/es5/webgl-utils/get-error.js +18 -18
- package/dist/es5/webgl-utils/get-error.js.map +1 -1
- package/dist/es5/webgl-utils/index.js +10 -10
- package/dist/es5/webgl-utils/is-old-ie.js +16 -0
- package/dist/es5/webgl-utils/is-old-ie.js.map +1 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js +53 -25
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -1
- package/dist/es5/webgl-utils/texture-utils.js +32 -36
- package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
- package/dist/es5/webgl-utils/typed-array-utils.js +33 -32
- 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/classes/accessor.js +2 -2
- package/dist/esm/classes/accessor.js.map +1 -1
- package/dist/esm/classes/accessor.ts.disabled +1 -1
- package/dist/esm/classes/clear.js +7 -4
- package/dist/esm/classes/clear.js.map +1 -1
- package/dist/esm/classes/copy-and-blit.js +30 -25
- package/dist/esm/classes/copy-and-blit.js.map +1 -1
- package/dist/esm/classes/framebuffer.js +15 -15
- package/dist/esm/classes/framebuffer.js.map +1 -1
- package/dist/esm/classes/program-configuration.js +1 -1
- package/dist/esm/classes/program-configuration.js.map +1 -1
- package/dist/esm/classes/program.js +11 -9
- package/dist/esm/classes/program.js.map +1 -1
- package/dist/esm/classes/query.js +6 -5
- package/dist/esm/classes/query.js.map +1 -1
- package/dist/esm/classes/renderbuffer-formats.js +1 -1
- package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
- package/dist/esm/classes/renderbuffer.js +4 -3
- package/dist/esm/classes/renderbuffer.js.map +1 -1
- package/dist/esm/classes/texture-2d.js +5 -8
- package/dist/esm/classes/texture-2d.js.map +1 -1
- package/dist/esm/classes/texture-3d.js +15 -6
- package/dist/esm/classes/texture-3d.js.map +1 -1
- package/dist/esm/classes/texture-cube.js +3 -4
- package/dist/esm/classes/texture-cube.js.map +1 -1
- package/dist/esm/classes/texture-formats.js +1 -1
- package/dist/esm/classes/texture-formats.js.map +1 -1
- package/dist/esm/classes/texture.js +19 -18
- package/dist/esm/classes/texture.js.map +1 -1
- package/dist/esm/classes/transform-feedback.js +5 -4
- 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 +1 -2
- package/dist/esm/classes/uniforms.js.map +1 -1
- package/dist/esm/classes/vertex-array-object.js +8 -9
- package/dist/esm/classes/vertex-array-object.js.map +1 -1
- package/dist/esm/classes/vertex-array.js +1 -2
- package/dist/esm/classes/vertex-array.js.map +1 -1
- package/dist/esm/classes/webgl-buffer.js +8 -5
- package/dist/esm/classes/webgl-buffer.js.map +1 -1
- package/dist/esm/classes/webgl-resource.js +12 -8
- package/dist/esm/classes/webgl-resource.js.map +1 -1
- package/dist/esm/classes/webgl-shader.js +7 -4
- package/dist/esm/classes/webgl-shader.js.map +1 -1
- 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-uniforms.js +1 -1
- package/dist/esm/debug/debug-uniforms.js.map +1 -1
- package/dist/esm/debug/debug-vertex-array.js +2 -2
- 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 +22 -20
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +11 -8
- package/dist/esm/init.js.map +1 -1
- 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 +1 -1
- package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/esm/webgl-utils/format-utils.js +1 -1
- package/dist/esm/webgl-utils/format-utils.js.map +1 -1
- 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/texture-utils.js +2 -2
- package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
- package/dist/esm/webgl-utils/typed-array-utils.js +22 -18
- 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 +36 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -20
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +11 -8
- package/dist/init.js.map +1 -1
- package/dist/webgl-utils/attribute-utils.d.ts +1 -1
- package/dist/webgl-utils/attribute-utils.js +1 -1
- package/dist/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/webgl-utils/constants-to-keys.js +1 -1
- package/dist/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/webgl-utils/format-utils.d.ts +2 -2
- package/dist/webgl-utils/format-utils.js +1 -1
- package/dist/webgl-utils/format-utils.js.map +1 -1
- 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/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
- package/dist/webgl-utils/is-old-ie.js.map +1 -0
- package/dist/webgl-utils/texture-utils.d.ts +12 -8
- package/dist/webgl-utils/texture-utils.d.ts.map +1 -1
- package/dist/webgl-utils/texture-utils.js +2 -2
- package/dist/webgl-utils/texture-utils.js.map +1 -1
- package/dist/webgl-utils/typed-array-utils.d.ts +39 -32
- package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -1
- package/dist/webgl-utils/typed-array-utils.js +22 -18
- package/dist/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/webgl-utils/webgl-info.ts.disabled +135 -0
- package/package.json +5 -6
- package/src/.DS_Store +0 -0
- package/src/api/device2.ts +71 -0
- package/src/classes/accessor.js +2 -2
- package/src/classes/accessor.ts.disabled +1 -1
- package/src/classes/clear.ts +9 -4
- package/src/classes/copy-and-blit.ts +49 -52
- package/src/classes/framebuffer.ts +38 -35
- package/src/classes/program-configuration.ts +6 -6
- package/src/classes/program.ts +21 -15
- package/src/classes/query.ts +6 -6
- package/src/classes/renderbuffer-formats.ts +1 -1
- package/src/classes/renderbuffer.ts +5 -4
- package/src/classes/texture-2d.ts +6 -11
- package/src/classes/texture-3d.ts +16 -11
- package/src/classes/texture-cube.ts +7 -7
- package/src/classes/texture-formats.ts +1 -1
- package/src/classes/texture.ts +39 -40
- package/src/classes/transform-feedback.ts +14 -13
- package/src/classes/uniform-buffer-layout.ts +1 -1
- package/src/classes/uniforms.ts +4 -10
- package/src/classes/vertex-array-object.ts +10 -14
- package/src/classes/vertex-array.ts +2 -3
- package/src/classes/webgl-buffer.ts +7 -5
- package/src/classes/webgl-resource.ts +20 -18
- package/src/classes/webgl-shader.ts +6 -4
- 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-uniforms.ts +1 -1
- package/src/debug/debug-vertex-array.ts +2 -4
- 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 +76 -22
- package/src/init.ts +12 -9
- package/src/types.ts +1 -1
- package/src/webgl-utils/attribute-utils.ts +1 -1
- package/src/webgl-utils/constants-to-keys.ts +1 -1
- package/src/webgl-utils/format-utils.ts +1 -1
- package/src/{features/check-old-ie.ts → webgl-utils/is-old-ie.ts} +3 -3
- package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +13 -10
- package/src/webgl-utils/{typed-array-utils.js → typed-array-utils.ts} +59 -16
- package/src/webgl-utils/webgl-info.ts.disabled +135 -0
- package/dist/context/gl-context.d.ts +0 -15
- package/dist/context/gl-context.d.ts.map +0 -1
- package/dist/context/gl-context.js +0 -32
- package/dist/context/gl-context.js.map +0 -1
- package/dist/context/luma-context-data.d.ts +0 -31
- package/dist/context/luma-context-data.d.ts.map +0 -1
- package/dist/context/luma-context-data.js +0 -5
- package/dist/context/luma-context-data.js.map +0 -1
- package/dist/es5/context/gl-context.js +0 -46
- package/dist/es5/context/gl-context.js.map +0 -1
- package/dist/es5/context/luma-context-data.js +0 -12
- package/dist/es5/context/luma-context-data.js.map +0 -1
- package/dist/es5/features/check-glsl-extension.js +0 -40
- package/dist/es5/features/check-glsl-extension.js.map +0 -1
- package/dist/es5/features/check-old-ie.js +0 -15
- package/dist/es5/features/check-old-ie.js.map +0 -1
- package/dist/es5/features/features.js +0 -85
- 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 -72
- package/dist/es5/features/limits.js.map +0 -1
- package/dist/es5/features/webgl-features-table.js +0 -84
- package/dist/es5/features/webgl-features-table.js.map +0 -1
- package/dist/es5/features/webgl-limits-table.js +0 -172
- package/dist/es5/features/webgl-limits-table.js.map +0 -1
- package/dist/es5/utils/array-utils-flat.js +0 -50
- package/dist/es5/utils/array-utils-flat.js.map +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 -50
- 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/index.js +0 -68
- package/dist/es5/utils/index.js.map +0 -1
- package/dist/es5/utils/is-old-ie.js +0 -13
- package/dist/es5/utils/is-old-ie.js.map +0 -1
- package/dist/es5/utils/load-file.js +0 -43
- 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.js +0 -31
- package/dist/es5/utils/utils.js.map +0 -1
- 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/context/gl-context.js +0 -32
- package/dist/esm/context/gl-context.js.map +0 -1
- package/dist/esm/context/luma-context-data.js +0 -5
- package/dist/esm/context/luma-context-data.js.map +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 -67
- 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 -55
- 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 -161
- package/dist/esm/features/webgl-limits-table.js.map +0 -1
- 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.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/index.js +0 -7
- package/dist/esm/utils/index.js.map +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 -16
- package/dist/esm/utils/stub-methods.js.map +0 -1
- package/dist/esm/utils/utils.js +0 -20
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
- package/dist/features/check-glsl-extension.d.ts +0 -2
- package/dist/features/check-glsl-extension.d.ts.map +0 -1
- package/dist/features/check-glsl-extension.js +0 -27
- package/dist/features/check-glsl-extension.js.map +0 -1
- package/dist/features/check-old-ie.d.ts +0 -2
- package/dist/features/check-old-ie.d.ts.map +0 -1
- package/dist/features/check-old-ie.js.map +0 -1
- package/dist/features/features.d.ts +0 -6
- package/dist/features/features.d.ts.map +0 -1
- package/dist/features/features.js +0 -67
- package/dist/features/features.js.map +0 -1
- package/dist/features/index.d.ts +0 -5
- package/dist/features/index.d.ts.map +0 -1
- package/dist/features/index.js +0 -5
- package/dist/features/index.js.map +0 -1
- package/dist/features/limits.d.ts +0 -28
- package/dist/features/limits.d.ts.map +0 -1
- package/dist/features/limits.js +0 -55
- package/dist/features/limits.js.map +0 -1
- package/dist/features/webgl-features-table.d.ts +0 -30
- package/dist/features/webgl-features-table.d.ts.map +0 -1
- package/dist/features/webgl-features-table.js +0 -71
- package/dist/features/webgl-features-table.js.map +0 -1
- package/dist/features/webgl-limits-table.d.ts +0 -161
- package/dist/features/webgl-limits-table.d.ts.map +0 -1
- package/dist/features/webgl-limits-table.js +0 -161
- package/dist/features/webgl-limits-table.js.map +0 -1
- package/dist/utils/array-utils-flat.d.ts +0 -9
- package/dist/utils/array-utils-flat.d.ts.map +0 -1
- package/dist/utils/array-utils-flat.js +0 -39
- package/dist/utils/array-utils-flat.js.map +0 -1
- package/dist/utils/assert.d.ts +0 -2
- package/dist/utils/assert.d.ts.map +0 -1
- package/dist/utils/assert.js +0 -6
- package/dist/utils/assert.js.map +0 -1
- package/dist/utils/check-props.d.ts +0 -2
- package/dist/utils/check-props.d.ts.map +0 -1
- package/dist/utils/check-props.js +0 -38
- package/dist/utils/check-props.js.map +0 -1
- package/dist/utils/format-value.d.ts +0 -5
- package/dist/utils/format-value.d.ts.map +0 -1
- package/dist/utils/format-value.js +0 -50
- package/dist/utils/format-value.js.map +0 -1
- package/dist/utils/index.d.ts +0 -7
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -7
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/is-old-ie.d.ts +0 -4
- package/dist/utils/is-old-ie.d.ts.map +0 -1
- package/dist/utils/is-old-ie.js +0 -5
- package/dist/utils/is-old-ie.js.map +0 -1
- package/dist/utils/load-file.d.ts +0 -4
- package/dist/utils/load-file.d.ts.map +0 -1
- package/dist/utils/load-file.js +0 -30
- package/dist/utils/load-file.js.map +0 -1
- package/dist/utils/stub-methods.d.ts +0 -2
- package/dist/utils/stub-methods.d.ts.map +0 -1
- package/dist/utils/stub-methods.js +0 -16
- package/dist/utils/stub-methods.js.map +0 -1
- package/dist/utils/utils.d.ts +0 -15
- package/dist/utils/utils.d.ts.map +0 -1
- package/dist/utils/utils.js +0 -20
- package/dist/utils/utils.js.map +0 -1
- package/src/context/gl-context.ts +0 -31
- package/src/context/luma-context-data.ts +0 -27
- package/src/features/check-glsl-extension.ts +0 -34
- package/src/features/features.ts +0 -80
- package/src/features/index.ts +0 -5
- package/src/features/limits.ts +0 -66
- package/src/features/webgl-features-table.ts +0 -104
- package/src/features/webgl-limits-table.ts +0 -51
- package/src/utils/array-utils-flat.ts +0 -56
- package/src/utils/assert.ts +0 -7
- package/src/utils/check-props.ts +0 -68
- package/src/utils/format-value.ts +0 -37
- package/src/utils/index.ts +0 -6
- package/src/utils/is-old-ie.ts +0 -6
- package/src/utils/load-file.ts +0 -40
- package/src/utils/stub-methods.ts +0 -20
- package/src/utils/utils.ts +0 -35
- package/src/webgl-utils/texture-utils.d.ts +0 -11
- package/src/webgl-utils/typed-array-utils.d.ts +0 -36
|
@@ -1,21 +1,17 @@
|
|
|
1
|
+
import {Device, loadImage} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import {
|
|
3
|
-
import Texture, {TextureProps} from './texture';
|
|
4
|
-
import {loadImage} from '../utils/load-file';
|
|
3
|
+
import Texture, {TextureProps, TextureSupportOptions} from './texture';
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
export type Texture2DProps = TextureProps & {
|
|
8
7
|
};
|
|
9
8
|
|
|
10
9
|
export default class Texture2D extends Texture {
|
|
11
|
-
static isSupported(
|
|
12
|
-
|
|
13
|
-
return Texture.isSupported(gl, opts);
|
|
10
|
+
static isSupported(device: Device | WebGLRenderingContext, opts?: TextureSupportOptions): boolean {
|
|
11
|
+
return Texture.isSupported(device, opts);
|
|
14
12
|
}
|
|
15
13
|
|
|
16
|
-
constructor(
|
|
17
|
-
assertWebGLContext(gl);
|
|
18
|
-
|
|
14
|
+
constructor(device: Device | WebGLRenderingContext, props?: Texture2DProps | Promise<Texture2DProps>) {
|
|
19
15
|
// Signature: new Texture2D(gl, url | Promise)
|
|
20
16
|
if (props instanceof Promise || typeof props === 'string') {
|
|
21
17
|
props = {data: props};
|
|
@@ -23,11 +19,10 @@ export default class Texture2D extends Texture {
|
|
|
23
19
|
|
|
24
20
|
// Signature: new Texture2D(gl, {data: url})
|
|
25
21
|
if (typeof props?.data === 'string') {
|
|
26
|
-
// @ts-expect-error
|
|
27
22
|
props = Object.assign({}, props, {data: loadImage(props.data)});
|
|
28
23
|
}
|
|
29
24
|
|
|
30
|
-
super(
|
|
25
|
+
super(device, Object.assign({}, props, {target: GL.TEXTURE_2D}));
|
|
31
26
|
|
|
32
27
|
this.initialize(props);
|
|
33
28
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import {Device} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import
|
|
3
|
+
import WebGLDevice from '../device/webgl-device';
|
|
4
|
+
import {assertWebGL2Context} from '../context/context/webgl-checks';
|
|
5
|
+
import {withParameters} from '../context/state-tracker/with-parameters';
|
|
3
6
|
import Texture, {TextureProps} from './texture';
|
|
4
7
|
import {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';
|
|
5
8
|
import Buffer from './webgl-buffer';
|
|
@@ -26,16 +29,20 @@ type SetImageDataOptions = {
|
|
|
26
29
|
* They are accessed by 3-dimensional texture coordinates.
|
|
27
30
|
*/
|
|
28
31
|
export default class Texture3D extends Texture {
|
|
29
|
-
static isSupported(
|
|
30
|
-
|
|
32
|
+
static isSupported(device: Device | WebGLRenderingContext): boolean {
|
|
33
|
+
try {
|
|
34
|
+
const webglDevice = WebGLDevice.attach(device);
|
|
35
|
+
return webglDevice.isWebGL2;
|
|
36
|
+
} catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
31
39
|
}
|
|
32
40
|
|
|
33
|
-
constructor(
|
|
34
|
-
super(
|
|
35
|
-
assertWebGL2Context(
|
|
41
|
+
constructor(device: Device | WebGL2RenderingContext, props: Texture3DProps = {}) {
|
|
42
|
+
super(device, {...props, target: GL.TEXTURE_3D});
|
|
43
|
+
assertWebGL2Context(this.gl2);
|
|
36
44
|
props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});
|
|
37
45
|
this.initialize(props);
|
|
38
|
-
|
|
39
46
|
Object.seal(this);
|
|
40
47
|
}
|
|
41
48
|
|
|
@@ -63,7 +70,7 @@ export default class Texture3D extends Texture {
|
|
|
63
70
|
|
|
64
71
|
withParameters(this.gl, parameters, () => {
|
|
65
72
|
if (ArrayBuffer.isView(data)) {
|
|
66
|
-
// @ts-
|
|
73
|
+
// @ts-expect-error
|
|
67
74
|
this.gl.texImage3D(
|
|
68
75
|
this.target,
|
|
69
76
|
level,
|
|
@@ -80,7 +87,7 @@ export default class Texture3D extends Texture {
|
|
|
80
87
|
|
|
81
88
|
if (data instanceof Buffer) {
|
|
82
89
|
this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
|
|
83
|
-
// @ts-
|
|
90
|
+
// @ts-expect-error
|
|
84
91
|
this.gl.texImage3D(
|
|
85
92
|
this.target,
|
|
86
93
|
level,
|
|
@@ -100,9 +107,7 @@ export default class Texture3D extends Texture {
|
|
|
100
107
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
101
108
|
} else {
|
|
102
109
|
// NOTE(Tarek): Default to RGBA bytes
|
|
103
|
-
// @ts-ignore
|
|
104
110
|
const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
|
|
105
|
-
// @ts-ignore
|
|
106
111
|
const channelSize = TYPE_SIZES[this.type] || 1;
|
|
107
112
|
|
|
108
113
|
this.trackAllocatedMemory(
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import {Device, log} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import
|
|
3
|
+
import WebGLDevice from '../device/webgl-device';
|
|
4
|
+
import {assertWebGLContext} from '../context/context/webgl-checks';
|
|
3
5
|
import Texture, {TextureProps} from './texture';
|
|
4
6
|
|
|
5
7
|
export type TextureCubeProps = TextureProps & {
|
|
@@ -17,10 +19,8 @@ export default class TextureCube extends Texture {
|
|
|
17
19
|
|
|
18
20
|
props;
|
|
19
21
|
|
|
20
|
-
constructor(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
super(gl, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));
|
|
22
|
+
constructor(device: Device | WebGLRenderingContext, props?: TextureCubeProps) {
|
|
23
|
+
super(device, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));
|
|
24
24
|
|
|
25
25
|
this.initialize(props);
|
|
26
26
|
|
|
@@ -37,7 +37,7 @@ export default class TextureCube extends Texture {
|
|
|
37
37
|
// Store props for accessors
|
|
38
38
|
this.props = props;
|
|
39
39
|
|
|
40
|
-
// @ts-
|
|
40
|
+
// @ts-expect-error
|
|
41
41
|
this.setCubeMapImageData(props).then(() => {
|
|
42
42
|
this.loaded = true;
|
|
43
43
|
|
|
@@ -54,7 +54,7 @@ export default class TextureCube extends Texture {
|
|
|
54
54
|
|
|
55
55
|
subImage(options: {face: any; data: any; x?: number; y?: number; mipmapLevel?: number}): any {
|
|
56
56
|
const {face, data, x = 0, y = 0, mipmapLevel = 0} = options;
|
|
57
|
-
// @ts-
|
|
57
|
+
// @ts-expect-error TODO - is this a bug?
|
|
58
58
|
return this._subImage({target: face, data, x, y, mipmapLevel});
|
|
59
59
|
}
|
|
60
60
|
|
package/src/classes/texture.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {isWebGL2, assertWebGL2Context, getWebGL2Context, withParameters, log} from '@luma.gl/gltools';
|
|
3
|
-
import {global} from 'probe.gl/env';
|
|
4
|
-
import {getKey, getKeyValue} from '../webgl-utils';
|
|
1
|
+
import {Device, log, assert, uid, isPowerOfTwo} from '@luma.gl/api';
|
|
5
2
|
import {Texture, TextureProps} from '@luma.gl/api';
|
|
3
|
+
import GL from '@luma.gl/constants';
|
|
4
|
+
import {isWebGL2, assertWebGL2Context} from '../context/context/webgl-checks';
|
|
5
|
+
import {withParameters} from '../context/state-tracker/with-parameters';
|
|
6
|
+
import {getKey, getKeyValue} from '../webgl-utils/constants-to-keys';
|
|
7
|
+
import WebGLDevice from '../device/webgl-device';
|
|
6
8
|
import Buffer from './webgl-buffer';
|
|
7
9
|
import {
|
|
8
10
|
TEXTURE_FORMATS,
|
|
@@ -11,20 +13,21 @@ import {
|
|
|
11
13
|
isFormatSupported,
|
|
12
14
|
isLinearFilteringSupported
|
|
13
15
|
} from './texture-formats';
|
|
14
|
-
import {uid, isPowerOfTwo, assert} from '../utils';
|
|
15
16
|
|
|
16
|
-
export {TextureProps};
|
|
17
|
+
export type {TextureProps};
|
|
18
|
+
|
|
19
|
+
export type TextureSupportOptions = {
|
|
20
|
+
format?: any;
|
|
21
|
+
linearFiltering?: any;
|
|
22
|
+
};
|
|
17
23
|
|
|
18
24
|
// Supported min filters for NPOT texture.
|
|
19
25
|
const NPOT_MIN_FILTERS = [GL.LINEAR, GL.NEAREST];
|
|
20
26
|
|
|
21
27
|
// Polyfill
|
|
22
|
-
// Note (Tarek): Do we really need to support this API?
|
|
23
|
-
const WebGLBuffer = global.WebGLBuffer || function WebGLBuffer() {};
|
|
24
|
-
|
|
25
28
|
export default class WEBGLTexture extends Texture {
|
|
26
29
|
readonly MAX_ATTRIBUTES: number;
|
|
27
|
-
|
|
30
|
+
readonly device: WebGLDevice;
|
|
28
31
|
readonly gl: WebGLRenderingContext;
|
|
29
32
|
readonly gl2: WebGL2RenderingContext | null;
|
|
30
33
|
readonly handle: WebGLTexture;
|
|
@@ -39,9 +42,9 @@ export default class WEBGLTexture extends Texture {
|
|
|
39
42
|
type = undefined;
|
|
40
43
|
dataFormat = undefined;
|
|
41
44
|
border = undefined;
|
|
42
|
-
mipmaps = undefined;
|
|
45
|
+
mipmaps: boolean = undefined;
|
|
43
46
|
|
|
44
|
-
target:
|
|
47
|
+
target: GL;
|
|
45
48
|
textureUnit: number = undefined;
|
|
46
49
|
|
|
47
50
|
// Program.draw() checks the loaded flag of all textures to avoid
|
|
@@ -51,17 +54,15 @@ export default class WEBGLTexture extends Texture {
|
|
|
51
54
|
_video;
|
|
52
55
|
|
|
53
56
|
static isSupported(
|
|
54
|
-
|
|
55
|
-
options?:
|
|
56
|
-
format: any;
|
|
57
|
-
linearFiltering: any;
|
|
58
|
-
}
|
|
57
|
+
device: Device | WebGLRenderingContext,
|
|
58
|
+
options?: TextureSupportOptions
|
|
59
59
|
): boolean {
|
|
60
|
+
const webglDevice = WebGLDevice.attach(device);
|
|
60
61
|
const {format, linearFiltering} = options;
|
|
61
62
|
let supported = true;
|
|
62
63
|
if (format) {
|
|
63
|
-
supported = supported && isFormatSupported(gl, format);
|
|
64
|
-
supported = supported && (!linearFiltering || isLinearFilteringSupported(gl, format));
|
|
64
|
+
supported = supported && isFormatSupported(webglDevice.gl, format);
|
|
65
|
+
supported = supported && (!linearFiltering || isLinearFilteringSupported(webglDevice.gl, format));
|
|
65
66
|
}
|
|
66
67
|
return supported;
|
|
67
68
|
}
|
|
@@ -76,8 +77,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
76
77
|
// you must always bind it as a GL_TEXTURE_2D;
|
|
77
78
|
// attempting to bind it as GL_TEXTURE_1D will give rise to an error
|
|
78
79
|
// (while run-time).
|
|
79
|
-
constructor(
|
|
80
|
-
super(
|
|
80
|
+
constructor(device: Device | WebGLRenderingContext, props: TextureProps) {
|
|
81
|
+
super(WebGLDevice.attach(device), props);
|
|
81
82
|
|
|
82
83
|
const {
|
|
83
84
|
id = uid('texture'),
|
|
@@ -104,8 +105,9 @@ export default class WEBGLTexture extends Texture {
|
|
|
104
105
|
this.textureUnit = undefined;
|
|
105
106
|
this.mipmaps = undefined;
|
|
106
107
|
|
|
107
|
-
this.
|
|
108
|
-
this.
|
|
108
|
+
this.device = WebGLDevice.attach(device);
|
|
109
|
+
this.gl = this.device.gl;
|
|
110
|
+
this.gl2 = this.device.gl2;
|
|
109
111
|
this.handle = this.props.handle || this.gl.createTexture();
|
|
110
112
|
}
|
|
111
113
|
|
|
@@ -123,7 +125,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
123
125
|
return `Texture(${this.id},${this.width}x${this.height})`;
|
|
124
126
|
}
|
|
125
127
|
|
|
126
|
-
|
|
128
|
+
// eslint-disable-next-line max-statements
|
|
127
129
|
initialize(props: TextureProps = {}): this {
|
|
128
130
|
let data = props.data;
|
|
129
131
|
|
|
@@ -139,7 +141,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
139
141
|
return this;
|
|
140
142
|
}
|
|
141
143
|
const isVideo = typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement;
|
|
142
|
-
// @ts-
|
|
144
|
+
// @ts-expect-error
|
|
143
145
|
if (isVideo && data.readyState < HTMLVideoElement.HAVE_METADATA) {
|
|
144
146
|
this._video = null; // Declare member before the object is sealed
|
|
145
147
|
data.addEventListener('loadeddata', () => this.initialize(props));
|
|
@@ -231,7 +233,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
231
233
|
this._video = {
|
|
232
234
|
video: data,
|
|
233
235
|
parameters,
|
|
234
|
-
// @ts-
|
|
236
|
+
// @ts-expect-error
|
|
235
237
|
lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1
|
|
236
238
|
};
|
|
237
239
|
}
|
|
@@ -242,7 +244,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
242
244
|
update(): this {
|
|
243
245
|
if (this._video) {
|
|
244
246
|
const {video, parameters, lastTime} = this._video;
|
|
245
|
-
// @ts-
|
|
247
|
+
// @ts-expect-error
|
|
246
248
|
if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {
|
|
247
249
|
return;
|
|
248
250
|
}
|
|
@@ -312,7 +314,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
312
314
|
* @param {GLint} border - must be 0.
|
|
313
315
|
* @parameters - temporary settings to be applied, can be used to supply pixel store settings.
|
|
314
316
|
*/
|
|
315
|
-
|
|
317
|
+
// eslint-disable-next-line max-statements, complexity
|
|
316
318
|
setImageData(options) {
|
|
317
319
|
this.trackDeallocatedMemory('Texture');
|
|
318
320
|
|
|
@@ -366,7 +368,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
366
368
|
case 'typed-array':
|
|
367
369
|
// Looks like this assert is not necessary, as offset is ignored under WebGL1
|
|
368
370
|
// assert((offset === 0 || isWebGL2(gl)), 'offset supported in WebGL2 only');
|
|
369
|
-
// @ts-ignore
|
|
370
371
|
gl.texImage2D(
|
|
371
372
|
target,
|
|
372
373
|
level,
|
|
@@ -377,7 +378,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
377
378
|
dataFormat,
|
|
378
379
|
type,
|
|
379
380
|
data,
|
|
380
|
-
// @ts-
|
|
381
|
+
// @ts-expect-error
|
|
381
382
|
offset
|
|
382
383
|
);
|
|
383
384
|
break;
|
|
@@ -428,8 +429,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
428
429
|
|
|
429
430
|
return this;
|
|
430
431
|
}
|
|
431
|
-
|
|
432
|
-
|
|
432
|
+
|
|
433
433
|
/**
|
|
434
434
|
* Redefines an area of an existing texture
|
|
435
435
|
* Note: does not allocate storage
|
|
@@ -515,9 +515,9 @@ export default class WEBGLTexture extends Texture {
|
|
|
515
515
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
|
|
516
516
|
} else if (ArrayBuffer.isView(data)) {
|
|
517
517
|
// const gl2 = assertWebGL2Context(this.gl);
|
|
518
|
-
// @ts-
|
|
518
|
+
// @ts-expect-error last offset parameter is ignored under WebGL1
|
|
519
519
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
|
|
520
|
-
} else if (data instanceof WebGLBuffer) {
|
|
520
|
+
} else if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
|
|
521
521
|
// WebGL2 allows us to create texture directly from a WebGL buffer
|
|
522
522
|
const gl2 = assertWebGL2Context(this.gl);
|
|
523
523
|
// This texImage2D signature uses currently bound GL.PIXEL_UNPACK_BUFFER
|
|
@@ -535,8 +535,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
535
535
|
|
|
536
536
|
this.gl.bindTexture(this.target, null);
|
|
537
537
|
}
|
|
538
|
-
|
|
539
|
-
|
|
538
|
+
|
|
540
539
|
/**
|
|
541
540
|
* Defines a two-dimensional texture image or cube-map texture image with
|
|
542
541
|
* pixels from the current framebuffer (rather than from client memory).
|
|
@@ -606,7 +605,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
606
605
|
if (data instanceof Buffer) {
|
|
607
606
|
return {data: data.handle, dataType: 'buffer'};
|
|
608
607
|
}
|
|
609
|
-
if (data instanceof WebGLBuffer) {
|
|
608
|
+
if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
|
|
610
609
|
return {data, dataType: 'buffer'};
|
|
611
610
|
}
|
|
612
611
|
// Assume data is a browser supported object (ImageData, Canvas, ...)
|
|
@@ -752,7 +751,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
752
751
|
pname = getKeyValue(this.gl, pname);
|
|
753
752
|
assert(pname);
|
|
754
753
|
|
|
755
|
-
// @ts-
|
|
754
|
+
// @ts-expect-error
|
|
756
755
|
const parameters = this.constructor.PARAMETERS || {};
|
|
757
756
|
|
|
758
757
|
// Use parameter definitions to handle unsupported parameters
|
|
@@ -785,7 +784,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
785
784
|
const {parameters, keys} = options;
|
|
786
785
|
|
|
787
786
|
// Get parameter definitions for this Resource
|
|
788
|
-
// @ts-
|
|
787
|
+
// @ts-expect-error
|
|
789
788
|
const PARAMETERS = this.constructor.PARAMETERS || {};
|
|
790
789
|
|
|
791
790
|
const isWebgl2 = isWebGL2(this.gl);
|
|
@@ -830,7 +829,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
830
829
|
pname = getKeyValue(this.gl, pname);
|
|
831
830
|
assert(pname);
|
|
832
831
|
|
|
833
|
-
// @ts-
|
|
832
|
+
// @ts-expect-error
|
|
834
833
|
const parameters = this.constructor.PARAMETERS || {};
|
|
835
834
|
|
|
836
835
|
const parameter = parameters[pname];
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import {log, isObjectEmpty} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import
|
|
3
|
+
import WebGLDevice from '../device/webgl-device';
|
|
4
|
+
import {isWebGL2, assertWebGL2Context} from '../context/context/webgl-checks';
|
|
3
5
|
import WebGLResource, {ResourceProps} from './webgl-resource';
|
|
4
6
|
import Buffer from './webgl-buffer';
|
|
5
|
-
import {isObjectEmpty} from '../utils';
|
|
6
7
|
|
|
7
8
|
export type TransformFeedbackProps = ResourceProps & {
|
|
8
9
|
[key: string]: any;
|
|
@@ -21,7 +22,7 @@ export default class TransformFeedback extends WebGLResource<TransformFeedbackPr
|
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
constructor(gl: WebGLRenderingContext, props: TransformFeedbackProps = {}) {
|
|
24
|
-
super(gl, props, {} as any);
|
|
25
|
+
super(WebGLDevice.attach(gl), props, {} as any);
|
|
25
26
|
assertWebGL2Context(gl);
|
|
26
27
|
|
|
27
28
|
this.initialize(props);
|
|
@@ -74,7 +75,7 @@ export default class TransformFeedback extends WebGLResource<TransformFeedbackPr
|
|
|
74
75
|
|
|
75
76
|
if (location < 0) {
|
|
76
77
|
this.unused[locationOrName] = buffer;
|
|
77
|
-
log.warn(
|
|
78
|
+
log.warn(`${this.id} unused varying buffer ${locationOrName}`)();
|
|
78
79
|
return this;
|
|
79
80
|
}
|
|
80
81
|
|
|
@@ -90,19 +91,19 @@ export default class TransformFeedback extends WebGLResource<TransformFeedbackPr
|
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
begin(primitiveMode = GL.POINTS) {
|
|
93
|
-
// @ts-
|
|
94
|
+
// @ts-expect-error
|
|
94
95
|
this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);
|
|
95
96
|
this._bindBuffers();
|
|
96
|
-
// @ts-
|
|
97
|
+
// @ts-expect-error
|
|
97
98
|
this.gl.beginTransformFeedback(primitiveMode);
|
|
98
99
|
return this;
|
|
99
100
|
}
|
|
100
101
|
|
|
101
102
|
end() {
|
|
102
|
-
// @ts-
|
|
103
|
+
// @ts-expect-error
|
|
103
104
|
this.gl.endTransformFeedback();
|
|
104
105
|
this._unbindBuffers();
|
|
105
|
-
// @ts-
|
|
106
|
+
// @ts-expect-error
|
|
106
107
|
this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, null);
|
|
107
108
|
return this;
|
|
108
109
|
}
|
|
@@ -162,10 +163,10 @@ export default class TransformFeedback extends WebGLResource<TransformFeedbackPr
|
|
|
162
163
|
_bindBuffer(index, buffer, byteOffset = 0, byteSize?) {
|
|
163
164
|
const handle = buffer && buffer.handle;
|
|
164
165
|
if (!handle || byteSize === undefined) {
|
|
165
|
-
// @ts-
|
|
166
|
+
// @ts-expect-error
|
|
166
167
|
this.gl.bindBufferBase(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle);
|
|
167
168
|
} else {
|
|
168
|
-
// @ts-
|
|
169
|
+
// @ts-expect-error
|
|
169
170
|
this.gl.bindBufferRange(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);
|
|
170
171
|
}
|
|
171
172
|
return this;
|
|
@@ -174,17 +175,17 @@ export default class TransformFeedback extends WebGLResource<TransformFeedbackPr
|
|
|
174
175
|
// RESOURCE METHODS
|
|
175
176
|
|
|
176
177
|
_createHandle() {
|
|
177
|
-
// @ts-
|
|
178
|
+
// @ts-expect-error
|
|
178
179
|
return this.gl.createTransformFeedback();
|
|
179
180
|
}
|
|
180
181
|
|
|
181
182
|
_deleteHandle() {
|
|
182
|
-
// @ts-
|
|
183
|
+
// @ts-expect-error
|
|
183
184
|
this.gl.deleteTransformFeedback(this.handle);
|
|
184
185
|
}
|
|
185
186
|
|
|
186
187
|
_bindHandle(handle) {
|
|
187
|
-
// @ts-
|
|
188
|
+
// @ts-expect-error
|
|
188
189
|
this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);
|
|
189
190
|
}
|
|
190
191
|
}
|
package/src/classes/uniforms.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import {log, assert} from '@luma.gl/api';
|
|
3
2
|
import GL from '@luma.gl/constants';
|
|
4
|
-
import {log} from '@luma.gl/gltools';
|
|
5
3
|
import {Matrix4} from '@math.gl/core';
|
|
6
4
|
|
|
7
5
|
import Framebuffer from './framebuffer';
|
|
8
6
|
import Renderbuffer from './renderbuffer';
|
|
9
7
|
import Texture from './texture';
|
|
10
|
-
import {assert} from '../utils';
|
|
11
8
|
|
|
12
9
|
type NumberUniformInfo = {
|
|
13
10
|
type: 'number'
|
|
@@ -54,7 +51,6 @@ type Uniforms = {
|
|
|
54
51
|
const UNIFORM_SETTERS = {
|
|
55
52
|
// WEBGL1
|
|
56
53
|
|
|
57
|
-
/* eslint-disable max-len */
|
|
58
54
|
[GL.FLOAT]: getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform),
|
|
59
55
|
[GL.FLOAT_VEC2]: getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform),
|
|
60
56
|
[GL.FLOAT_VEC3]: getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform),
|
|
@@ -169,7 +165,6 @@ const UNIFORM_SETTERS = {
|
|
|
169
165
|
[GL.UNSIGNED_INT_SAMPLER_3D]: getSamplerSetter,
|
|
170
166
|
[GL.UNSIGNED_INT_SAMPLER_CUBE]: getSamplerSetter,
|
|
171
167
|
[GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: getSamplerSetter
|
|
172
|
-
/* eslint-enable max-len */
|
|
173
168
|
};
|
|
174
169
|
|
|
175
170
|
// Pre-allocated typed arrays for temporary conversion
|
|
@@ -233,8 +228,7 @@ export function parseUniformName(name: string): {name: string; isArray: boolean,
|
|
|
233
228
|
// Add space to source
|
|
234
229
|
source = source ? `${source} ` : '';
|
|
235
230
|
// Value could be unprintable so write the object on console
|
|
236
|
-
console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line
|
|
237
|
-
/* eslint-enable no-console */
|
|
231
|
+
console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line no-console
|
|
238
232
|
throw new Error(`${source} Bad uniform ${uniformName}`);
|
|
239
233
|
}
|
|
240
234
|
}
|
|
@@ -248,12 +242,12 @@ export function copyUniform(uniforms: object, key: string, value: any): void {
|
|
|
248
242
|
if (Array.isArray(value) || ArrayBuffer.isView(value)) {
|
|
249
243
|
if (uniforms[key]) {
|
|
250
244
|
const dest = uniforms[key];
|
|
251
|
-
// @ts-
|
|
245
|
+
// @ts-expect-error
|
|
252
246
|
for (let i = 0, len = value.length; i < len; ++i) {
|
|
253
247
|
dest[i] = value[i];
|
|
254
248
|
}
|
|
255
249
|
} else {
|
|
256
|
-
// @ts-
|
|
250
|
+
// @ts-expect-error
|
|
257
251
|
uniforms[key] = value.slice();
|
|
258
252
|
}
|
|
259
253
|
} else {
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
+
import {assert, getScratchArray, fillArray} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
3
|
+
import {getBrowser} from '@probe.gl/env';
|
|
4
|
+
import WebGLDevice from '../device/webgl-device';
|
|
5
|
+
import {assertWebGL2Context, isWebGL2} from '../context/context/webgl-checks';
|
|
4
6
|
import Program from './program';
|
|
5
7
|
import WebGLResource, {ResourceProps} from './webgl-resource';
|
|
6
8
|
import Buffer from './webgl-buffer';
|
|
7
|
-
import {getScratchArray, fillArray} from '../utils/array-utils-flat';
|
|
8
|
-
import {assert} from '../utils';
|
|
9
|
-
import {getLumaContextData} from '../context/luma-context-data';
|
|
10
9
|
|
|
11
10
|
const ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';
|
|
12
11
|
|
|
@@ -24,7 +23,7 @@ export type VertexArrayObjectProps = ResourceProps & {
|
|
|
24
23
|
export default class VertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
|
|
25
24
|
private static MAX_ATTRIBUTES: number;
|
|
26
25
|
|
|
27
|
-
static isSupported(gl: WebGLRenderingContext, options?: VertexArrayObjectProps): boolean {
|
|
26
|
+
static isSupported(gl: WebGLRenderingContext | WebGL2RenderingContext, options?: VertexArrayObjectProps): boolean {
|
|
28
27
|
if (options?.constantAttributeZero) {
|
|
29
28
|
return isWebGL2(gl) || getBrowser() === 'Chrome';
|
|
30
29
|
}
|
|
@@ -38,20 +37,17 @@ export default class VertexArrayObject extends WebGLResource<VertexArrayObjectPr
|
|
|
38
37
|
* @todo (Tarek): VAOs are now polyfilled. Deprecate this in 9.0
|
|
39
38
|
*/
|
|
40
39
|
static getDefaultArray(gl: WebGLRenderingContext): VertexArrayObject {
|
|
41
|
-
const
|
|
42
|
-
|
|
40
|
+
const webglDevice = WebGLDevice.fromContext(gl);
|
|
41
|
+
webglDevice.defaultVertexArray = webglDevice.defaultVertexArray ||
|
|
43
42
|
new VertexArrayObject(gl, {handle: null, isDefaultArray: true});
|
|
44
|
-
return
|
|
43
|
+
return webglDevice.defaultVertexArray;
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
/** Get maximum number of attributes in a vertex array */
|
|
48
47
|
static getMaxAttributes(gl: WebGLRenderingContext): number {
|
|
49
48
|
// TODO - should be cached per context
|
|
50
|
-
// @ts-ignore
|
|
51
49
|
VertexArrayObject.MAX_ATTRIBUTES =
|
|
52
|
-
// @ts-ignore
|
|
53
50
|
VertexArrayObject.MAX_ATTRIBUTES || gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
|
|
54
|
-
// @ts-ignore
|
|
55
51
|
return VertexArrayObject.MAX_ATTRIBUTES;
|
|
56
52
|
}
|
|
57
53
|
|
|
@@ -89,7 +85,7 @@ export default class VertexArrayObject extends WebGLResource<VertexArrayObjectPr
|
|
|
89
85
|
// Create a VertexArray
|
|
90
86
|
constructor(gl: WebGLRenderingContext, opts?: VertexArrayObjectProps) {
|
|
91
87
|
// Use program's id if program but no id is supplied
|
|
92
|
-
super(gl, {...opts, id: opts?.id || (opts?.program && opts?.program.id)}, {} as any);
|
|
88
|
+
super(WebGLDevice.attach(gl), {...opts, id: opts?.id || (opts?.program && opts?.program.id)}, {} as any);
|
|
93
89
|
|
|
94
90
|
this.buffer = null;
|
|
95
91
|
this.bufferValue = null;
|
|
@@ -318,7 +314,7 @@ export default class VertexArrayObject extends WebGLResource<VertexArrayObjectPr
|
|
|
318
314
|
|
|
319
315
|
_deleteHandle(): void {
|
|
320
316
|
this.gl2.deleteVertexArray(this.handle);
|
|
321
|
-
// @ts-
|
|
317
|
+
// @ts-expect-error
|
|
322
318
|
return [this.elements];
|
|
323
319
|
// return [this.elements, ...this.buffers];
|
|
324
320
|
}
|
|
@@ -1,11 +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
4
|
import Buffer from './webgl-buffer';
|
|
5
5
|
import Program from './program';
|
|
6
6
|
import ProgramConfiguration from './program-configuration';
|
|
7
7
|
import VertexArrayObject, {VertexArrayObjectProps} from './vertex-array-object';
|
|
8
|
-
import {assert, stubRemovedMethods} from '../utils';
|
|
9
8
|
|
|
10
9
|
const ERR_ATTRIBUTE_TYPE =
|
|
11
10
|
'VertexArray: attributes must be Buffers or constants (i.e. typed array)';
|
|
@@ -19,7 +18,7 @@ export type VertexArrayProps = {
|
|
|
19
18
|
id?: string;
|
|
20
19
|
program?: Program;
|
|
21
20
|
configuration?: ProgramConfiguration;
|
|
22
|
-
attributes?: any
|
|
21
|
+
attributes?: Record<string, any>;
|
|
23
22
|
elements?: any;
|
|
24
23
|
bindOnUse?: boolean;
|
|
25
24
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {getWebGL2Context, assertWebGL2Context, log} from '@luma.gl/gltools';
|
|
1
|
+
import {log, assert, checkProps} from '@luma.gl/api';
|
|
3
2
|
import {Buffer, BufferProps} from '@luma.gl/api';
|
|
3
|
+
import GL from '@luma.gl/constants';
|
|
4
|
+
import {getWebGL2Context, assertWebGL2Context} from '../context/context/webgl-checks';
|
|
4
5
|
import {AccessorObject} from '../types';
|
|
5
6
|
import Accessor from './accessor';
|
|
6
|
-
import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from '../webgl-utils';
|
|
7
|
-
import
|
|
7
|
+
import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from '../webgl-utils/typed-array-utils';
|
|
8
|
+
import WebGLDevice from '../device/webgl-device';
|
|
8
9
|
|
|
9
10
|
const DEBUG_DATA_LENGTH = 10;
|
|
10
11
|
|
|
@@ -58,6 +59,7 @@ export type WebGLBufferProps = BufferProps & {
|
|
|
58
59
|
|
|
59
60
|
/** WebGL Buffer interface */
|
|
60
61
|
export default class WEBGLBuffer extends Buffer {
|
|
62
|
+
readonly device: WebGLDevice;
|
|
61
63
|
readonly gl: WebGLRenderingContext;
|
|
62
64
|
readonly gl2: WebGL2RenderingContext | null;
|
|
63
65
|
readonly handle: WebGLBuffer;
|
|
@@ -77,7 +79,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
77
79
|
constructor(gl: WebGLRenderingContext, byteLength: number);
|
|
78
80
|
|
|
79
81
|
constructor(gl: WebGLRenderingContext, props = {}) {
|
|
80
|
-
super(gl
|
|
82
|
+
super(WebGLDevice.attach(gl), props);
|
|
81
83
|
|
|
82
84
|
this.gl = gl;
|
|
83
85
|
this.gl2 = getWebGL2Context(gl);
|