@luma.gl/webgl 8.5.10 → 8.6.0-alpha.1
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/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 +16 -0
- package/dist/classes/clear.d.ts.map +1 -0
- package/dist/classes/clear.js +102 -0
- package/dist/classes/clear.js.map +1 -0
- package/dist/classes/copy-and-blit.d.ts +69 -0
- package/dist/classes/copy-and-blit.d.ts.map +1 -0
- package/dist/classes/copy-and-blit.js +333 -0
- package/dist/classes/copy-and-blit.js.map +1 -0
- package/dist/classes/framebuffer.d.ts +130 -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 +368 -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 +144 -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 +127 -0
- package/dist/classes/renderbuffer.js.map +1 -0
- package/dist/classes/texture-2d.d.ts +8 -0
- package/dist/classes/texture-2d.d.ts.map +1 -0
- package/dist/classes/texture-2d.js +39 -0
- package/dist/classes/texture-2d.js.map +1 -0
- package/dist/classes/texture-3d.d.ts +28 -0
- package/dist/classes/texture-3d.d.ts.map +1 -0
- package/dist/classes/texture-3d.js +67 -0
- package/dist/classes/texture-3d.js.map +1 -0
- package/dist/classes/texture-cube.d.ts +27 -0
- package/dist/classes/texture-cube.d.ts.map +1 -0
- package/dist/classes/texture-cube.js +131 -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 +118 -0
- package/dist/classes/texture.d.ts.map +1 -0
- package/dist/classes/texture.js +785 -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 +197 -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 +38 -0
- package/dist/classes/uniforms.d.ts.map +1 -0
- package/dist/classes/uniforms.js +251 -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 +262 -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 +409 -0
- package/dist/classes/vertex-array.js.map +1 -0
- package/dist/classes/webgl-buffer.d.ts +98 -0
- package/dist/classes/webgl-buffer.d.ts.map +1 -0
- package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +97 -73
- package/dist/classes/webgl-buffer.js.map +1 -0
- package/dist/classes/webgl-resource.d.ts +54 -0
- package/dist/classes/webgl-resource.d.ts.map +1 -0
- package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +31 -52
- package/dist/classes/webgl-resource.js.map +1 -0
- package/dist/classes/webgl-shader.d.ts +51 -0
- package/dist/classes/webgl-shader.d.ts.map +1 -0
- package/dist/classes/webgl-shader.js +190 -0
- package/dist/classes/webgl-shader.js.map +1 -0
- package/dist/context/gl-context.d.ts +15 -0
- package/dist/context/gl-context.d.ts.map +1 -0
- package/dist/context/gl-context.js +32 -0
- package/dist/context/gl-context.js.map +1 -0
- package/dist/context/luma-context-data.d.ts +31 -0
- package/dist/context/luma-context-data.d.ts.map +1 -0
- package/dist/context/luma-context-data.js +5 -0
- package/dist/context/luma-context-data.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/bundle.js +3 -5
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classes/accessor.js +76 -108
- package/dist/es5/classes/accessor.js.map +1 -1
- package/dist/es5/classes/accessor.ts.disabled +159 -0
- package/dist/es5/classes/clear.js +33 -48
- package/dist/es5/classes/clear.js.map +1 -1
- package/dist/es5/classes/copy-and-blit.js +177 -192
- package/dist/es5/classes/copy-and-blit.js.map +1 -1
- package/dist/es5/classes/framebuffer.js +538 -655
- package/dist/es5/classes/framebuffer.js.map +1 -1
- package/dist/es5/classes/program-configuration.js +127 -141
- package/dist/es5/classes/program-configuration.js.map +1 -1
- package/dist/es5/classes/program.js +294 -358
- package/dist/es5/classes/program.js.map +1 -1
- package/dist/es5/classes/query.js +115 -181
- package/dist/es5/classes/query.js.map +1 -1
- package/dist/es5/classes/renderbuffer-formats.js +186 -121
- package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
- package/dist/es5/classes/renderbuffer.js +104 -128
- package/dist/es5/classes/renderbuffer.js.map +1 -1
- package/dist/es5/classes/texture-2d.js +16 -39
- package/dist/es5/classes/texture-2d.js.map +1 -1
- package/dist/es5/classes/texture-3d.js +50 -89
- package/dist/es5/classes/texture-3d.js.map +1 -1
- package/dist/es5/classes/texture-cube.js +112 -162
- package/dist/es5/classes/texture-cube.js.map +1 -1
- package/dist/es5/classes/texture-formats.js +73 -42
- package/dist/es5/classes/texture-formats.js.map +1 -1
- package/dist/es5/classes/texture.js +670 -673
- package/dist/es5/classes/texture.js.map +1 -1
- package/dist/es5/classes/transform-feedback.js +150 -203
- package/dist/es5/classes/transform-feedback.js.map +1 -1
- package/dist/es5/classes/uniform-buffer-layout.js +89 -103
- package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
- package/dist/es5/classes/uniforms.js +134 -93
- package/dist/es5/classes/uniforms.js.map +1 -1
- package/dist/es5/classes/vertex-array-object.js +204 -306
- package/dist/es5/classes/vertex-array-object.js.map +1 -1
- package/dist/es5/classes/vertex-array.js +317 -353
- package/dist/es5/classes/vertex-array.js.map +1 -1
- package/dist/es5/classes/webgl-buffer.js +391 -0
- package/dist/es5/classes/webgl-buffer.js.map +1 -0
- package/dist/es5/classes/webgl-resource.js +217 -0
- package/dist/es5/classes/webgl-resource.js.map +1 -0
- package/dist/es5/classes/webgl-shader.js +213 -0
- package/dist/es5/classes/webgl-shader.js.map +1 -0
- package/dist/es5/context/gl-context.js +46 -0
- package/dist/es5/context/gl-context.js.map +1 -0
- package/dist/es5/context/luma-context-data.js +12 -0
- package/dist/es5/context/luma-context-data.js.map +1 -0
- package/dist/es5/debug/debug-program-configuration.js +20 -48
- package/dist/es5/debug/debug-program-configuration.js.map +1 -1
- package/dist/es5/debug/debug-uniforms.js +72 -114
- package/dist/es5/debug/debug-uniforms.js.map +1 -1
- package/dist/es5/debug/debug-vertex-array.js +56 -51
- package/dist/es5/debug/debug-vertex-array.js.map +1 -1
- package/dist/es5/features/check-glsl-extension.js +9 -10
- package/dist/es5/features/check-glsl-extension.js.map +1 -1
- package/dist/es5/features/check-old-ie.js +5 -6
- package/dist/es5/features/check-old-ie.js.map +1 -1
- package/dist/es5/features/features.js +23 -37
- package/dist/es5/features/features.js.map +1 -1
- package/dist/es5/features/index.js +8 -8
- package/dist/es5/features/index.js.map +1 -1
- package/dist/es5/features/limits.js +36 -28
- package/dist/es5/features/limits.js.map +1 -1
- package/dist/es5/features/webgl-features-table.js +35 -15
- package/dist/es5/features/webgl-features-table.js.map +1 -1
- package/dist/es5/features/webgl-limits-table.js +160 -120
- package/dist/es5/features/webgl-limits-table.js.map +1 -1
- package/dist/es5/index.js +144 -90
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +12 -36
- 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/utils/array-utils-flat.js +13 -14
- package/dist/es5/utils/array-utils-flat.js.map +1 -1
- package/dist/es5/utils/assert.js +1 -1
- package/dist/es5/utils/assert.js.map +1 -1
- package/dist/es5/utils/check-props.js +20 -21
- package/dist/es5/utils/check-props.js.map +1 -1
- package/dist/es5/utils/format-value.js +14 -14
- package/dist/es5/utils/format-value.js.map +1 -1
- package/dist/es5/utils/index.js +68 -0
- package/dist/es5/utils/index.js.map +1 -0
- package/dist/es5/utils/is-old-ie.js +2 -3
- package/dist/es5/utils/is-old-ie.js.map +1 -1
- package/dist/es5/utils/load-file.js +11 -18
- package/dist/es5/utils/load-file.js.map +1 -1
- package/dist/es5/utils/stub-methods.js +4 -4
- package/dist/es5/utils/stub-methods.js.map +1 -1
- package/dist/es5/utils/utils.js +5 -10
- package/dist/es5/utils/utils.js.map +1 -1
- package/dist/es5/webgl-utils/attribute-utils.js +87 -74
- package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
- package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
- package/dist/es5/webgl-utils/format-utils.js +21 -17
- package/dist/es5/webgl-utils/format-utils.js.map +1 -1
- package/dist/es5/webgl-utils/get-error.js +18 -18
- package/dist/es5/webgl-utils/get-error.js.map +1 -1
- package/dist/es5/webgl-utils/index.js +74 -0
- package/dist/es5/webgl-utils/index.js.map +1 -0
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js +44 -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 +35 -29
- package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
- package/dist/es5/webgl-utils/typed-array-utils.js +51 -47
- package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/esm/bundle.js +2 -4
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classes/accessor.js +7 -7
- package/dist/esm/classes/accessor.js.map +1 -1
- package/dist/esm/classes/accessor.ts.disabled +159 -0
- package/dist/esm/classes/clear.js +15 -13
- package/dist/esm/classes/clear.js.map +1 -1
- package/dist/esm/classes/copy-and-blit.js +41 -43
- package/dist/esm/classes/copy-and-blit.js.map +1 -1
- package/dist/esm/classes/framebuffer.js +336 -308
- package/dist/esm/classes/framebuffer.js.map +1 -1
- package/dist/esm/classes/program-configuration.js +17 -9
- package/dist/esm/classes/program-configuration.js.map +1 -1
- package/dist/esm/classes/program.js +69 -44
- package/dist/esm/classes/program.js.map +1 -1
- package/dist/esm/classes/query.js +17 -14
- 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 +84 -72
- package/dist/esm/classes/renderbuffer.js.map +1 -1
- package/dist/esm/classes/texture-2d.js +10 -3
- package/dist/esm/classes/texture-2d.js.map +1 -1
- package/dist/esm/classes/texture-3d.js +14 -11
- package/dist/esm/classes/texture-3d.js.map +1 -1
- package/dist/esm/classes/texture-cube.js +43 -28
- package/dist/esm/classes/texture-cube.js.map +1 -1
- package/dist/esm/classes/texture-formats.js +51 -50
- package/dist/esm/classes/texture-formats.js.map +1 -1
- package/dist/esm/classes/texture.js +164 -49
- package/dist/esm/classes/texture.js.map +1 -1
- package/dist/esm/classes/transform-feedback.js +24 -13
- 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 -112
- package/dist/esm/classes/uniforms.js.map +1 -1
- package/dist/esm/classes/vertex-array-object.js +52 -88
- package/dist/esm/classes/vertex-array-object.js.map +1 -1
- package/dist/esm/classes/vertex-array.js +50 -28
- package/dist/esm/classes/vertex-array.js.map +1 -1
- package/dist/esm/classes/webgl-buffer.js +379 -0
- package/dist/esm/classes/webgl-buffer.js.map +1 -0
- package/dist/esm/classes/webgl-resource.js +208 -0
- package/dist/esm/classes/webgl-resource.js.map +1 -0
- package/dist/esm/classes/webgl-shader.js +190 -0
- package/dist/esm/classes/webgl-shader.js.map +1 -0
- package/dist/esm/context/gl-context.js +32 -0
- package/dist/esm/context/gl-context.js.map +1 -0
- package/dist/esm/context/luma-context-data.js +5 -0
- package/dist/esm/context/luma-context-data.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 +19 -17
- package/dist/esm/debug/debug-vertex-array.js.map +1 -1
- package/dist/esm/features/check-glsl-extension.js +4 -4
- package/dist/esm/features/check-glsl-extension.js.map +1 -1
- package/dist/esm/features/check-old-ie.js.map +1 -1
- package/dist/esm/features/features.js +14 -13
- package/dist/esm/features/features.js.map +1 -1
- package/dist/esm/features/index.js.map +1 -1
- package/dist/esm/features/limits.js +25 -22
- package/dist/esm/features/limits.js.map +1 -1
- package/dist/esm/features/webgl-features-table.js +6 -6
- package/dist/esm/features/webgl-features-table.js.map +1 -1
- package/dist/esm/features/webgl-limits-table.js +43 -42
- package/dist/esm/features/webgl-limits-table.js.map +1 -1
- package/dist/esm/index.js +13 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +4 -23
- 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/utils/array-utils-flat.js.map +1 -1
- package/dist/esm/utils/assert.js +1 -1
- package/dist/esm/utils/assert.js.map +1 -1
- package/dist/esm/utils/check-props.js +4 -4
- package/dist/esm/utils/check-props.js.map +1 -1
- package/dist/esm/utils/format-value.js +4 -4
- package/dist/esm/utils/format-value.js.map +1 -1
- package/dist/esm/utils/index.js +7 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/is-old-ie.js +1 -1
- package/dist/esm/utils/is-old-ie.js.map +1 -1
- package/dist/esm/utils/load-file.js +2 -2
- package/dist/esm/utils/load-file.js.map +1 -1
- package/dist/esm/utils/stub-methods.js +2 -3
- package/dist/esm/utils/stub-methods.js.map +1 -1
- package/dist/esm/utils/utils.js +1 -3
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/esm/webgl-utils/attribute-utils.js +1 -1
- package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
- package/dist/esm/webgl-utils/constants-to-keys.js +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 +19 -18
- package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
- package/dist/features/check-glsl-extension.d.ts +2 -0
- package/dist/features/check-glsl-extension.d.ts.map +1 -0
- package/dist/features/check-glsl-extension.js +27 -0
- package/dist/features/check-glsl-extension.js.map +1 -0
- package/dist/features/check-old-ie.d.ts +2 -0
- package/dist/features/check-old-ie.d.ts.map +1 -0
- package/dist/features/check-old-ie.js +8 -0
- package/dist/features/check-old-ie.js.map +1 -0
- package/dist/features/features.d.ts +6 -0
- package/dist/features/features.d.ts.map +1 -0
- package/dist/features/features.js +67 -0
- package/dist/features/features.js.map +1 -0
- package/dist/features/index.d.ts +5 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +5 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/limits.d.ts +28 -0
- package/dist/features/limits.d.ts.map +1 -0
- package/dist/features/limits.js +55 -0
- package/dist/features/limits.js.map +1 -0
- package/dist/features/webgl-features-table.d.ts +30 -0
- package/dist/features/webgl-features-table.d.ts.map +1 -0
- package/dist/features/webgl-features-table.js +71 -0
- package/dist/features/webgl-features-table.js.map +1 -0
- package/dist/features/webgl-limits-table.d.ts +161 -0
- package/dist/features/webgl-limits-table.d.ts.map +1 -0
- package/dist/features/webgl-limits-table.js +161 -0
- package/dist/features/webgl-limits-table.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -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 +30 -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/utils/array-utils-flat.d.ts +9 -0
- package/dist/utils/array-utils-flat.d.ts.map +1 -0
- package/dist/utils/array-utils-flat.js +39 -0
- package/dist/utils/array-utils-flat.js.map +1 -0
- package/dist/utils/assert.d.ts +2 -0
- package/dist/utils/assert.d.ts.map +1 -0
- package/dist/utils/assert.js +6 -0
- package/dist/utils/assert.js.map +1 -0
- package/dist/utils/check-props.d.ts +2 -0
- package/dist/utils/check-props.d.ts.map +1 -0
- package/dist/utils/check-props.js +38 -0
- package/dist/utils/check-props.js.map +1 -0
- package/dist/utils/format-value.d.ts +5 -0
- package/dist/utils/format-value.d.ts.map +1 -0
- package/dist/utils/format-value.js +50 -0
- package/dist/utils/format-value.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/is-old-ie.d.ts +4 -0
- package/dist/utils/is-old-ie.d.ts.map +1 -0
- package/dist/utils/is-old-ie.js +5 -0
- package/dist/utils/is-old-ie.js.map +1 -0
- package/dist/utils/load-file.d.ts +4 -0
- package/dist/utils/load-file.d.ts.map +1 -0
- package/dist/utils/load-file.js +30 -0
- package/dist/utils/load-file.js.map +1 -0
- package/dist/utils/stub-methods.d.ts +2 -0
- package/dist/utils/stub-methods.d.ts.map +1 -0
- package/dist/utils/stub-methods.js +16 -0
- package/dist/utils/stub-methods.js.map +1 -0
- package/dist/utils/utils.d.ts +15 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +20 -0
- package/dist/utils/utils.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 +11 -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 +36 -0
- package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
- package/dist/webgl-utils/typed-array-utils.js +108 -0
- package/dist/webgl-utils/typed-array-utils.js.map +1 -0
- package/package.json +9 -8
- package/src/bundle.ts +4 -0
- package/src/classes/accessor.js +3 -4
- package/src/classes/accessor.ts.disabled +159 -0
- package/src/classes/{clear.js → clear.ts} +13 -9
- package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +113 -22
- package/src/classes/{framebuffer.js → framebuffer.ts} +355 -298
- package/src/classes/{program-configuration.js → program-configuration.ts} +18 -11
- package/src/classes/{program.js → program.ts} +56 -36
- package/src/classes/{query.js → query.ts} +28 -22
- package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
- package/src/classes/renderbuffer.ts +153 -0
- package/src/classes/{texture-2d.js → texture-2d.ts} +15 -5
- package/src/classes/{texture-3d.js → texture-3d.ts} +35 -10
- package/src/classes/{texture-cube.js → texture-cube.ts} +46 -28
- package/src/classes/{texture-formats.js → texture-formats.ts} +9 -1
- package/src/classes/{texture.js → texture.ts} +204 -37
- package/src/classes/{transform-feedback.js → transform-feedback.ts} +22 -14
- package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
- package/src/classes/{uniforms.js → uniforms.ts} +122 -70
- package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +132 -107
- package/src/classes/{vertex-array.js → vertex-array.ts} +74 -54
- package/src/classes/{buffer.js → webgl-buffer.ts} +125 -51
- package/src/classes/{resource.js → webgl-resource.ts} +43 -36
- package/src/classes/webgl-shader.ts +200 -0
- package/src/context/gl-context.ts +31 -0
- package/src/context/luma-context-data.ts +27 -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} +7 -4
- package/src/features/{check-glsl-extension.js → check-glsl-extension.ts} +1 -1
- package/src/features/{check-old-ie.js → check-old-ie.ts} +0 -0
- package/src/features/{features.js → features.ts} +14 -13
- package/src/features/{index.js → index.ts} +0 -0
- package/src/features/{limits.js → limits.ts} +18 -17
- package/src/features/{webgl-features-table.js → webgl-features-table.ts} +0 -0
- package/src/features/{webgl-limits-table.js → webgl-limits-table.ts} +0 -0
- package/{dist/es5/index.d.ts → src/index.ts} +18 -16
- package/src/{init.js → init.ts} +1 -18
- package/{dist/es5/types.d.ts → src/types.ts} +0 -0
- package/src/utils/{array-utils-flat.js → array-utils-flat.ts} +0 -0
- package/src/utils/{assert.js → assert.ts} +1 -1
- package/src/utils/{check-props.js → check-props.ts} +0 -0
- package/src/utils/{format-value.js → format-value.ts} +2 -2
- package/src/utils/index.ts +6 -0
- package/src/utils/{is-old-ie.js → is-old-ie.ts} +1 -1
- package/src/utils/{load-file.js → load-file.ts} +3 -2
- package/src/utils/{stub-methods.js → stub-methods.ts} +1 -1
- package/src/utils/utils.ts +35 -0
- 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 +2 -1
- 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 +0 -453
- 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 +0 -308
- 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/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/init.d.ts +0 -12
- package/dist/es5/utils/assert.d.ts +0 -1
- package/dist/es5/utils/is-old-ie.d.ts +0 -1
- package/dist/es5/utils/utils.d.ts +0 -13
- package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
- 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/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/assert.d.ts +0 -1
- package/dist/esm/utils/is-old-ie.d.ts +0 -1
- package/dist/esm/utils/utils.d.ts +0 -13
- package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
- 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-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/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/types.d.ts +0 -8
- package/src/utils/assert.d.ts +0 -1
- package/src/utils/is-old-ie.d.ts +0 -1
- 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
|
@@ -1,31 +1,32 @@
|
|
|
1
|
+
import GL from '@luma.gl/constants';
|
|
1
2
|
const ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';
|
|
2
3
|
export function getGLTypeFromTypedArray(arrayOrType) {
|
|
3
4
|
const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
|
|
4
5
|
|
|
5
6
|
switch (type) {
|
|
6
7
|
case Float32Array:
|
|
7
|
-
return
|
|
8
|
+
return GL.FLOAT;
|
|
8
9
|
|
|
9
10
|
case Uint16Array:
|
|
10
|
-
return
|
|
11
|
+
return GL.UNSIGNED_SHORT;
|
|
11
12
|
|
|
12
13
|
case Uint32Array:
|
|
13
|
-
return
|
|
14
|
+
return GL.UNSIGNED_INT;
|
|
14
15
|
|
|
15
16
|
case Uint8Array:
|
|
16
|
-
return
|
|
17
|
+
return GL.UNSIGNED_BYTE;
|
|
17
18
|
|
|
18
19
|
case Uint8ClampedArray:
|
|
19
|
-
return
|
|
20
|
+
return GL.UNSIGNED_BYTE;
|
|
20
21
|
|
|
21
22
|
case Int8Array:
|
|
22
|
-
return
|
|
23
|
+
return GL.BYTE;
|
|
23
24
|
|
|
24
25
|
case Int16Array:
|
|
25
|
-
return
|
|
26
|
+
return GL.SHORT;
|
|
26
27
|
|
|
27
28
|
case Int32Array:
|
|
28
|
-
return
|
|
29
|
+
return GL.INT;
|
|
29
30
|
|
|
30
31
|
default:
|
|
31
32
|
throw new Error(ERR_TYPE_DEDUCTION);
|
|
@@ -35,28 +36,28 @@ export function getTypedArrayFromGLType(glType, {
|
|
|
35
36
|
clamped = true
|
|
36
37
|
} = {}) {
|
|
37
38
|
switch (glType) {
|
|
38
|
-
case
|
|
39
|
+
case GL.FLOAT:
|
|
39
40
|
return Float32Array;
|
|
40
41
|
|
|
41
|
-
case
|
|
42
|
-
case
|
|
43
|
-
case
|
|
44
|
-
case
|
|
42
|
+
case GL.UNSIGNED_SHORT:
|
|
43
|
+
case GL.UNSIGNED_SHORT_5_6_5:
|
|
44
|
+
case GL.UNSIGNED_SHORT_4_4_4_4:
|
|
45
|
+
case GL.UNSIGNED_SHORT_5_5_5_1:
|
|
45
46
|
return Uint16Array;
|
|
46
47
|
|
|
47
|
-
case
|
|
48
|
+
case GL.UNSIGNED_INT:
|
|
48
49
|
return Uint32Array;
|
|
49
50
|
|
|
50
|
-
case
|
|
51
|
+
case GL.UNSIGNED_BYTE:
|
|
51
52
|
return clamped ? Uint8ClampedArray : Uint8Array;
|
|
52
53
|
|
|
53
|
-
case
|
|
54
|
+
case GL.BYTE:
|
|
54
55
|
return Int8Array;
|
|
55
56
|
|
|
56
|
-
case
|
|
57
|
+
case GL.SHORT:
|
|
57
58
|
return Int16Array;
|
|
58
59
|
|
|
59
|
-
case
|
|
60
|
+
case GL.INT:
|
|
60
61
|
return Int32Array;
|
|
61
62
|
|
|
62
63
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/webgl-utils/typed-array-utils.js"],"names":["ERR_TYPE_DEDUCTION","getGLTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","Int8Array","Int16Array","Int32Array","Error","getTypedArrayFromGLType","glType","clamped","flipRows","data","width","height","bytesPerPixel","temp","bytesPerRow","y","topOffset","bottomOffset","set","subarray","copyWithin","scalePixels","newWidth","Math","round","newHeight","newData","x","c"],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"sources":["../../../src/webgl-utils/typed-array-utils.js"],"names":["GL","ERR_TYPE_DEDUCTION","getGLTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","FLOAT","Uint16Array","UNSIGNED_SHORT","Uint32Array","UNSIGNED_INT","Uint8Array","UNSIGNED_BYTE","Uint8ClampedArray","Int8Array","BYTE","Int16Array","SHORT","Int32Array","INT","Error","getTypedArrayFromGLType","glType","clamped","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","flipRows","data","width","height","bytesPerPixel","temp","bytesPerRow","y","topOffset","bottomOffset","set","subarray","copyWithin","scalePixels","newWidth","Math","round","newHeight","newData","x","c"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\n\nconst ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';\n\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport function getGLTypeFromTypedArray(arrayOrType) {\n // If typed array, look up constructor\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return GL.FLOAT;\n case Uint16Array:\n return GL.UNSIGNED_SHORT;\n case Uint32Array:\n return GL.UNSIGNED_INT;\n case Uint8Array:\n return GL.UNSIGNED_BYTE;\n case Uint8ClampedArray:\n return GL.UNSIGNED_BYTE;\n case Int8Array:\n return GL.BYTE;\n case Int16Array:\n return GL.SHORT;\n case Int32Array:\n return GL.INT;\n default:\n throw new Error(ERR_TYPE_DEDUCTION);\n }\n}\n\n// Converts GL constant to corresponding TYPED ARRAY\n// Used to auto deduce gl parameter types\n\n/* eslint-disable complexity */\nexport function getTypedArrayFromGLType(glType, {clamped = true} = {}) {\n // Sorted in some order of likelihood to reduce amount of comparisons\n switch (glType) {\n case GL.FLOAT:\n return Float32Array;\n case GL.UNSIGNED_SHORT:\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return Uint16Array;\n case GL.UNSIGNED_INT:\n return Uint32Array;\n case GL.UNSIGNED_BYTE:\n return clamped ? Uint8ClampedArray : Uint8Array;\n case GL.BYTE:\n return Int8Array;\n case GL.SHORT:\n return Int16Array;\n case GL.INT:\n return Int32Array;\n default:\n throw new Error('Failed to deduce typed array type from GL constant');\n }\n}\n/* eslint-enable complexity */\n\n// Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)\n// https://stackoverflow.com/questions/41969562/\n// how-can-i-flip-the-result-of-webglrenderingcontext-readpixels\nexport function flipRows({data, width, height, bytesPerPixel = 4, temp}) {\n const bytesPerRow = width * bytesPerPixel;\n\n // make a temp buffer to hold one row\n temp = temp || new Uint8Array(bytesPerRow);\n for (let y = 0; y < height / 2; ++y) {\n const topOffset = y * bytesPerRow;\n const bottomOffset = (height - y - 1) * bytesPerRow;\n // make copy of a row on the top half\n temp.set(data.subarray(topOffset, topOffset + bytesPerRow));\n // copy a row from the bottom half to the top\n data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);\n // copy the copy of the top half row to the bottom half\n data.set(temp, bottomOffset);\n }\n}\n\nexport function scalePixels({data, width, height}) {\n const newWidth = Math.round(width / 2);\n const newHeight = Math.round(height / 2);\n const newData = new Uint8Array(newWidth * newHeight * 4);\n for (let y = 0; y < newHeight; y++) {\n for (let x = 0; x < newWidth; x++) {\n for (let c = 0; c < 4; c++) {\n newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];\n }\n }\n }\n return {data: newData, width: newWidth, height: newHeight};\n}\n"],"file":"typed-array-utils.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-glsl-extension.d.ts","sourceRoot":"","sources":["../../src/features/check-glsl-extension.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,KAAA,EAAE,GAAG,KAAA,EAAE,OAAO,KAAK,OAsBpE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import isOldIE from './check-old-ie';
|
|
2
|
+
import WEBGL_FEATURES from './webgl-features-table';
|
|
3
|
+
import { assert } from '../utils';
|
|
4
|
+
const compiledGlslExtensions = {};
|
|
5
|
+
export default function canCompileGLGSExtension(gl, cap, options = {}) {
|
|
6
|
+
const feature = WEBGL_FEATURES[cap];
|
|
7
|
+
assert(feature, cap);
|
|
8
|
+
|
|
9
|
+
if (!isOldIE(options)) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (cap in compiledGlslExtensions) {
|
|
14
|
+
return compiledGlslExtensions[cap];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const extensionName = feature[0];
|
|
18
|
+
const source = "#extension GL_".concat(extensionName, " : enable\nvoid main(void) {}");
|
|
19
|
+
const shader = gl.createShader(gl.VERTEX_SHADER);
|
|
20
|
+
gl.shaderSource(shader, source);
|
|
21
|
+
gl.compileShader(shader);
|
|
22
|
+
const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
|
|
23
|
+
gl.deleteShader(shader);
|
|
24
|
+
compiledGlslExtensions[cap] = canCompile;
|
|
25
|
+
return canCompile;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=check-glsl-extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/features/check-glsl-extension.ts"],"names":["isOldIE","WEBGL_FEATURES","assert","compiledGlslExtensions","canCompileGLGSExtension","gl","cap","options","feature","extensionName","source","shader","createShader","VERTEX_SHADER","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,gBAApB;AACA,OAAOC,cAAP,MAA2B,wBAA3B;AACA,SAAQC,MAAR,QAAqB,UAArB;AAMA,MAAMC,sBAAsB,GAAG,EAA/B;AAGA,eAAe,SAASC,uBAAT,CAAiCC,EAAjC,EAAqCC,GAArC,EAA0CC,OAAO,GAAG,EAApD,EAAwD;AACrE,QAAMC,OAAO,GAAGP,cAAc,CAACK,GAAD,CAA9B;AACAJ,EAAAA,MAAM,CAACM,OAAD,EAAUF,GAAV,CAAN;;AAEA,MAAI,CAACN,OAAO,CAACO,OAAD,CAAZ,EAAuB;AACrB,WAAO,IAAP;AACD;;AAED,MAAID,GAAG,IAAIH,sBAAX,EAAmC;AACjC,WAAOA,sBAAsB,CAACG,GAAD,CAA7B;AACD;;AAED,QAAMG,aAAa,GAAGD,OAAO,CAAC,CAAD,CAA7B;AACA,QAAME,MAAM,2BAAoBD,aAApB,kCAAZ;AAEA,QAAME,MAAM,GAAGN,EAAE,CAACO,YAAH,CAAgBP,EAAE,CAACQ,aAAnB,CAAf;AACAR,EAAAA,EAAE,CAACS,YAAH,CAAgBH,MAAhB,EAAwBD,MAAxB;AACAL,EAAAA,EAAE,CAACU,aAAH,CAAiBJ,MAAjB;AACA,QAAMK,UAAU,GAAGX,EAAE,CAACY,kBAAH,CAAsBN,MAAtB,EAA8BN,EAAE,CAACa,cAAjC,CAAnB;AACAb,EAAAA,EAAE,CAACc,YAAH,CAAgBR,MAAhB;AACAR,EAAAA,sBAAsB,CAACG,GAAD,CAAtB,GAA8BU,UAA9B;AACA,SAAOA,UAAP;AACD","sourcesContent":["import isOldIE from './check-old-ie';\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {assert} from '../utils';\n\n// Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n// but fail to compile when the extension is enabled in the shader. Specifically,\n// the OES_standard_derivatives extension fails to compile in IE11 even though its included\n// in the list of supported extensions.\nconst compiledGlslExtensions = {};\n\n// options allows user agent to be overridden for testing\nexport default function canCompileGLGSExtension(gl, cap, options = {}) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n if (!isOldIE(options)) {\n return true;\n }\n\n if (cap in compiledGlslExtensions) {\n return compiledGlslExtensions[cap];\n }\n\n const extensionName = feature[0];\n const source = `#extension GL_${extensionName} : enable\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGlslExtensions[cap] = canCompile;\n return canCompile;\n}\n"],"file":"check-glsl-extension.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-old-ie.d.ts","sourceRoot":"","sources":["../../src/features/check-old-ie.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,IAAI,KAAK,WASxC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export default function isOldIE(opts = {}) {
|
|
2
|
+
const navigator = typeof window !== 'undefined' && window.navigator || {};
|
|
3
|
+
const userAgent = opts.userAgent || navigator.userAgent || '';
|
|
4
|
+
const isMSIE = userAgent.indexOf('MSIE ') !== -1;
|
|
5
|
+
const isTrident = userAgent.indexOf('Trident/') !== -1;
|
|
6
|
+
return isMSIE || isTrident;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=check-old-ie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/features/check-old-ie.ts"],"names":["isOldIE","opts","navigator","window","userAgent","isMSIE","indexOf","isTrident"],"mappings":"AACA,eAAe,SAASA,OAAT,CAAiBC,IAAI,GAAG,EAAxB,EAA4B;AACzC,QAAMC,SAAS,GAAI,OAAOC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACD,SAAzC,IAAuD,EAAzE;AAEA,QAAME,SAAS,GAAGH,IAAI,CAACG,SAAL,IAAkBF,SAAS,CAACE,SAA5B,IAAyC,EAA3D;AAGA,QAAMC,MAAM,GAAGD,SAAS,CAACE,OAAV,CAAkB,OAAlB,MAA+B,CAAC,CAA/C;AACA,QAAMC,SAAS,GAAGH,SAAS,CAACE,OAAV,CAAkB,UAAlB,MAAkC,CAAC,CAArD;AACA,SAAOD,MAAM,IAAIE,SAAjB;AACD","sourcesContent":["// opts allows user agent to be overridden for testing\nexport default function isOldIE(opts = {}) {\n const navigator = (typeof window !== 'undefined' && window.navigator) || {};\n // @ts-ignore\n const userAgent = opts.userAgent || navigator.userAgent || '';\n // We only care about older versions of IE (IE 11 and below). Newer versions of IE (Edge)\n // have much better web standards support.\n const isMSIE = userAgent.indexOf('MSIE ') !== -1;\n const isTrident = userAgent.indexOf('Trident/') !== -1;\n return isMSIE || isTrident;\n}\n"],"file":"check-old-ie.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/features/features.ts"],"names":[],"mappings":"AAaA,wBAAgB,UAAU,CAAC,EAAE,KAAA,EAAE,OAAO,KAAA,OAErC;AAGD,wBAAgB,WAAW,CAAC,EAAE,KAAA,EAAE,QAAQ,KAAA,OAKvC;AAGD,wBAAgB,WAAW,CAAC,EAAE,KAAA;;EAS7B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import WEBGL_FEATURES from './webgl-features-table';
|
|
2
|
+
import { isWebGL2, log } from '@luma.gl/gltools';
|
|
3
|
+
import { assert } from '../utils';
|
|
4
|
+
import { getLumaContextData } from '../context/luma-context-data';
|
|
5
|
+
const LOG_UNSUPPORTED_FEATURE = 2;
|
|
6
|
+
export function hasFeature(gl, feature) {
|
|
7
|
+
return hasFeatures(gl, feature);
|
|
8
|
+
}
|
|
9
|
+
export function hasFeatures(gl, features) {
|
|
10
|
+
features = Array.isArray(features) ? features : [features];
|
|
11
|
+
return features.every(feature => {
|
|
12
|
+
return isFeatureSupported(gl, feature);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export function getFeatures(gl) {
|
|
16
|
+
const lumaContextData = getLumaContextData(gl);
|
|
17
|
+
lumaContextData.caps = lumaContextData.caps || {};
|
|
18
|
+
|
|
19
|
+
for (const cap in WEBGL_FEATURES) {
|
|
20
|
+
if (lumaContextData.caps[cap] === undefined) {
|
|
21
|
+
lumaContextData.caps[cap] = isFeatureSupported(gl, cap);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return lumaContextData.caps;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function isFeatureSupported(gl, cap) {
|
|
29
|
+
const lumaContextData = getLumaContextData(gl);
|
|
30
|
+
lumaContextData.caps = lumaContextData.caps || {};
|
|
31
|
+
|
|
32
|
+
if (lumaContextData.caps[cap] === undefined) {
|
|
33
|
+
lumaContextData.caps[cap] = queryFeature(gl, cap);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!lumaContextData.caps[cap]) {
|
|
37
|
+
log.log(LOG_UNSUPPORTED_FEATURE, "Feature: ".concat(cap, " not supported"))();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return lumaContextData.caps[cap];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function queryFeature(gl, cap) {
|
|
44
|
+
const feature = WEBGL_FEATURES[cap];
|
|
45
|
+
assert(feature, cap);
|
|
46
|
+
let isSupported;
|
|
47
|
+
const featureDefinition = isWebGL2(gl) ? feature[1] || feature[0] : feature[0];
|
|
48
|
+
|
|
49
|
+
if (typeof featureDefinition === 'function') {
|
|
50
|
+
isSupported = featureDefinition(gl);
|
|
51
|
+
} else if (Array.isArray(featureDefinition)) {
|
|
52
|
+
isSupported = true;
|
|
53
|
+
|
|
54
|
+
for (const extension of featureDefinition) {
|
|
55
|
+
isSupported = isSupported && Boolean(gl.getExtension(extension));
|
|
56
|
+
}
|
|
57
|
+
} else if (typeof featureDefinition === 'string') {
|
|
58
|
+
isSupported = Boolean(gl.getExtension(featureDefinition));
|
|
59
|
+
} else if (typeof featureDefinition === 'boolean') {
|
|
60
|
+
isSupported = featureDefinition;
|
|
61
|
+
} else {
|
|
62
|
+
assert(false);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return isSupported;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=features.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/features/features.ts"],"names":["WEBGL_FEATURES","isWebGL2","log","assert","getLumaContextData","LOG_UNSUPPORTED_FEATURE","hasFeature","gl","feature","hasFeatures","features","Array","isArray","every","isFeatureSupported","getFeatures","lumaContextData","caps","cap","undefined","queryFeature","isSupported","featureDefinition","extension","Boolean","getExtension"],"mappings":"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","sourcesContent":["// Feature detection for WebGL\n//\n// Provides a function that enables simple checking of which WebGL features are\n// available in an WebGL1 or WebGL2 environment.\n\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {isWebGL2, log} from '@luma.gl/gltools';\nimport {assert} from '../utils';\nimport {getLumaContextData} from '../context/luma-context-data';\n\nconst LOG_UNSUPPORTED_FEATURE = 2;\n\n// Check one feature\nexport function hasFeature(gl, feature) {\n return hasFeatures(gl, feature);\n}\n\n// Check one or more features\nexport function hasFeatures(gl, features) {\n features = Array.isArray(features) ? features : [features];\n return features.every((feature) => {\n return isFeatureSupported(gl, feature);\n });\n}\n\n// Return a list of supported features\nexport function getFeatures(gl) {\n const lumaContextData = getLumaContextData(gl);\n lumaContextData.caps = lumaContextData.caps || {};\n for (const cap in WEBGL_FEATURES) {\n if (lumaContextData.caps[cap] === undefined) {\n lumaContextData.caps[cap] = isFeatureSupported(gl, cap);\n }\n }\n return lumaContextData.caps;\n}\n\n// TODO - cache the value\nfunction isFeatureSupported(gl, cap) {\n const lumaContextData = getLumaContextData(gl);\n lumaContextData.caps = lumaContextData.caps || {};\n\n if (lumaContextData.caps[cap] === undefined) {\n lumaContextData.caps[cap] = queryFeature(gl, cap);\n }\n\n if (!lumaContextData.caps[cap]) {\n log.log(LOG_UNSUPPORTED_FEATURE, `Feature: ${cap} not supported`)();\n }\n\n return lumaContextData.caps[cap];\n}\n\nfunction queryFeature(gl, cap) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n let isSupported;\n\n // Get extension name from table\n const featureDefinition = isWebGL2(gl) ? feature[1] || feature[0] : feature[0];\n\n // Check if the value is dependent on checking one or more extensions\n if (typeof featureDefinition === 'function') {\n isSupported = featureDefinition(gl);\n } else if (Array.isArray(featureDefinition)) {\n isSupported = true;\n for (const extension of featureDefinition) {\n isSupported = isSupported && Boolean(gl.getExtension(extension));\n }\n } else if (typeof featureDefinition === 'string') {\n isSupported = Boolean(gl.getExtension(featureDefinition));\n } else if (typeof featureDefinition === 'boolean') {\n isSupported = featureDefinition;\n } else {\n assert(false);\n }\n\n return isSupported;\n}\n"],"file":"features.js"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { getContextInfo, getGLContextInfo, getContextLimits } from './limits';
|
|
2
|
+
export { FEATURES } from './webgl-features-table';
|
|
3
|
+
export { hasFeature, hasFeatures, getFeatures } from './features';
|
|
4
|
+
export { default as canCompileGLGSExtension } from './check-glsl-extension';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAC,OAAO,IAAI,uBAAuB,EAAC,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { getContextInfo, getGLContextInfo, getContextLimits } from './limits';
|
|
2
|
+
export { FEATURES } from './webgl-features-table';
|
|
3
|
+
export { hasFeature, hasFeatures, getFeatures } from './features';
|
|
4
|
+
export { default as canCompileGLGSExtension } from './check-glsl-extension';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/features/index.ts"],"names":["getContextInfo","getGLContextInfo","getContextLimits","FEATURES","hasFeature","hasFeatures","getFeatures","default","canCompileGLGSExtension"],"mappings":"AAAA,SAAQA,cAAR,EAAwBC,gBAAxB,EAA0CC,gBAA1C,QAAiE,UAAjE;AACA,SAAQC,QAAR,QAAuB,wBAAvB;AACA,SAAQC,UAAR,EAAoBC,WAApB,EAAiCC,WAAjC,QAAmD,YAAnD;AAEA,SAAQC,OAAO,IAAIC,uBAAnB,QAAiD,wBAAjD","sourcesContent":["export {getContextInfo, getGLContextInfo, getContextLimits} from './limits';\nexport {FEATURES} from './webgl-features-table';\nexport {hasFeature, hasFeatures, getFeatures} from './features';\n\nexport {default as canCompileGLGSExtension} from './check-glsl-extension';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare function getContextLimits(gl: any): {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
};
|
|
4
|
+
export declare function getGLContextInfo(gl: any): {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
|
+
export declare function getContextInfo(gl: any): {
|
|
8
|
+
vendor: string;
|
|
9
|
+
renderer: string;
|
|
10
|
+
vendorMasked: string;
|
|
11
|
+
rendererMasked: string;
|
|
12
|
+
version: string;
|
|
13
|
+
shadingLanguageVersion: string;
|
|
14
|
+
} & {
|
|
15
|
+
limits: {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
};
|
|
18
|
+
info: {
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
};
|
|
21
|
+
webgl1MinLimits: {
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
};
|
|
24
|
+
webgl2MinLimits: {
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/features/limits.ts"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,CAAC,EAAE,KAAA;;EAgClC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAA;;EAgBlC;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAA;;;;;;;;;;;;;;;;;;;;EAQhC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import GL from '@luma.gl/constants';
|
|
2
|
+
import { isWebGL2, getContextDebugInfo } from '@luma.gl/gltools';
|
|
3
|
+
import WEBGL_LIMITS from './webgl-limits-table';
|
|
4
|
+
import { getLumaContextData } from '../context/luma-context-data';
|
|
5
|
+
export function getContextLimits(gl) {
|
|
6
|
+
const lumaContextData = getLumaContextData(gl);
|
|
7
|
+
|
|
8
|
+
if (!lumaContextData.limits) {
|
|
9
|
+
lumaContextData.limits = {};
|
|
10
|
+
lumaContextData.webgl1MinLimits = {};
|
|
11
|
+
lumaContextData.webgl2MinLimits = {};
|
|
12
|
+
const isWebgl2 = isWebGL2(gl);
|
|
13
|
+
|
|
14
|
+
for (const parameter in WEBGL_LIMITS) {
|
|
15
|
+
const limit = WEBGL_LIMITS[parameter];
|
|
16
|
+
const webgl1MinLimit = limit.gl1;
|
|
17
|
+
const webgl2MinLimit = 'gl2' in limit ? limit.gl2 : limit.gl1;
|
|
18
|
+
const minLimit = isWebgl2 ? webgl2MinLimit : webgl1MinLimit;
|
|
19
|
+
const limitNotAvailable = 'gl2' in limit && !isWebgl2 || 'extension' in limit && !gl.getExtension(limit.extension);
|
|
20
|
+
const value = limitNotAvailable ? minLimit : gl.getParameter(parameter);
|
|
21
|
+
lumaContextData.limits[parameter] = value;
|
|
22
|
+
lumaContextData.webgl1MinLimits[parameter] = webgl1MinLimit;
|
|
23
|
+
lumaContextData.webgl2MinLimits[parameter] = webgl2MinLimit;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return lumaContextData.limits;
|
|
28
|
+
}
|
|
29
|
+
export function getGLContextInfo(gl) {
|
|
30
|
+
const lumaContextData = getLumaContextData(gl);
|
|
31
|
+
const info = getContextDebugInfo(gl);
|
|
32
|
+
|
|
33
|
+
if (!lumaContextData.info) {
|
|
34
|
+
lumaContextData.info = {
|
|
35
|
+
[GL.UNMASKED_VENDOR_WEBGL]: info.vendor,
|
|
36
|
+
[GL.UNMASKED_RENDERER_WEBGL]: info.renderer,
|
|
37
|
+
[GL.VENDOR]: info.vendorMasked,
|
|
38
|
+
[GL.RENDERER]: info.rendererMasked,
|
|
39
|
+
[GL.VERSION]: info.version,
|
|
40
|
+
[GL.SHADING_LANGUAGE_VERSION]: info.shadingLanguageVersion
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return lumaContextData.info;
|
|
45
|
+
}
|
|
46
|
+
export function getContextInfo(gl) {
|
|
47
|
+
const lumaContextData = getLumaContextData(gl);
|
|
48
|
+
return Object.assign(getContextDebugInfo(gl), {
|
|
49
|
+
limits: getContextLimits(gl),
|
|
50
|
+
info: getGLContextInfo(gl),
|
|
51
|
+
webgl1MinLimits: lumaContextData.webgl1MinLimits,
|
|
52
|
+
webgl2MinLimits: lumaContextData.webgl2MinLimits
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/features/limits.ts"],"names":["GL","isWebGL2","getContextDebugInfo","WEBGL_LIMITS","getLumaContextData","getContextLimits","gl","lumaContextData","limits","webgl1MinLimits","webgl2MinLimits","isWebgl2","parameter","limit","webgl1MinLimit","gl1","webgl2MinLimit","gl2","minLimit","limitNotAvailable","getExtension","extension","value","getParameter","getGLContextInfo","info","UNMASKED_VENDOR_WEBGL","vendor","UNMASKED_RENDERER_WEBGL","renderer","VENDOR","vendorMasked","RENDERER","rendererMasked","VERSION","version","SHADING_LANGUAGE_VERSION","shadingLanguageVersion","getContextInfo","Object","assign"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, getContextDebugInfo} from '@luma.gl/gltools';\nimport WEBGL_LIMITS from './webgl-limits-table';\nimport {getLumaContextData} from '../context/luma-context-data';\n\nexport function getContextLimits(gl) {\n const lumaContextData = getLumaContextData(gl);\n\n if (!lumaContextData.limits) {\n lumaContextData.limits = {};\n lumaContextData.webgl1MinLimits = {};\n lumaContextData.webgl2MinLimits = {};\n\n const isWebgl2 = isWebGL2(gl);\n\n // WEBGL limits\n for (const parameter in WEBGL_LIMITS) {\n const limit = WEBGL_LIMITS[parameter];\n\n const webgl1MinLimit = limit.gl1;\n const webgl2MinLimit = 'gl2' in limit ? limit.gl2 : limit.gl1;\n const minLimit = isWebgl2 ? webgl2MinLimit : webgl1MinLimit;\n\n // Check if we can query for this limit\n const limitNotAvailable =\n ('gl2' in limit && !isWebgl2) ||\n // @ts-ignore\n ('extension' in limit && !gl.getExtension(limit.extension));\n\n const value = limitNotAvailable ? minLimit : gl.getParameter(parameter);\n lumaContextData.limits[parameter] = value;\n lumaContextData.webgl1MinLimits[parameter] = webgl1MinLimit;\n lumaContextData.webgl2MinLimits[parameter] = webgl2MinLimit;\n }\n }\n\n return lumaContextData.limits;\n}\n\nexport function getGLContextInfo(gl) {\n const lumaContextData = getLumaContextData(gl);\n\n const info = getContextDebugInfo(gl);\n if (!lumaContextData.info) {\n lumaContextData.info = {\n [GL.UNMASKED_VENDOR_WEBGL]: info.vendor,\n [GL.UNMASKED_RENDERER_WEBGL]: info.renderer,\n [GL.VENDOR]: info.vendorMasked,\n [GL.RENDERER]: info.rendererMasked,\n [GL.VERSION]: info.version,\n [GL.SHADING_LANGUAGE_VERSION]: info.shadingLanguageVersion\n };\n }\n\n return lumaContextData.info;\n}\n\nexport function getContextInfo(gl) {\n const lumaContextData = getLumaContextData(gl);\n return Object.assign(getContextDebugInfo(gl), {\n limits: getContextLimits(gl),\n info: getGLContextInfo(gl),\n webgl1MinLimits: lumaContextData.webgl1MinLimits,\n webgl2MinLimits: lumaContextData.webgl2MinLimits\n });\n}\n"],"file":"limits.js"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const FEATURES: {
|
|
2
|
+
WEBGL2: string;
|
|
3
|
+
VERTEX_ARRAY_OBJECT: string;
|
|
4
|
+
TIMER_QUERY: string;
|
|
5
|
+
INSTANCED_RENDERING: string;
|
|
6
|
+
MULTIPLE_RENDER_TARGETS: string;
|
|
7
|
+
ELEMENT_INDEX_UINT32: string;
|
|
8
|
+
BLEND_EQUATION_MINMAX: string;
|
|
9
|
+
FLOAT_BLEND: string;
|
|
10
|
+
COLOR_ENCODING_SRGB: string;
|
|
11
|
+
TEXTURE_DEPTH: string;
|
|
12
|
+
TEXTURE_FLOAT: string;
|
|
13
|
+
TEXTURE_HALF_FLOAT: string;
|
|
14
|
+
TEXTURE_FILTER_LINEAR_FLOAT: string;
|
|
15
|
+
TEXTURE_FILTER_LINEAR_HALF_FLOAT: string;
|
|
16
|
+
TEXTURE_FILTER_ANISOTROPIC: string;
|
|
17
|
+
COLOR_ATTACHMENT_RGBA32F: string;
|
|
18
|
+
COLOR_ATTACHMENT_FLOAT: string;
|
|
19
|
+
COLOR_ATTACHMENT_HALF_FLOAT: string;
|
|
20
|
+
GLSL_FRAG_DATA: string;
|
|
21
|
+
GLSL_FRAG_DEPTH: string;
|
|
22
|
+
GLSL_DERIVATIVES: string;
|
|
23
|
+
GLSL_TEXTURE_LOD: string;
|
|
24
|
+
};
|
|
25
|
+
declare function checkFloat32ColorAttachment(gl: any): boolean;
|
|
26
|
+
declare const _default: {
|
|
27
|
+
[x: string]: (string | boolean)[] | (string | typeof checkFloat32ColorAttachment)[];
|
|
28
|
+
};
|
|
29
|
+
export default _default;
|
|
30
|
+
//# sourceMappingURL=webgl-features-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-features-table.d.ts","sourceRoot":"","sources":["../../src/features/webgl-features-table.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;CAsCpB,CAAC;AAGF,iBAAS,2BAA2B,CAAC,EAAE,KAAA,WAiBtC;;;;AAID,wBAsCE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import Framebuffer from '../classes/framebuffer';
|
|
2
|
+
import Texture2D from '../classes/texture-2d';
|
|
3
|
+
export const FEATURES = {
|
|
4
|
+
WEBGL2: 'WEBGL2',
|
|
5
|
+
VERTEX_ARRAY_OBJECT: 'VERTEX_ARRAY_OBJECT',
|
|
6
|
+
TIMER_QUERY: 'TIMER_QUERY',
|
|
7
|
+
INSTANCED_RENDERING: 'INSTANCED_RENDERING',
|
|
8
|
+
MULTIPLE_RENDER_TARGETS: 'MULTIPLE_RENDER_TARGETS',
|
|
9
|
+
ELEMENT_INDEX_UINT32: 'ELEMENT_INDEX_UINT32',
|
|
10
|
+
BLEND_EQUATION_MINMAX: 'BLEND_EQUATION_MINMAX',
|
|
11
|
+
FLOAT_BLEND: 'FLOAT_BLEND',
|
|
12
|
+
COLOR_ENCODING_SRGB: 'COLOR_ENCODING_SRGB',
|
|
13
|
+
TEXTURE_DEPTH: 'TEXTURE_DEPTH',
|
|
14
|
+
TEXTURE_FLOAT: 'TEXTURE_FLOAT',
|
|
15
|
+
TEXTURE_HALF_FLOAT: 'TEXTURE_HALF_FLOAT',
|
|
16
|
+
TEXTURE_FILTER_LINEAR_FLOAT: 'TEXTURE_FILTER_LINEAR_FLOAT',
|
|
17
|
+
TEXTURE_FILTER_LINEAR_HALF_FLOAT: 'TEXTURE_FILTER_LINEAR_HALF_FLOAT',
|
|
18
|
+
TEXTURE_FILTER_ANISOTROPIC: 'TEXTURE_FILTER_ANISOTROPIC',
|
|
19
|
+
COLOR_ATTACHMENT_RGBA32F: 'COLOR_ATTACHMENT_RGBA32F',
|
|
20
|
+
COLOR_ATTACHMENT_FLOAT: 'COLOR_ATTACHMENT_FLOAT',
|
|
21
|
+
COLOR_ATTACHMENT_HALF_FLOAT: 'COLOR_ATTACHMENT_HALF_FLOAT',
|
|
22
|
+
GLSL_FRAG_DATA: 'GLSL_FRAG_DATA',
|
|
23
|
+
GLSL_FRAG_DEPTH: 'GLSL_FRAG_DEPTH',
|
|
24
|
+
GLSL_DERIVATIVES: 'GLSL_DERIVATIVES',
|
|
25
|
+
GLSL_TEXTURE_LOD: 'GLSL_TEXTURE_LOD'
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
function checkFloat32ColorAttachment(gl) {
|
|
29
|
+
const testTexture = new Texture2D(gl, {
|
|
30
|
+
format: gl.RGBA,
|
|
31
|
+
type: gl.FLOAT,
|
|
32
|
+
dataFormat: gl.RGBA
|
|
33
|
+
});
|
|
34
|
+
const testFb = new Framebuffer(gl, {
|
|
35
|
+
id: "test-framebuffer",
|
|
36
|
+
check: false,
|
|
37
|
+
attachments: {
|
|
38
|
+
[gl.COLOR_ATTACHMENT0]: testTexture
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const status = testFb.getStatus();
|
|
42
|
+
testTexture.delete();
|
|
43
|
+
testFb.delete();
|
|
44
|
+
return status === gl.FRAMEBUFFER_COMPLETE;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export default {
|
|
48
|
+
[FEATURES.WEBGL2]: [false, true],
|
|
49
|
+
[FEATURES.VERTEX_ARRAY_OBJECT]: ['OES_vertex_array_object', true],
|
|
50
|
+
[FEATURES.TIMER_QUERY]: ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],
|
|
51
|
+
[FEATURES.INSTANCED_RENDERING]: ['ANGLE_instanced_arrays', true],
|
|
52
|
+
[FEATURES.MULTIPLE_RENDER_TARGETS]: ['WEBGL_draw_buffers', true],
|
|
53
|
+
[FEATURES.ELEMENT_INDEX_UINT32]: ['OES_element_index_uint', true],
|
|
54
|
+
[FEATURES.BLEND_EQUATION_MINMAX]: ['EXT_blend_minmax', true],
|
|
55
|
+
[FEATURES.FLOAT_BLEND]: ['EXT_float_blend'],
|
|
56
|
+
[FEATURES.COLOR_ENCODING_SRGB]: ['EXT_sRGB', true],
|
|
57
|
+
[FEATURES.TEXTURE_DEPTH]: ['WEBGL_depth_texture', true],
|
|
58
|
+
[FEATURES.TEXTURE_FLOAT]: ['OES_texture_float', true],
|
|
59
|
+
[FEATURES.TEXTURE_HALF_FLOAT]: ['OES_texture_half_float', true],
|
|
60
|
+
[FEATURES.TEXTURE_FILTER_LINEAR_FLOAT]: ['OES_texture_float_linear'],
|
|
61
|
+
[FEATURES.TEXTURE_FILTER_LINEAR_HALF_FLOAT]: ['OES_texture_half_float_linear'],
|
|
62
|
+
[FEATURES.TEXTURE_FILTER_ANISOTROPIC]: ['EXT_texture_filter_anisotropic'],
|
|
63
|
+
[FEATURES.COLOR_ATTACHMENT_RGBA32F]: [checkFloat32ColorAttachment, 'EXT_color_buffer_float'],
|
|
64
|
+
[FEATURES.COLOR_ATTACHMENT_FLOAT]: [false, 'EXT_color_buffer_float'],
|
|
65
|
+
[FEATURES.COLOR_ATTACHMENT_HALF_FLOAT]: ['EXT_color_buffer_half_float'],
|
|
66
|
+
[FEATURES.GLSL_FRAG_DATA]: ['WEBGL_draw_buffers', true],
|
|
67
|
+
[FEATURES.GLSL_FRAG_DEPTH]: ['EXT_frag_depth', true],
|
|
68
|
+
[FEATURES.GLSL_DERIVATIVES]: ['OES_standard_derivatives', true],
|
|
69
|
+
[FEATURES.GLSL_TEXTURE_LOD]: ['EXT_shader_texture_lod', true]
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=webgl-features-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/features/webgl-features-table.ts"],"names":["Framebuffer","Texture2D","FEATURES","WEBGL2","VERTEX_ARRAY_OBJECT","TIMER_QUERY","INSTANCED_RENDERING","MULTIPLE_RENDER_TARGETS","ELEMENT_INDEX_UINT32","BLEND_EQUATION_MINMAX","FLOAT_BLEND","COLOR_ENCODING_SRGB","TEXTURE_DEPTH","TEXTURE_FLOAT","TEXTURE_HALF_FLOAT","TEXTURE_FILTER_LINEAR_FLOAT","TEXTURE_FILTER_LINEAR_HALF_FLOAT","TEXTURE_FILTER_ANISOTROPIC","COLOR_ATTACHMENT_RGBA32F","COLOR_ATTACHMENT_FLOAT","COLOR_ATTACHMENT_HALF_FLOAT","GLSL_FRAG_DATA","GLSL_FRAG_DEPTH","GLSL_DERIVATIVES","GLSL_TEXTURE_LOD","checkFloat32ColorAttachment","gl","testTexture","format","RGBA","type","FLOAT","dataFormat","testFb","id","check","attachments","COLOR_ATTACHMENT0","status","getStatus","delete","FRAMEBUFFER_COMPLETE"],"mappings":"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","sourcesContent":["import Framebuffer from '../classes/framebuffer';\nimport Texture2D from '../classes/texture-2d';\n// TODO - this should be the default export, test cases need updating\nexport const FEATURES = {\n WEBGL2: 'WEBGL2',\n\n // API SUPPORT\n VERTEX_ARRAY_OBJECT: 'VERTEX_ARRAY_OBJECT',\n TIMER_QUERY: 'TIMER_QUERY',\n INSTANCED_RENDERING: 'INSTANCED_RENDERING',\n MULTIPLE_RENDER_TARGETS: 'MULTIPLE_RENDER_TARGETS',\n\n // FEATURES\n ELEMENT_INDEX_UINT32: 'ELEMENT_INDEX_UINT32',\n\n // BLENDING\n BLEND_EQUATION_MINMAX: 'BLEND_EQUATION_MINMAX',\n FLOAT_BLEND: 'FLOAT_BLEND',\n\n // TEXTURES: '// TEXTURES', RENDERBUFFERS\n COLOR_ENCODING_SRGB: 'COLOR_ENCODING_SRGB',\n\n // TEXTURES\n TEXTURE_DEPTH: 'TEXTURE_DEPTH',\n TEXTURE_FLOAT: 'TEXTURE_FLOAT',\n TEXTURE_HALF_FLOAT: 'TEXTURE_HALF_FLOAT',\n\n TEXTURE_FILTER_LINEAR_FLOAT: 'TEXTURE_FILTER_LINEAR_FLOAT',\n TEXTURE_FILTER_LINEAR_HALF_FLOAT: 'TEXTURE_FILTER_LINEAR_HALF_FLOAT',\n TEXTURE_FILTER_ANISOTROPIC: 'TEXTURE_FILTER_ANISOTROPIC',\n\n // FRAMEBUFFERS: '// FRAMEBUFFERS', TEXTURES AND RENDERBUFFERS\n COLOR_ATTACHMENT_RGBA32F: 'COLOR_ATTACHMENT_RGBA32F',\n COLOR_ATTACHMENT_FLOAT: 'COLOR_ATTACHMENT_FLOAT',\n COLOR_ATTACHMENT_HALF_FLOAT: 'COLOR_ATTACHMENT_HALF_FLOAT',\n\n // GLSL extensions\n GLSL_FRAG_DATA: 'GLSL_FRAG_DATA',\n GLSL_FRAG_DEPTH: 'GLSL_FRAG_DEPTH',\n GLSL_DERIVATIVES: 'GLSL_DERIVATIVES',\n GLSL_TEXTURE_LOD: 'GLSL_TEXTURE_LOD'\n};\n\n// function to test if Float 32 bit format texture can be bound as color attachment\nfunction checkFloat32ColorAttachment(gl) {\n const testTexture = new Texture2D(gl, {\n format: gl.RGBA,\n type: gl.FLOAT,\n dataFormat: gl.RGBA\n });\n const testFb = new Framebuffer(gl, {\n id: `test-framebuffer`,\n check: false,\n attachments: {\n [gl.COLOR_ATTACHMENT0]: testTexture\n }\n });\n const status = testFb.getStatus();\n testTexture.delete();\n testFb.delete();\n return status === gl.FRAMEBUFFER_COMPLETE;\n}\n\n// Defines luma.gl \"feature\" names and semantics\n// Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension\nexport default {\n [FEATURES.WEBGL2]: [false, true],\n\n // API SUPPORT\n [FEATURES.VERTEX_ARRAY_OBJECT]: ['OES_vertex_array_object', true],\n [FEATURES.TIMER_QUERY]: ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n [FEATURES.INSTANCED_RENDERING]: ['ANGLE_instanced_arrays', true],\n [FEATURES.MULTIPLE_RENDER_TARGETS]: ['WEBGL_draw_buffers', true],\n\n // FEATURES\n [FEATURES.ELEMENT_INDEX_UINT32]: ['OES_element_index_uint', true],\n\n // BLENDING\n [FEATURES.BLEND_EQUATION_MINMAX]: ['EXT_blend_minmax', true],\n [FEATURES.FLOAT_BLEND]: ['EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n [FEATURES.COLOR_ENCODING_SRGB]: ['EXT_sRGB', true],\n\n // TEXTURES\n [FEATURES.TEXTURE_DEPTH]: ['WEBGL_depth_texture', true],\n [FEATURES.TEXTURE_FLOAT]: ['OES_texture_float', true],\n [FEATURES.TEXTURE_HALF_FLOAT]: ['OES_texture_half_float', true],\n\n [FEATURES.TEXTURE_FILTER_LINEAR_FLOAT]: ['OES_texture_float_linear'],\n [FEATURES.TEXTURE_FILTER_LINEAR_HALF_FLOAT]: ['OES_texture_half_float_linear'],\n [FEATURES.TEXTURE_FILTER_ANISOTROPIC]: ['EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n [FEATURES.COLOR_ATTACHMENT_RGBA32F]: [checkFloat32ColorAttachment, 'EXT_color_buffer_float'],\n [FEATURES.COLOR_ATTACHMENT_FLOAT]: [false, 'EXT_color_buffer_float'],\n [FEATURES.COLOR_ATTACHMENT_HALF_FLOAT]: ['EXT_color_buffer_half_float'],\n\n // GLSL extensions\n [FEATURES.GLSL_FRAG_DATA]: ['WEBGL_draw_buffers', true],\n [FEATURES.GLSL_FRAG_DEPTH]: ['EXT_frag_depth', true],\n [FEATURES.GLSL_DERIVATIVES]: ['OES_standard_derivatives', true],\n [FEATURES.GLSL_TEXTURE_LOD]: ['EXT_shader_texture_lod', true]\n};\n"],"file":"webgl-features-table.js"}
|