@luma.gl/webgl 8.5.7 → 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/classes/webgl-resource.ts"],"names":["isWebGL2","assertWebGLContext","Resource","getKey","getKeyValue","uid","assert","stubRemovedMethods","ERR_RESOURCE_METHOD_UNDEFINED","WebGLResource","constructor","gl","props","defaultProps","id","userData","gl2","name","_handle","handle","undefined","_createHandle","byteLength","toString","delete","deleteChildren","children","_deleteHandle","removeStats","filter","Boolean","forEach","child","bind","funcOrHandle","_bindHandle","value","_bound","unbind","getParameter","pname","parameters","PARAMETERS","parameter","isWebgl2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","getParameters","options","keys","values","parameterKeys","Object","key","type","setParameter","Error","_setParameter","setParameters","className","version","methodNames","initialize","_getOptsFromHandle"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {isWebGL2, assertWebGLContext} from '@luma.gl/gltools';\nimport {Resource} from '@luma.gl/api';\nexport type {ResourceProps} from '@luma.gl/api';\nimport {getKey, getKeyValue} from '../webgl-utils';\nimport {uid, assert, stubRemovedMethods} from '../utils';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n/**\n * Base class for WebGL object wrappers\n */\n export default class WebGLResource<Props> extends Resource<Props> {\n id: string;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n userData: any;\n private _handle: any;\n\n private _bound = false;\n // Only meaningful for resources that allocate GPU memory\n byteLength = 0;\n\n constructor(gl: WebGLRenderingContext, props: Props, defaultProps: Required<Props>) {\n super(gl as any, props, defaultProps);\n\n assertWebGLContext(gl);\n\n // extends \n // @ts-expect-error\n const {id, userData = {}} = props || {};\n this.gl = gl;\n // @ts-ignore\n this.gl2 = gl;\n // this.ext = polyfillContext(gl);\n this.id = id || uid(this.constructor.name);\n this.userData = userData;\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n // @ts-expect-error\n this._handle = props?.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n this.byteLength = 0;\n }\n\n toString(): string {\n return `${this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.props);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.props);\n // }\n return this._handle;\n }\n\n delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-ignore\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this.removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-ignore\n if (children && deleteChildren) {\n // @ts-ignore\n children.filter(Boolean).forEach((child) => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param name\n * @return param\n */\n getParameter(pname: number, props = {}): any {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, props);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options: {parameters?, keys?} = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-ignore\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param {string} pname - parameter (GL constant, value or key)\n * @param {GLint|GLfloat|GLenum} value\n * @return {Resource} returns self to enable chaining\n */\n setParameter(pname, value) {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n // @ts-expect-error\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className, version, methodNames) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(props) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n /** @returns {number} */\n _getParameter(pname, props) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname, value) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n /*\n _addStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n trackAllocatedMemory(bytes, name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n trackDeallocatedMemory(name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n */\n}\n"],"file":"webgl-resource.js"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import GL from '@luma.gl/constants';
|
|
2
|
+
import { CompilerMessage } from '@luma.gl/shadertools';
|
|
3
|
+
import { Shader as ShaderAPI, ShaderProps } from '@luma.gl/api';
|
|
4
|
+
export type { ShaderProps };
|
|
5
|
+
export declare class WEBGLShader extends ShaderAPI {
|
|
6
|
+
readonly gl: WebGLRenderingContext;
|
|
7
|
+
readonly handle: WebGLShader;
|
|
8
|
+
readonly stage: 'vertex' | 'fragment';
|
|
9
|
+
constructor(gl: WebGLRenderingContext, props: ShaderProps);
|
|
10
|
+
destroy(): void;
|
|
11
|
+
compilationInfo(): Promise<readonly CompilerMessage[]>;
|
|
12
|
+
_compile(source: any): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
|
|
16
|
+
* For now this is an internal class
|
|
17
|
+
*/
|
|
18
|
+
export declare class Shader extends WEBGLShader {
|
|
19
|
+
shaderType: GL.FRAGMENT_SHADER | GL.VERTEX_SHADER;
|
|
20
|
+
source: string;
|
|
21
|
+
static getTypeName(shaderType: any): 'vertex-shader' | 'fragment-shader' | 'unknown';
|
|
22
|
+
constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'>);
|
|
23
|
+
initialize(props: ShaderProps): this;
|
|
24
|
+
getParameter(pname: number): any;
|
|
25
|
+
toString(): string;
|
|
26
|
+
getName(): string;
|
|
27
|
+
getSource(): string;
|
|
28
|
+
/** Debug method - Returns translated source if available */
|
|
29
|
+
getTranslatedSource(): string;
|
|
30
|
+
_getOptsFromHandle(): {
|
|
31
|
+
type: any;
|
|
32
|
+
source: string;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
|
|
37
|
+
* @deprecated Use `device.createShader({stage: 'vertex', ...})`
|
|
38
|
+
*/
|
|
39
|
+
export declare class VertexShader extends Shader {
|
|
40
|
+
constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string);
|
|
41
|
+
_createHandle(): WebGLShader;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
|
|
45
|
+
* @deprecated Use `device.createShader({stage: 'fragment', ...})`
|
|
46
|
+
*/
|
|
47
|
+
export declare class FragmentShader extends Shader {
|
|
48
|
+
constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string);
|
|
49
|
+
_createHandle(): WebGLShader;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=webgl-shader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-shader.d.ts","sourceRoot":"","sources":["../../src/classes/webgl-shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,OAAO,EAAgB,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAC,MAAM,IAAI,SAAS,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAO9D,YAAY,EAAC,WAAW,EAAC,CAAC;AAE1B,qBAAa,WAAY,SAAQ,SAAS;IACxC,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;gBAE1B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW;IAiBzD,OAAO,IAAI,IAAI;IAST,eAAe,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAM5D,QAAQ,CAAC,MAAM,KAAA;CAqBhB;AAED;;;GAGG;AACH,qBAAa,MAAO,SAAQ,WAAW;IACrC,UAAU,EAAE,EAAE,CAAC,eAAe,GAAG,EAAE,CAAC,aAAa,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS;gBAYxE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IAgBxE,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAWpC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG;IAIhC,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,MAAM;IAIjB,SAAS,IAAI,MAAM;IAInB,4DAA4D;IAC5D,mBAAmB,IAAI,MAAM;IAS7B,kBAAkB;;;;CAMnB;AAED;;;GAGG;AACF,qBAAa,YAAa,SAAQ,MAAM;gBAC3B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM;IAKjF,aAAa;CAGd;AAED;;;GAGG;AACF,qBAAa,cAAe,SAAQ,MAAM;gBAC7B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM;IAKjF,aAAa;CAGd"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import GL from '@luma.gl/constants';
|
|
3
|
+
import { assertWebGLContext, log } from '@luma.gl/gltools';
|
|
4
|
+
import { getShaderInfo, formatCompilerLog } from '@luma.gl/shadertools';
|
|
5
|
+
import { Shader as ShaderAPI } from '@luma.gl/api';
|
|
6
|
+
import { parseShaderCompilerLog } from '../webgl-utils/parse-shader-compiler-log';
|
|
7
|
+
import { uid, assert } from '../utils';
|
|
8
|
+
const ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';
|
|
9
|
+
export class WEBGLShader extends ShaderAPI {
|
|
10
|
+
constructor(gl, props) {
|
|
11
|
+
super(gl, {
|
|
12
|
+
id: getShaderIdFromProps(props),
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
_defineProperty(this, "gl", void 0);
|
|
17
|
+
|
|
18
|
+
_defineProperty(this, "handle", void 0);
|
|
19
|
+
|
|
20
|
+
_defineProperty(this, "stage", void 0);
|
|
21
|
+
|
|
22
|
+
this.gl = gl;
|
|
23
|
+
|
|
24
|
+
switch (this.props.stage) {
|
|
25
|
+
case 'vertex':
|
|
26
|
+
this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);
|
|
27
|
+
break;
|
|
28
|
+
|
|
29
|
+
case 'fragment':
|
|
30
|
+
this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);
|
|
31
|
+
break;
|
|
32
|
+
|
|
33
|
+
default:
|
|
34
|
+
throw new Error(this.props.stage);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
this.stage = this.props.stage;
|
|
38
|
+
|
|
39
|
+
this._compile(props.source);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
destroy() {
|
|
43
|
+
if (this.handle) {
|
|
44
|
+
this.removeStats();
|
|
45
|
+
this.gl.deleteShader(this.handle);
|
|
46
|
+
this.handle = null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async compilationInfo() {
|
|
51
|
+
const log = this.gl.getShaderInfoLog(this.handle);
|
|
52
|
+
return parseShaderCompilerLog(log);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_compile(source) {
|
|
56
|
+
if (!source.startsWith('#version ')) {
|
|
57
|
+
source = "#version 100\n".concat(source);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
this.gl.shaderSource(this.handle, source);
|
|
61
|
+
this.gl.compileShader(this.handle);
|
|
62
|
+
const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);
|
|
63
|
+
|
|
64
|
+
if (!compileStatus) {
|
|
65
|
+
const shaderLog = this.gl.getShaderInfoLog(this.handle);
|
|
66
|
+
const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');
|
|
67
|
+
const formattedLog = formatCompilerLog(messages, source);
|
|
68
|
+
const shaderName = getShaderInfo(source).name;
|
|
69
|
+
const shaderDescription = "".concat(this.stage, " shader ").concat(shaderName);
|
|
70
|
+
log.error("GLSL compilation errors in ".concat(shaderName, "\n").concat(formattedLog))();
|
|
71
|
+
throw new Error("GLSL compilation errors in ".concat(shaderName));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
}
|
|
76
|
+
export class Shader extends WEBGLShader {
|
|
77
|
+
static getTypeName(shaderType) {
|
|
78
|
+
switch (shaderType) {
|
|
79
|
+
case GL.VERTEX_SHADER:
|
|
80
|
+
return 'vertex-shader';
|
|
81
|
+
|
|
82
|
+
case GL.FRAGMENT_SHADER:
|
|
83
|
+
return 'fragment-shader';
|
|
84
|
+
|
|
85
|
+
default:
|
|
86
|
+
assert(false);
|
|
87
|
+
return 'unknown';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
constructor(gl, props) {
|
|
92
|
+
assertWebGLContext(gl);
|
|
93
|
+
assert(typeof props.source === 'string', ERR_SOURCE);
|
|
94
|
+
super(gl, { ...props,
|
|
95
|
+
id: getShaderIdFromProps(props),
|
|
96
|
+
stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
_defineProperty(this, "shaderType", void 0);
|
|
100
|
+
|
|
101
|
+
_defineProperty(this, "source", void 0);
|
|
102
|
+
|
|
103
|
+
this.shaderType = props.shaderType;
|
|
104
|
+
this.source = props.source;
|
|
105
|
+
const shaderName = getShaderInfo(props.source).name;
|
|
106
|
+
|
|
107
|
+
if (shaderName) {
|
|
108
|
+
this.id = uid(shaderName);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
initialize(props) {
|
|
113
|
+
this._compile(props.source);
|
|
114
|
+
|
|
115
|
+
const shaderName = getShaderInfo(props.source).name;
|
|
116
|
+
|
|
117
|
+
if (shaderName) {
|
|
118
|
+
this.id = uid(shaderName);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
getParameter(pname) {
|
|
125
|
+
return this.gl.getShaderParameter(this.handle, pname);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
toString() {
|
|
129
|
+
return "".concat(Shader.getTypeName(this.shaderType), ":").concat(this.id);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
getName() {
|
|
133
|
+
return getShaderInfo(this.source).name || 'unnamed-shader';
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
getSource() {
|
|
137
|
+
return this.gl.getShaderSource(this.handle);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
getTranslatedSource() {
|
|
141
|
+
const extension = this.gl.getExtension('WEBGL_debug_shaders');
|
|
142
|
+
return extension ? extension.getTranslatedShaderSource(this.handle) : 'No translated source available. WEBGL_debug_shaders not implemented';
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
_getOptsFromHandle() {
|
|
146
|
+
return {
|
|
147
|
+
type: this.getParameter(GL.SHADER_TYPE),
|
|
148
|
+
source: this.getSource()
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
}
|
|
153
|
+
export class VertexShader extends Shader {
|
|
154
|
+
constructor(gl, props) {
|
|
155
|
+
super(gl, getShaderProps(props, GL.VERTEX_SHADER));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
_createHandle() {
|
|
159
|
+
return this.gl.createShader(GL.VERTEX_SHADER);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
}
|
|
163
|
+
export class FragmentShader extends Shader {
|
|
164
|
+
constructor(gl, props) {
|
|
165
|
+
super(gl, getShaderProps(props, GL.FRAGMENT_SHADER));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
_createHandle() {
|
|
169
|
+
return this.gl.createShader(GL.FRAGMENT_SHADER);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function getShaderProps(props, shaderType) {
|
|
175
|
+
if (typeof props === 'string') {
|
|
176
|
+
return {
|
|
177
|
+
source: props,
|
|
178
|
+
shaderType
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return { ...props,
|
|
183
|
+
shaderType
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function getShaderIdFromProps(props) {
|
|
188
|
+
return getShaderInfo(props.source).name || props.id || uid("unnamed ".concat(props.stage || Shader.getTypeName(props.shaderType)));
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=webgl-shader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/classes/webgl-shader.ts"],"names":["GL","assertWebGLContext","log","getShaderInfo","formatCompilerLog","Shader","ShaderAPI","parseShaderCompilerLog","uid","assert","ERR_SOURCE","WEBGLShader","constructor","gl","props","id","getShaderIdFromProps","stage","handle","createShader","VERTEX_SHADER","FRAGMENT_SHADER","Error","_compile","source","destroy","removeStats","deleteShader","compilationInfo","getShaderInfoLog","startsWith","shaderSource","compileShader","compileStatus","getShaderParameter","COMPILE_STATUS","shaderLog","messages","filter","message","type","formattedLog","shaderName","name","shaderDescription","error","getTypeName","shaderType","initialize","getParameter","pname","toString","getName","getSource","getShaderSource","getTranslatedSource","extension","getExtension","getTranslatedShaderSource","_getOptsFromHandle","SHADER_TYPE","VertexShader","getShaderProps","_createHandle","FragmentShader"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport GL from '@luma.gl/constants';\nimport {assertWebGLContext, log} from '@luma.gl/gltools';\nimport {getShaderInfo, CompilerMessage, formatCompilerLog} from '@luma.gl/shadertools';\nimport {Shader as ShaderAPI, ShaderProps} from '@luma.gl/api';\nimport {parseShaderCompilerLog} from '../webgl-utils/parse-shader-compiler-log';\nimport {uid, assert} from '../utils';\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\n\nexport type {ShaderProps};\n\nexport class WEBGLShader extends ShaderAPI {\n readonly gl: WebGLRenderingContext;\n readonly handle: WebGLShader;\n\n readonly stage: 'vertex' | 'fragment';\n\n constructor(gl: WebGLRenderingContext, props: ShaderProps) {\n super(gl as any, {id: getShaderIdFromProps(props), ...props});\n this.gl = gl;\n switch (this.props.stage) {\n case 'vertex':\n this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);\n break;\n case 'fragment':\n this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);\n break;\n default:\n throw new Error(this.props.stage);\n }\n this.stage = this.props.stage;\n this._compile(props.source);\n }\n\n destroy(): void {\n if (this.handle) {\n this.removeStats();\n this.gl.deleteShader(this.handle);\n // @ts-expect-error\n this.handle = null;\n }\n } \n \n async compilationInfo(): Promise<readonly CompilerMessage[]> {\n const log = this.gl.getShaderInfoLog(this.handle);\n return parseShaderCompilerLog(log);\n }\n\n // PRIVATE METHODS\n _compile(source) {\n if (!source.startsWith('#version ')) {\n source = `#version 100\\n${source}`;\n }\n this.gl.shaderSource(this.handle, source);\n this.gl.compileShader(this.handle);\n\n // TODO - For performance reasons, avoid checking shader compilation errors on production?\n // TODO - Load log even when no error reported, to catch warnings?\n // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings\n const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);\n if (!compileStatus) {\n const shaderLog = this.gl.getShaderInfoLog(this.handle);\n const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');\n const formattedLog = formatCompilerLog(messages, source);\n const shaderName: string = getShaderInfo(source).name;\n const shaderDescription = `${this.stage} shader ${shaderName}`;\n log.error(`GLSL compilation errors in ${shaderName}\\n${formattedLog}`)();\n throw new Error(`GLSL compilation errors in ${shaderName}`);\n }\n }\n}\n \n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * For now this is an internal class\n */\nexport class Shader extends WEBGLShader {\n shaderType: GL.FRAGMENT_SHADER | GL.VERTEX_SHADER;\n source: string;\n\n static getTypeName(shaderType: any): 'vertex-shader' | 'fragment-shader' | 'unknown' {\n switch (shaderType) {\n case GL.VERTEX_SHADER:\n return 'vertex-shader';\n case GL.FRAGMENT_SHADER:\n return 'fragment-shader';\n default:\n assert(false);\n return 'unknown';\n }\n }\n\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'>) {\n assertWebGLContext(gl);\n assert(typeof props.source === 'string', ERR_SOURCE);\n\n // @ts-expect-error\n super(gl, {...props, id: getShaderIdFromProps(props), stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'});\n\n this.shaderType = props.shaderType;\n this.source = props.source;\n\n const shaderName = getShaderInfo(props.source).name;\n if (shaderName) {\n this.id = uid(shaderName);\n }\n }\n\n initialize(props: ShaderProps): this {\n this._compile(props.source);\n const shaderName = getShaderInfo(props.source).name;\n if (shaderName) {\n this.id = uid(shaderName);\n }\n return this;\n }\n\n // Accessors\n\n getParameter(pname: number): any {\n return this.gl.getShaderParameter(this.handle, pname);\n }\n\n toString(): string {\n return `${Shader.getTypeName(this.shaderType)}:${this.id}`;\n }\n\n getName(): string {\n return getShaderInfo(this.source).name || 'unnamed-shader';\n }\n\n getSource(): string {\n return this.gl.getShaderSource(this.handle);\n }\n\n /** Debug method - Returns translated source if available */\n getTranslatedSource(): string {\n const extension = this.gl.getExtension('WEBGL_debug_shaders');\n return extension\n ? extension.getTranslatedShaderSource(this.handle)\n : 'No translated source available. WEBGL_debug_shaders not implemented';\n }\n\n // PRIVATE METHODS\n\n _getOptsFromHandle() {\n return {\n type: this.getParameter(GL.SHADER_TYPE),\n source: this.getSource()\n };\n }\n}\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * @deprecated Use `device.createShader({stage: 'vertex', ...})`\n */\n export class VertexShader extends Shader {\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {\n super(gl, getShaderProps(props, GL.VERTEX_SHADER));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.VERTEX_SHADER);\n }\n}\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * @deprecated Use `device.createShader({stage: 'fragment', ...})`\n */\n export class FragmentShader extends Shader {\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {\n super(gl, getShaderProps(props, GL.FRAGMENT_SHADER));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.FRAGMENT_SHADER);\n }\n}\n\n// HELPERS\n\nfunction getShaderProps(props: Omit<ShaderProps, 'stage'> | string, shaderType: GL.VERTEX_SHADER | GL.FRAGMENT_SHADER): Omit<ShaderProps, 'stage'> {\n if (typeof props === 'string') {\n return {source: props, shaderType};\n }\n return {...props, shaderType};\n}\n\n/** Deduce an id, from shader source, or supplied id, or shader type */\nfunction getShaderIdFromProps(props: ShaderProps): string {\n return getShaderInfo(props.source).name ||\n props.id ||\n uid(`unnamed ${props.stage || Shader.getTypeName(props.shaderType)}`);\n}\n"],"file":"webgl-shader.js"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GLContextOptions } from '@luma.gl/gltools';
|
|
2
|
+
import { Device } from '@luma.gl/api';
|
|
3
|
+
import type { BufferProps, ShaderProps } from '@luma.gl/api';
|
|
4
|
+
import WEBGLBuffer from '../classes/webgl-buffer';
|
|
5
|
+
import { WEBGLShader } from '../classes/webgl-shader';
|
|
6
|
+
import Texture2D, { Texture2DProps } from '../classes/texture-2d';
|
|
7
|
+
export default class GLContext extends Device {
|
|
8
|
+
readonly gl: WebGLRenderingContext;
|
|
9
|
+
readonly gl2: WebGL2RenderingContext | null;
|
|
10
|
+
constructor(props: GLContextOptions);
|
|
11
|
+
createBuffer(props: BufferProps): WEBGLBuffer;
|
|
12
|
+
createTexture(props: Texture2DProps): Texture2D;
|
|
13
|
+
createShader(props: ShaderProps): WEBGLShader;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=gl-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gl-context.d.ts","sourceRoot":"","sources":["../../src/context/gl-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAC3D,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAG,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,EAAE,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,MAAM;IAC3C,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,CAAC;gBAEhC,KAAK,EAAE,gBAAgB;IAMnC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAI7C,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS;IAI/C,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;CAG9C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import { createGLContext, isWebGL2 } from '@luma.gl/gltools';
|
|
3
|
+
import { Device } from '@luma.gl/api';
|
|
4
|
+
import WEBGLBuffer from '../classes/webgl-buffer';
|
|
5
|
+
import { WEBGLShader } from '../classes/webgl-shader';
|
|
6
|
+
import Texture2D from '../classes/texture-2d';
|
|
7
|
+
export default class GLContext extends Device {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
super();
|
|
10
|
+
|
|
11
|
+
_defineProperty(this, "gl", void 0);
|
|
12
|
+
|
|
13
|
+
_defineProperty(this, "gl2", void 0);
|
|
14
|
+
|
|
15
|
+
this.gl = createGLContext(props);
|
|
16
|
+
this.gl2 = isWebGL2(this.gl) ? this.gl : null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
createBuffer(props) {
|
|
20
|
+
return new WEBGLBuffer(this.gl, props);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
createTexture(props) {
|
|
24
|
+
return new Texture2D(this.gl, props);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
createShader(props) {
|
|
28
|
+
return new WEBGLShader(this.gl, props);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=gl-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/gl-context.ts"],"names":["createGLContext","isWebGL2","Device","WEBGLBuffer","WEBGLShader","Texture2D","GLContext","constructor","props","gl","gl2","createBuffer","createTexture","createShader"],"mappings":";AAEA,SAAQA,eAAR,EAAyBC,QAAzB,QAAwC,kBAAxC;AACA,SAAQC,MAAR,QAAqB,cAArB;AAEA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,SAAQC,WAAR,QAA4B,yBAA5B;AACA,OAAOC,SAAP,MAAwC,uBAAxC;AAEA,eAAe,MAAMC,SAAN,SAAwBJ,MAAxB,CAA+B;AAI5CK,EAAAA,WAAW,CAACC,KAAD,EAA0B;AACnC;;AADmC;;AAAA;;AAEnC,SAAKC,EAAL,GAAUT,eAAe,CAACQ,KAAD,CAAzB;AACA,SAAKE,GAAL,GAAWT,QAAQ,CAAC,KAAKQ,EAAN,CAAR,GAAoB,KAAKA,EAAzB,GAAwD,IAAnE;AACD;;AAEDE,EAAAA,YAAY,CAACH,KAAD,EAAkC;AAC5C,WAAO,IAAIL,WAAJ,CAAgB,KAAKM,EAArB,EAAyBD,KAAzB,CAAP;AACD;;AAEDI,EAAAA,aAAa,CAACJ,KAAD,EAAmC;AAC9C,WAAO,IAAIH,SAAJ,CAAc,KAAKI,EAAnB,EAAuBD,KAAvB,CAAP;AACD;;AAEDK,EAAAA,YAAY,CAACL,KAAD,EAAkC;AAC5C,WAAO,IAAIJ,WAAJ,CAAgB,KAAKK,EAArB,EAAyBD,KAAzB,CAAP;AACD;;AApB2C","sourcesContent":["// \nimport type {GLContextOptions} from '@luma.gl/gltools';\nimport {createGLContext, isWebGL2} from '@luma.gl/gltools';\nimport {Device} from '@luma.gl/api';\nimport type {BufferProps, ShaderProps} from '@luma.gl/api';\nimport WEBGLBuffer from '../classes/webgl-buffer';\nimport {WEBGLShader, } from '../classes/webgl-shader';\nimport Texture2D, {Texture2DProps} from '../classes/texture-2d';\n\nexport default class GLContext extends Device {\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n\n constructor(props: GLContextOptions) {\n super();\n this.gl = createGLContext(props);\n this.gl2 = isWebGL2(this.gl) ? this.gl as WebGL2RenderingContext : null;\n }\n\n createBuffer(props: BufferProps): WEBGLBuffer {\n return new WEBGLBuffer(this.gl, props);\n }\n\n createTexture(props: Texture2DProps): Texture2D {\n return new Texture2D(this.gl, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this.gl, props);\n }\n}\n"],"file":"gl-context.js"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { default as Framebuffer } from '../classes/framebuffer';
|
|
2
|
+
import type { default as VertexArrayObject } from '../classes/vertex-array-object';
|
|
3
|
+
/**
|
|
4
|
+
* Data stored by luma.gl on the context
|
|
5
|
+
*/
|
|
6
|
+
export declare type LumaContextData = {
|
|
7
|
+
defaultFramebuffer?: Framebuffer;
|
|
8
|
+
defaultVertexArray?: VertexArrayObject;
|
|
9
|
+
info: {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
};
|
|
12
|
+
caps: {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
};
|
|
15
|
+
limits: {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
};
|
|
18
|
+
webgl1MinLimits: {
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
};
|
|
21
|
+
webgl2MinLimits: {
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param gl
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export declare function getLumaContextData(gl: WebGLRenderingContext): LumaContextData;
|
|
31
|
+
//# sourceMappingURL=luma-context-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"luma-context-data.d.ts","sourceRoot":"","sources":["../../src/context/luma-context-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAEjF;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC3B,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC3B,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC7B,eAAe,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IACtC,eAAe,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;CACvC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,qBAAqB,GAAG,eAAe,CAK7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/luma-context-data.ts"],"names":["getLumaContextData","gl","luma"],"mappings":"AAqBA,OAAO,SAASA,kBAAT,CAA4BC,EAA5B,EAAwE;AAE7EA,EAAAA,EAAE,CAACC,IAAH,GAAUD,EAAE,CAACC,IAAH,IAAW,EAArB;AAEA,SAAOD,EAAE,CAACC,IAAV;AACD","sourcesContent":["import type {default as Framebuffer} from '../classes/framebuffer';\nimport type {default as VertexArrayObject} from '../classes/vertex-array-object';\n\n/**\n * Data stored by luma.gl on the context\n */\nexport type LumaContextData = {\n defaultFramebuffer?: Framebuffer;\n defaultVertexArray?: VertexArrayObject;\n info: {[key: string]: any};\n caps: {[key: string]: any};\n limits: {[key: string]: any};\n webgl1MinLimits: {[key: string]: any};\n webgl2MinLimits: {[key: string]: any};\n};\n\n/**\n * \n * @param gl \n * @returns \n */\nexport function getLumaContextData(gl: WebGLRenderingContext): LumaContextData {\n // @ts-ignore\n gl.luma = gl.luma || {};\n // @ts-ignore\n return gl.luma as LumaContextData;\n}"],"file":"luma-context-data.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-program-configuration.d.ts","sourceRoot":"","sources":["../../src/debug/debug-program-configuration.ts"],"names":[],"mappings":"AAEA,wBAAgB,oCAAoC,CAAC,MAAM,KAAA,MAoB1D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { getCompositeGLType } from '../webgl-utils/attribute-utils';
|
|
2
|
+
export function getDebugTableForProgramConfiguration(config) {
|
|
3
|
+
const table = {};
|
|
4
|
+
const header = "Accessors for ".concat(config.id);
|
|
5
|
+
|
|
6
|
+
for (const attributeInfo of config.attributeInfos) {
|
|
7
|
+
if (attributeInfo) {
|
|
8
|
+
const glslDeclaration = getGLSLDeclaration(attributeInfo);
|
|
9
|
+
table["in ".concat(glslDeclaration)] = {
|
|
10
|
+
[header]: JSON.stringify(attributeInfo.accessor)
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
for (const varyingInfo of config.varyingInfos) {
|
|
16
|
+
if (varyingInfo) {
|
|
17
|
+
const glslDeclaration = getGLSLDeclaration(varyingInfo);
|
|
18
|
+
table["out ".concat(glslDeclaration)] = {
|
|
19
|
+
[header]: JSON.stringify(varyingInfo.accessor)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return table;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function getGLSLDeclaration(attributeInfo) {
|
|
28
|
+
const {
|
|
29
|
+
type,
|
|
30
|
+
size
|
|
31
|
+
} = attributeInfo.accessor;
|
|
32
|
+
const typeAndName = getCompositeGLType(type, size);
|
|
33
|
+
|
|
34
|
+
if (typeAndName) {
|
|
35
|
+
return "".concat(typeAndName.name, " ").concat(attributeInfo.name);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return attributeInfo.name;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=debug-program-configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/debug/debug-program-configuration.ts"],"names":["getCompositeGLType","getDebugTableForProgramConfiguration","config","table","header","id","attributeInfo","attributeInfos","glslDeclaration","getGLSLDeclaration","JSON","stringify","accessor","varyingInfo","varyingInfos","type","size","typeAndName","name"],"mappings":"AAAA,SAAQA,kBAAR,QAAiC,gCAAjC;AAEA,OAAO,SAASC,oCAAT,CAA8CC,MAA9C,EAAsD;AAC3D,QAAMC,KAAK,GAAG,EAAd;AAEA,QAAMC,MAAM,2BAAoBF,MAAM,CAACG,EAA3B,CAAZ;;AAEA,OAAK,MAAMC,aAAX,IAA4BJ,MAAM,CAACK,cAAnC,EAAmD;AACjD,QAAID,aAAJ,EAAmB;AACjB,YAAME,eAAe,GAAGC,kBAAkB,CAACH,aAAD,CAA1C;AACAH,MAAAA,KAAK,cAAOK,eAAP,EAAL,GAAiC;AAAC,SAACJ,MAAD,GAAUM,IAAI,CAACC,SAAL,CAAeL,aAAa,CAACM,QAA7B;AAAX,OAAjC;AACD;AACF;;AAED,OAAK,MAAMC,WAAX,IAA0BX,MAAM,CAACY,YAAjC,EAA+C;AAC7C,QAAID,WAAJ,EAAiB;AACf,YAAML,eAAe,GAAGC,kBAAkB,CAACI,WAAD,CAA1C;AACAV,MAAAA,KAAK,eAAQK,eAAR,EAAL,GAAkC;AAAC,SAACJ,MAAD,GAAUM,IAAI,CAACC,SAAL,CAAeE,WAAW,CAACD,QAA3B;AAAX,OAAlC;AACD;AACF;;AAED,SAAOT,KAAP;AACD;;AAED,SAASM,kBAAT,CAA4BH,aAA5B,EAA2C;AACzC,QAAM;AAACS,IAAAA,IAAD;AAAOC,IAAAA;AAAP,MAAeV,aAAa,CAACM,QAAnC;AACA,QAAMK,WAAW,GAAGjB,kBAAkB,CAACe,IAAD,EAAOC,IAAP,CAAtC;;AACA,MAAIC,WAAJ,EAAiB;AACf,qBAAUA,WAAW,CAACC,IAAtB,cAA8BZ,aAAa,CAACY,IAA5C;AACD;;AACD,SAAOZ,aAAa,CAACY,IAArB;AACD","sourcesContent":["import {getCompositeGLType} from '../webgl-utils/attribute-utils';\n\nexport function getDebugTableForProgramConfiguration(config) {\n const table = {};\n\n const header = `Accessors for ${config.id}`;\n\n for (const attributeInfo of config.attributeInfos) {\n if (attributeInfo) {\n const glslDeclaration = getGLSLDeclaration(attributeInfo);\n table[`in ${glslDeclaration}`] = {[header]: JSON.stringify(attributeInfo.accessor)};\n }\n }\n\n for (const varyingInfo of config.varyingInfos) {\n if (varyingInfo) {\n const glslDeclaration = getGLSLDeclaration(varyingInfo);\n table[`out ${glslDeclaration}`] = {[header]: JSON.stringify(varyingInfo.accessor)};\n }\n }\n\n return table;\n}\n\nfunction getGLSLDeclaration(attributeInfo) {\n const {type, size} = attributeInfo.accessor;\n const typeAndName = getCompositeGLType(type, size);\n if (typeAndName) {\n return `${typeAndName.name} ${attributeInfo.name}`;\n }\n return attributeInfo.name;\n}\n"],"file":"debug-program-configuration.js"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function getDebugTableForUniforms(options?: {
|
|
2
|
+
header?: string;
|
|
3
|
+
program: any;
|
|
4
|
+
uniforms: any;
|
|
5
|
+
undefinedOnly?: boolean;
|
|
6
|
+
}): {
|
|
7
|
+
table: {};
|
|
8
|
+
count: number;
|
|
9
|
+
unusedTable: {};
|
|
10
|
+
unusedCount: number;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=debug-uniforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-uniforms.d.ts","sourceRoot":"","sources":["../../src/debug/debug-uniforms.ts"],"names":[],"mappings":"AAIA,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG;IACF,KAAK,EAAE,EAAE,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAkEA"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { formatValue, assert } from '../utils';
|
|
2
|
+
export function getDebugTableForUniforms(options) {
|
|
3
|
+
const {
|
|
4
|
+
header = 'Uniforms',
|
|
5
|
+
program,
|
|
6
|
+
uniforms,
|
|
7
|
+
undefinedOnly = false
|
|
8
|
+
} = options;
|
|
9
|
+
assert(program);
|
|
10
|
+
const SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';
|
|
11
|
+
const PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix';
|
|
12
|
+
const uniformLocations = program._uniformSetters;
|
|
13
|
+
const table = {};
|
|
14
|
+
const uniformNames = Object.keys(uniformLocations).sort();
|
|
15
|
+
let count = 0;
|
|
16
|
+
|
|
17
|
+
for (const uniformName of uniformNames) {
|
|
18
|
+
if (!uniformName.match(SHADER_MODULE_UNIFORM_REGEXP) && !uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {
|
|
19
|
+
if (addUniformToTable({
|
|
20
|
+
table,
|
|
21
|
+
header,
|
|
22
|
+
uniforms,
|
|
23
|
+
uniformName,
|
|
24
|
+
undefinedOnly
|
|
25
|
+
})) {
|
|
26
|
+
count++;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
for (const uniformName of uniformNames) {
|
|
32
|
+
if (uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {
|
|
33
|
+
if (addUniformToTable({
|
|
34
|
+
table,
|
|
35
|
+
header,
|
|
36
|
+
uniforms,
|
|
37
|
+
uniformName,
|
|
38
|
+
undefinedOnly
|
|
39
|
+
})) {
|
|
40
|
+
count++;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
for (const uniformName of uniformNames) {
|
|
46
|
+
if (!table[uniformName]) {
|
|
47
|
+
if (addUniformToTable({
|
|
48
|
+
table,
|
|
49
|
+
header,
|
|
50
|
+
uniforms,
|
|
51
|
+
uniformName,
|
|
52
|
+
undefinedOnly
|
|
53
|
+
})) {
|
|
54
|
+
count++;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
let unusedCount = 0;
|
|
60
|
+
const unusedTable = {};
|
|
61
|
+
|
|
62
|
+
if (!undefinedOnly) {
|
|
63
|
+
for (const uniformName in uniforms) {
|
|
64
|
+
const uniform = uniforms[uniformName];
|
|
65
|
+
|
|
66
|
+
if (!table[uniformName]) {
|
|
67
|
+
unusedCount++;
|
|
68
|
+
unusedTable[uniformName] = {
|
|
69
|
+
Type: "NOT USED: ".concat(uniform),
|
|
70
|
+
[header]: formatValue(uniform)
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
table,
|
|
78
|
+
count,
|
|
79
|
+
unusedTable,
|
|
80
|
+
unusedCount
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function addUniformToTable({
|
|
85
|
+
table,
|
|
86
|
+
header,
|
|
87
|
+
uniforms,
|
|
88
|
+
uniformName,
|
|
89
|
+
undefinedOnly
|
|
90
|
+
}) {
|
|
91
|
+
const value = uniforms[uniformName];
|
|
92
|
+
const isDefined = isUniformDefined(value);
|
|
93
|
+
|
|
94
|
+
if (!undefinedOnly || !isDefined) {
|
|
95
|
+
table[uniformName] = {
|
|
96
|
+
[header]: isDefined ? formatValue(value) : 'N/A',
|
|
97
|
+
'Uniform Type': isDefined ? value : 'NOT PROVIDED'
|
|
98
|
+
};
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function isUniformDefined(value) {
|
|
106
|
+
return value !== undefined && value !== null;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=debug-uniforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/debug/debug-uniforms.ts"],"names":["formatValue","assert","getDebugTableForUniforms","options","header","program","uniforms","undefinedOnly","SHADER_MODULE_UNIFORM_REGEXP","PROJECT_MODULE_UNIFORM_REGEXP","uniformLocations","_uniformSetters","table","uniformNames","Object","keys","sort","count","uniformName","match","addUniformToTable","unusedCount","unusedTable","uniform","Type","value","isDefined","isUniformDefined","undefined"],"mappings":"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","sourcesContent":["import {formatValue, assert} from '../utils';\n\n// Prepares a table suitable for console.table\n/* eslint-disable max-statements, complexity */\nexport function getDebugTableForUniforms(options?: {\n header?: string;\n program: any;\n uniforms: any;\n undefinedOnly?: boolean;\n}): {\n table: {};\n count: number;\n unusedTable: {};\n unusedCount: number;\n} {\n const {\n header = 'Uniforms',\n program,\n uniforms,\n undefinedOnly = false\n } = options;\n assert(program);\n\n const SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';\n const PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix'; // TODO - Use explicit list\n\n const uniformLocations = program._uniformSetters;\n const table = {}; // {[header]: {}};\n\n // Add program's provided uniforms (in alphabetical order)\n const uniformNames = Object.keys(uniformLocations).sort();\n\n let count = 0;\n\n // First add non-underscored uniforms (assumed not coming from shader modules)\n for (const uniformName of uniformNames) {\n if (\n !uniformName.match(SHADER_MODULE_UNIFORM_REGEXP) &&\n !uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)\n ) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // add underscored uniforms (assumed from shader modules)\n for (const uniformName of uniformNames) {\n if (uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n for (const uniformName of uniformNames) {\n if (!table[uniformName]) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // Create a table of unused uniforms\n let unusedCount = 0;\n const unusedTable = {};\n if (!undefinedOnly) {\n for (const uniformName in uniforms) {\n const uniform = uniforms[uniformName];\n if (!table[uniformName]) {\n unusedCount++;\n unusedTable[uniformName] = {\n Type: `NOT USED: ${uniform}`,\n [header]: formatValue(uniform)\n };\n }\n }\n }\n\n return {table, count, unusedTable, unusedCount};\n}\n\n// Helper\nfunction addUniformToTable({table, header, uniforms, uniformName, undefinedOnly}) {\n const value = uniforms[uniformName];\n const isDefined = isUniformDefined(value);\n if (!undefinedOnly || !isDefined) {\n table[uniformName] = {\n // Add program's unprovided uniforms\n [header]: isDefined ? formatValue(value) : 'N/A',\n 'Uniform Type': isDefined ? value : 'NOT PROVIDED'\n };\n return true;\n }\n return false;\n}\n\nfunction isUniformDefined(value) {\n return value !== undefined && value !== null;\n}\n"],"file":"debug-uniforms.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-vertex-array.d.ts","sourceRoot":"","sources":["../../src/debug/debug-vertex-array.ts"],"names":[],"mappings":"AAMA,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAAC,WAAW,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,EAAE,CAqC7F"}
|