@luma.gl/webgl 8.5.8 → 8.6.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/device2.d.ts +52 -0
- package/dist/api/device2.d.ts.map +1 -0
- package/dist/api/device2.js +23 -0
- package/dist/api/device2.js.map +1 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +5 -0
- package/dist/bundle.js.map +1 -0
- package/dist/classes/accessor.d.ts +28 -0
- package/dist/classes/accessor.d.ts.map +1 -0
- package/dist/classes/accessor.js +112 -0
- package/dist/classes/accessor.js.map +1 -0
- package/dist/classes/accessor.ts.disabled +159 -0
- package/dist/classes/clear.d.ts +17 -0
- package/dist/classes/clear.d.ts.map +1 -0
- package/{src → dist}/classes/clear.js +29 -23
- package/dist/classes/clear.js.map +1 -0
- package/dist/classes/copy-and-blit.d.ts +86 -0
- package/dist/classes/copy-and-blit.d.ts.map +1 -0
- package/dist/classes/copy-and-blit.js +338 -0
- package/dist/classes/copy-and-blit.js.map +1 -0
- package/dist/classes/framebuffer.d.ts +139 -0
- package/dist/classes/framebuffer.d.ts.map +1 -0
- package/dist/classes/framebuffer.js +656 -0
- package/dist/classes/framebuffer.js.map +1 -0
- package/dist/classes/program-configuration.d.ts +27 -0
- package/dist/classes/program-configuration.d.ts.map +1 -0
- package/dist/classes/program-configuration.js +160 -0
- package/dist/classes/program-configuration.js.map +1 -0
- package/dist/classes/program.d.ts +61 -0
- package/dist/classes/program.d.ts.map +1 -0
- package/dist/classes/program.js +370 -0
- package/dist/classes/program.js.map +1 -0
- package/dist/classes/query.d.ts +27 -0
- package/dist/classes/query.d.ts.map +1 -0
- package/dist/classes/query.js +145 -0
- package/dist/classes/query.js.map +1 -0
- package/dist/classes/renderbuffer-formats.d.ts +16 -0
- package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
- package/dist/classes/renderbuffer-formats.js +185 -0
- package/dist/classes/renderbuffer-formats.js.map +1 -0
- package/dist/classes/renderbuffer.d.ts +60 -0
- package/dist/classes/renderbuffer.d.ts.map +1 -0
- package/dist/classes/renderbuffer.js +128 -0
- package/dist/classes/renderbuffer.js.map +1 -0
- package/dist/classes/texture-2d.d.ts +9 -0
- package/dist/classes/texture-2d.d.ts.map +1 -0
- package/dist/classes/texture-2d.js +36 -0
- package/dist/classes/texture-2d.js.map +1 -0
- package/dist/classes/texture-3d.d.ts +29 -0
- package/dist/classes/texture-3d.d.ts.map +1 -0
- package/dist/classes/texture-3d.js +76 -0
- package/dist/classes/texture-3d.js.map +1 -0
- package/dist/classes/texture-cube.d.ts +28 -0
- package/dist/classes/texture-cube.d.ts.map +1 -0
- package/dist/classes/texture-cube.js +130 -0
- package/dist/classes/texture-cube.js.map +1 -0
- package/dist/classes/texture-formats.d.ts +37 -0
- package/dist/classes/texture-formats.d.ts.map +1 -0
- package/dist/classes/texture-formats.js +98 -0
- package/dist/classes/texture-formats.js.map +1 -0
- package/dist/classes/texture.d.ts +123 -0
- package/dist/classes/texture.d.ts.map +1 -0
- package/dist/classes/texture.js +786 -0
- package/dist/classes/texture.js.map +1 -0
- package/dist/classes/transform-feedback.d.ts +33 -0
- package/dist/classes/transform-feedback.d.ts.map +1 -0
- package/dist/classes/transform-feedback.js +198 -0
- package/dist/classes/transform-feedback.js.map +1 -0
- package/dist/classes/uniform-buffer-layout.d.ts +17 -0
- package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
- package/dist/classes/uniform-buffer-layout.js +104 -0
- package/dist/classes/uniform-buffer-layout.js.map +1 -0
- package/dist/classes/uniforms.d.ts +37 -0
- package/dist/classes/uniforms.d.ts.map +1 -0
- package/dist/classes/uniforms.js +250 -0
- package/dist/classes/uniforms.js.map +1 -0
- package/dist/classes/vertex-array-object.d.ts +75 -0
- package/dist/classes/vertex-array-object.d.ts.map +1 -0
- package/dist/classes/vertex-array-object.js +261 -0
- package/dist/classes/vertex-array-object.js.map +1 -0
- package/dist/classes/vertex-array.d.ts +75 -0
- package/dist/classes/vertex-array.d.ts.map +1 -0
- package/dist/classes/vertex-array.js +408 -0
- package/dist/classes/vertex-array.js.map +1 -0
- package/dist/classes/webgl-buffer.d.ts +100 -0
- package/dist/classes/webgl-buffer.d.ts.map +1 -0
- package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
- package/dist/classes/webgl-buffer.js.map +1 -0
- package/dist/classes/webgl-resource.d.ts +56 -0
- package/dist/classes/webgl-resource.d.ts.map +1 -0
- package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
- package/dist/classes/webgl-resource.js.map +1 -0
- package/dist/classes/webgl-shader.d.ts +53 -0
- package/dist/classes/webgl-shader.d.ts.map +1 -0
- package/dist/classes/webgl-shader.js +193 -0
- package/dist/classes/webgl-shader.js.map +1 -0
- package/dist/context/context/context-state.d.ts +18 -0
- package/dist/context/context/context-state.d.ts.map +1 -0
- package/dist/context/context/context-state.js +26 -0
- package/dist/context/context/context-state.js.map +1 -0
- package/dist/context/context/create-context.d.ts +40 -0
- package/dist/context/context/create-context.d.ts.map +1 -0
- package/dist/context/context/create-context.js +37 -0
- package/dist/context/context/create-context.js.map +1 -0
- package/dist/context/context/device-pixels.d.ts +25 -0
- package/dist/context/context/device-pixels.d.ts.map +1 -0
- package/dist/context/context/device-pixels.js +98 -0
- package/dist/context/context/device-pixels.js.map +1 -0
- package/dist/context/context/get-canvas.d.ts +13 -0
- package/dist/context/context/get-canvas.d.ts.map +1 -0
- package/dist/context/context/get-canvas.js +31 -0
- package/dist/context/context/get-canvas.js.map +1 -0
- package/dist/context/context/resize-context.d.ts +20 -0
- package/dist/context/context/resize-context.d.ts.map +1 -0
- package/dist/context/context/resize-context.js +15 -0
- package/dist/context/context/resize-context.js.map +1 -0
- package/dist/context/context/webgl-checks.d.ts +13 -0
- package/dist/context/context/webgl-checks.d.ts.map +1 -0
- package/dist/context/context/webgl-checks.js +34 -0
- package/dist/context/context/webgl-checks.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +30 -0
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
- package/dist/context/parameters/unified-parameter-api.js +65 -0
- package/dist/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.js +445 -0
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/context/parameters/webgl-parameters.d.ts +144 -0
- package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
- package/dist/context/parameters/webgl-parameters.js +2 -0
- package/dist/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/context/polyfill/polyfill-context.d.ts +5 -0
- package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-context.js +91 -0
- package/dist/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/context/polyfill/polyfill-table.d.ts +48 -0
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-table.js +160 -0
- package/dist/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.js +21 -0
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/context/state-tracker/track-context-state.d.ts +22 -0
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
- package/dist/context/state-tracker/track-context-state.js +169 -0
- package/dist/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/context/state-tracker/with-parameters.d.ts +13 -0
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
- package/dist/context/state-tracker/with-parameters.js +36 -0
- package/dist/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/debug/debug-program-configuration.d.ts +2 -0
- package/dist/debug/debug-program-configuration.d.ts.map +1 -0
- package/dist/debug/debug-program-configuration.js +40 -0
- package/dist/debug/debug-program-configuration.js.map +1 -0
- package/dist/debug/debug-uniforms.d.ts +12 -0
- package/dist/debug/debug-uniforms.d.ts.map +1 -0
- package/dist/debug/debug-uniforms.js +108 -0
- package/dist/debug/debug-uniforms.js.map +1 -0
- package/dist/debug/debug-vertex-array.d.ts +5 -0
- package/dist/debug/debug-vertex-array.d.ts.map +1 -0
- package/dist/debug/debug-vertex-array.js +118 -0
- package/dist/debug/debug-vertex-array.js.map +1 -0
- package/dist/device/check-glsl-extension.d.ts +4 -0
- package/dist/device/check-glsl-extension.d.ts.map +1 -0
- package/dist/device/check-glsl-extension.js +22 -0
- package/dist/device/check-glsl-extension.js.map +1 -0
- package/dist/device/device-features.d.ts +12 -0
- package/dist/device/device-features.d.ts.map +1 -0
- package/dist/device/device-features.js +123 -0
- package/dist/device/device-features.js.map +1 -0
- package/dist/device/device-limits.d.ts +51 -0
- package/dist/device/device-limits.d.ts.map +1 -0
- package/dist/device/device-limits.js +90 -0
- package/dist/device/device-limits.js.map +1 -0
- package/dist/device/get-device-info.d.ts +4 -0
- package/dist/device/get-device-info.d.ts.map +1 -0
- package/dist/device/get-device-info.js +44 -0
- package/dist/device/get-device-info.js.map +1 -0
- package/dist/device/webgl-device.d.ts +111 -0
- package/dist/device/webgl-device.d.ts.map +1 -0
- package/dist/device/webgl-device.js +208 -0
- package/dist/device/webgl-device.js.map +1 -0
- package/dist/es5/api/device2.js +42 -0
- package/dist/es5/api/device2.js.map +1 -0
- package/dist/es5/bundle.js +2 -4
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classes/accessor.js +36 -38
- package/dist/es5/classes/accessor.js.map +1 -1
- package/dist/es5/classes/accessor.ts.disabled +159 -0
- package/dist/es5/classes/clear.js +17 -11
- package/dist/es5/classes/clear.js.map +1 -1
- package/dist/es5/classes/copy-and-blit.js +121 -117
- package/dist/es5/classes/copy-and-blit.js.map +1 -1
- package/dist/es5/classes/framebuffer.js +435 -423
- package/dist/es5/classes/framebuffer.js.map +1 -1
- package/dist/es5/classes/program-configuration.js +14 -11
- package/dist/es5/classes/program-configuration.js.map +1 -1
- package/dist/es5/classes/program.js +79 -67
- package/dist/es5/classes/program.js.map +1 -1
- package/dist/es5/classes/query.js +58 -59
- package/dist/es5/classes/query.js.map +1 -1
- package/dist/es5/classes/renderbuffer-formats.js +79 -52
- package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
- package/dist/es5/classes/renderbuffer.js +129 -100
- package/dist/es5/classes/renderbuffer.js.map +1 -1
- package/dist/es5/classes/texture-2d.js +25 -21
- package/dist/es5/classes/texture-2d.js.map +1 -1
- package/dist/es5/classes/texture-3d.js +49 -29
- package/dist/es5/classes/texture-3d.js.map +1 -1
- package/dist/es5/classes/texture-cube.js +45 -36
- package/dist/es5/classes/texture-cube.js.map +1 -1
- package/dist/es5/classes/texture-formats.js +35 -33
- package/dist/es5/classes/texture-formats.js.map +1 -1
- package/dist/es5/classes/texture.js +213 -101
- package/dist/es5/classes/texture.js.map +1 -1
- package/dist/es5/classes/transform-feedback.js +37 -34
- package/dist/es5/classes/transform-feedback.js.map +1 -1
- package/dist/es5/classes/uniform-buffer-layout.js +4 -4
- package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/es5/classes/uniforms.js +73 -73
- package/dist/es5/classes/uniforms.js.map +1 -1
- package/dist/es5/classes/vertex-array-object.js +106 -149
- package/dist/es5/classes/vertex-array-object.js.map +1 -1
- package/dist/es5/classes/vertex-array.js +47 -38
- package/dist/es5/classes/vertex-array.js.map +1 -1
- package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
- package/dist/es5/classes/webgl-buffer.js.map +1 -0
- package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
- package/dist/es5/classes/webgl-resource.js.map +1 -0
- package/dist/es5/classes/webgl-shader.js +309 -0
- package/dist/es5/classes/webgl-shader.js.map +1 -0
- package/dist/es5/context/context/context-state.js +31 -0
- package/dist/es5/context/context/context-state.js.map +1 -0
- package/dist/es5/context/context/create-context.js +57 -0
- package/dist/es5/context/context/create-context.js.map +1 -0
- package/dist/es5/context/context/device-pixels.js +115 -0
- package/dist/es5/context/context/device-pixels.js.map +1 -0
- package/dist/es5/context/context/get-canvas.js +40 -0
- package/dist/es5/context/context/get-canvas.js.map +1 -0
- package/dist/es5/context/context/resize-context.js +23 -0
- package/dist/es5/context/context/resize-context.js.map +1 -0
- package/dist/es5/context/context/webgl-checks.js +54 -0
- package/dist/es5/context/context/webgl-checks.js.map +1 -0
- package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/es5/context/parameters/webgl-parameters.js +6 -0
- package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-context.js +134 -0
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-table.js +166 -0
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/es5/context/state-tracker/track-context-state.js +196 -0
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/es5/context/state-tracker/with-parameters.js +44 -0
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/es5/debug/debug-program-configuration.js +1 -1
- package/dist/es5/debug/debug-program-configuration.js.map +1 -1
- package/dist/es5/debug/debug-uniforms.js +18 -20
- package/dist/es5/debug/debug-uniforms.js.map +1 -1
- package/dist/es5/debug/debug-vertex-array.js +16 -16
- package/dist/es5/debug/debug-vertex-array.js.map +1 -1
- package/dist/es5/device/check-glsl-extension.js +33 -0
- package/dist/es5/device/check-glsl-extension.js.map +1 -0
- package/dist/es5/device/device-features.js +152 -0
- package/dist/es5/device/device-features.js.map +1 -0
- package/dist/es5/device/device-limits.js +64 -0
- package/dist/es5/device/device-limits.js.map +1 -0
- package/dist/es5/device/get-device-info.js +55 -0
- package/dist/es5/device/get-device-info.js.map +1 -0
- package/dist/es5/device/webgl-device.js +279 -0
- package/dist/es5/device/webgl-device.js.map +1 -0
- package/dist/es5/index.js +140 -96
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +21 -41
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/webgl-utils/attribute-utils.js +4 -4
- package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
- package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/es5/webgl-utils/format-utils.js +21 -17
- package/dist/es5/webgl-utils/format-utils.js.map +1 -1
- package/dist/es5/webgl-utils/get-error.js.map +1 -1
- package/dist/es5/webgl-utils/index.js +74 -0
- package/dist/es5/webgl-utils/index.js.map +1 -0
- package/dist/es5/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
- package/dist/es5/webgl-utils/is-old-ie.js.map +1 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
- package/dist/es5/webgl-utils/texture-utils.js +6 -4
- package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
- package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
- package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/es5/webgl-utils/webgl-info.ts.disabled +135 -0
- package/dist/esm/api/device2.js +23 -0
- package/dist/esm/api/device2.js.map +1 -0
- package/dist/esm/bundle.js +2 -4
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classes/accessor.js +6 -6
- package/dist/esm/classes/accessor.js.map +1 -1
- package/dist/esm/classes/accessor.ts.disabled +159 -0
- package/dist/esm/classes/clear.js +19 -14
- package/dist/esm/classes/clear.js.map +1 -1
- package/dist/esm/classes/copy-and-blit.js +67 -64
- package/dist/esm/classes/copy-and-blit.js.map +1 -1
- package/dist/esm/classes/framebuffer.js +341 -313
- package/dist/esm/classes/framebuffer.js.map +1 -1
- package/dist/esm/classes/program-configuration.js +18 -10
- package/dist/esm/classes/program-configuration.js.map +1 -1
- package/dist/esm/classes/program.js +71 -44
- package/dist/esm/classes/program.js.map +1 -1
- package/dist/esm/classes/query.js +20 -16
- package/dist/esm/classes/query.js.map +1 -1
- package/dist/esm/classes/renderbuffer-formats.js +72 -49
- package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
- package/dist/esm/classes/renderbuffer.js +86 -73
- package/dist/esm/classes/renderbuffer.js.map +1 -1
- package/dist/esm/classes/texture-2d.js +13 -9
- package/dist/esm/classes/texture-2d.js.map +1 -1
- package/dist/esm/classes/texture-3d.js +28 -16
- package/dist/esm/classes/texture-3d.js.map +1 -1
- package/dist/esm/classes/texture-cube.js +45 -31
- package/dist/esm/classes/texture-cube.js.map +1 -1
- package/dist/esm/classes/texture-formats.js +52 -51
- package/dist/esm/classes/texture-formats.js.map +1 -1
- package/dist/esm/classes/texture.js +174 -58
- package/dist/esm/classes/texture.js.map +1 -1
- package/dist/esm/classes/transform-feedback.js +26 -14
- package/dist/esm/classes/transform-feedback.js.map +1 -1
- package/dist/esm/classes/uniform-buffer-layout.js +1 -1
- package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/esm/classes/uniforms.js +111 -113
- package/dist/esm/classes/uniforms.js.map +1 -1
- package/dist/esm/classes/vertex-array-object.js +52 -89
- package/dist/esm/classes/vertex-array-object.js.map +1 -1
- package/dist/esm/classes/vertex-array.js +50 -29
- package/dist/esm/classes/vertex-array.js.map +1 -1
- package/dist/esm/classes/webgl-buffer.js +382 -0
- package/dist/esm/classes/webgl-buffer.js.map +1 -0
- package/dist/esm/classes/webgl-resource.js +212 -0
- package/dist/esm/classes/webgl-resource.js.map +1 -0
- package/dist/esm/classes/webgl-shader.js +193 -0
- package/dist/esm/classes/webgl-shader.js.map +1 -0
- package/dist/esm/context/context/context-state.js +26 -0
- package/dist/esm/context/context/context-state.js.map +1 -0
- package/dist/esm/context/context/create-context.js +37 -0
- package/dist/esm/context/context/create-context.js.map +1 -0
- package/dist/esm/context/context/device-pixels.js +98 -0
- package/dist/esm/context/context/device-pixels.js.map +1 -0
- package/dist/esm/context/context/get-canvas.js +31 -0
- package/dist/esm/context/context/get-canvas.js.map +1 -0
- package/dist/esm/context/context/resize-context.js +15 -0
- package/dist/esm/context/context/resize-context.js.map +1 -0
- package/dist/esm/context/context/webgl-checks.js +34 -0
- package/dist/esm/context/context/webgl-checks.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/esm/context/parameters/webgl-parameters.js +2 -0
- package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-context.js +91 -0
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-table.js +160 -0
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/esm/context/state-tracker/track-context-state.js +169 -0
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/esm/context/state-tracker/with-parameters.js +36 -0
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/esm/debug/debug-program-configuration.js +4 -4
- package/dist/esm/debug/debug-program-configuration.js.map +1 -1
- package/dist/esm/debug/debug-uniforms.js +9 -9
- package/dist/esm/debug/debug-uniforms.js.map +1 -1
- package/dist/esm/debug/debug-vertex-array.js +18 -16
- package/dist/esm/debug/debug-vertex-array.js.map +1 -1
- package/dist/esm/device/check-glsl-extension.js +22 -0
- package/dist/esm/device/check-glsl-extension.js.map +1 -0
- package/dist/esm/device/device-features.js +123 -0
- package/dist/esm/device/device-features.js.map +1 -0
- package/dist/esm/device/device-limits.js +90 -0
- package/dist/esm/device/device-limits.js.map +1 -0
- package/dist/esm/device/get-device-info.js +44 -0
- package/dist/esm/device/get-device-info.js.map +1 -0
- package/dist/esm/device/webgl-device.js +208 -0
- package/dist/esm/device/webgl-device.js.map +1 -0
- package/dist/esm/index.js +15 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +12 -28
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/webgl-utils/attribute-utils.js +1 -1
- package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
- package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/esm/webgl-utils/format-utils.js +16 -15
- package/dist/esm/webgl-utils/format-utils.js.map +1 -1
- package/dist/esm/webgl-utils/get-error.js +1 -1
- package/dist/esm/webgl-utils/get-error.js.map +1 -1
- package/dist/esm/webgl-utils/index.js +5 -0
- package/dist/esm/webgl-utils/index.js.map +1 -0
- package/dist/esm/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
- package/dist/esm/webgl-utils/is-old-ie.js.map +1 -0
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
- package/dist/esm/webgl-utils/texture-utils.js +4 -3
- package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
- package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
- package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/esm/webgl-utils/webgl-info.ts.disabled +135 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +5 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +33 -0
- package/dist/init.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/webgl-utils/attribute-utils.d.ts +18 -0
- package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
- package/dist/webgl-utils/attribute-utils.js +182 -0
- package/dist/webgl-utils/attribute-utils.js.map +1 -0
- package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
- package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
- package/dist/webgl-utils/constants-to-keys.js +41 -0
- package/dist/webgl-utils/constants-to-keys.js.map +1 -0
- package/dist/webgl-utils/format-utils.d.ts +3 -0
- package/dist/webgl-utils/format-utils.d.ts.map +1 -0
- package/dist/webgl-utils/format-utils.js +45 -0
- package/dist/webgl-utils/format-utils.js.map +1 -0
- package/dist/webgl-utils/get-error.d.ts +3 -0
- package/dist/webgl-utils/get-error.d.ts.map +1 -0
- package/dist/webgl-utils/get-error.js +41 -0
- package/dist/webgl-utils/get-error.js.map +1 -0
- package/dist/webgl-utils/index.d.ts +5 -0
- package/dist/webgl-utils/index.d.ts.map +1 -0
- package/dist/webgl-utils/index.js +5 -0
- package/dist/webgl-utils/index.js.map +1 -0
- package/dist/webgl-utils/is-old-ie.d.ts +2 -0
- package/dist/webgl-utils/is-old-ie.d.ts.map +1 -0
- package/dist/webgl-utils/is-old-ie.js +8 -0
- package/dist/webgl-utils/is-old-ie.js.map +1 -0
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
- package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
- package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
- package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
- package/dist/webgl-utils/request-animation-frame.js +7 -0
- package/dist/webgl-utils/request-animation-frame.js.map +1 -0
- package/dist/webgl-utils/texture-utils.d.ts +15 -0
- package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
- package/dist/webgl-utils/texture-utils.js +48 -0
- package/dist/webgl-utils/texture-utils.js.map +1 -0
- package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
- package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
- package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
- package/dist/webgl-utils/typed-array-utils.js.map +1 -0
- package/dist/webgl-utils/webgl-info.ts.disabled +135 -0
- package/package.json +9 -9
- package/src/.DS_Store +0 -0
- package/src/api/device2.ts +71 -0
- package/src/bundle.ts +4 -0
- package/src/classes/accessor.js +2 -3
- package/src/classes/accessor.ts.disabled +159 -0
- package/src/classes/clear.ts +108 -0
- package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
- package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
- package/src/classes/{program-configuration.js → program-configuration.ts} +19 -12
- package/src/classes/{program.js → program.ts} +66 -40
- package/src/classes/{query.js → query.ts} +31 -25
- package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
- package/src/classes/renderbuffer.ts +154 -0
- package/src/classes/texture-2d.ts +35 -0
- package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
- package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
- package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
- package/src/classes/{texture.js → texture.ts} +223 -57
- package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
- package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
- package/src/classes/{uniforms.js → uniforms.ts} +123 -77
- package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +133 -112
- package/src/classes/{vertex-array.js → vertex-array.ts} +74 -55
- package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
- package/src/classes/{resource.js → webgl-resource.ts} +55 -46
- package/src/classes/webgl-shader.ts +202 -0
- package/src/context/context/context-state.ts +39 -0
- package/src/context/context/create-context.ts +83 -0
- package/src/context/context/device-pixels.ts +147 -0
- package/src/context/context/get-canvas.ts +37 -0
- package/src/context/context/resize-context.ts +37 -0
- package/src/context/context/webgl-checks.ts +49 -0
- package/src/context/parameters/unified-parameter-api.ts +127 -0
- package/src/context/parameters/webgl-parameter-tables.ts +625 -0
- package/src/context/parameters/webgl-parameters.ts +197 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
- package/src/context/polyfill/polyfill-context.ts +98 -0
- package/src/context/polyfill/polyfill-table.ts +162 -0
- package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
- package/src/context/state-tracker/deep-array-equal.ts +20 -0
- package/src/context/state-tracker/track-context-state.ts +250 -0
- package/src/context/state-tracker/with-parameters.ts +50 -0
- package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
- package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
- package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
- package/src/device/check-glsl-extension.ts +44 -0
- package/src/device/device-features.ts +227 -0
- package/src/device/device-limits.ts +150 -0
- package/src/device/get-device-info.ts +49 -0
- package/src/device/webgl-device.ts +406 -0
- package/src/index.ts +127 -0
- package/src/{init.js → init.ts} +11 -25
- package/src/{types.d.ts → types.ts} +1 -1
- package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
- package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
- package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
- package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
- package/src/webgl-utils/index.ts +12 -0
- package/src/{features/check-old-ie.js → webgl-utils/is-old-ie.ts} +3 -3
- package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
- package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
- package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
- package/src/webgl-utils/typed-array-utils.ts +137 -0
- package/src/webgl-utils/webgl-info.ts.disabled +135 -0
- package/dist/dist.js +0 -13710
- package/dist/dist.min.js +0 -1
- package/dist/es5/classes/buffer.d.ts +0 -84
- package/dist/es5/classes/buffer.js.map +0 -1
- package/dist/es5/classes/clear.d.ts +0 -11
- package/dist/es5/classes/copy-and-blit.d.ts +0 -101
- package/dist/es5/classes/framebuffer.d.ts +0 -96
- package/dist/es5/classes/program-configuration.d.ts +0 -15
- package/dist/es5/classes/program.d.ts +0 -44
- package/dist/es5/classes/query.d.ts +0 -21
- package/dist/es5/classes/renderbuffer.d.ts +0 -34
- package/dist/es5/classes/resource.d.ts +0 -47
- package/dist/es5/classes/resource.js.map +0 -1
- package/dist/es5/classes/shader.d.ts +0 -29
- package/dist/es5/classes/shader.js +0 -221
- package/dist/es5/classes/shader.js.map +0 -1
- package/dist/es5/classes/texture-2d.d.ts +0 -11
- package/dist/es5/classes/texture-3d.d.ts +0 -29
- package/dist/es5/classes/texture-cube.d.ts +0 -23
- package/dist/es5/classes/texture.d.ts +0 -80
- package/dist/es5/classes/transform-feedback.d.ts +0 -16
- package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
- package/dist/es5/classes/uniforms.d.ts +0 -63
- package/dist/es5/classes/vertex-array-object.d.ts +0 -25
- package/dist/es5/classes/vertex-array.d.ts +0 -37
- package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
- package/dist/es5/debug/debug-uniforms.d.ts +0 -11
- package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
- package/dist/es5/features/check-glsl-extension.js +0 -41
- package/dist/es5/features/check-glsl-extension.js.map +0 -1
- package/dist/es5/features/check-old-ie.js.map +0 -1
- package/dist/es5/features/features.js +0 -99
- package/dist/es5/features/features.js.map +0 -1
- package/dist/es5/features/index.js +0 -64
- package/dist/es5/features/index.js.map +0 -1
- package/dist/es5/features/limits.js +0 -64
- package/dist/es5/features/limits.js.map +0 -1
- package/dist/es5/features/webgl-features-table.js +0 -64
- package/dist/es5/features/webgl-features-table.js.map +0 -1
- package/dist/es5/features/webgl-limits-table.js +0 -132
- package/dist/es5/features/webgl-limits-table.js.map +0 -1
- package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
- package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
- package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-name.js +0 -14
- package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
- package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
- package/dist/es5/glsl-utils/get-shader-version.js +0 -22
- package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
- package/dist/es5/glsl-utils/index.js +0 -48
- package/dist/es5/glsl-utils/index.js.map +0 -1
- package/dist/es5/index.d.ts +0 -71
- package/dist/es5/init.d.ts +0 -12
- package/dist/es5/types.d.ts +0 -8
- package/dist/es5/utils/array-utils-flat.js +0 -51
- package/dist/es5/utils/array-utils-flat.js.map +0 -1
- package/dist/es5/utils/assert.d.ts +0 -1
- package/dist/es5/utils/assert.js +0 -13
- package/dist/es5/utils/assert.js.map +0 -1
- package/dist/es5/utils/check-props.js +0 -51
- package/dist/es5/utils/check-props.js.map +0 -1
- package/dist/es5/utils/format-value.js +0 -57
- package/dist/es5/utils/format-value.js.map +0 -1
- package/dist/es5/utils/is-old-ie.d.ts +0 -1
- package/dist/es5/utils/is-old-ie.js +0 -14
- package/dist/es5/utils/is-old-ie.js.map +0 -1
- package/dist/es5/utils/load-file.js +0 -50
- package/dist/es5/utils/load-file.js.map +0 -1
- package/dist/es5/utils/stub-methods.js +0 -25
- package/dist/es5/utils/stub-methods.js.map +0 -1
- package/dist/es5/utils/utils.d.ts +0 -13
- package/dist/es5/utils/utils.js +0 -36
- package/dist/es5/utils/utils.js.map +0 -1
- package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
- package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
- package/dist/esm/classes/buffer.d.ts +0 -84
- package/dist/esm/classes/buffer.js.map +0 -1
- package/dist/esm/classes/clear.d.ts +0 -11
- package/dist/esm/classes/copy-and-blit.d.ts +0 -101
- package/dist/esm/classes/framebuffer.d.ts +0 -96
- package/dist/esm/classes/program-configuration.d.ts +0 -15
- package/dist/esm/classes/program.d.ts +0 -44
- package/dist/esm/classes/query.d.ts +0 -21
- package/dist/esm/classes/renderbuffer.d.ts +0 -34
- package/dist/esm/classes/resource.d.ts +0 -47
- package/dist/esm/classes/resource.js.map +0 -1
- package/dist/esm/classes/shader.d.ts +0 -29
- package/dist/esm/classes/shader.js +0 -138
- package/dist/esm/classes/shader.js.map +0 -1
- package/dist/esm/classes/texture-2d.d.ts +0 -11
- package/dist/esm/classes/texture-3d.d.ts +0 -29
- package/dist/esm/classes/texture-cube.d.ts +0 -23
- package/dist/esm/classes/texture.d.ts +0 -80
- package/dist/esm/classes/transform-feedback.d.ts +0 -16
- package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
- package/dist/esm/classes/uniforms.d.ts +0 -63
- package/dist/esm/classes/vertex-array-object.d.ts +0 -25
- package/dist/esm/classes/vertex-array.d.ts +0 -37
- package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
- package/dist/esm/debug/debug-uniforms.d.ts +0 -11
- package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
- package/dist/esm/features/check-glsl-extension.js +0 -27
- package/dist/esm/features/check-glsl-extension.js.map +0 -1
- package/dist/esm/features/check-old-ie.js.map +0 -1
- package/dist/esm/features/features.js +0 -66
- package/dist/esm/features/features.js.map +0 -1
- package/dist/esm/features/index.js +0 -5
- package/dist/esm/features/index.js.map +0 -1
- package/dist/esm/features/limits.js +0 -52
- package/dist/esm/features/limits.js.map +0 -1
- package/dist/esm/features/webgl-features-table.js +0 -71
- package/dist/esm/features/webgl-features-table.js.map +0 -1
- package/dist/esm/features/webgl-limits-table.js +0 -160
- package/dist/esm/features/webgl-limits-table.js.map +0 -1
- package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
- package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
- package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-name.js +0 -6
- package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
- package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
- package/dist/esm/glsl-utils/get-shader-version.js +0 -15
- package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
- package/dist/esm/glsl-utils/index.js +0 -5
- package/dist/esm/glsl-utils/index.js.map +0 -1
- package/dist/esm/index.d.ts +0 -71
- package/dist/esm/init.d.ts +0 -12
- package/dist/esm/types.d.ts +0 -8
- package/dist/esm/utils/array-utils-flat.js +0 -39
- package/dist/esm/utils/array-utils-flat.js.map +0 -1
- package/dist/esm/utils/assert.d.ts +0 -1
- package/dist/esm/utils/assert.js +0 -6
- package/dist/esm/utils/assert.js.map +0 -1
- package/dist/esm/utils/check-props.js +0 -38
- package/dist/esm/utils/check-props.js.map +0 -1
- package/dist/esm/utils/format-value.js +0 -50
- package/dist/esm/utils/format-value.js.map +0 -1
- package/dist/esm/utils/is-old-ie.d.ts +0 -1
- package/dist/esm/utils/is-old-ie.js +0 -5
- package/dist/esm/utils/is-old-ie.js.map +0 -1
- package/dist/esm/utils/load-file.js +0 -30
- package/dist/esm/utils/load-file.js.map +0 -1
- package/dist/esm/utils/stub-methods.js +0 -17
- package/dist/esm/utils/stub-methods.js.map +0 -1
- package/dist/esm/utils/utils.d.ts +0 -13
- package/dist/esm/utils/utils.js +0 -22
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
- package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
- package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
- package/src/bundle.js +0 -8
- package/src/classes/buffer.d.ts +0 -84
- package/src/classes/clear.d.ts +0 -11
- package/src/classes/copy-and-blit.d.ts +0 -101
- package/src/classes/framebuffer.d.ts +0 -96
- package/src/classes/program-configuration.d.ts +0 -15
- package/src/classes/program.d.ts +0 -44
- package/src/classes/query.d.ts +0 -21
- package/src/classes/renderbuffer.d.ts +0 -34
- package/src/classes/renderbuffer.js +0 -105
- package/src/classes/resource.d.ts +0 -47
- package/src/classes/shader.d.ts +0 -29
- package/src/classes/shader.js +0 -147
- package/src/classes/texture-2d.d.ts +0 -11
- package/src/classes/texture-2d.js +0 -30
- package/src/classes/texture-3d.d.ts +0 -29
- package/src/classes/texture-cube.d.ts +0 -23
- package/src/classes/texture.d.ts +0 -80
- package/src/classes/transform-feedback.d.ts +0 -16
- package/src/classes/uniform-buffer-layout.d.ts +0 -18
- package/src/classes/uniforms.d.ts +0 -63
- package/src/classes/vertex-array-object.d.ts +0 -25
- package/src/classes/vertex-array.d.ts +0 -37
- package/src/debug/debug-program-configuration.d.ts +0 -1
- package/src/debug/debug-uniforms.d.ts +0 -11
- package/src/debug/debug-vertex-array.d.ts +0 -1
- package/src/features/check-glsl-extension.js +0 -34
- package/src/features/features.js +0 -79
- package/src/features/index.js +0 -5
- package/src/features/limits.js +0 -65
- package/src/features/webgl-features-table.js +0 -104
- package/src/features/webgl-limits-table.js +0 -51
- package/src/glsl-utils/format-glsl-error.d.ts +0 -16
- package/src/glsl-utils/format-glsl-error.js +0 -107
- package/src/glsl-utils/get-shader-name.js +0 -7
- package/src/glsl-utils/get-shader-type-name.js +0 -13
- package/src/glsl-utils/get-shader-version.js +0 -12
- package/src/glsl-utils/index.js +0 -8
- package/src/index.d.ts +0 -71
- package/src/index.js +0 -70
- package/src/init.d.ts +0 -12
- package/src/utils/array-utils-flat.js +0 -56
- package/src/utils/assert.d.ts +0 -1
- package/src/utils/assert.js +0 -7
- package/src/utils/check-props.js +0 -68
- package/src/utils/format-value.js +0 -37
- package/src/utils/is-old-ie.d.ts +0 -1
- package/src/utils/is-old-ie.js +0 -6
- package/src/utils/load-file.js +0 -39
- package/src/utils/stub-methods.js +0 -20
- package/src/utils/utils.d.ts +0 -13
- package/src/utils/utils.js +0 -36
- package/src/webgl-utils/request-animation-frame.d.ts +0 -3
- package/src/webgl-utils/texture-utils.d.ts +0 -11
- package/src/webgl-utils/typed-array-utils.d.ts +0 -36
|
@@ -12,7 +12,9 @@ exports.copyUniform = copyUniform;
|
|
|
12
12
|
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _api = require("@luma.gl/api");
|
|
16
|
+
|
|
17
|
+
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
16
18
|
|
|
17
19
|
var _framebuffer = _interopRequireDefault(require("./framebuffer"));
|
|
18
20
|
|
|
@@ -20,62 +22,14 @@ var _renderbuffer = _interopRequireDefault(require("./renderbuffer"));
|
|
|
20
22
|
|
|
21
23
|
var _texture = _interopRequireDefault(require("./texture"));
|
|
22
24
|
|
|
23
|
-
var _assert = require("../utils/assert");
|
|
24
|
-
|
|
25
25
|
var _UNIFORM_SETTERS;
|
|
26
26
|
|
|
27
|
-
var UNIFORM_SETTERS = (_UNIFORM_SETTERS = {}, (0, _defineProperty2.default)(_UNIFORM_SETTERS,
|
|
27
|
+
var UNIFORM_SETTERS = (_UNIFORM_SETTERS = {}, (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT, getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_VEC2, getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_VEC3, getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_VEC4, getArraySetter.bind(null, 'uniform4fv', toFloatArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT, getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_VEC2, getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_VEC3, getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_VEC4, getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.BOOL, getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.BOOL_VEC2, getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.BOOL_VEC3, getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.BOOL_VEC4, getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT2, getArraySetter.bind(null, 'uniformMatrix2fv', toFloatArray, 4, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT3, getArraySetter.bind(null, 'uniformMatrix3fv', toFloatArray, 9, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT4, getArraySetter.bind(null, 'uniformMatrix4fv', toFloatArray, 16, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_CUBE, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT, getArraySetter.bind(null, 'uniform1uiv', toUIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_VEC2, getArraySetter.bind(null, 'uniform2uiv', toUIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_VEC3, getArraySetter.bind(null, 'uniform3uiv', toUIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_VEC4, getArraySetter.bind(null, 'uniform4uiv', toUIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT2x3, getArraySetter.bind(null, 'uniformMatrix2x3fv', toFloatArray, 6, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT2x4, getArraySetter.bind(null, 'uniformMatrix2x4fv', toFloatArray, 8, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT3x2, getArraySetter.bind(null, 'uniformMatrix3x2fv', toFloatArray, 6, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT3x4, getArraySetter.bind(null, 'uniformMatrix3x4fv', toFloatArray, 12, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT4x2, getArraySetter.bind(null, 'uniformMatrix4x2fv', toFloatArray, 8, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT4x3, getArraySetter.bind(null, 'uniformMatrix4x3fv', toFloatArray, 12, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_CUBE, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_3D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D_SHADOW, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D_ARRAY, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D_ARRAY_SHADOW, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_CUBE_SHADOW, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_SAMPLER_2D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_SAMPLER_3D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_SAMPLER_CUBE, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_SAMPLER_2D_ARRAY, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_SAMPLER_2D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_SAMPLER_3D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_SAMPLER_CUBE, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_SAMPLER_2D_ARRAY, getSamplerSetter), _UNIFORM_SETTERS);
|
|
28
28
|
var FLOAT_ARRAY = {};
|
|
29
29
|
var INT_ARRAY = {};
|
|
30
30
|
var UINT_ARRAY = {};
|
|
31
31
|
var array1 = [0];
|
|
32
32
|
|
|
33
|
-
function toTypedArray(value, uniformLength, Type, cache) {
|
|
34
|
-
if (uniformLength === 1 && typeof value === 'boolean') {
|
|
35
|
-
value = value ? 1 : 0;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (Number.isFinite(value)) {
|
|
39
|
-
array1[0] = value;
|
|
40
|
-
value = array1;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
var length = value.length;
|
|
44
|
-
|
|
45
|
-
if (length % uniformLength) {
|
|
46
|
-
_gltools.log.warn("Uniform size should be multiples of ".concat(uniformLength), value)();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (value instanceof Type) {
|
|
50
|
-
return value;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
var result = cache[length];
|
|
54
|
-
|
|
55
|
-
if (!result) {
|
|
56
|
-
result = new Type(length);
|
|
57
|
-
cache[length] = result;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
for (var i = 0; i < length; i++) {
|
|
61
|
-
result[i] = value[i];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return result;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function toFloatArray(value, uniformLength) {
|
|
68
|
-
return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function toIntArray(value, uniformLength) {
|
|
72
|
-
return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function toUIntArray(value, uniformLength) {
|
|
76
|
-
return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
33
|
function getUniformSetter(gl, location, info) {
|
|
80
34
|
var setter = UNIFORM_SETTERS[info.type];
|
|
81
35
|
|
|
@@ -104,26 +58,42 @@ function parseUniformName(name) {
|
|
|
104
58
|
|
|
105
59
|
return {
|
|
106
60
|
name: matches[1],
|
|
107
|
-
length: matches[2] || 1,
|
|
61
|
+
length: Number(matches[2]) || 1,
|
|
108
62
|
isArray: Boolean(matches[2])
|
|
109
63
|
};
|
|
110
64
|
}
|
|
111
65
|
|
|
112
66
|
function checkUniformValues(uniforms, source, uniformMap) {
|
|
113
|
-
for (var
|
|
114
|
-
var value = uniforms[
|
|
115
|
-
var shouldCheck = !uniformMap || Boolean(uniformMap[
|
|
67
|
+
for (var _uniformName in uniforms) {
|
|
68
|
+
var value = uniforms[_uniformName];
|
|
69
|
+
var shouldCheck = !uniformMap || Boolean(uniformMap[_uniformName]);
|
|
116
70
|
|
|
117
71
|
if (shouldCheck && !checkUniformValue(value)) {
|
|
118
72
|
source = source ? "".concat(source, " ") : '';
|
|
119
|
-
console.error("".concat(source, " Bad uniform ").concat(
|
|
120
|
-
throw new Error("".concat(source, " Bad uniform ").concat(
|
|
73
|
+
console.error("".concat(source, " Bad uniform ").concat(_uniformName), value);
|
|
74
|
+
throw new Error("".concat(source, " Bad uniform ").concat(_uniformName));
|
|
121
75
|
}
|
|
122
76
|
}
|
|
123
77
|
|
|
124
78
|
return true;
|
|
125
79
|
}
|
|
126
80
|
|
|
81
|
+
function copyUniform(uniforms, key, value) {
|
|
82
|
+
if (Array.isArray(value) || ArrayBuffer.isView(value)) {
|
|
83
|
+
if (uniforms[key]) {
|
|
84
|
+
var dest = uniforms[key];
|
|
85
|
+
|
|
86
|
+
for (var i = 0, len = value.length; i < len; ++i) {
|
|
87
|
+
dest[i] = value[i];
|
|
88
|
+
}
|
|
89
|
+
} else {
|
|
90
|
+
uniforms[key] = value.slice();
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
uniforms[key] = value;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
127
97
|
function checkUniformValue(value) {
|
|
128
98
|
if (Array.isArray(value) || ArrayBuffer.isView(value)) {
|
|
129
99
|
return checkUniformArray(value);
|
|
@@ -144,22 +114,6 @@ function checkUniformValue(value) {
|
|
|
144
114
|
return false;
|
|
145
115
|
}
|
|
146
116
|
|
|
147
|
-
function copyUniform(uniforms, key, value) {
|
|
148
|
-
if (Array.isArray(value) || ArrayBuffer.isView(value)) {
|
|
149
|
-
if (uniforms[key]) {
|
|
150
|
-
var dest = uniforms[key];
|
|
151
|
-
|
|
152
|
-
for (var i = 0, len = value.length; i < len; ++i) {
|
|
153
|
-
dest[i] = value[i];
|
|
154
|
-
}
|
|
155
|
-
} else {
|
|
156
|
-
uniforms[key] = value.slice();
|
|
157
|
-
}
|
|
158
|
-
} else {
|
|
159
|
-
uniforms[key] = value;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
117
|
function checkUniformArray(value) {
|
|
164
118
|
if (value.length === 0) {
|
|
165
119
|
return false;
|
|
@@ -203,7 +157,7 @@ function getArraySetter(functionName, toArray, size, uniformSetter) {
|
|
|
203
157
|
cacheLength = length;
|
|
204
158
|
update = true;
|
|
205
159
|
} else {
|
|
206
|
-
(0,
|
|
160
|
+
(0, _api.assert)(cacheLength === length, 'Uniform length cannot change.');
|
|
207
161
|
|
|
208
162
|
for (var i = 0; i < length; ++i) {
|
|
209
163
|
if (arrayValue[i] !== cache[i]) {
|
|
@@ -229,4 +183,50 @@ function setVectorUniform(gl, functionName, location, value) {
|
|
|
229
183
|
function setMatrixUniform(gl, functionName, location, value) {
|
|
230
184
|
gl[functionName](location, false, value);
|
|
231
185
|
}
|
|
186
|
+
|
|
187
|
+
function toTypedArray(value, uniformLength, Type, cache) {
|
|
188
|
+
if (uniformLength === 1 && typeof value === 'boolean') {
|
|
189
|
+
value = value ? 1 : 0;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (Number.isFinite(value)) {
|
|
193
|
+
array1[0] = value;
|
|
194
|
+
value = array1;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
var length = value.length;
|
|
198
|
+
|
|
199
|
+
if (length % uniformLength) {
|
|
200
|
+
_api.log.warn("Uniform size should be multiples of ".concat(uniformLength), value)();
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (value instanceof Type) {
|
|
204
|
+
return value;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
var result = cache[length];
|
|
208
|
+
|
|
209
|
+
if (!result) {
|
|
210
|
+
result = new Type(length);
|
|
211
|
+
cache[length] = result;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
for (var i = 0; i < length; i++) {
|
|
215
|
+
result[i] = value[i];
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
return result;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function toFloatArray(value, uniformLength) {
|
|
222
|
+
return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function toIntArray(value, uniformLength) {
|
|
226
|
+
return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function toUIntArray(value, uniformLength) {
|
|
230
|
+
return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);
|
|
231
|
+
}
|
|
232
232
|
//# sourceMappingURL=uniforms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/classes/uniforms.js"],"names":["UNIFORM_SETTERS","getArraySetter","bind","toFloatArray","setVectorUniform","toIntArray","setMatrixUniform","getSamplerSetter","toUIntArray","FLOAT_ARRAY","INT_ARRAY","UINT_ARRAY","array1","toTypedArray","value","uniformLength","Type","cache","Number","isFinite","length","log","warn","result","i","Float32Array","Int32Array","Uint32Array","getUniformSetter","gl","location","info","setter","type","Error","parseUniformName","name","isArray","UNIFORM_NAME_REGEXP","matches","match","Boolean","checkUniformValues","uniforms","source","uniformMap","uniformName","shouldCheck","checkUniformValue","console","error","Array","ArrayBuffer","isView","checkUniformArray","Texture","Renderbuffer","Framebuffer","texture","copyUniform","key","dest","len","slice","checkLength","Math","min","update","uniform1i","functionName","toArray","size","uniformSetter","cacheLength","arrayValue","set"],"mappings":"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","sourcesContent":["/** @typedef {import('./uniforms')} types */\n\nimport GL from '@luma.gl/constants';\nimport {log} from '@luma.gl/gltools';\n\nimport Framebuffer from './framebuffer';\nimport Renderbuffer from './renderbuffer';\nimport Texture from './texture';\nimport {assert} from '../utils/assert';\n\nconst UNIFORM_SETTERS = {\n // WEBGL1\n\n /* eslint-disable max-len */\n [GL.FLOAT]: getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform),\n [GL.FLOAT_VEC2]: getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform),\n [GL.FLOAT_VEC3]: getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform),\n [GL.FLOAT_VEC4]: getArraySetter.bind(null, 'uniform4fv', toFloatArray, 4, setVectorUniform),\n\n [GL.INT]: getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform),\n [GL.INT_VEC2]: getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform),\n [GL.INT_VEC3]: getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform),\n [GL.INT_VEC4]: getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform),\n\n [GL.BOOL]: getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform),\n [GL.BOOL_VEC2]: getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform),\n [GL.BOOL_VEC3]: getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform),\n [GL.BOOL_VEC4]: getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform),\n\n // uniformMatrix(false): don't transpose the matrix\n [GL.FLOAT_MAT2]: getArraySetter.bind(null, 'uniformMatrix2fv', toFloatArray, 4, setMatrixUniform),\n [GL.FLOAT_MAT3]: getArraySetter.bind(null, 'uniformMatrix3fv', toFloatArray, 9, setMatrixUniform),\n [GL.FLOAT_MAT4]: getArraySetter.bind(\n null,\n 'uniformMatrix4fv',\n toFloatArray,\n 16,\n setMatrixUniform\n ),\n\n [GL.SAMPLER_2D]: getSamplerSetter,\n [GL.SAMPLER_CUBE]: getSamplerSetter,\n\n // WEBGL2 - unsigned integers, irregular matrices, additional texture samplers\n\n [GL.UNSIGNED_INT]: getArraySetter.bind(null, 'uniform1uiv', toUIntArray, 1, setVectorUniform),\n [GL.UNSIGNED_INT_VEC2]: getArraySetter.bind(\n null,\n 'uniform2uiv',\n toUIntArray,\n 2,\n setVectorUniform\n ),\n [GL.UNSIGNED_INT_VEC3]: getArraySetter.bind(\n null,\n 'uniform3uiv',\n toUIntArray,\n 3,\n setVectorUniform\n ),\n [GL.UNSIGNED_INT_VEC4]: getArraySetter.bind(\n null,\n 'uniform4uiv',\n toUIntArray,\n 4,\n setVectorUniform\n ),\n\n // uniformMatrix(false): don't transpose the matrix\n [GL.FLOAT_MAT2x3]: getArraySetter.bind(\n null,\n 'uniformMatrix2x3fv',\n toFloatArray,\n 6,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT2x4]: getArraySetter.bind(\n null,\n 'uniformMatrix2x4fv',\n toFloatArray,\n 8,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT3x2]: getArraySetter.bind(\n null,\n 'uniformMatrix3x2fv',\n toFloatArray,\n 6,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT3x4]: getArraySetter.bind(\n null,\n 'uniformMatrix3x4fv',\n toFloatArray,\n 12,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT4x2]: getArraySetter.bind(\n null,\n 'uniformMatrix4x2fv',\n toFloatArray,\n 8,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT4x3]: getArraySetter.bind(\n null,\n 'uniformMatrix4x3fv',\n toFloatArray,\n 12,\n setMatrixUniform\n ),\n\n [GL.SAMPLER_2D]: getSamplerSetter,\n [GL.SAMPLER_CUBE]: getSamplerSetter,\n\n [GL.SAMPLER_3D]: getSamplerSetter,\n [GL.SAMPLER_2D_SHADOW]: getSamplerSetter,\n [GL.SAMPLER_2D_ARRAY]: getSamplerSetter,\n [GL.SAMPLER_2D_ARRAY_SHADOW]: getSamplerSetter,\n [GL.SAMPLER_CUBE_SHADOW]: getSamplerSetter,\n [GL.INT_SAMPLER_2D]: getSamplerSetter,\n [GL.INT_SAMPLER_3D]: getSamplerSetter,\n [GL.INT_SAMPLER_CUBE]: getSamplerSetter,\n [GL.INT_SAMPLER_2D_ARRAY]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_2D]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_3D]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: getSamplerSetter\n /* eslint-enable max-len */\n};\n\n// Pre-allocated typed arrays for temporary conversion\nconst FLOAT_ARRAY = {};\nconst INT_ARRAY = {};\nconst UINT_ARRAY = {};\n\nconst array1 = [0];\n\n// Functions to ensure the type of uniform values\n// This is done because uniform*v functions\n// are extremely slow when consuming JS arrays directly.\nfunction toTypedArray(value, uniformLength, Type, cache) {\n // convert boolean uniforms to Number\n if (uniformLength === 1 && typeof value === 'boolean') {\n value = value ? 1 : 0;\n }\n if (Number.isFinite(value)) {\n array1[0] = value;\n value = array1;\n }\n const length = value.length;\n if (length % uniformLength) {\n log.warn(`Uniform size should be multiples of ${uniformLength}`, value)();\n }\n\n if (value instanceof Type) {\n return value;\n }\n let result = cache[length];\n if (!result) {\n result = new Type(length);\n cache[length] = result;\n }\n for (let i = 0; i < length; i++) {\n result[i] = value[i];\n }\n return result;\n}\n\nfunction toFloatArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);\n}\n\nfunction toIntArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);\n}\n\nfunction toUIntArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);\n} // Returns a Magic Uniform Setter\n\n// PUBLIC API\n\n/** @type {types['getUniformSetter']} */ export function getUniformSetter(gl, location, info) {\n const setter = UNIFORM_SETTERS[info.type];\n if (!setter) {\n throw new Error(`Unknown GLSL uniform type ${info.type}`);\n }\n\n // NOTE(Tarek): This construction is the ensure\n // separate caches for all setters.\n return setter().bind(null, gl, location);\n}\n\n/** @type {types['parseUniformName']} */\nexport function parseUniformName(name) {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: matches[2] || 1,\n isArray: Boolean(matches[2])\n };\n} // To facilitate early detection of e.g. undefined values in JavaScript\n\n// Basic checks of uniform values (with or without knowledge of program)\n\n/** @type {types['checkUniformValues']} */\nexport function checkUniformValues(uniforms, source, uniformMap) {\n for (const uniformName in uniforms) {\n const value = uniforms[uniformName];\n const shouldCheck = !uniformMap || Boolean(uniformMap[uniformName]);\n if (shouldCheck && !checkUniformValue(value)) {\n // Add space to source\n source = source ? `${source} ` : '';\n // Value could be unprintable so write the object on console\n console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line\n /* eslint-enable no-console */\n throw new Error(`${source} Bad uniform ${uniformName}`);\n }\n }\n return true;\n}\n\n// TODO use type information during validation\nfunction checkUniformValue(value) {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n return checkUniformArray(value);\n }\n\n // Check if single value is a number\n if (isFinite(value)) {\n return true;\n } else if (value === true || value === false) {\n return true;\n } else if (value instanceof Texture) {\n return true;\n } else if (value instanceof Renderbuffer) {\n return true;\n } else if (value instanceof Framebuffer) {\n return Boolean(value.texture);\n }\n return false;\n}\n\n/** @type {types['copyUniform']} */\nexport function copyUniform(uniforms, key, value) {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n if (uniforms[key]) {\n const dest = uniforms[key];\n // @ts-ignore\n for (let i = 0, len = value.length; i < len; ++i) {\n dest[i] = value[i];\n }\n } else {\n // @ts-ignore\n uniforms[key] = value.slice();\n }\n } else {\n uniforms[key] = value;\n }\n}\n\n// HELPERS\n\nfunction checkUniformArray(value) {\n // Check that every element in array is a number, and at least 1 element\n if (value.length === 0) {\n return false;\n }\n\n const checkLength = Math.min(value.length, 16);\n\n for (let i = 0; i < checkLength; ++i) {\n if (!Number.isFinite(value[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n// NOTE(Tarek): Setters maintain a cache\n// of the previously set value, and\n// avoid resetting it if it's the same.\nfunction getSamplerSetter() {\n let cache = null;\n return (gl, location, value) => {\n const update = cache !== value;\n if (update) {\n gl.uniform1i(location, value);\n cache = value;\n }\n\n return update;\n };\n}\n\nfunction getArraySetter(functionName, toArray, size, uniformSetter) {\n let cache = null;\n let cacheLength = null;\n return (gl, location, value) => {\n const arrayValue = toArray(value, size);\n const length = arrayValue.length;\n let update = false;\n if (cache === null) {\n cache = new Float32Array(length);\n cacheLength = length;\n update = true;\n } else {\n assert(cacheLength === length, 'Uniform length cannot change.');\n for (let i = 0; i < length; ++i) {\n if (arrayValue[i] !== cache[i]) {\n update = true;\n break;\n }\n }\n }\n if (update) {\n uniformSetter(gl, functionName, location, arrayValue);\n cache.set(arrayValue);\n }\n\n return update;\n };\n}\n\nfunction setVectorUniform(gl, functionName, location, value) {\n gl[functionName](location, value);\n}\n\nfunction setMatrixUniform(gl, functionName, location, value) {\n gl[functionName](location, false, value);\n}\n"],"file":"uniforms.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/classes/uniforms.ts"],"names":["UNIFORM_SETTERS","GL","FLOAT","getArraySetter","bind","toFloatArray","setVectorUniform","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT","toIntArray","INT_VEC2","INT_VEC3","INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","setMatrixUniform","FLOAT_MAT3","FLOAT_MAT4","SAMPLER_2D","getSamplerSetter","SAMPLER_CUBE","UNSIGNED_INT","toUIntArray","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","FLOAT_MAT2x3","FLOAT_MAT2x4","FLOAT_MAT3x2","FLOAT_MAT3x4","FLOAT_MAT4x2","FLOAT_MAT4x3","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","FLOAT_ARRAY","INT_ARRAY","UINT_ARRAY","array1","getUniformSetter","gl","location","info","setter","type","Error","parseUniformName","name","length","isArray","UNIFORM_NAME_REGEXP","matches","match","Number","Boolean","checkUniformValues","uniforms","source","uniformMap","uniformName","value","shouldCheck","checkUniformValue","console","error","copyUniform","key","Array","ArrayBuffer","isView","dest","i","len","slice","checkUniformArray","isFinite","Texture","Renderbuffer","Framebuffer","texture","checkLength","Math","min","cache","update","uniform1i","functionName","toArray","size","uniformSetter","cacheLength","arrayValue","Float32Array","set","toTypedArray","uniformLength","Type","log","warn","result","Int32Array","Uint32Array"],"mappings":"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","sourcesContent":["import {log, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {Matrix4} from '@math.gl/core';\n\nimport Framebuffer from './framebuffer';\nimport Renderbuffer from './renderbuffer';\nimport Texture from './texture';\n\ntype NumberUniformInfo = {\n type: 'number'\n value: number\n min: number\n max: number\n}\n\ntype BooleanUniformInfo = {\n type: 'boolean'\n value: boolean\n}\n\ntype ArrayUniformInfo = {\n type: 'array'\n value: Array<any>\n}\n\ntype ObjectUniformInfo = {\n type: 'object'\n value: Object\n}\n\ntype UniformInfo = NumberUniformInfo |\n BooleanUniformInfo |\n ArrayUniformInfo |\n ObjectUniformInfo\n\n// https://luma.gl/docs/developer-guide/shader-modules#getuniforms\ntype UniformsOptions = {\n [uniformName: string]: UniformInfo\n}\n\ntype Uniform = UniformInfo |\n Buffer | (() => Buffer) | Framebuffer |\n Texture |\n Matrix4 | // TODO: which other math.gl classes?\n number | [number, number] | [number, number, number] | [number, number, number, number]\n\ntype Uniforms = {\n [uniformName: string]: Uniform\n}\n\nconst UNIFORM_SETTERS = {\n // WEBGL1\n\n [GL.FLOAT]: getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform),\n [GL.FLOAT_VEC2]: getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform),\n [GL.FLOAT_VEC3]: getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform),\n [GL.FLOAT_VEC4]: getArraySetter.bind(null, 'uniform4fv', toFloatArray, 4, setVectorUniform),\n\n [GL.INT]: getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform),\n [GL.INT_VEC2]: getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform),\n [GL.INT_VEC3]: getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform),\n [GL.INT_VEC4]: getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform),\n\n [GL.BOOL]: getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform),\n [GL.BOOL_VEC2]: getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform),\n [GL.BOOL_VEC3]: getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform),\n [GL.BOOL_VEC4]: getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform),\n\n // uniformMatrix(false): don't transpose the matrix\n [GL.FLOAT_MAT2]: getArraySetter.bind(null, 'uniformMatrix2fv', toFloatArray, 4, setMatrixUniform),\n [GL.FLOAT_MAT3]: getArraySetter.bind(null, 'uniformMatrix3fv', toFloatArray, 9, setMatrixUniform),\n [GL.FLOAT_MAT4]: getArraySetter.bind(\n null,\n 'uniformMatrix4fv',\n toFloatArray,\n 16,\n setMatrixUniform\n ),\n\n [GL.SAMPLER_2D]: getSamplerSetter,\n [GL.SAMPLER_CUBE]: getSamplerSetter,\n\n // WEBGL2 - unsigned integers, irregular matrices, additional texture samplers\n\n [GL.UNSIGNED_INT]: getArraySetter.bind(null, 'uniform1uiv', toUIntArray, 1, setVectorUniform),\n [GL.UNSIGNED_INT_VEC2]: getArraySetter.bind(\n null,\n 'uniform2uiv',\n toUIntArray,\n 2,\n setVectorUniform\n ),\n [GL.UNSIGNED_INT_VEC3]: getArraySetter.bind(\n null,\n 'uniform3uiv',\n toUIntArray,\n 3,\n setVectorUniform\n ),\n [GL.UNSIGNED_INT_VEC4]: getArraySetter.bind(\n null,\n 'uniform4uiv',\n toUIntArray,\n 4,\n setVectorUniform\n ),\n\n // uniformMatrix(false): don't transpose the matrix\n [GL.FLOAT_MAT2x3]: getArraySetter.bind(\n null,\n 'uniformMatrix2x3fv',\n toFloatArray,\n 6,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT2x4]: getArraySetter.bind(\n null,\n 'uniformMatrix2x4fv',\n toFloatArray,\n 8,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT3x2]: getArraySetter.bind(\n null,\n 'uniformMatrix3x2fv',\n toFloatArray,\n 6,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT3x4]: getArraySetter.bind(\n null,\n 'uniformMatrix3x4fv',\n toFloatArray,\n 12,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT4x2]: getArraySetter.bind(\n null,\n 'uniformMatrix4x2fv',\n toFloatArray,\n 8,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT4x3]: getArraySetter.bind(\n null,\n 'uniformMatrix4x3fv',\n toFloatArray,\n 12,\n setMatrixUniform\n ),\n\n [GL.SAMPLER_2D]: getSamplerSetter,\n [GL.SAMPLER_CUBE]: getSamplerSetter,\n\n [GL.SAMPLER_3D]: getSamplerSetter,\n [GL.SAMPLER_2D_SHADOW]: getSamplerSetter,\n [GL.SAMPLER_2D_ARRAY]: getSamplerSetter,\n [GL.SAMPLER_2D_ARRAY_SHADOW]: getSamplerSetter,\n [GL.SAMPLER_CUBE_SHADOW]: getSamplerSetter,\n [GL.INT_SAMPLER_2D]: getSamplerSetter,\n [GL.INT_SAMPLER_3D]: getSamplerSetter,\n [GL.INT_SAMPLER_CUBE]: getSamplerSetter,\n [GL.INT_SAMPLER_2D_ARRAY]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_2D]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_3D]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: getSamplerSetter\n};\n\n// Pre-allocated typed arrays for temporary conversion\nconst FLOAT_ARRAY = {};\nconst INT_ARRAY = {};\nconst UINT_ARRAY = {};\n\nconst array1 = [0];\n\n// PUBLIC API\n\n/** Returns a Magic Uniform Setter */\nexport function getUniformSetter(gl: WebGLRenderingContext, location: number, info: UniformInfo): any {\n const setter = UNIFORM_SETTERS[info.type];\n if (!setter) {\n throw new Error(`Unknown GLSL uniform type ${info.type}`);\n }\n\n // NOTE(Tarek): This construction is the ensure\n // separate caches for all setters.\n return setter().bind(null, gl, location);\n}\n\nexport function parseUniformName(name: string): {name: string; isArray: boolean, length: number} {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: Number(matches[2]) || 1,\n isArray: Boolean(matches[2])\n };\n}\n\n// To facilitate early detection of e.g. undefined values in JavaScript\n\n// Basic checks of uniform values (with or without knowledge of program)\n\n/**\n * Basic checks of uniform values (with or without knowledge of program)\n * To facilitate early detection of e.g. undefined values in JavaScript\n */\n export function checkUniformValues(uniforms: object, source?: string, uniformMap?: object): boolean {\n for (const uniformName in uniforms) {\n const value = uniforms[uniformName];\n const shouldCheck = !uniformMap || Boolean(uniformMap[uniformName]);\n if (shouldCheck && !checkUniformValue(value)) {\n // Add space to source\n source = source ? `${source} ` : '';\n // Value could be unprintable so write the object on console\n console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line no-console\n throw new Error(`${source} Bad uniform ${uniformName}`);\n }\n }\n return true;\n}\n\n /**\n * Creates a copy of the uniform\n */\nexport function copyUniform(uniforms: object, key: string, value: any): void {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n if (uniforms[key]) {\n const dest = uniforms[key];\n // @ts-expect-error\n for (let i = 0, len = value.length; i < len; ++i) {\n dest[i] = value[i];\n }\n } else {\n // @ts-expect-error\n uniforms[key] = value.slice();\n }\n } else {\n uniforms[key] = value;\n }\n}\n\n// HELPERS\n\n// TODO use type information during validation\nfunction checkUniformValue(value) {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n return checkUniformArray(value);\n }\n\n // Check if single value is a number\n if (isFinite(value)) {\n return true;\n } else if (value === true || value === false) {\n return true;\n } else if (value instanceof Texture) {\n return true;\n } else if (value instanceof Renderbuffer) {\n return true;\n } else if (value instanceof Framebuffer) {\n return Boolean(value.texture);\n }\n return false;\n}\n\n\nfunction checkUniformArray(value) {\n // Check that every element in array is a number, and at least 1 element\n if (value.length === 0) {\n return false;\n }\n\n const checkLength = Math.min(value.length, 16);\n\n for (let i = 0; i < checkLength; ++i) {\n if (!Number.isFinite(value[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n// NOTE(Tarek): Setters maintain a cache\n// of the previously set value, and\n// avoid resetting it if it's the same.\nfunction getSamplerSetter() {\n let cache = null;\n return (gl, location, value) => {\n const update = cache !== value;\n if (update) {\n gl.uniform1i(location, value);\n cache = value;\n }\n\n return update;\n };\n}\n\nfunction getArraySetter(functionName, toArray, size, uniformSetter) {\n let cache = null;\n let cacheLength = null;\n return (gl, location, value) => {\n const arrayValue = toArray(value, size);\n const length = arrayValue.length;\n let update = false;\n if (cache === null) {\n cache = new Float32Array(length);\n cacheLength = length;\n update = true;\n } else {\n assert(cacheLength === length, 'Uniform length cannot change.');\n for (let i = 0; i < length; ++i) {\n if (arrayValue[i] !== cache[i]) {\n update = true;\n break;\n }\n }\n }\n if (update) {\n uniformSetter(gl, functionName, location, arrayValue);\n cache.set(arrayValue);\n }\n\n return update;\n };\n}\n\nfunction setVectorUniform(gl, functionName, location, value) {\n gl[functionName](location, value);\n}\n\nfunction setMatrixUniform(gl, functionName, location, value) {\n gl[functionName](location, false, value);\n}\n\n// Functions to ensure the type of uniform values\n// This is done because uniform*v functions\n// are extremely slow when consuming JS arrays directly.\n\nfunction toTypedArray(value, uniformLength, Type, cache) {\n // convert boolean uniforms to Number\n if (uniformLength === 1 && typeof value === 'boolean') {\n value = value ? 1 : 0;\n }\n if (Number.isFinite(value)) {\n array1[0] = value;\n value = array1;\n }\n const length = value.length;\n if (length % uniformLength) {\n log.warn(`Uniform size should be multiples of ${uniformLength}`, value)();\n }\n\n if (value instanceof Type) {\n return value;\n }\n let result = cache[length];\n if (!result) {\n result = new Type(length);\n cache[length] = result;\n }\n for (let i = 0; i < length; i++) {\n result[i] = value[i];\n }\n return result;\n}\n\nfunction toFloatArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);\n}\n\nfunction toIntArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);\n}\n\nfunction toUIntArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);\n}\n"],"file":"uniforms.js"}
|