@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
|
@@ -7,205 +7,261 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
10
22
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
23
|
|
|
24
|
+
var _api = require("@luma.gl/api");
|
|
25
|
+
|
|
12
26
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
13
27
|
|
|
14
|
-
var
|
|
28
|
+
var _webglDevice = _interopRequireDefault(require("../device/webgl-device"));
|
|
29
|
+
|
|
30
|
+
var _webglChecks = require("../context/context/webgl-checks");
|
|
15
31
|
|
|
16
32
|
var _webglResource = _interopRequireDefault(require("./webgl-resource"));
|
|
17
33
|
|
|
18
34
|
var _webglBuffer = _interopRequireDefault(require("./webgl-buffer"));
|
|
19
35
|
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
class TransformFeedback extends _webglResource.default {
|
|
23
|
-
static isSupported(gl) {
|
|
24
|
-
return (0, _gltools.isWebGL2)(gl);
|
|
25
|
-
}
|
|
36
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
26
37
|
|
|
27
|
-
|
|
28
|
-
super(gl, props, {});
|
|
29
|
-
(0, _defineProperty2.default)(this, "buffers", {});
|
|
30
|
-
(0, _defineProperty2.default)(this, "unused", {});
|
|
31
|
-
(0, _defineProperty2.default)(this, "configuration", null);
|
|
32
|
-
(0, _defineProperty2.default)(this, "bindOnUse", true);
|
|
33
|
-
(0, _gltools.assertWebGL2Context)(gl);
|
|
34
|
-
this.initialize(props);
|
|
35
|
-
this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);
|
|
36
|
-
Object.seal(this);
|
|
37
|
-
}
|
|
38
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
this.unused = {};
|
|
42
|
-
this.configuration = null;
|
|
43
|
-
this.bindOnUse = true;
|
|
40
|
+
var TransformFeedback = function (_WebGLResource) {
|
|
41
|
+
(0, _inherits2.default)(TransformFeedback, _WebGLResource);
|
|
44
42
|
|
|
45
|
-
|
|
46
|
-
this.bind(() => this._unbindBuffers());
|
|
47
|
-
}
|
|
43
|
+
var _super = _createSuper(TransformFeedback);
|
|
48
44
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
45
|
+
function TransformFeedback(gl) {
|
|
46
|
+
var _this;
|
|
52
47
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
48
|
+
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
49
|
+
(0, _classCallCheck2.default)(this, TransformFeedback);
|
|
50
|
+
_this = _super.call(this, _webglDevice.default.attach(gl), props, {});
|
|
51
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "buffers", {});
|
|
52
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "unused", {});
|
|
53
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "configuration", null);
|
|
54
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "bindOnUse", true);
|
|
55
|
+
(0, _webglChecks.assertWebGL2Context)(gl);
|
|
57
56
|
|
|
58
|
-
|
|
59
|
-
this.configuration = props.configuration;
|
|
60
|
-
}
|
|
57
|
+
_this.initialize(props);
|
|
61
58
|
|
|
62
|
-
|
|
63
|
-
props = props.bindOnUse;
|
|
64
|
-
}
|
|
59
|
+
_this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);
|
|
65
60
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
61
|
+
Object.seal((0, _assertThisInitialized2.default)(_this));
|
|
62
|
+
return _this;
|
|
69
63
|
}
|
|
70
64
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
return this;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
setBuffer(locationOrName, bufferOrParams) {
|
|
81
|
-
const location = this._getVaryingIndex(locationOrName);
|
|
82
|
-
|
|
83
|
-
const {
|
|
84
|
-
buffer,
|
|
85
|
-
byteSize,
|
|
86
|
-
byteOffset
|
|
87
|
-
} = this._getBufferParams(bufferOrParams);
|
|
65
|
+
(0, _createClass2.default)(TransformFeedback, [{
|
|
66
|
+
key: "initialize",
|
|
67
|
+
value: function initialize(props) {
|
|
68
|
+
var _this2 = this;
|
|
88
69
|
|
|
89
|
-
|
|
90
|
-
this.unused
|
|
70
|
+
this.buffers = {};
|
|
71
|
+
this.unused = {};
|
|
72
|
+
this.configuration = null;
|
|
73
|
+
this.bindOnUse = true;
|
|
91
74
|
|
|
92
|
-
|
|
75
|
+
if (!(0, _api.isObjectEmpty)(this.buffers)) {
|
|
76
|
+
this.bind(function () {
|
|
77
|
+
return _this2._unbindBuffers();
|
|
78
|
+
});
|
|
79
|
+
}
|
|
93
80
|
|
|
81
|
+
this.setProps(props);
|
|
94
82
|
return this;
|
|
95
83
|
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "setProps",
|
|
86
|
+
value: function setProps(props) {
|
|
87
|
+
if ('program' in props) {
|
|
88
|
+
this.configuration = props.program && props.program.configuration;
|
|
89
|
+
}
|
|
96
90
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this._bindBuffer(location, buffer, byteOffset, byteSize);
|
|
101
|
-
}
|
|
91
|
+
if ('configuration' in props) {
|
|
92
|
+
this.configuration = props.configuration;
|
|
93
|
+
}
|
|
102
94
|
|
|
103
|
-
|
|
104
|
-
|
|
95
|
+
if ('bindOnUse' in props) {
|
|
96
|
+
props = props.bindOnUse;
|
|
97
|
+
}
|
|
105
98
|
|
|
106
|
-
|
|
107
|
-
|
|
99
|
+
if ('buffers' in props) {
|
|
100
|
+
this.setBuffers(props.buffers);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}, {
|
|
104
|
+
key: "setBuffers",
|
|
105
|
+
value: function setBuffers() {
|
|
106
|
+
var _this3 = this;
|
|
107
|
+
|
|
108
|
+
var buffers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
109
|
+
this.bind(function () {
|
|
110
|
+
for (var bufferName in buffers) {
|
|
111
|
+
_this3.setBuffer(bufferName, buffers[bufferName]);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
}, {
|
|
117
|
+
key: "setBuffer",
|
|
118
|
+
value: function setBuffer(locationOrName, bufferOrParams) {
|
|
119
|
+
var location = this._getVaryingIndex(locationOrName);
|
|
108
120
|
|
|
109
|
-
|
|
121
|
+
var _this$_getBufferParam = this._getBufferParams(bufferOrParams),
|
|
122
|
+
buffer = _this$_getBufferParam.buffer,
|
|
123
|
+
byteSize = _this$_getBufferParam.byteSize,
|
|
124
|
+
byteOffset = _this$_getBufferParam.byteOffset;
|
|
110
125
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
126
|
+
if (location < 0) {
|
|
127
|
+
this.unused[locationOrName] = buffer;
|
|
114
128
|
|
|
115
|
-
|
|
116
|
-
this.gl.endTransformFeedback();
|
|
129
|
+
_api.log.warn("".concat(this.id, " unused varying buffer ").concat(locationOrName))();
|
|
117
130
|
|
|
118
|
-
|
|
131
|
+
return this;
|
|
132
|
+
}
|
|
119
133
|
|
|
120
|
-
|
|
121
|
-
return this;
|
|
122
|
-
}
|
|
134
|
+
this.buffers[location] = bufferOrParams;
|
|
123
135
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
let buffer;
|
|
136
|
+
if (!this.bindOnUse) {
|
|
137
|
+
this._bindBuffer(location, buffer, byteOffset, byteSize);
|
|
138
|
+
}
|
|
128
139
|
|
|
129
|
-
|
|
130
|
-
buffer = bufferOrParams.buffer;
|
|
131
|
-
byteSize = bufferOrParams.byteSize;
|
|
132
|
-
byteOffset = bufferOrParams.byteOffset;
|
|
133
|
-
} else {
|
|
134
|
-
buffer = bufferOrParams;
|
|
140
|
+
return this;
|
|
135
141
|
}
|
|
142
|
+
}, {
|
|
143
|
+
key: "begin",
|
|
144
|
+
value: function begin() {
|
|
145
|
+
var primitiveMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.default.POINTS;
|
|
146
|
+
this.gl.bindTransformFeedback(_constants.default.TRANSFORM_FEEDBACK, this.handle);
|
|
136
147
|
|
|
137
|
-
|
|
138
|
-
byteOffset = byteOffset || 0;
|
|
139
|
-
byteSize = byteSize || buffer.byteLength - byteOffset;
|
|
140
|
-
}
|
|
148
|
+
this._bindBuffers();
|
|
141
149
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
150
|
+
this.gl.beginTransformFeedback(primitiveMode);
|
|
151
|
+
return this;
|
|
152
|
+
}
|
|
153
|
+
}, {
|
|
154
|
+
key: "end",
|
|
155
|
+
value: function end() {
|
|
156
|
+
this.gl.endTransformFeedback();
|
|
148
157
|
|
|
149
|
-
|
|
150
|
-
return this.configuration && this.configuration.getVaryingInfo(locationOrName);
|
|
151
|
-
}
|
|
158
|
+
this._unbindBuffers();
|
|
152
159
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
return this.configuration.getVaryingInfo(locationOrName).location;
|
|
160
|
+
this.gl.bindTransformFeedback(_constants.default.TRANSFORM_FEEDBACK, null);
|
|
161
|
+
return this;
|
|
156
162
|
}
|
|
163
|
+
}, {
|
|
164
|
+
key: "_getBufferParams",
|
|
165
|
+
value: function _getBufferParams(bufferOrParams) {
|
|
166
|
+
var byteOffset;
|
|
167
|
+
var byteSize;
|
|
168
|
+
var buffer;
|
|
169
|
+
|
|
170
|
+
if (bufferOrParams instanceof _webglBuffer.default === false) {
|
|
171
|
+
buffer = bufferOrParams.buffer;
|
|
172
|
+
byteSize = bufferOrParams.byteSize;
|
|
173
|
+
byteOffset = bufferOrParams.byteOffset;
|
|
174
|
+
} else {
|
|
175
|
+
buffer = bufferOrParams;
|
|
176
|
+
}
|
|
157
177
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
178
|
+
if (byteOffset !== undefined || byteSize !== undefined) {
|
|
179
|
+
byteOffset = byteOffset || 0;
|
|
180
|
+
byteSize = byteSize || buffer.byteLength - byteOffset;
|
|
181
|
+
}
|
|
161
182
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
183
|
+
return {
|
|
184
|
+
buffer: buffer,
|
|
185
|
+
byteOffset: byteOffset,
|
|
186
|
+
byteSize: byteSize
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}, {
|
|
190
|
+
key: "_getVaryingInfo",
|
|
191
|
+
value: function _getVaryingInfo(locationOrName) {
|
|
192
|
+
return this.configuration && this.configuration.getVaryingInfo(locationOrName);
|
|
193
|
+
}
|
|
194
|
+
}, {
|
|
195
|
+
key: "_getVaryingIndex",
|
|
196
|
+
value: function _getVaryingIndex(locationOrName) {
|
|
197
|
+
if (this.configuration) {
|
|
198
|
+
return this.configuration.getVaryingInfo(locationOrName).location;
|
|
199
|
+
}
|
|
170
200
|
|
|
171
|
-
|
|
201
|
+
var location = Number(locationOrName);
|
|
202
|
+
return Number.isFinite(location) ? location : -1;
|
|
203
|
+
}
|
|
204
|
+
}, {
|
|
205
|
+
key: "_bindBuffers",
|
|
206
|
+
value: function _bindBuffers() {
|
|
207
|
+
if (this.bindOnUse) {
|
|
208
|
+
for (var bufferIndex in this.buffers) {
|
|
209
|
+
var _this$_getBufferParam2 = this._getBufferParams(this.buffers[bufferIndex]),
|
|
210
|
+
buffer = _this$_getBufferParam2.buffer,
|
|
211
|
+
byteSize = _this$_getBufferParam2.byteSize,
|
|
212
|
+
byteOffset = _this$_getBufferParam2.byteOffset;
|
|
213
|
+
|
|
214
|
+
this._bindBuffer(bufferIndex, buffer, byteOffset, byteSize);
|
|
215
|
+
}
|
|
172
216
|
}
|
|
173
217
|
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
218
|
+
}, {
|
|
219
|
+
key: "_unbindBuffers",
|
|
220
|
+
value: function _unbindBuffers() {
|
|
221
|
+
if (this.bindOnUse) {
|
|
222
|
+
for (var bufferIndex in this.buffers) {
|
|
223
|
+
this._bindBuffer(bufferIndex, null);
|
|
224
|
+
}
|
|
180
225
|
}
|
|
181
226
|
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
227
|
+
}, {
|
|
228
|
+
key: "_bindBuffer",
|
|
229
|
+
value: function _bindBuffer(index, buffer) {
|
|
230
|
+
var byteOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
231
|
+
var byteSize = arguments.length > 3 ? arguments[3] : undefined;
|
|
232
|
+
var handle = buffer && buffer.handle;
|
|
233
|
+
|
|
234
|
+
if (!handle || byteSize === undefined) {
|
|
235
|
+
this.gl.bindBufferBase(_constants.default.TRANSFORM_FEEDBACK_BUFFER, index, handle);
|
|
236
|
+
} else {
|
|
237
|
+
this.gl.bindBufferRange(_constants.default.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);
|
|
238
|
+
}
|
|
186
239
|
|
|
187
|
-
|
|
188
|
-
this.gl.bindBufferBase(_constants.default.TRANSFORM_FEEDBACK_BUFFER, index, handle);
|
|
189
|
-
} else {
|
|
190
|
-
this.gl.bindBufferRange(_constants.default.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);
|
|
240
|
+
return this;
|
|
191
241
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
242
|
+
}, {
|
|
243
|
+
key: "_createHandle",
|
|
244
|
+
value: function _createHandle() {
|
|
245
|
+
return this.gl.createTransformFeedback();
|
|
246
|
+
}
|
|
247
|
+
}, {
|
|
248
|
+
key: "_deleteHandle",
|
|
249
|
+
value: function _deleteHandle() {
|
|
250
|
+
this.gl.deleteTransformFeedback(this.handle);
|
|
251
|
+
}
|
|
252
|
+
}, {
|
|
253
|
+
key: "_bindHandle",
|
|
254
|
+
value: function _bindHandle(handle) {
|
|
255
|
+
this.gl.bindTransformFeedback(_constants.default.TRANSFORM_FEEDBACK, this.handle);
|
|
256
|
+
}
|
|
257
|
+
}], [{
|
|
258
|
+
key: "isSupported",
|
|
259
|
+
value: function isSupported(gl) {
|
|
260
|
+
return (0, _webglChecks.isWebGL2)(gl);
|
|
261
|
+
}
|
|
262
|
+
}]);
|
|
263
|
+
return TransformFeedback;
|
|
264
|
+
}(_webglResource.default);
|
|
209
265
|
|
|
210
266
|
exports.default = TransformFeedback;
|
|
211
267
|
//# sourceMappingURL=transform-feedback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/classes/transform-feedback.ts"],"names":["TransformFeedback","WebGLResource","isSupported","gl","constructor","props","initialize","stubRemovedMethods","Object","seal","buffers","unused","configuration","bindOnUse","bind","_unbindBuffers","setProps","program","setBuffers","bufferName","setBuffer","locationOrName","bufferOrParams","location","_getVaryingIndex","buffer","byteSize","byteOffset","_getBufferParams","log","warn","id","_bindBuffer","begin","primitiveMode","GL","POINTS","bindTransformFeedback","TRANSFORM_FEEDBACK","handle","_bindBuffers","beginTransformFeedback","end","endTransformFeedback","Buffer","undefined","byteLength","_getVaryingInfo","getVaryingInfo","Number","isFinite","bufferIndex","index","bindBufferBase","TRANSFORM_FEEDBACK_BUFFER","bindBufferRange","_createHandle","createTransformFeedback","_deleteHandle","deleteTransformFeedback","_bindHandle"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGL2Context, log} from '@luma.gl/gltools';\nimport WebGLResource, {ResourceProps} from './webgl-resource';\nimport Buffer from './webgl-buffer';\nimport {isObjectEmpty} from '../utils';\n\nexport type TransformFeedbackProps = ResourceProps & {\n [key: string]: any;\n};\n\nexport default class TransformFeedback extends WebGLResource<TransformFeedbackProps> {\n buffers = {};\n unused = {};\n configuration = null;\n // NOTE: The `bindOnUse` flag is a major workaround:\n // See https://github.com/KhronosGroup/WebGL/issues/2346\n bindOnUse = true;\n\n static isSupported(gl: WebGLRenderingContext): boolean {\n return isWebGL2(gl);\n }\n\n constructor(gl: WebGLRenderingContext, props: TransformFeedbackProps = {}) {\n super(gl, props, {} as any);\n assertWebGL2Context(gl);\n\n this.initialize(props);\n this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);\n Object.seal(this);\n }\n\n initialize(props?: TransformFeedbackProps): this {\n this.buffers = {};\n this.unused = {};\n this.configuration = null;\n this.bindOnUse = true;\n\n // Unbind any currently bound buffers\n if (!isObjectEmpty(this.buffers)) {\n this.bind(() => this._unbindBuffers());\n }\n\n this.setProps(props);\n return this;\n }\n\n setProps(props: TransformFeedbackProps) {\n if ('program' in props) {\n this.configuration = props.program && props.program.configuration;\n }\n if ('configuration' in props) {\n this.configuration = props.configuration;\n }\n if ('bindOnUse' in props) {\n props = props.bindOnUse;\n }\n if ('buffers' in props) {\n this.setBuffers(props.buffers);\n }\n }\n\n setBuffers(buffers = {}) {\n this.bind(() => {\n for (const bufferName in buffers) {\n this.setBuffer(bufferName, buffers[bufferName]);\n }\n });\n return this;\n }\n\n setBuffer(locationOrName, bufferOrParams) {\n const location = this._getVaryingIndex(locationOrName);\n const {buffer, byteSize, byteOffset} = this._getBufferParams(bufferOrParams);\n\n if (location < 0) {\n this.unused[locationOrName] = buffer;\n log.warn(() => `${this.id} unused varying buffer ${locationOrName}`)();\n return this;\n }\n\n this.buffers[location] = bufferOrParams;\n\n // Need to avoid chrome bug where buffer that is already bound to a different target\n // cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.\n if (!this.bindOnUse) {\n this._bindBuffer(location, buffer, byteOffset, byteSize);\n }\n\n return this;\n }\n\n begin(primitiveMode = GL.POINTS) {\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);\n this._bindBuffers();\n // @ts-ignore\n this.gl.beginTransformFeedback(primitiveMode);\n return this;\n }\n\n end() {\n // @ts-ignore\n this.gl.endTransformFeedback();\n this._unbindBuffers();\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, null);\n return this;\n }\n\n // PRIVATE METHODS\n\n _getBufferParams(bufferOrParams) {\n let byteOffset;\n let byteSize;\n let buffer;\n if (bufferOrParams instanceof Buffer === false) {\n buffer = bufferOrParams.buffer;\n byteSize = bufferOrParams.byteSize;\n byteOffset = bufferOrParams.byteOffset;\n } else {\n buffer = bufferOrParams;\n }\n // to use bindBufferRange, either offset or size must be specified, use default value for the other.\n if (byteOffset !== undefined || byteSize !== undefined) {\n byteOffset = byteOffset || 0;\n byteSize = byteSize || buffer.byteLength - byteOffset;\n }\n return {buffer, byteOffset, byteSize};\n }\n\n _getVaryingInfo(locationOrName) {\n return this.configuration && this.configuration.getVaryingInfo(locationOrName);\n }\n\n _getVaryingIndex(locationOrName) {\n if (this.configuration) {\n return this.configuration.getVaryingInfo(locationOrName).location;\n }\n const location = Number(locationOrName);\n return Number.isFinite(location) ? location : -1;\n }\n\n // Need to avoid chrome bug where buffer that is already bound to a different target\n // cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.\n _bindBuffers() {\n if (this.bindOnUse) {\n for (const bufferIndex in this.buffers) {\n const {buffer, byteSize, byteOffset} = this._getBufferParams(this.buffers[bufferIndex]);\n this._bindBuffer(bufferIndex, buffer, byteOffset, byteSize);\n }\n }\n }\n\n _unbindBuffers() {\n if (this.bindOnUse) {\n for (const bufferIndex in this.buffers) {\n this._bindBuffer(bufferIndex, null);\n }\n }\n }\n\n _bindBuffer(index, buffer, byteOffset = 0, byteSize?) {\n const handle = buffer && buffer.handle;\n if (!handle || byteSize === undefined) {\n // @ts-ignore\n this.gl.bindBufferBase(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle);\n } else {\n // @ts-ignore\n this.gl.bindBufferRange(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);\n }\n return this;\n }\n\n // RESOURCE METHODS\n\n _createHandle() {\n // @ts-ignore\n return this.gl.createTransformFeedback();\n }\n\n _deleteHandle() {\n // @ts-ignore\n this.gl.deleteTransformFeedback(this.handle);\n }\n\n _bindHandle(handle) {\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);\n }\n}\n"],"file":"transform-feedback.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/classes/transform-feedback.ts"],"names":["TransformFeedback","gl","props","WebGLDevice","attach","initialize","stubRemovedMethods","Object","seal","buffers","unused","configuration","bindOnUse","bind","_unbindBuffers","setProps","program","setBuffers","bufferName","setBuffer","locationOrName","bufferOrParams","location","_getVaryingIndex","_getBufferParams","buffer","byteSize","byteOffset","log","warn","id","_bindBuffer","primitiveMode","GL","POINTS","bindTransformFeedback","TRANSFORM_FEEDBACK","handle","_bindBuffers","beginTransformFeedback","endTransformFeedback","Buffer","undefined","byteLength","getVaryingInfo","Number","isFinite","bufferIndex","index","bindBufferBase","TRANSFORM_FEEDBACK_BUFFER","bindBufferRange","createTransformFeedback","deleteTransformFeedback","WebGLResource"],"mappings":"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","sourcesContent":["import {log, isObjectEmpty} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../device/webgl-device';\nimport {isWebGL2, assertWebGL2Context} from '../context/context/webgl-checks';\nimport WebGLResource, {ResourceProps} from './webgl-resource';\nimport Buffer from './webgl-buffer';\n\nexport type TransformFeedbackProps = ResourceProps & {\n [key: string]: any;\n};\n\nexport default class TransformFeedback extends WebGLResource<TransformFeedbackProps> {\n buffers = {};\n unused = {};\n configuration = null;\n // NOTE: The `bindOnUse` flag is a major workaround:\n // See https://github.com/KhronosGroup/WebGL/issues/2346\n bindOnUse = true;\n\n static isSupported(gl: WebGLRenderingContext): boolean {\n return isWebGL2(gl);\n }\n\n constructor(gl: WebGLRenderingContext, props: TransformFeedbackProps = {}) {\n super(WebGLDevice.attach(gl), props, {} as any);\n assertWebGL2Context(gl);\n\n this.initialize(props);\n this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);\n Object.seal(this);\n }\n\n initialize(props?: TransformFeedbackProps): this {\n this.buffers = {};\n this.unused = {};\n this.configuration = null;\n this.bindOnUse = true;\n\n // Unbind any currently bound buffers\n if (!isObjectEmpty(this.buffers)) {\n this.bind(() => this._unbindBuffers());\n }\n\n this.setProps(props);\n return this;\n }\n\n setProps(props: TransformFeedbackProps) {\n if ('program' in props) {\n this.configuration = props.program && props.program.configuration;\n }\n if ('configuration' in props) {\n this.configuration = props.configuration;\n }\n if ('bindOnUse' in props) {\n props = props.bindOnUse;\n }\n if ('buffers' in props) {\n this.setBuffers(props.buffers);\n }\n }\n\n setBuffers(buffers = {}) {\n this.bind(() => {\n for (const bufferName in buffers) {\n this.setBuffer(bufferName, buffers[bufferName]);\n }\n });\n return this;\n }\n\n setBuffer(locationOrName, bufferOrParams) {\n const location = this._getVaryingIndex(locationOrName);\n const {buffer, byteSize, byteOffset} = this._getBufferParams(bufferOrParams);\n\n if (location < 0) {\n this.unused[locationOrName] = buffer;\n log.warn(`${this.id} unused varying buffer ${locationOrName}`)();\n return this;\n }\n\n this.buffers[location] = bufferOrParams;\n\n // Need to avoid chrome bug where buffer that is already bound to a different target\n // cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.\n if (!this.bindOnUse) {\n this._bindBuffer(location, buffer, byteOffset, byteSize);\n }\n\n return this;\n }\n\n begin(primitiveMode = GL.POINTS) {\n // @ts-expect-error\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);\n this._bindBuffers();\n // @ts-expect-error\n this.gl.beginTransformFeedback(primitiveMode);\n return this;\n }\n\n end() {\n // @ts-expect-error\n this.gl.endTransformFeedback();\n this._unbindBuffers();\n // @ts-expect-error\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, null);\n return this;\n }\n\n // PRIVATE METHODS\n\n _getBufferParams(bufferOrParams) {\n let byteOffset;\n let byteSize;\n let buffer;\n if (bufferOrParams instanceof Buffer === false) {\n buffer = bufferOrParams.buffer;\n byteSize = bufferOrParams.byteSize;\n byteOffset = bufferOrParams.byteOffset;\n } else {\n buffer = bufferOrParams;\n }\n // to use bindBufferRange, either offset or size must be specified, use default value for the other.\n if (byteOffset !== undefined || byteSize !== undefined) {\n byteOffset = byteOffset || 0;\n byteSize = byteSize || buffer.byteLength - byteOffset;\n }\n return {buffer, byteOffset, byteSize};\n }\n\n _getVaryingInfo(locationOrName) {\n return this.configuration && this.configuration.getVaryingInfo(locationOrName);\n }\n\n _getVaryingIndex(locationOrName) {\n if (this.configuration) {\n return this.configuration.getVaryingInfo(locationOrName).location;\n }\n const location = Number(locationOrName);\n return Number.isFinite(location) ? location : -1;\n }\n\n // Need to avoid chrome bug where buffer that is already bound to a different target\n // cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.\n _bindBuffers() {\n if (this.bindOnUse) {\n for (const bufferIndex in this.buffers) {\n const {buffer, byteSize, byteOffset} = this._getBufferParams(this.buffers[bufferIndex]);\n this._bindBuffer(bufferIndex, buffer, byteOffset, byteSize);\n }\n }\n }\n\n _unbindBuffers() {\n if (this.bindOnUse) {\n for (const bufferIndex in this.buffers) {\n this._bindBuffer(bufferIndex, null);\n }\n }\n }\n\n _bindBuffer(index, buffer, byteOffset = 0, byteSize?) {\n const handle = buffer && buffer.handle;\n if (!handle || byteSize === undefined) {\n // @ts-expect-error\n this.gl.bindBufferBase(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle);\n } else {\n // @ts-expect-error\n this.gl.bindBufferRange(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);\n }\n return this;\n }\n\n // RESOURCE METHODS\n\n _createHandle() {\n // @ts-expect-error\n return this.gl.createTransformFeedback();\n }\n\n _deleteHandle() {\n // @ts-expect-error\n this.gl.deleteTransformFeedback(this.handle);\n }\n\n _bindHandle(handle) {\n // @ts-expect-error\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);\n }\n}\n"],"file":"transform-feedback.js"}
|