@luma.gl/webgl 8.5.10 → 8.6.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +8 -1
- package/dist/_deprecated/context-api.d.ts +85 -0
- package/dist/_deprecated/context-api.d.ts.map +1 -0
- package/dist/_deprecated/context-api.js +70 -0
- package/dist/_deprecated/context-api.js.map +1 -0
- package/dist/_deprecated/features.d.ts +27 -0
- package/dist/_deprecated/features.d.ts.map +1 -0
- package/{src/features/webgl-features-table.js → dist/_deprecated/features.js} +66 -59
- package/dist/_deprecated/features.js.map +1 -0
- package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
- package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/set-device-parameters.js +124 -0
- package/dist/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
- package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
- package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.d.ts +12 -0
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
- package/dist/adapter/device-helpers/device-features.js +123 -0
- package/dist/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
- package/dist/adapter/device-helpers/device-limits.js +90 -0
- package/dist/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
- package/dist/adapter/device-helpers/get-device-info.js +44 -0
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
- package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +111 -0
- package/dist/adapter/webgl-device.d.ts.map +1 -0
- package/dist/adapter/webgl-device.js +208 -0
- package/dist/adapter/webgl-device.js.map +1 -0
- package/dist/adapter/webgl-shader.d.ts +18 -0
- package/dist/adapter/webgl-shader.d.ts.map +1 -0
- package/dist/adapter/webgl-shader.js +82 -0
- package/dist/adapter/webgl-shader.js.map +1 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +5 -0
- package/dist/bundle.js.map +1 -0
- package/dist/classes/accessor.d.ts +28 -0
- package/dist/classes/accessor.d.ts.map +1 -0
- package/dist/classes/accessor.js +112 -0
- package/dist/classes/accessor.js.map +1 -0
- package/dist/classes/accessor.ts.disabled +159 -0
- package/dist/classes/clear.d.ts +17 -0
- package/dist/classes/clear.d.ts.map +1 -0
- package/{src → dist}/classes/clear.js +29 -23
- package/dist/classes/clear.js.map +1 -0
- package/dist/classes/copy-and-blit.d.ts +86 -0
- package/dist/classes/copy-and-blit.d.ts.map +1 -0
- package/dist/classes/copy-and-blit.js +338 -0
- package/dist/classes/copy-and-blit.js.map +1 -0
- package/dist/classes/framebuffer.d.ts +139 -0
- package/dist/classes/framebuffer.d.ts.map +1 -0
- package/dist/classes/framebuffer.js +656 -0
- package/dist/classes/framebuffer.js.map +1 -0
- package/dist/classes/program-configuration.d.ts +24 -0
- package/dist/classes/program-configuration.d.ts.map +1 -0
- package/dist/classes/program-configuration.js +73 -0
- package/dist/classes/program-configuration.js.map +1 -0
- package/dist/classes/program.d.ts +66 -0
- package/dist/classes/program.d.ts.map +1 -0
- package/dist/classes/program.js +379 -0
- package/dist/classes/program.js.map +1 -0
- package/dist/classes/query.d.ts +27 -0
- package/dist/classes/query.d.ts.map +1 -0
- package/dist/classes/query.js +145 -0
- package/dist/classes/query.js.map +1 -0
- package/dist/classes/renderbuffer-formats.d.ts +16 -0
- package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
- package/dist/classes/renderbuffer-formats.js +185 -0
- package/dist/classes/renderbuffer-formats.js.map +1 -0
- package/dist/classes/renderbuffer.d.ts +60 -0
- package/dist/classes/renderbuffer.d.ts.map +1 -0
- package/dist/classes/renderbuffer.js +128 -0
- package/dist/classes/renderbuffer.js.map +1 -0
- package/dist/classes/shader.d.ts +42 -0
- package/dist/classes/shader.d.ts.map +1 -0
- package/dist/classes/shader.js +118 -0
- package/dist/classes/shader.js.map +1 -0
- package/dist/classes/texture-2d.d.ts +9 -0
- package/dist/classes/texture-2d.d.ts.map +1 -0
- package/dist/classes/texture-2d.js +36 -0
- package/dist/classes/texture-2d.js.map +1 -0
- package/dist/classes/texture-3d.d.ts +29 -0
- package/dist/classes/texture-3d.d.ts.map +1 -0
- package/dist/classes/texture-3d.js +76 -0
- package/dist/classes/texture-3d.js.map +1 -0
- package/dist/classes/texture-cube.d.ts +28 -0
- package/dist/classes/texture-cube.d.ts.map +1 -0
- package/dist/classes/texture-cube.js +130 -0
- package/dist/classes/texture-cube.js.map +1 -0
- package/dist/classes/texture-formats.d.ts +37 -0
- package/dist/classes/texture-formats.d.ts.map +1 -0
- package/dist/classes/texture-formats.js +98 -0
- package/dist/classes/texture-formats.js.map +1 -0
- package/dist/classes/texture.d.ts +123 -0
- package/dist/classes/texture.d.ts.map +1 -0
- package/dist/classes/texture.js +786 -0
- package/dist/classes/texture.js.map +1 -0
- package/dist/classes/transform-feedback.d.ts +33 -0
- package/dist/classes/transform-feedback.d.ts.map +1 -0
- package/dist/classes/transform-feedback.js +198 -0
- package/dist/classes/transform-feedback.js.map +1 -0
- package/dist/classes/uniform-buffer-layout.d.ts +17 -0
- package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
- package/dist/classes/uniform-buffer-layout.js +104 -0
- package/dist/classes/uniform-buffer-layout.js.map +1 -0
- package/dist/classes/uniforms.d.ts +37 -0
- package/dist/classes/uniforms.d.ts.map +1 -0
- package/dist/classes/uniforms.js +250 -0
- package/dist/classes/uniforms.js.map +1 -0
- package/dist/classes/vertex-array-object.d.ts +76 -0
- package/dist/classes/vertex-array-object.d.ts.map +1 -0
- package/dist/classes/vertex-array-object.js +261 -0
- package/dist/classes/vertex-array-object.js.map +1 -0
- package/dist/classes/vertex-array.d.ts +75 -0
- package/dist/classes/vertex-array.d.ts.map +1 -0
- package/dist/classes/vertex-array.js +408 -0
- package/dist/classes/vertex-array.js.map +1 -0
- package/dist/classes/webgl-buffer.d.ts +100 -0
- package/dist/classes/webgl-buffer.d.ts.map +1 -0
- package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
- package/dist/classes/webgl-buffer.js.map +1 -0
- package/dist/classes/webgl-resource.d.ts +56 -0
- package/dist/classes/webgl-resource.d.ts.map +1 -0
- package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
- package/dist/classes/webgl-resource.js.map +1 -0
- package/dist/context/context/context-state.d.ts +18 -0
- package/dist/context/context/context-state.d.ts.map +1 -0
- package/dist/context/context/context-state.js +26 -0
- package/dist/context/context/context-state.js.map +1 -0
- package/dist/context/context/create-context.d.ts +40 -0
- package/dist/context/context/create-context.d.ts.map +1 -0
- package/dist/context/context/create-context.js +37 -0
- package/dist/context/context/create-context.js.map +1 -0
- package/dist/context/context/device-pixels.d.ts +25 -0
- package/dist/context/context/device-pixels.d.ts.map +1 -0
- package/dist/context/context/device-pixels.js +98 -0
- package/dist/context/context/device-pixels.js.map +1 -0
- package/dist/context/context/get-canvas.d.ts +13 -0
- package/dist/context/context/get-canvas.d.ts.map +1 -0
- package/dist/context/context/get-canvas.js +31 -0
- package/dist/context/context/get-canvas.js.map +1 -0
- package/dist/context/context/resize-context.d.ts +20 -0
- package/dist/context/context/resize-context.d.ts.map +1 -0
- package/dist/context/context/resize-context.js +15 -0
- package/dist/context/context/resize-context.js.map +1 -0
- package/dist/context/context/webgl-checks.d.ts +13 -0
- package/dist/context/context/webgl-checks.d.ts.map +1 -0
- package/dist/context/context/webgl-checks.js +34 -0
- package/dist/context/context/webgl-checks.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
- package/dist/context/parameters/unified-parameter-api.js +65 -0
- package/dist/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.js +445 -0
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/context/parameters/webgl-parameters.d.ts +144 -0
- package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
- package/dist/context/parameters/webgl-parameters.js +2 -0
- package/dist/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/context/polyfill/polyfill-context.d.ts +5 -0
- package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-context.js +91 -0
- package/dist/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/context/polyfill/polyfill-table.d.ts +48 -0
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-table.js +160 -0
- package/dist/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.js +21 -0
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/context/state-tracker/track-context-state.d.ts +22 -0
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
- package/dist/context/state-tracker/track-context-state.js +169 -0
- package/dist/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/context/state-tracker/with-parameters.d.ts +13 -0
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
- package/dist/context/state-tracker/with-parameters.js +36 -0
- package/dist/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/debug/debug-program-configuration.d.ts +2 -0
- package/dist/debug/debug-program-configuration.d.ts.map +1 -0
- package/dist/debug/debug-program-configuration.js +40 -0
- package/dist/debug/debug-program-configuration.js.map +1 -0
- package/dist/debug/debug-uniforms.d.ts +12 -0
- package/dist/debug/debug-uniforms.d.ts.map +1 -0
- package/dist/debug/debug-uniforms.js +108 -0
- package/dist/debug/debug-uniforms.js.map +1 -0
- package/dist/debug/debug-vertex-array.d.ts +5 -0
- package/dist/debug/debug-vertex-array.d.ts.map +1 -0
- package/dist/debug/debug-vertex-array.js +118 -0
- package/dist/debug/debug-vertex-array.js.map +1 -0
- package/dist/es5/_deprecated/context-api.js +110 -0
- package/dist/es5/_deprecated/context-api.js.map +1 -0
- package/dist/es5/_deprecated/features.js +118 -0
- package/dist/es5/_deprecated/features.js.map +1 -0
- package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
- package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
- package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-features.js +152 -0
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/es5/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +279 -0
- package/dist/es5/adapter/webgl-device.js.map +1 -0
- package/dist/es5/adapter/webgl-shader.js +155 -0
- package/dist/es5/adapter/webgl-shader.js.map +1 -0
- package/dist/es5/bundle.js +2 -4
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classes/accessor.js +36 -38
- package/dist/es5/classes/accessor.js.map +1 -1
- package/dist/es5/classes/accessor.ts.disabled +159 -0
- package/dist/es5/classes/clear.js +17 -11
- package/dist/es5/classes/clear.js.map +1 -1
- package/dist/es5/classes/copy-and-blit.js +121 -117
- package/dist/es5/classes/copy-and-blit.js.map +1 -1
- package/dist/es5/classes/framebuffer.js +435 -423
- package/dist/es5/classes/framebuffer.js.map +1 -1
- package/dist/es5/classes/program-configuration.js +44 -108
- package/dist/es5/classes/program-configuration.js.map +1 -1
- package/dist/es5/classes/program.js +108 -85
- package/dist/es5/classes/program.js.map +1 -1
- package/dist/es5/classes/query.js +58 -59
- package/dist/es5/classes/query.js.map +1 -1
- package/dist/es5/classes/renderbuffer-formats.js +79 -52
- package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
- package/dist/es5/classes/renderbuffer.js +129 -100
- package/dist/es5/classes/renderbuffer.js.map +1 -1
- package/dist/es5/classes/shader.js +70 -96
- package/dist/es5/classes/shader.js.map +1 -1
- package/dist/es5/classes/texture-2d.js +25 -21
- package/dist/es5/classes/texture-2d.js.map +1 -1
- package/dist/es5/classes/texture-3d.js +49 -29
- package/dist/es5/classes/texture-3d.js.map +1 -1
- package/dist/es5/classes/texture-cube.js +45 -36
- package/dist/es5/classes/texture-cube.js.map +1 -1
- package/dist/es5/classes/texture-formats.js +35 -33
- package/dist/es5/classes/texture-formats.js.map +1 -1
- package/dist/es5/classes/texture.js +213 -101
- package/dist/es5/classes/texture.js.map +1 -1
- package/dist/es5/classes/transform-feedback.js +37 -34
- package/dist/es5/classes/transform-feedback.js.map +1 -1
- package/dist/es5/classes/uniform-buffer-layout.js +4 -4
- package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/es5/classes/uniforms.js +73 -73
- package/dist/es5/classes/uniforms.js.map +1 -1
- package/dist/es5/classes/vertex-array-object.js +106 -149
- package/dist/es5/classes/vertex-array-object.js.map +1 -1
- package/dist/es5/classes/vertex-array.js +52 -43
- package/dist/es5/classes/vertex-array.js.map +1 -1
- package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
- package/dist/es5/classes/webgl-buffer.js.map +1 -0
- package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
- package/dist/es5/classes/webgl-resource.js.map +1 -0
- package/dist/es5/context/context/context-state.js +31 -0
- package/dist/es5/context/context/context-state.js.map +1 -0
- package/dist/es5/context/context/create-context.js +57 -0
- package/dist/es5/context/context/create-context.js.map +1 -0
- package/dist/es5/context/context/device-pixels.js +115 -0
- package/dist/es5/context/context/device-pixels.js.map +1 -0
- package/dist/es5/context/context/get-canvas.js +40 -0
- package/dist/es5/context/context/get-canvas.js.map +1 -0
- package/dist/es5/context/context/resize-context.js +23 -0
- package/dist/es5/context/context/resize-context.js.map +1 -0
- package/dist/es5/context/context/webgl-checks.js +54 -0
- package/dist/es5/context/context/webgl-checks.js.map +1 -0
- package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/es5/context/parameters/webgl-parameters.js +6 -0
- package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-context.js +134 -0
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-table.js +166 -0
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/es5/context/state-tracker/track-context-state.js +196 -0
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/es5/context/state-tracker/with-parameters.js +44 -0
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/es5/debug/debug-program-configuration.js +1 -1
- package/dist/es5/debug/debug-program-configuration.js.map +1 -1
- package/dist/es5/debug/debug-uniforms.js +18 -20
- package/dist/es5/debug/debug-uniforms.js.map +1 -1
- package/dist/es5/debug/debug-vertex-array.js +16 -16
- package/dist/es5/debug/debug-vertex-array.js.map +1 -1
- package/dist/es5/helpers/get-program-bindings.js +274 -0
- package/dist/es5/helpers/get-program-bindings.js.map +1 -0
- package/dist/es5/helpers/program-bindings.js +2 -0
- package/dist/es5/helpers/program-bindings.js.map +1 -0
- package/dist/es5/index.js +229 -99
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +21 -41
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/types/accessor.d.ts +29 -0
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/webgl-utils/attribute-utils.js +4 -4
- package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
- package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/es5/webgl-utils/format-utils.js +21 -17
- package/dist/es5/webgl-utils/format-utils.js.map +1 -1
- package/dist/es5/webgl-utils/get-error.js.map +1 -1
- package/dist/es5/webgl-utils/index.js +74 -0
- package/dist/es5/webgl-utils/index.js.map +1 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
- package/dist/es5/webgl-utils/texture-utils.js +6 -4
- package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
- package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
- package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/esm/_deprecated/context-api.js +70 -0
- package/dist/esm/_deprecated/context-api.js.map +1 -0
- package/dist/esm/{features/webgl-features-table.js → _deprecated/features.js} +66 -26
- package/dist/esm/_deprecated/features.js.map +1 -0
- package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
- package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
- package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-features.js +123 -0
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/esm/adapter/device-helpers/is-old-ie.js +8 -0
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +208 -0
- package/dist/esm/adapter/webgl-device.js.map +1 -0
- package/dist/esm/adapter/webgl-shader.js +82 -0
- package/dist/esm/adapter/webgl-shader.js.map +1 -0
- package/dist/esm/bundle.js +2 -4
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classes/accessor.js +6 -6
- package/dist/esm/classes/accessor.js.map +1 -1
- package/dist/esm/classes/accessor.ts.disabled +159 -0
- package/dist/esm/classes/clear.js +19 -14
- package/dist/esm/classes/clear.js.map +1 -1
- package/dist/esm/classes/copy-and-blit.js +67 -64
- package/dist/esm/classes/copy-and-blit.js.map +1 -1
- package/dist/esm/classes/framebuffer.js +341 -313
- package/dist/esm/classes/framebuffer.js.map +1 -1
- package/dist/esm/classes/program-configuration.js +25 -104
- package/dist/esm/classes/program-configuration.js.map +1 -1
- package/dist/esm/classes/program.js +98 -62
- package/dist/esm/classes/program.js.map +1 -1
- package/dist/esm/classes/query.js +20 -16
- package/dist/esm/classes/query.js.map +1 -1
- package/dist/esm/classes/renderbuffer-formats.js +72 -49
- package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
- package/dist/esm/classes/renderbuffer.js +86 -73
- package/dist/esm/classes/renderbuffer.js.map +1 -1
- package/dist/esm/classes/shader.js +47 -67
- package/dist/esm/classes/shader.js.map +1 -1
- package/dist/esm/classes/texture-2d.js +13 -9
- package/dist/esm/classes/texture-2d.js.map +1 -1
- package/dist/esm/classes/texture-3d.js +28 -16
- package/dist/esm/classes/texture-3d.js.map +1 -1
- package/dist/esm/classes/texture-cube.js +45 -31
- package/dist/esm/classes/texture-cube.js.map +1 -1
- package/dist/esm/classes/texture-formats.js +52 -51
- package/dist/esm/classes/texture-formats.js.map +1 -1
- package/dist/esm/classes/texture.js +174 -58
- package/dist/esm/classes/texture.js.map +1 -1
- package/dist/esm/classes/transform-feedback.js +26 -14
- package/dist/esm/classes/transform-feedback.js.map +1 -1
- package/dist/esm/classes/uniform-buffer-layout.js +1 -1
- package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/esm/classes/uniforms.js +111 -113
- package/dist/esm/classes/uniforms.js.map +1 -1
- package/dist/esm/classes/vertex-array-object.js +52 -89
- package/dist/esm/classes/vertex-array-object.js.map +1 -1
- package/dist/esm/classes/vertex-array.js +52 -31
- package/dist/esm/classes/vertex-array.js.map +1 -1
- package/dist/esm/classes/webgl-buffer.js +382 -0
- package/dist/esm/classes/webgl-buffer.js.map +1 -0
- package/dist/esm/classes/webgl-resource.js +212 -0
- package/dist/esm/classes/webgl-resource.js.map +1 -0
- package/dist/esm/context/context/context-state.js +26 -0
- package/dist/esm/context/context/context-state.js.map +1 -0
- package/dist/esm/context/context/create-context.js +37 -0
- package/dist/esm/context/context/create-context.js.map +1 -0
- package/dist/esm/context/context/device-pixels.js +98 -0
- package/dist/esm/context/context/device-pixels.js.map +1 -0
- package/dist/esm/context/context/get-canvas.js +31 -0
- package/dist/esm/context/context/get-canvas.js.map +1 -0
- package/dist/esm/context/context/resize-context.js +15 -0
- package/dist/esm/context/context/resize-context.js.map +1 -0
- package/dist/esm/context/context/webgl-checks.js +34 -0
- package/dist/esm/context/context/webgl-checks.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/esm/context/parameters/webgl-parameters.js +2 -0
- package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-context.js +91 -0
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-table.js +160 -0
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/esm/context/state-tracker/track-context-state.js +169 -0
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/esm/context/state-tracker/with-parameters.js +36 -0
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/esm/debug/debug-program-configuration.js +4 -4
- package/dist/esm/debug/debug-program-configuration.js.map +1 -1
- package/dist/esm/debug/debug-uniforms.js +9 -9
- package/dist/esm/debug/debug-uniforms.js.map +1 -1
- package/dist/esm/debug/debug-vertex-array.js +18 -16
- package/dist/esm/debug/debug-vertex-array.js.map +1 -1
- package/dist/esm/helpers/get-program-bindings.js +228 -0
- package/dist/esm/helpers/get-program-bindings.js.map +1 -0
- package/dist/esm/helpers/program-bindings.js +2 -0
- package/dist/esm/helpers/program-bindings.js.map +1 -0
- package/dist/esm/index.js +19 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +12 -28
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/accessor.d.ts +29 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/webgl-utils/attribute-utils.js +1 -1
- package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
- package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/esm/webgl-utils/format-utils.js +16 -15
- package/dist/esm/webgl-utils/format-utils.js.map +1 -1
- package/dist/esm/webgl-utils/get-error.js +1 -1
- package/dist/esm/webgl-utils/get-error.js.map +1 -1
- package/dist/esm/webgl-utils/index.js +5 -0
- package/dist/esm/webgl-utils/index.js.map +1 -0
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
- package/dist/esm/webgl-utils/texture-utils.js +4 -3
- package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
- package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
- package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/helpers/get-program-bindings.d.ts +8 -0
- package/dist/helpers/get-program-bindings.d.ts.map +1 -0
- package/dist/helpers/get-program-bindings.js +228 -0
- package/dist/helpers/get-program-bindings.js.map +1 -0
- package/dist/helpers/program-bindings.d.ts +41 -0
- package/dist/helpers/program-bindings.d.ts.map +1 -0
- package/dist/helpers/program-bindings.js +2 -0
- package/dist/helpers/program-bindings.js.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +5 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +33 -0
- package/dist/init.js.map +1 -0
- package/dist/types/accessor.d.ts +29 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/webgl-utils/attribute-utils.d.ts +18 -0
- package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
- package/dist/webgl-utils/attribute-utils.js +182 -0
- package/dist/webgl-utils/attribute-utils.js.map +1 -0
- package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
- package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
- package/dist/webgl-utils/constants-to-keys.js +41 -0
- package/dist/webgl-utils/constants-to-keys.js.map +1 -0
- package/dist/webgl-utils/format-utils.d.ts +3 -0
- package/dist/webgl-utils/format-utils.d.ts.map +1 -0
- package/dist/webgl-utils/format-utils.js +45 -0
- package/dist/webgl-utils/format-utils.js.map +1 -0
- package/dist/webgl-utils/get-error.d.ts +3 -0
- package/dist/webgl-utils/get-error.d.ts.map +1 -0
- package/dist/webgl-utils/get-error.js +41 -0
- package/dist/webgl-utils/get-error.js.map +1 -0
- package/dist/webgl-utils/index.d.ts +5 -0
- package/dist/webgl-utils/index.d.ts.map +1 -0
- package/dist/webgl-utils/index.js +5 -0
- package/dist/webgl-utils/index.js.map +1 -0
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
- package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
- package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
- package/dist/webgl-utils/request-animation-frame.js +7 -0
- package/dist/webgl-utils/request-animation-frame.js.map +1 -0
- package/dist/webgl-utils/texture-utils.d.ts +15 -0
- package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
- package/dist/webgl-utils/texture-utils.js +48 -0
- package/dist/webgl-utils/texture-utils.js.map +1 -0
- package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
- package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
- package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
- package/dist/webgl-utils/typed-array-utils.js.map +1 -0
- package/package.json +9 -9
- package/src/.DS_Store +0 -0
- package/src/_deprecated/context-api.ts +140 -0
- package/src/_deprecated/features.ts +159 -0
- package/src/adapter/converters/set-device-parameters.ts +182 -0
- package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
- package/src/adapter/device-helpers/device-features.ts +227 -0
- package/src/adapter/device-helpers/device-limits.ts +150 -0
- package/src/adapter/device-helpers/get-device-info.ts +49 -0
- package/src/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.ts} +3 -3
- package/src/adapter/webgl-device.ts +406 -0
- package/src/adapter/webgl-shader.ts +84 -0
- package/src/bundle.ts +4 -0
- package/src/classes/accessor.js +2 -3
- package/src/classes/accessor.ts.disabled +159 -0
- package/src/classes/clear.ts +108 -0
- package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
- package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
- package/src/classes/program-configuration.ts +77 -0
- package/src/classes/{program.js → program.ts} +111 -77
- package/src/classes/{query.js → query.ts} +31 -25
- package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
- package/src/classes/renderbuffer.ts +154 -0
- package/src/classes/shader.ts +129 -0
- package/src/classes/texture-2d.ts +35 -0
- package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
- package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
- package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
- package/src/classes/{texture.js → texture.ts} +223 -57
- package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
- package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
- package/src/classes/{uniforms.js → uniforms.ts} +123 -77
- package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +136 -114
- package/src/classes/{vertex-array.js → vertex-array.ts} +84 -59
- package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
- package/src/classes/{resource.js → webgl-resource.ts} +55 -46
- package/src/context/context/context-state.ts +39 -0
- package/src/context/context/create-context.ts +83 -0
- package/src/context/context/device-pixels.ts +147 -0
- package/src/context/context/get-canvas.ts +37 -0
- package/src/context/context/resize-context.ts +37 -0
- package/src/context/context/webgl-checks.ts +49 -0
- package/src/context/parameters/unified-parameter-api.ts +128 -0
- package/src/context/parameters/webgl-parameter-tables.ts +625 -0
- package/src/context/parameters/webgl-parameters.ts +197 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
- package/src/context/polyfill/polyfill-context.ts +98 -0
- package/src/context/polyfill/polyfill-table.ts +162 -0
- package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
- package/src/context/state-tracker/deep-array-equal.ts +20 -0
- package/src/context/state-tracker/track-context-state.ts +250 -0
- package/src/context/state-tracker/with-parameters.ts +50 -0
- package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
- package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
- package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
- package/src/helpers/get-program-bindings.ts +244 -0
- package/src/helpers/program-bindings.ts +46 -0
- package/src/index.ts +144 -0
- package/src/{init.js → init.ts} +11 -25
- package/src/types/accessor.d.ts +29 -0
- package/src/{types.d.ts → types.ts} +1 -1
- package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
- package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
- package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
- package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
- package/src/webgl-utils/index.ts +12 -0
- package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
- package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
- package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
- package/src/webgl-utils/typed-array-utils.ts +137 -0
- package/dist/dist.js +0 -13555
- package/dist/dist.min.js +0 -1
- package/dist/es5/classes/buffer.d.ts +0 -84
- package/dist/es5/classes/buffer.js.map +0 -1
- package/dist/es5/classes/clear.d.ts +0 -11
- package/dist/es5/classes/copy-and-blit.d.ts +0 -101
- package/dist/es5/classes/framebuffer.d.ts +0 -96
- package/dist/es5/classes/program-configuration.d.ts +0 -15
- package/dist/es5/classes/program.d.ts +0 -44
- package/dist/es5/classes/query.d.ts +0 -21
- package/dist/es5/classes/renderbuffer.d.ts +0 -34
- package/dist/es5/classes/resource.d.ts +0 -47
- package/dist/es5/classes/resource.js.map +0 -1
- package/dist/es5/classes/shader.d.ts +0 -29
- package/dist/es5/classes/texture-2d.d.ts +0 -11
- package/dist/es5/classes/texture-3d.d.ts +0 -29
- package/dist/es5/classes/texture-cube.d.ts +0 -23
- package/dist/es5/classes/texture.d.ts +0 -80
- package/dist/es5/classes/transform-feedback.d.ts +0 -16
- package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
- package/dist/es5/classes/uniforms.d.ts +0 -63
- package/dist/es5/classes/vertex-array-object.d.ts +0 -25
- package/dist/es5/classes/vertex-array.d.ts +0 -37
- package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
- package/dist/es5/debug/debug-uniforms.d.ts +0 -11
- package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
- package/dist/es5/features/check-glsl-extension.js +0 -41
- package/dist/es5/features/check-glsl-extension.js.map +0 -1
- package/dist/es5/features/check-old-ie.js.map +0 -1
- package/dist/es5/features/features.js +0 -99
- package/dist/es5/features/features.js.map +0 -1
- package/dist/es5/features/index.js +0 -64
- package/dist/es5/features/index.js.map +0 -1
- package/dist/es5/features/limits.js +0 -64
- package/dist/es5/features/limits.js.map +0 -1
- package/dist/es5/features/webgl-features-table.js +0 -64
- package/dist/es5/features/webgl-features-table.js.map +0 -1
- package/dist/es5/features/webgl-limits-table.js +0 -132
- package/dist/es5/features/webgl-limits-table.js.map +0 -1
- package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
- package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
- package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-name.js +0 -14
- package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
- package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-version.js +0 -22
- package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
- package/dist/es5/glsl-utils/index.js +0 -48
- package/dist/es5/glsl-utils/index.js.map +0 -1
- package/dist/es5/index.d.ts +0 -71
- package/dist/es5/init.d.ts +0 -12
- package/dist/es5/types.d.ts +0 -8
- package/dist/es5/utils/array-utils-flat.js +0 -51
- package/dist/es5/utils/array-utils-flat.js.map +0 -1
- package/dist/es5/utils/assert.d.ts +0 -1
- package/dist/es5/utils/assert.js +0 -13
- package/dist/es5/utils/assert.js.map +0 -1
- package/dist/es5/utils/check-props.js +0 -51
- package/dist/es5/utils/check-props.js.map +0 -1
- package/dist/es5/utils/format-value.js +0 -57
- package/dist/es5/utils/format-value.js.map +0 -1
- package/dist/es5/utils/is-old-ie.d.ts +0 -1
- package/dist/es5/utils/is-old-ie.js +0 -14
- package/dist/es5/utils/is-old-ie.js.map +0 -1
- package/dist/es5/utils/load-file.js +0 -50
- package/dist/es5/utils/load-file.js.map +0 -1
- package/dist/es5/utils/stub-methods.js +0 -25
- package/dist/es5/utils/stub-methods.js.map +0 -1
- package/dist/es5/utils/utils.d.ts +0 -13
- package/dist/es5/utils/utils.js +0 -36
- package/dist/es5/utils/utils.js.map +0 -1
- package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
- package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
- package/dist/esm/classes/buffer.d.ts +0 -84
- package/dist/esm/classes/buffer.js.map +0 -1
- package/dist/esm/classes/clear.d.ts +0 -11
- package/dist/esm/classes/copy-and-blit.d.ts +0 -101
- package/dist/esm/classes/framebuffer.d.ts +0 -96
- package/dist/esm/classes/program-configuration.d.ts +0 -15
- package/dist/esm/classes/program.d.ts +0 -44
- package/dist/esm/classes/query.d.ts +0 -21
- package/dist/esm/classes/renderbuffer.d.ts +0 -34
- package/dist/esm/classes/resource.d.ts +0 -47
- package/dist/esm/classes/resource.js.map +0 -1
- package/dist/esm/classes/shader.d.ts +0 -29
- package/dist/esm/classes/texture-2d.d.ts +0 -11
- package/dist/esm/classes/texture-3d.d.ts +0 -29
- package/dist/esm/classes/texture-cube.d.ts +0 -23
- package/dist/esm/classes/texture.d.ts +0 -80
- package/dist/esm/classes/transform-feedback.d.ts +0 -16
- package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
- package/dist/esm/classes/uniforms.d.ts +0 -63
- package/dist/esm/classes/vertex-array-object.d.ts +0 -25
- package/dist/esm/classes/vertex-array.d.ts +0 -37
- package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
- package/dist/esm/debug/debug-uniforms.d.ts +0 -11
- package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
- package/dist/esm/features/check-glsl-extension.js +0 -27
- package/dist/esm/features/check-glsl-extension.js.map +0 -1
- package/dist/esm/features/check-old-ie.js.map +0 -1
- package/dist/esm/features/features.js +0 -66
- package/dist/esm/features/features.js.map +0 -1
- package/dist/esm/features/index.js +0 -5
- package/dist/esm/features/index.js.map +0 -1
- package/dist/esm/features/limits.js +0 -52
- package/dist/esm/features/limits.js.map +0 -1
- package/dist/esm/features/webgl-features-table.js.map +0 -1
- package/dist/esm/features/webgl-limits-table.js +0 -160
- package/dist/esm/features/webgl-limits-table.js.map +0 -1
- package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
- package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
- package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-name.js +0 -6
- package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
- package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-version.js +0 -15
- package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
- package/dist/esm/glsl-utils/index.js +0 -5
- package/dist/esm/glsl-utils/index.js.map +0 -1
- package/dist/esm/index.d.ts +0 -71
- package/dist/esm/init.d.ts +0 -12
- package/dist/esm/types.d.ts +0 -8
- package/dist/esm/utils/array-utils-flat.js +0 -39
- package/dist/esm/utils/array-utils-flat.js.map +0 -1
- package/dist/esm/utils/assert.d.ts +0 -1
- package/dist/esm/utils/assert.js +0 -6
- package/dist/esm/utils/assert.js.map +0 -1
- package/dist/esm/utils/check-props.js +0 -38
- package/dist/esm/utils/check-props.js.map +0 -1
- package/dist/esm/utils/format-value.js +0 -50
- package/dist/esm/utils/format-value.js.map +0 -1
- package/dist/esm/utils/is-old-ie.d.ts +0 -1
- package/dist/esm/utils/is-old-ie.js +0 -5
- package/dist/esm/utils/is-old-ie.js.map +0 -1
- package/dist/esm/utils/load-file.js +0 -30
- package/dist/esm/utils/load-file.js.map +0 -1
- package/dist/esm/utils/stub-methods.js +0 -17
- package/dist/esm/utils/stub-methods.js.map +0 -1
- package/dist/esm/utils/utils.d.ts +0 -13
- package/dist/esm/utils/utils.js +0 -22
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
- package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
- package/src/bundle.js +0 -8
- package/src/classes/buffer.d.ts +0 -84
- package/src/classes/clear.d.ts +0 -11
- package/src/classes/copy-and-blit.d.ts +0 -101
- package/src/classes/framebuffer.d.ts +0 -96
- package/src/classes/program-configuration.d.ts +0 -15
- package/src/classes/program-configuration.js +0 -123
- package/src/classes/program.d.ts +0 -44
- package/src/classes/query.d.ts +0 -21
- package/src/classes/renderbuffer.d.ts +0 -34
- package/src/classes/renderbuffer.js +0 -105
- package/src/classes/resource.d.ts +0 -47
- package/src/classes/shader.d.ts +0 -29
- package/src/classes/shader.js +0 -147
- package/src/classes/texture-2d.d.ts +0 -11
- package/src/classes/texture-2d.js +0 -30
- package/src/classes/texture-3d.d.ts +0 -29
- package/src/classes/texture-cube.d.ts +0 -23
- package/src/classes/texture.d.ts +0 -80
- package/src/classes/transform-feedback.d.ts +0 -16
- package/src/classes/uniform-buffer-layout.d.ts +0 -18
- package/src/classes/uniforms.d.ts +0 -63
- package/src/classes/vertex-array-object.d.ts +0 -25
- package/src/classes/vertex-array.d.ts +0 -37
- package/src/debug/debug-program-configuration.d.ts +0 -1
- package/src/debug/debug-uniforms.d.ts +0 -11
- package/src/debug/debug-vertex-array.d.ts +0 -1
- package/src/features/check-glsl-extension.js +0 -34
- package/src/features/features.js +0 -79
- package/src/features/index.js +0 -5
- package/src/features/limits.js +0 -65
- package/src/features/webgl-limits-table.js +0 -51
- package/src/glsl-utils/format-glsl-error.d.ts +0 -16
- package/src/glsl-utils/format-glsl-error.js +0 -107
- package/src/glsl-utils/get-shader-name.js +0 -7
- package/src/glsl-utils/get-shader-type-name.js +0 -13
- package/src/glsl-utils/get-shader-version.js +0 -12
- package/src/glsl-utils/index.js +0 -8
- package/src/index.d.ts +0 -71
- package/src/index.js +0 -70
- package/src/init.d.ts +0 -12
- package/src/utils/array-utils-flat.js +0 -56
- package/src/utils/assert.d.ts +0 -1
- package/src/utils/assert.js +0 -7
- package/src/utils/check-props.js +0 -68
- package/src/utils/format-value.js +0 -37
- package/src/utils/is-old-ie.d.ts +0 -1
- package/src/utils/is-old-ie.js +0 -6
- package/src/utils/load-file.js +0 -39
- package/src/utils/stub-methods.js +0 -20
- package/src/utils/utils.d.ts +0 -13
- package/src/utils/utils.js +0 -36
- package/src/webgl-utils/request-animation-frame.d.ts +0 -3
- package/src/webgl-utils/texture-utils.d.ts +0 -11
- package/src/webgl-utils/typed-array-utils.d.ts +0 -36
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import {Device, log, assert, uid, isPowerOfTwo} from '@luma.gl/api';
|
|
2
|
+
import {Texture, TextureProps} from '@luma.gl/api';
|
|
1
3
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import {isWebGL2, assertWebGL2Context
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import Buffer from './buffer';
|
|
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 '../adapter/webgl-device';
|
|
8
|
+
import Buffer from './webgl-buffer';
|
|
7
9
|
import {
|
|
8
10
|
TEXTURE_FORMATS,
|
|
9
11
|
DATA_FORMAT_CHANNELS,
|
|
@@ -11,23 +13,56 @@ import {
|
|
|
11
13
|
isFormatSupported,
|
|
12
14
|
isLinearFilteringSupported
|
|
13
15
|
} from './texture-formats';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
export type {TextureProps};
|
|
18
|
+
|
|
19
|
+
export type TextureSupportOptions = {
|
|
20
|
+
format?: any;
|
|
21
|
+
linearFiltering?: any;
|
|
22
|
+
};
|
|
16
23
|
|
|
17
24
|
// Supported min filters for NPOT texture.
|
|
18
25
|
const NPOT_MIN_FILTERS = [GL.LINEAR, GL.NEAREST];
|
|
19
26
|
|
|
20
27
|
// Polyfill
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
export default class WEBGLTexture extends Texture {
|
|
29
|
+
readonly MAX_ATTRIBUTES: number;
|
|
30
|
+
readonly device: WebGLDevice;
|
|
31
|
+
readonly gl: WebGLRenderingContext;
|
|
32
|
+
readonly gl2: WebGL2RenderingContext | null;
|
|
33
|
+
readonly handle: WebGLTexture;
|
|
34
|
+
|
|
35
|
+
data;
|
|
36
|
+
|
|
37
|
+
width: number;
|
|
38
|
+
height: number;
|
|
39
|
+
depth: number;
|
|
40
|
+
|
|
41
|
+
format = undefined;
|
|
42
|
+
type = undefined;
|
|
43
|
+
dataFormat = undefined;
|
|
44
|
+
border = undefined;
|
|
45
|
+
mipmaps: boolean = undefined;
|
|
46
|
+
|
|
47
|
+
target: GL;
|
|
48
|
+
textureUnit: number = undefined;
|
|
49
|
+
|
|
50
|
+
// Program.draw() checks the loaded flag of all textures to avoid
|
|
51
|
+
// Textures that are still loading from promises
|
|
52
|
+
// Set to true as soon as texture has been initialized with valid data
|
|
53
|
+
loaded = false;
|
|
54
|
+
_video;
|
|
55
|
+
|
|
56
|
+
static isSupported(
|
|
57
|
+
device: Device | WebGLRenderingContext,
|
|
58
|
+
options?: TextureSupportOptions
|
|
59
|
+
): boolean {
|
|
60
|
+
const webglDevice = WebGLDevice.attach(device);
|
|
61
|
+
const {format, linearFiltering} = options;
|
|
27
62
|
let supported = true;
|
|
28
63
|
if (format) {
|
|
29
|
-
supported = supported && isFormatSupported(gl, format);
|
|
30
|
-
supported = supported && (!linearFiltering || isLinearFilteringSupported(gl, format));
|
|
64
|
+
supported = supported && isFormatSupported(webglDevice.gl, format);
|
|
65
|
+
supported = supported && (!linearFiltering || isLinearFilteringSupported(webglDevice.gl, format));
|
|
31
66
|
}
|
|
32
67
|
return supported;
|
|
33
68
|
}
|
|
@@ -42,7 +77,9 @@ export default class Texture extends Resource {
|
|
|
42
77
|
// you must always bind it as a GL_TEXTURE_2D;
|
|
43
78
|
// attempting to bind it as GL_TEXTURE_1D will give rise to an error
|
|
44
79
|
// (while run-time).
|
|
45
|
-
constructor(
|
|
80
|
+
constructor(device: Device | WebGLRenderingContext, props: TextureProps) {
|
|
81
|
+
super(WebGLDevice.attach(device), props);
|
|
82
|
+
|
|
46
83
|
const {
|
|
47
84
|
id = uid('texture'),
|
|
48
85
|
handle,
|
|
@@ -50,8 +87,6 @@ export default class Texture extends Resource {
|
|
|
50
87
|
// , magFilter, minFilter, wrapS, wrapT
|
|
51
88
|
} = props;
|
|
52
89
|
|
|
53
|
-
super(gl, {id, handle});
|
|
54
|
-
|
|
55
90
|
this.target = target;
|
|
56
91
|
this.textureUnit = undefined;
|
|
57
92
|
|
|
@@ -69,18 +104,33 @@ export default class Texture extends Resource {
|
|
|
69
104
|
this.border = undefined;
|
|
70
105
|
this.textureUnit = undefined;
|
|
71
106
|
this.mipmaps = undefined;
|
|
107
|
+
|
|
108
|
+
this.device = WebGLDevice.attach(device);
|
|
109
|
+
this.gl = this.device.gl;
|
|
110
|
+
this.gl2 = this.device.gl2;
|
|
111
|
+
this.handle = this.props.handle || this.gl.createTexture();
|
|
72
112
|
}
|
|
73
113
|
|
|
74
|
-
|
|
114
|
+
destroy(): void {
|
|
115
|
+
if (this.handle) {
|
|
116
|
+
this.gl.deleteTexture(this.handle);
|
|
117
|
+
this.removeStats();
|
|
118
|
+
this.trackDeallocatedMemory('Texture');
|
|
119
|
+
// @ts-expect-error
|
|
120
|
+
this.handle = null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
toString(): string {
|
|
75
125
|
return `Texture(${this.id},${this.width}x${this.height})`;
|
|
76
126
|
}
|
|
77
127
|
|
|
78
|
-
|
|
79
|
-
initialize(props = {}) {
|
|
128
|
+
// eslint-disable-next-line max-statements
|
|
129
|
+
initialize(props: TextureProps = {}): this {
|
|
80
130
|
let data = props.data;
|
|
81
131
|
|
|
82
132
|
if (data instanceof Promise) {
|
|
83
|
-
data.then(resolvedImageData =>
|
|
133
|
+
data.then((resolvedImageData) =>
|
|
84
134
|
this.initialize(
|
|
85
135
|
Object.assign({}, props, {
|
|
86
136
|
pixels: resolvedImageData,
|
|
@@ -91,7 +141,7 @@ export default class Texture extends Resource {
|
|
|
91
141
|
return this;
|
|
92
142
|
}
|
|
93
143
|
const isVideo = typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement;
|
|
94
|
-
// @ts-
|
|
144
|
+
// @ts-expect-error
|
|
95
145
|
if (isVideo && data.readyState < HTMLVideoElement.HAVE_METADATA) {
|
|
96
146
|
this._video = null; // Declare member before the object is sealed
|
|
97
147
|
data.addEventListener('loadeddata', () => this.initialize(props));
|
|
@@ -183,7 +233,7 @@ export default class Texture extends Resource {
|
|
|
183
233
|
this._video = {
|
|
184
234
|
video: data,
|
|
185
235
|
parameters,
|
|
186
|
-
// @ts-
|
|
236
|
+
// @ts-expect-error
|
|
187
237
|
lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1
|
|
188
238
|
};
|
|
189
239
|
}
|
|
@@ -191,10 +241,10 @@ export default class Texture extends Resource {
|
|
|
191
241
|
return this;
|
|
192
242
|
}
|
|
193
243
|
|
|
194
|
-
update() {
|
|
244
|
+
update(): this {
|
|
195
245
|
if (this._video) {
|
|
196
246
|
const {video, parameters, lastTime} = this._video;
|
|
197
|
-
// @ts-
|
|
247
|
+
// @ts-expect-error
|
|
198
248
|
if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {
|
|
199
249
|
return;
|
|
200
250
|
}
|
|
@@ -211,7 +261,7 @@ export default class Texture extends Resource {
|
|
|
211
261
|
|
|
212
262
|
// If size has changed, reinitializes with current format
|
|
213
263
|
// note clears image and mipmaps
|
|
214
|
-
resize({height, width, mipmaps = false}) {
|
|
264
|
+
resize({height, width, mipmaps = false}): this {
|
|
215
265
|
if (width !== this.width || height !== this.height) {
|
|
216
266
|
return this.initialize({
|
|
217
267
|
width,
|
|
@@ -227,7 +277,7 @@ export default class Texture extends Resource {
|
|
|
227
277
|
}
|
|
228
278
|
|
|
229
279
|
// Call to regenerate mipmaps after modifying texture(s)
|
|
230
|
-
generateMipmap(params = {}) {
|
|
280
|
+
generateMipmap(params = {}): this {
|
|
231
281
|
if (this._isNPOT()) {
|
|
232
282
|
log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)();
|
|
233
283
|
return this;
|
|
@@ -264,9 +314,9 @@ export default class Texture extends Resource {
|
|
|
264
314
|
* @param {GLint} border - must be 0.
|
|
265
315
|
* @parameters - temporary settings to be applied, can be used to supply pixel store settings.
|
|
266
316
|
*/
|
|
267
|
-
|
|
317
|
+
// eslint-disable-next-line max-statements, complexity
|
|
268
318
|
setImageData(options) {
|
|
269
|
-
this.
|
|
319
|
+
this.trackDeallocatedMemory('Texture');
|
|
270
320
|
|
|
271
321
|
const {
|
|
272
322
|
target = this.target,
|
|
@@ -318,7 +368,6 @@ export default class Texture extends Resource {
|
|
|
318
368
|
case 'typed-array':
|
|
319
369
|
// Looks like this assert is not necessary, as offset is ignored under WebGL1
|
|
320
370
|
// assert((offset === 0 || isWebGL2(gl)), 'offset supported in WebGL2 only');
|
|
321
|
-
// @ts-ignore
|
|
322
371
|
gl.texImage2D(
|
|
323
372
|
target,
|
|
324
373
|
level,
|
|
@@ -329,7 +378,7 @@ export default class Texture extends Resource {
|
|
|
329
378
|
dataFormat,
|
|
330
379
|
type,
|
|
331
380
|
data,
|
|
332
|
-
// @ts-
|
|
381
|
+
// @ts-expect-error
|
|
333
382
|
offset
|
|
334
383
|
);
|
|
335
384
|
break;
|
|
@@ -367,21 +416,20 @@ export default class Texture extends Resource {
|
|
|
367
416
|
});
|
|
368
417
|
|
|
369
418
|
if (data && data.byteLength) {
|
|
370
|
-
this.
|
|
419
|
+
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
371
420
|
} else {
|
|
372
421
|
// NOTE(Tarek): Default to RGBA bytes
|
|
373
422
|
const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
|
|
374
423
|
const channelSize = TYPE_SIZES[this.type] || 1;
|
|
375
424
|
|
|
376
|
-
this.
|
|
425
|
+
this.trackAllocatedMemory(this.width * this.height * channels * channelSize, 'Texture');
|
|
377
426
|
}
|
|
378
427
|
|
|
379
428
|
this.loaded = true;
|
|
380
429
|
|
|
381
430
|
return this;
|
|
382
431
|
}
|
|
383
|
-
|
|
384
|
-
|
|
432
|
+
|
|
385
433
|
/**
|
|
386
434
|
* Redefines an area of an existing texture
|
|
387
435
|
* Note: does not allocate storage
|
|
@@ -467,9 +515,9 @@ export default class Texture extends Resource {
|
|
|
467
515
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
|
|
468
516
|
} else if (ArrayBuffer.isView(data)) {
|
|
469
517
|
// const gl2 = assertWebGL2Context(this.gl);
|
|
470
|
-
// @ts-
|
|
518
|
+
// @ts-expect-error last offset parameter is ignored under WebGL1
|
|
471
519
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
|
|
472
|
-
} else if (data instanceof WebGLBuffer) {
|
|
520
|
+
} else if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
|
|
473
521
|
// WebGL2 allows us to create texture directly from a WebGL buffer
|
|
474
522
|
const gl2 = assertWebGL2Context(this.gl);
|
|
475
523
|
// This texImage2D signature uses currently bound GL.PIXEL_UNPACK_BUFFER
|
|
@@ -487,8 +535,7 @@ export default class Texture extends Resource {
|
|
|
487
535
|
|
|
488
536
|
this.gl.bindTexture(this.target, null);
|
|
489
537
|
}
|
|
490
|
-
|
|
491
|
-
|
|
538
|
+
|
|
492
539
|
/**
|
|
493
540
|
* Defines a two-dimensional texture image or cube-map texture image with
|
|
494
541
|
* pixels from the current framebuffer (rather than from client memory).
|
|
@@ -504,7 +551,7 @@ export default class Texture extends Resource {
|
|
|
504
551
|
return null;
|
|
505
552
|
}
|
|
506
553
|
|
|
507
|
-
getActiveUnit() {
|
|
554
|
+
getActiveUnit(): number {
|
|
508
555
|
return this.gl.getParameter(GL.ACTIVE_TEXTURE) - GL.TEXTURE0;
|
|
509
556
|
}
|
|
510
557
|
|
|
@@ -558,7 +605,7 @@ export default class Texture extends Resource {
|
|
|
558
605
|
if (data instanceof Buffer) {
|
|
559
606
|
return {data: data.handle, dataType: 'buffer'};
|
|
560
607
|
}
|
|
561
|
-
if (data instanceof WebGLBuffer) {
|
|
608
|
+
if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
|
|
562
609
|
return {data, dataType: 'buffer'};
|
|
563
610
|
}
|
|
564
611
|
// Assume data is a browser supported object (ImageData, Canvas, ...)
|
|
@@ -660,7 +707,7 @@ export default class Texture extends Resource {
|
|
|
660
707
|
}
|
|
661
708
|
|
|
662
709
|
// eslint-disable-next-line complexity
|
|
663
|
-
_deduceImageSize(data, width, height) {
|
|
710
|
+
_deduceImageSize(data, width, height): {width: number, height: number} {
|
|
664
711
|
let size;
|
|
665
712
|
|
|
666
713
|
if (typeof ImageData !== 'undefined' && data instanceof ImageData) {
|
|
@@ -694,16 +741,135 @@ export default class Texture extends Resource {
|
|
|
694
741
|
|
|
695
742
|
// RESOURCE METHODS
|
|
696
743
|
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
744
|
+
/**
|
|
745
|
+
* Query a Resource parameter
|
|
746
|
+
*
|
|
747
|
+
* @param name
|
|
748
|
+
* @return param
|
|
749
|
+
*/
|
|
750
|
+
getParameter(pname: number, props = {}): any {
|
|
751
|
+
pname = getKeyValue(this.gl, pname);
|
|
752
|
+
assert(pname);
|
|
753
|
+
|
|
754
|
+
// @ts-expect-error
|
|
755
|
+
const parameters = this.constructor.PARAMETERS || {};
|
|
756
|
+
|
|
757
|
+
// Use parameter definitions to handle unsupported parameters
|
|
758
|
+
const parameter = parameters[pname];
|
|
759
|
+
if (parameter) {
|
|
760
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
761
|
+
|
|
762
|
+
// Check if we can query for this parameter
|
|
763
|
+
const parameterAvailable =
|
|
764
|
+
(!('webgl2' in parameter) || isWebgl2) &&
|
|
765
|
+
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
766
|
+
|
|
767
|
+
if (!parameterAvailable) {
|
|
768
|
+
const webgl1Default = parameter.webgl1;
|
|
769
|
+
const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;
|
|
770
|
+
const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;
|
|
771
|
+
return defaultValue;
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
// If unknown parameter - Could be a valid parameter not covered by PARAMS
|
|
776
|
+
// Attempt to query for it and let WebGL report errors
|
|
777
|
+
return this._getParameter(pname, props);
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
// Many resources support a getParameter call -
|
|
781
|
+
// getParameters will get all parameters - slow but useful for debugging
|
|
782
|
+
// eslint-disable-next-line complexity
|
|
783
|
+
getParameters(options: {parameters?, keys?} = {}) {
|
|
784
|
+
const {parameters, keys} = options;
|
|
785
|
+
|
|
786
|
+
// Get parameter definitions for this Resource
|
|
787
|
+
// @ts-expect-error
|
|
788
|
+
const PARAMETERS = this.constructor.PARAMETERS || {};
|
|
789
|
+
|
|
790
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
791
|
+
|
|
792
|
+
const values = {};
|
|
793
|
+
|
|
794
|
+
// Query all parameters if no list provided
|
|
795
|
+
const parameterKeys = parameters || Object.keys(PARAMETERS);
|
|
796
|
+
|
|
797
|
+
// WEBGL limits
|
|
798
|
+
for (const pname of parameterKeys) {
|
|
799
|
+
const parameter = PARAMETERS[pname];
|
|
800
|
+
|
|
801
|
+
// Check if this parameter is available on this platform
|
|
802
|
+
const parameterAvailable =
|
|
803
|
+
parameter &&
|
|
804
|
+
(!('webgl2' in parameter) || isWebgl2) &&
|
|
805
|
+
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
806
|
+
|
|
807
|
+
if (parameterAvailable) {
|
|
808
|
+
const key = keys ? getKey(this.gl, pname) : pname;
|
|
809
|
+
values[key] = this.getParameter(pname, options);
|
|
810
|
+
if (keys && parameter.type === 'GLenum') {
|
|
811
|
+
values[key] = getKey(this.gl, values[key]);
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
return values;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
/**
|
|
820
|
+
* Update a Resource setting
|
|
821
|
+
*
|
|
822
|
+
* @todo - cache parameter to avoid issuing WebGL calls?
|
|
823
|
+
*
|
|
824
|
+
* @param {string} pname - parameter (GL constant, value or key)
|
|
825
|
+
* @param {GLint|GLfloat|GLenum} value
|
|
826
|
+
* @return {Resource} returns self to enable chaining
|
|
827
|
+
*/
|
|
828
|
+
setParameter(pname, value) {
|
|
829
|
+
pname = getKeyValue(this.gl, pname);
|
|
830
|
+
assert(pname);
|
|
831
|
+
|
|
832
|
+
// @ts-expect-error
|
|
833
|
+
const parameters = this.constructor.PARAMETERS || {};
|
|
834
|
+
|
|
835
|
+
const parameter = parameters[pname];
|
|
836
|
+
if (parameter) {
|
|
837
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
838
|
+
|
|
839
|
+
// Check if this parameter is available on this platform
|
|
840
|
+
const parameterAvailable =
|
|
841
|
+
(!('webgl2' in parameter) || isWebgl2) &&
|
|
842
|
+
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
843
|
+
|
|
844
|
+
if (!parameterAvailable) {
|
|
845
|
+
throw new Error('Parameter not available on this platform');
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
// Handle string keys
|
|
849
|
+
if (parameter.type === 'GLenum') {
|
|
850
|
+
// @ts-expect-error
|
|
851
|
+
value = getKeyValue(value);
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
// If unknown parameter - Could be a valid parameter not covered by PARAMS
|
|
856
|
+
// attempt to set it and let WebGL report errors
|
|
857
|
+
this._setParameter(pname, value);
|
|
858
|
+
return this;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
/*
|
|
862
|
+
* Batch update resource parameters
|
|
863
|
+
* Assumes the subclass supports a setParameter call
|
|
864
|
+
*/
|
|
865
|
+
setParameters(parameters) {
|
|
866
|
+
for (const pname in parameters) {
|
|
867
|
+
this.setParameter(pname, parameters[pname]);
|
|
868
|
+
}
|
|
869
|
+
return this;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
_getParameter(pname: number, props?): any {
|
|
707
873
|
switch (pname) {
|
|
708
874
|
case GL.TEXTURE_WIDTH:
|
|
709
875
|
return this.width;
|
|
@@ -717,7 +883,7 @@ export default class Texture extends Resource {
|
|
|
717
883
|
}
|
|
718
884
|
}
|
|
719
885
|
|
|
720
|
-
_setParameter(pname, param) {
|
|
886
|
+
_setParameter(pname: number, param: number): this {
|
|
721
887
|
this.gl.bindTexture(this.target, this.handle);
|
|
722
888
|
|
|
723
889
|
// NOTE: Apply NPOT workaround
|
|
@@ -729,7 +895,7 @@ export default class Texture extends Resource {
|
|
|
729
895
|
switch (pname) {
|
|
730
896
|
case GL.TEXTURE_MIN_LOD:
|
|
731
897
|
case GL.TEXTURE_MAX_LOD:
|
|
732
|
-
this.gl.texParameterf(this.
|
|
898
|
+
this.gl.texParameterf(this.target, pname, param);
|
|
733
899
|
break;
|
|
734
900
|
|
|
735
901
|
case GL.TEXTURE_WIDTH:
|
|
@@ -746,7 +912,7 @@ export default class Texture extends Resource {
|
|
|
746
912
|
return this;
|
|
747
913
|
}
|
|
748
914
|
|
|
749
|
-
_isNPOT() {
|
|
915
|
+
_isNPOT(): boolean {
|
|
750
916
|
if (isWebGL2(this.gl)) {
|
|
751
917
|
// NPOT restriction is only for WebGL1
|
|
752
918
|
return false;
|
|
@@ -774,7 +940,7 @@ export default class Texture extends Resource {
|
|
|
774
940
|
}
|
|
775
941
|
}
|
|
776
942
|
|
|
777
|
-
_getNPOTParam(pname, param) {
|
|
943
|
+
_getNPOTParam(pname: number, param: number): number {
|
|
778
944
|
if (this._isNPOT()) {
|
|
779
945
|
switch (pname) {
|
|
780
946
|
case GL.TEXTURE_MIN_FILTER:
|
|
@@ -1,27 +1,36 @@
|
|
|
1
|
+
import {log, isObjectEmpty} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
import WebGLDevice from '../adapter/webgl-device';
|
|
4
|
+
import {isWebGL2, assertWebGL2Context} from '../context/context/webgl-checks';
|
|
5
|
+
import WebGLResource, {ResourceProps} from './webgl-resource';
|
|
6
|
+
import Buffer from './webgl-buffer';
|
|
7
|
+
|
|
8
|
+
export type TransformFeedbackProps = ResourceProps & {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default class TransformFeedback extends WebGLResource<TransformFeedbackProps> {
|
|
13
|
+
buffers = {};
|
|
14
|
+
unused = {};
|
|
15
|
+
configuration = null;
|
|
16
|
+
// NOTE: The `bindOnUse` flag is a major workaround:
|
|
17
|
+
// See https://github.com/KhronosGroup/WebGL/issues/2346
|
|
18
|
+
bindOnUse = true;
|
|
19
|
+
|
|
20
|
+
static isSupported(gl: WebGLRenderingContext): boolean {
|
|
12
21
|
return isWebGL2(gl);
|
|
13
22
|
}
|
|
14
23
|
|
|
15
|
-
constructor(gl, props = {}) {
|
|
24
|
+
constructor(gl: WebGLRenderingContext, props: TransformFeedbackProps = {}) {
|
|
25
|
+
super(WebGLDevice.attach(gl), props, {} as any);
|
|
16
26
|
assertWebGL2Context(gl);
|
|
17
|
-
super(gl, props);
|
|
18
27
|
|
|
19
28
|
this.initialize(props);
|
|
20
29
|
this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);
|
|
21
30
|
Object.seal(this);
|
|
22
31
|
}
|
|
23
32
|
|
|
24
|
-
initialize(props
|
|
33
|
+
initialize(props?: TransformFeedbackProps): this {
|
|
25
34
|
this.buffers = {};
|
|
26
35
|
this.unused = {};
|
|
27
36
|
this.configuration = null;
|
|
@@ -36,7 +45,7 @@ export default class TransformFeedback extends Resource {
|
|
|
36
45
|
return this;
|
|
37
46
|
}
|
|
38
47
|
|
|
39
|
-
setProps(props) {
|
|
48
|
+
setProps(props: TransformFeedbackProps) {
|
|
40
49
|
if ('program' in props) {
|
|
41
50
|
this.configuration = props.program && props.program.configuration;
|
|
42
51
|
}
|
|
@@ -66,7 +75,7 @@ export default class TransformFeedback extends Resource {
|
|
|
66
75
|
|
|
67
76
|
if (location < 0) {
|
|
68
77
|
this.unused[locationOrName] = buffer;
|
|
69
|
-
log.warn(
|
|
78
|
+
log.warn(`${this.id} unused varying buffer ${locationOrName}`)();
|
|
70
79
|
return this;
|
|
71
80
|
}
|
|
72
81
|
|
|
@@ -82,19 +91,19 @@ export default class TransformFeedback extends Resource {
|
|
|
82
91
|
}
|
|
83
92
|
|
|
84
93
|
begin(primitiveMode = GL.POINTS) {
|
|
85
|
-
// @ts-
|
|
94
|
+
// @ts-expect-error
|
|
86
95
|
this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);
|
|
87
96
|
this._bindBuffers();
|
|
88
|
-
// @ts-
|
|
97
|
+
// @ts-expect-error
|
|
89
98
|
this.gl.beginTransformFeedback(primitiveMode);
|
|
90
99
|
return this;
|
|
91
100
|
}
|
|
92
101
|
|
|
93
102
|
end() {
|
|
94
|
-
// @ts-
|
|
103
|
+
// @ts-expect-error
|
|
95
104
|
this.gl.endTransformFeedback();
|
|
96
105
|
this._unbindBuffers();
|
|
97
|
-
// @ts-
|
|
106
|
+
// @ts-expect-error
|
|
98
107
|
this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, null);
|
|
99
108
|
return this;
|
|
100
109
|
}
|
|
@@ -151,13 +160,13 @@ export default class TransformFeedback extends Resource {
|
|
|
151
160
|
}
|
|
152
161
|
}
|
|
153
162
|
|
|
154
|
-
_bindBuffer(index, buffer, byteOffset = 0, byteSize) {
|
|
163
|
+
_bindBuffer(index, buffer, byteOffset = 0, byteSize?) {
|
|
155
164
|
const handle = buffer && buffer.handle;
|
|
156
165
|
if (!handle || byteSize === undefined) {
|
|
157
|
-
// @ts-
|
|
166
|
+
// @ts-expect-error
|
|
158
167
|
this.gl.bindBufferBase(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle);
|
|
159
168
|
} else {
|
|
160
|
-
// @ts-
|
|
169
|
+
// @ts-expect-error
|
|
161
170
|
this.gl.bindBufferRange(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);
|
|
162
171
|
}
|
|
163
172
|
return this;
|
|
@@ -166,17 +175,17 @@ export default class TransformFeedback extends Resource {
|
|
|
166
175
|
// RESOURCE METHODS
|
|
167
176
|
|
|
168
177
|
_createHandle() {
|
|
169
|
-
// @ts-
|
|
178
|
+
// @ts-expect-error
|
|
170
179
|
return this.gl.createTransformFeedback();
|
|
171
180
|
}
|
|
172
181
|
|
|
173
182
|
_deleteHandle() {
|
|
174
|
-
// @ts-
|
|
183
|
+
// @ts-expect-error
|
|
175
184
|
this.gl.deleteTransformFeedback(this.handle);
|
|
176
185
|
}
|
|
177
186
|
|
|
178
187
|
_bindHandle(handle) {
|
|
179
|
-
// @ts-
|
|
188
|
+
// @ts-expect-error
|
|
180
189
|
this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);
|
|
181
190
|
}
|
|
182
191
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import {assert} from '@luma.gl/api';
|
|
4
4
|
import {decomposeCompositeGLType} from '../webgl-utils/attribute-utils';
|
|
5
|
-
import {assert} from '../utils/assert';
|
|
6
5
|
|
|
7
6
|
const ERR_ARGUMENT = 'UniformBufferLayout illegal argument';
|
|
8
7
|
|
|
@@ -11,8 +10,10 @@ const GL_FLOAT = 0x1406;
|
|
|
11
10
|
const GL_INT = 0x1404;
|
|
12
11
|
const GL_UNSIGNED_INT = 0x1405;
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Std140 layout for uniforms
|
|
15
|
+
*/
|
|
16
|
+
export default class UniformBufferLayout {
|
|
16
17
|
constructor(layout) {
|
|
17
18
|
this.layout = {};
|
|
18
19
|
this.size = 0;
|
|
@@ -34,7 +35,7 @@ export default class UniformBufferLayout {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
// Get number of bytes needed for buffer allocation
|
|
37
|
-
getBytes() {
|
|
38
|
+
getBytes(): number {
|
|
38
39
|
return this.size * 4;
|
|
39
40
|
}
|
|
40
41
|
|
|
@@ -44,7 +45,10 @@ export default class UniformBufferLayout {
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
// Get offset and data for one object (for bufferSubData)
|
|
47
|
-
getSubData(index) {
|
|
48
|
+
getSubData(index): {
|
|
49
|
+
data: any;
|
|
50
|
+
offset: any;
|
|
51
|
+
} {
|
|
48
52
|
let data;
|
|
49
53
|
let offset;
|
|
50
54
|
if (index === undefined) {
|