@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,18 +1,23 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
2
|
import {log, assertWebGLContext} from '@luma.gl/gltools';
|
|
3
|
-
import Texture from './texture';
|
|
3
|
+
import Texture, {TextureProps} from './texture';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
GL.TEXTURE_CUBE_MAP_NEGATIVE_X,
|
|
8
|
-
GL.TEXTURE_CUBE_MAP_POSITIVE_Y,
|
|
9
|
-
GL.TEXTURE_CUBE_MAP_NEGATIVE_Y,
|
|
10
|
-
GL.TEXTURE_CUBE_MAP_POSITIVE_Z,
|
|
11
|
-
GL.TEXTURE_CUBE_MAP_NEGATIVE_Z
|
|
12
|
-
];
|
|
5
|
+
export type TextureCubeProps = TextureProps & {
|
|
6
|
+
};
|
|
13
7
|
|
|
14
8
|
export default class TextureCube extends Texture {
|
|
15
|
-
|
|
9
|
+
static FACES: number[] = [
|
|
10
|
+
GL.TEXTURE_CUBE_MAP_POSITIVE_X,
|
|
11
|
+
GL.TEXTURE_CUBE_MAP_NEGATIVE_X,
|
|
12
|
+
GL.TEXTURE_CUBE_MAP_POSITIVE_Y,
|
|
13
|
+
GL.TEXTURE_CUBE_MAP_NEGATIVE_Y,
|
|
14
|
+
GL.TEXTURE_CUBE_MAP_POSITIVE_Z,
|
|
15
|
+
GL.TEXTURE_CUBE_MAP_NEGATIVE_Z
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
props;
|
|
19
|
+
|
|
20
|
+
constructor(gl: WebGLRenderingContext, props?: TextureCubeProps) {
|
|
16
21
|
assertWebGLContext(gl);
|
|
17
22
|
|
|
18
23
|
super(gl, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));
|
|
@@ -22,11 +27,15 @@ export default class TextureCube extends Texture {
|
|
|
22
27
|
Object.seal(this);
|
|
23
28
|
}
|
|
24
29
|
|
|
25
|
-
|
|
30
|
+
get [Symbol.toStringTag](): string {
|
|
31
|
+
return 'TextureCube';
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
initialize(props?: TextureCubeProps): this {
|
|
26
35
|
const {mipmaps = true, parameters = {}} = props;
|
|
27
36
|
|
|
28
37
|
// Store props for accessors
|
|
29
|
-
this.
|
|
38
|
+
this.props = props;
|
|
30
39
|
|
|
31
40
|
// @ts-ignore
|
|
32
41
|
this.setCubeMapImageData(props).then(() => {
|
|
@@ -43,22 +52,33 @@ export default class TextureCube extends Texture {
|
|
|
43
52
|
return this;
|
|
44
53
|
}
|
|
45
54
|
|
|
46
|
-
subImage({face
|
|
55
|
+
subImage(options: {face: any; data: any; x?: number; y?: number; mipmapLevel?: number}): any {
|
|
56
|
+
const {face, data, x = 0, y = 0, mipmapLevel = 0} = options;
|
|
47
57
|
// @ts-ignore TODO - is this a bug?
|
|
48
58
|
return this._subImage({target: face, data, x, y, mipmapLevel});
|
|
49
59
|
}
|
|
50
60
|
|
|
51
61
|
/* eslint-disable max-statements, max-len */
|
|
52
|
-
async setCubeMapImageData({
|
|
53
|
-
width
|
|
54
|
-
height
|
|
55
|
-
pixels
|
|
56
|
-
data
|
|
57
|
-
border
|
|
58
|
-
format
|
|
59
|
-
type
|
|
60
|
-
}) {
|
|
62
|
+
async setCubeMapImageData(options: {
|
|
63
|
+
width: any;
|
|
64
|
+
height: any;
|
|
65
|
+
pixels: any;
|
|
66
|
+
data: any;
|
|
67
|
+
border?: number;
|
|
68
|
+
format?: any;
|
|
69
|
+
type?: any;
|
|
70
|
+
}): Promise<void>{
|
|
61
71
|
const {gl} = this;
|
|
72
|
+
|
|
73
|
+
const {
|
|
74
|
+
width,
|
|
75
|
+
height,
|
|
76
|
+
pixels,
|
|
77
|
+
data,
|
|
78
|
+
border = 0,
|
|
79
|
+
format = GL.RGBA,
|
|
80
|
+
type = GL.UNSIGNED_BYTE
|
|
81
|
+
} = options;
|
|
62
82
|
const imageDataMap = pixels || data;
|
|
63
83
|
|
|
64
84
|
// pixel data (imageDataMap) is an Object from Face to Image or Promise.
|
|
@@ -75,7 +95,7 @@ export default class TextureCube extends Texture {
|
|
|
75
95
|
// ... }
|
|
76
96
|
|
|
77
97
|
const resolvedFaces = await Promise.all(
|
|
78
|
-
FACES.map(face => {
|
|
98
|
+
TextureCube.FACES.map((face) => {
|
|
79
99
|
const facePixels = imageDataMap[face];
|
|
80
100
|
return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);
|
|
81
101
|
})
|
|
@@ -83,8 +103,8 @@ export default class TextureCube extends Texture {
|
|
|
83
103
|
|
|
84
104
|
this.bind();
|
|
85
105
|
|
|
86
|
-
FACES.forEach((face, index) => {
|
|
87
|
-
if (resolvedFaces[index].length > 1 && this.
|
|
106
|
+
TextureCube.FACES.forEach((face, index) => {
|
|
107
|
+
if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
|
|
88
108
|
// If the user provides multiple LODs, then automatic mipmap
|
|
89
109
|
// generation generateMipmap() should be disabled to avoid overwritting them.
|
|
90
110
|
log.warn(`${this.id} has mipmap and multiple LODs.`)();
|
|
@@ -122,7 +142,7 @@ export default class TextureCube extends Texture {
|
|
|
122
142
|
|
|
123
143
|
this.bind();
|
|
124
144
|
if (imageData instanceof Promise) {
|
|
125
|
-
imageData.then(resolvedImageData =>
|
|
145
|
+
imageData.then((resolvedImageData) =>
|
|
126
146
|
this.setImageDataForFace(
|
|
127
147
|
Object.assign({}, options, {
|
|
128
148
|
face,
|
|
@@ -140,5 +160,3 @@ export default class TextureCube extends Texture {
|
|
|
140
160
|
return this;
|
|
141
161
|
}
|
|
142
162
|
}
|
|
143
|
-
|
|
144
|
-
TextureCube.FACES = FACES;
|
|
@@ -8,8 +8,16 @@ import {isWebGL2} from '@luma.gl/gltools';
|
|
|
8
8
|
// const SRGB = 'EXT_sRGB';
|
|
9
9
|
// const DEPTH = 'WEBGL_depth_texture';
|
|
10
10
|
|
|
11
|
+
type TextureFormat = {
|
|
12
|
+
dataFormat: number;
|
|
13
|
+
types: number[];
|
|
14
|
+
gl2?: boolean;
|
|
15
|
+
gl1?: boolean;
|
|
16
|
+
compressed?: boolean;
|
|
17
|
+
}
|
|
18
|
+
|
|
11
19
|
// Legal combinations for internalFormat, format and type
|
|
12
|
-
export const TEXTURE_FORMATS = {
|
|
20
|
+
export const TEXTURE_FORMATS: Record<string, TextureFormat> = {
|
|
13
21
|
// Unsized texture format - more performance
|
|
14
22
|
[GL.RGB]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5]},
|
|
15
23
|
// TODO: format: GL.RGBA type: GL.FLOAT is supported in WebGL1 when 'OES_texure_float' is suported
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import {isWebGL2, assertWebGL2Context, withParameters, log} from '@luma.gl/gltools';
|
|
2
|
+
import {isWebGL2, assertWebGL2Context, getWebGL2Context, withParameters, log} from '@luma.gl/gltools';
|
|
3
3
|
import {global} from 'probe.gl/env';
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import Buffer from './buffer';
|
|
4
|
+
import {getKey, getKeyValue} from '../webgl-utils';
|
|
5
|
+
import {Texture, TextureProps} from '@luma.gl/api';
|
|
6
|
+
import Buffer from './webgl-buffer';
|
|
7
7
|
import {
|
|
8
8
|
TEXTURE_FORMATS,
|
|
9
9
|
DATA_FORMAT_CHANNELS,
|
|
@@ -11,8 +11,9 @@ import {
|
|
|
11
11
|
isFormatSupported,
|
|
12
12
|
isLinearFilteringSupported
|
|
13
13
|
} from './texture-formats';
|
|
14
|
-
import {assert} from '../utils
|
|
15
|
-
|
|
14
|
+
import {uid, isPowerOfTwo, assert} from '../utils';
|
|
15
|
+
|
|
16
|
+
export {TextureProps};
|
|
16
17
|
|
|
17
18
|
// Supported min filters for NPOT texture.
|
|
18
19
|
const NPOT_MIN_FILTERS = [GL.LINEAR, GL.NEAREST];
|
|
@@ -21,9 +22,42 @@ const NPOT_MIN_FILTERS = [GL.LINEAR, GL.NEAREST];
|
|
|
21
22
|
// Note (Tarek): Do we really need to support this API?
|
|
22
23
|
const WebGLBuffer = global.WebGLBuffer || function WebGLBuffer() {};
|
|
23
24
|
|
|
24
|
-
export default class
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
export default class WEBGLTexture extends Texture {
|
|
26
|
+
readonly MAX_ATTRIBUTES: number;
|
|
27
|
+
|
|
28
|
+
readonly gl: WebGLRenderingContext;
|
|
29
|
+
readonly gl2: WebGL2RenderingContext | null;
|
|
30
|
+
readonly handle: WebGLTexture;
|
|
31
|
+
|
|
32
|
+
data;
|
|
33
|
+
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
depth: number;
|
|
37
|
+
|
|
38
|
+
format = undefined;
|
|
39
|
+
type = undefined;
|
|
40
|
+
dataFormat = undefined;
|
|
41
|
+
border = undefined;
|
|
42
|
+
mipmaps = undefined;
|
|
43
|
+
|
|
44
|
+
target: number;
|
|
45
|
+
textureUnit: number = undefined;
|
|
46
|
+
|
|
47
|
+
// Program.draw() checks the loaded flag of all textures to avoid
|
|
48
|
+
// Textures that are still loading from promises
|
|
49
|
+
// Set to true as soon as texture has been initialized with valid data
|
|
50
|
+
loaded = false;
|
|
51
|
+
_video;
|
|
52
|
+
|
|
53
|
+
static isSupported(
|
|
54
|
+
gl: WebGLRenderingContext,
|
|
55
|
+
options?: {
|
|
56
|
+
format: any;
|
|
57
|
+
linearFiltering: any;
|
|
58
|
+
}
|
|
59
|
+
): boolean {
|
|
60
|
+
const {format, linearFiltering} = options;
|
|
27
61
|
let supported = true;
|
|
28
62
|
if (format) {
|
|
29
63
|
supported = supported && isFormatSupported(gl, format);
|
|
@@ -42,7 +76,9 @@ export default class Texture extends Resource {
|
|
|
42
76
|
// you must always bind it as a GL_TEXTURE_2D;
|
|
43
77
|
// attempting to bind it as GL_TEXTURE_1D will give rise to an error
|
|
44
78
|
// (while run-time).
|
|
45
|
-
constructor(gl, props) {
|
|
79
|
+
constructor(gl: WebGLRenderingContext, props: TextureProps) {
|
|
80
|
+
super(gl as any, props);
|
|
81
|
+
|
|
46
82
|
const {
|
|
47
83
|
id = uid('texture'),
|
|
48
84
|
handle,
|
|
@@ -50,8 +86,6 @@ export default class Texture extends Resource {
|
|
|
50
86
|
// , magFilter, minFilter, wrapS, wrapT
|
|
51
87
|
} = props;
|
|
52
88
|
|
|
53
|
-
super(gl, {id, handle});
|
|
54
|
-
|
|
55
89
|
this.target = target;
|
|
56
90
|
this.textureUnit = undefined;
|
|
57
91
|
|
|
@@ -69,18 +103,32 @@ export default class Texture extends Resource {
|
|
|
69
103
|
this.border = undefined;
|
|
70
104
|
this.textureUnit = undefined;
|
|
71
105
|
this.mipmaps = undefined;
|
|
106
|
+
|
|
107
|
+
this.gl = gl;
|
|
108
|
+
this.gl2 = getWebGL2Context(gl);
|
|
109
|
+
this.handle = this.props.handle || this.gl.createTexture();
|
|
72
110
|
}
|
|
73
111
|
|
|
74
|
-
|
|
112
|
+
destroy(): void {
|
|
113
|
+
if (this.handle) {
|
|
114
|
+
this.gl.deleteTexture(this.handle);
|
|
115
|
+
this.removeStats();
|
|
116
|
+
this.trackDeallocatedMemory('Texture');
|
|
117
|
+
// @ts-expect-error
|
|
118
|
+
this.handle = null;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
toString(): string {
|
|
75
123
|
return `Texture(${this.id},${this.width}x${this.height})`;
|
|
76
124
|
}
|
|
77
125
|
|
|
78
126
|
/* eslint-disable max-len, max-statements */
|
|
79
|
-
initialize(props = {}) {
|
|
127
|
+
initialize(props: TextureProps = {}): this {
|
|
80
128
|
let data = props.data;
|
|
81
129
|
|
|
82
130
|
if (data instanceof Promise) {
|
|
83
|
-
data.then(resolvedImageData =>
|
|
131
|
+
data.then((resolvedImageData) =>
|
|
84
132
|
this.initialize(
|
|
85
133
|
Object.assign({}, props, {
|
|
86
134
|
pixels: resolvedImageData,
|
|
@@ -191,7 +239,7 @@ export default class Texture extends Resource {
|
|
|
191
239
|
return this;
|
|
192
240
|
}
|
|
193
241
|
|
|
194
|
-
update() {
|
|
242
|
+
update(): this {
|
|
195
243
|
if (this._video) {
|
|
196
244
|
const {video, parameters, lastTime} = this._video;
|
|
197
245
|
// @ts-ignore
|
|
@@ -211,7 +259,7 @@ export default class Texture extends Resource {
|
|
|
211
259
|
|
|
212
260
|
// If size has changed, reinitializes with current format
|
|
213
261
|
// note clears image and mipmaps
|
|
214
|
-
resize({height, width, mipmaps = false}) {
|
|
262
|
+
resize({height, width, mipmaps = false}): this {
|
|
215
263
|
if (width !== this.width || height !== this.height) {
|
|
216
264
|
return this.initialize({
|
|
217
265
|
width,
|
|
@@ -227,7 +275,7 @@ export default class Texture extends Resource {
|
|
|
227
275
|
}
|
|
228
276
|
|
|
229
277
|
// Call to regenerate mipmaps after modifying texture(s)
|
|
230
|
-
generateMipmap(params = {}) {
|
|
278
|
+
generateMipmap(params = {}): this {
|
|
231
279
|
if (this._isNPOT()) {
|
|
232
280
|
log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)();
|
|
233
281
|
return this;
|
|
@@ -266,7 +314,7 @@ export default class Texture extends Resource {
|
|
|
266
314
|
*/
|
|
267
315
|
/* eslint-disable max-len, max-statements, complexity */
|
|
268
316
|
setImageData(options) {
|
|
269
|
-
this.
|
|
317
|
+
this.trackDeallocatedMemory('Texture');
|
|
270
318
|
|
|
271
319
|
const {
|
|
272
320
|
target = this.target,
|
|
@@ -367,13 +415,13 @@ export default class Texture extends Resource {
|
|
|
367
415
|
});
|
|
368
416
|
|
|
369
417
|
if (data && data.byteLength) {
|
|
370
|
-
this.
|
|
418
|
+
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
371
419
|
} else {
|
|
372
420
|
// NOTE(Tarek): Default to RGBA bytes
|
|
373
421
|
const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
|
|
374
422
|
const channelSize = TYPE_SIZES[this.type] || 1;
|
|
375
423
|
|
|
376
|
-
this.
|
|
424
|
+
this.trackAllocatedMemory(this.width * this.height * channels * channelSize, 'Texture');
|
|
377
425
|
}
|
|
378
426
|
|
|
379
427
|
this.loaded = true;
|
|
@@ -504,7 +552,7 @@ export default class Texture extends Resource {
|
|
|
504
552
|
return null;
|
|
505
553
|
}
|
|
506
554
|
|
|
507
|
-
getActiveUnit() {
|
|
555
|
+
getActiveUnit(): number {
|
|
508
556
|
return this.gl.getParameter(GL.ACTIVE_TEXTURE) - GL.TEXTURE0;
|
|
509
557
|
}
|
|
510
558
|
|
|
@@ -660,7 +708,7 @@ export default class Texture extends Resource {
|
|
|
660
708
|
}
|
|
661
709
|
|
|
662
710
|
// eslint-disable-next-line complexity
|
|
663
|
-
_deduceImageSize(data, width, height) {
|
|
711
|
+
_deduceImageSize(data, width, height): {width: number, height: number} {
|
|
664
712
|
let size;
|
|
665
713
|
|
|
666
714
|
if (typeof ImageData !== 'undefined' && data instanceof ImageData) {
|
|
@@ -694,16 +742,135 @@ export default class Texture extends Resource {
|
|
|
694
742
|
|
|
695
743
|
// RESOURCE METHODS
|
|
696
744
|
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
745
|
+
/**
|
|
746
|
+
* Query a Resource parameter
|
|
747
|
+
*
|
|
748
|
+
* @param name
|
|
749
|
+
* @return param
|
|
750
|
+
*/
|
|
751
|
+
getParameter(pname: number, props = {}): any {
|
|
752
|
+
pname = getKeyValue(this.gl, pname);
|
|
753
|
+
assert(pname);
|
|
754
|
+
|
|
755
|
+
// @ts-ignore
|
|
756
|
+
const parameters = this.constructor.PARAMETERS || {};
|
|
757
|
+
|
|
758
|
+
// Use parameter definitions to handle unsupported parameters
|
|
759
|
+
const parameter = parameters[pname];
|
|
760
|
+
if (parameter) {
|
|
761
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
762
|
+
|
|
763
|
+
// Check if we can query for this parameter
|
|
764
|
+
const parameterAvailable =
|
|
765
|
+
(!('webgl2' in parameter) || isWebgl2) &&
|
|
766
|
+
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
767
|
+
|
|
768
|
+
if (!parameterAvailable) {
|
|
769
|
+
const webgl1Default = parameter.webgl1;
|
|
770
|
+
const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;
|
|
771
|
+
const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;
|
|
772
|
+
return defaultValue;
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
// If unknown parameter - Could be a valid parameter not covered by PARAMS
|
|
777
|
+
// Attempt to query for it and let WebGL report errors
|
|
778
|
+
return this._getParameter(pname, props);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
// Many resources support a getParameter call -
|
|
782
|
+
// getParameters will get all parameters - slow but useful for debugging
|
|
783
|
+
// eslint-disable-next-line complexity
|
|
784
|
+
getParameters(options: {parameters?, keys?} = {}) {
|
|
785
|
+
const {parameters, keys} = options;
|
|
786
|
+
|
|
787
|
+
// Get parameter definitions for this Resource
|
|
788
|
+
// @ts-ignore
|
|
789
|
+
const PARAMETERS = this.constructor.PARAMETERS || {};
|
|
790
|
+
|
|
791
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
792
|
+
|
|
793
|
+
const values = {};
|
|
794
|
+
|
|
795
|
+
// Query all parameters if no list provided
|
|
796
|
+
const parameterKeys = parameters || Object.keys(PARAMETERS);
|
|
797
|
+
|
|
798
|
+
// WEBGL limits
|
|
799
|
+
for (const pname of parameterKeys) {
|
|
800
|
+
const parameter = PARAMETERS[pname];
|
|
801
|
+
|
|
802
|
+
// Check if this parameter is available on this platform
|
|
803
|
+
const parameterAvailable =
|
|
804
|
+
parameter &&
|
|
805
|
+
(!('webgl2' in parameter) || isWebgl2) &&
|
|
806
|
+
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
807
|
+
|
|
808
|
+
if (parameterAvailable) {
|
|
809
|
+
const key = keys ? getKey(this.gl, pname) : pname;
|
|
810
|
+
values[key] = this.getParameter(pname, options);
|
|
811
|
+
if (keys && parameter.type === 'GLenum') {
|
|
812
|
+
values[key] = getKey(this.gl, values[key]);
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
return values;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
/**
|
|
821
|
+
* Update a Resource setting
|
|
822
|
+
*
|
|
823
|
+
* @todo - cache parameter to avoid issuing WebGL calls?
|
|
824
|
+
*
|
|
825
|
+
* @param {string} pname - parameter (GL constant, value or key)
|
|
826
|
+
* @param {GLint|GLfloat|GLenum} value
|
|
827
|
+
* @return {Resource} returns self to enable chaining
|
|
828
|
+
*/
|
|
829
|
+
setParameter(pname, value) {
|
|
830
|
+
pname = getKeyValue(this.gl, pname);
|
|
831
|
+
assert(pname);
|
|
832
|
+
|
|
833
|
+
// @ts-ignore
|
|
834
|
+
const parameters = this.constructor.PARAMETERS || {};
|
|
835
|
+
|
|
836
|
+
const parameter = parameters[pname];
|
|
837
|
+
if (parameter) {
|
|
838
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
839
|
+
|
|
840
|
+
// Check if this parameter is available on this platform
|
|
841
|
+
const parameterAvailable =
|
|
842
|
+
(!('webgl2' in parameter) || isWebgl2) &&
|
|
843
|
+
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
844
|
+
|
|
845
|
+
if (!parameterAvailable) {
|
|
846
|
+
throw new Error('Parameter not available on this platform');
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
// Handle string keys
|
|
850
|
+
if (parameter.type === 'GLenum') {
|
|
851
|
+
// @ts-expect-error
|
|
852
|
+
value = getKeyValue(value);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
// If unknown parameter - Could be a valid parameter not covered by PARAMS
|
|
857
|
+
// attempt to set it and let WebGL report errors
|
|
858
|
+
this._setParameter(pname, value);
|
|
859
|
+
return this;
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
/*
|
|
863
|
+
* Batch update resource parameters
|
|
864
|
+
* Assumes the subclass supports a setParameter call
|
|
865
|
+
*/
|
|
866
|
+
setParameters(parameters) {
|
|
867
|
+
for (const pname in parameters) {
|
|
868
|
+
this.setParameter(pname, parameters[pname]);
|
|
869
|
+
}
|
|
870
|
+
return this;
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
_getParameter(pname: number, props?): any {
|
|
707
874
|
switch (pname) {
|
|
708
875
|
case GL.TEXTURE_WIDTH:
|
|
709
876
|
return this.width;
|
|
@@ -717,7 +884,7 @@ export default class Texture extends Resource {
|
|
|
717
884
|
}
|
|
718
885
|
}
|
|
719
886
|
|
|
720
|
-
_setParameter(pname, param) {
|
|
887
|
+
_setParameter(pname: number, param: number): this {
|
|
721
888
|
this.gl.bindTexture(this.target, this.handle);
|
|
722
889
|
|
|
723
890
|
// NOTE: Apply NPOT workaround
|
|
@@ -729,7 +896,7 @@ export default class Texture extends Resource {
|
|
|
729
896
|
switch (pname) {
|
|
730
897
|
case GL.TEXTURE_MIN_LOD:
|
|
731
898
|
case GL.TEXTURE_MAX_LOD:
|
|
732
|
-
this.gl.texParameterf(this.
|
|
899
|
+
this.gl.texParameterf(this.target, pname, param);
|
|
733
900
|
break;
|
|
734
901
|
|
|
735
902
|
case GL.TEXTURE_WIDTH:
|
|
@@ -746,7 +913,7 @@ export default class Texture extends Resource {
|
|
|
746
913
|
return this;
|
|
747
914
|
}
|
|
748
915
|
|
|
749
|
-
_isNPOT() {
|
|
916
|
+
_isNPOT(): boolean {
|
|
750
917
|
if (isWebGL2(this.gl)) {
|
|
751
918
|
// NPOT restriction is only for WebGL1
|
|
752
919
|
return false;
|
|
@@ -774,7 +941,7 @@ export default class Texture extends Resource {
|
|
|
774
941
|
}
|
|
775
942
|
}
|
|
776
943
|
|
|
777
|
-
_getNPOTParam(pname, param) {
|
|
944
|
+
_getNPOTParam(pname: number, param: number): number {
|
|
778
945
|
if (this._isNPOT()) {
|
|
779
946
|
switch (pname) {
|
|
780
947
|
case GL.TEXTURE_MIN_FILTER:
|
|
@@ -1,27 +1,35 @@
|
|
|
1
1
|
import GL from '@luma.gl/constants';
|
|
2
2
|
import {isWebGL2, assertWebGL2Context, log} from '@luma.gl/gltools';
|
|
3
|
-
import
|
|
4
|
-
import Buffer from './buffer';
|
|
5
|
-
import {isObjectEmpty} from '../utils
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
import WebGLResource, {ResourceProps} from './webgl-resource';
|
|
4
|
+
import Buffer from './webgl-buffer';
|
|
5
|
+
import {isObjectEmpty} from '../utils';
|
|
6
|
+
|
|
7
|
+
export type TransformFeedbackProps = ResourceProps & {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default class TransformFeedback extends WebGLResource<TransformFeedbackProps> {
|
|
12
|
+
buffers = {};
|
|
13
|
+
unused = {};
|
|
14
|
+
configuration = null;
|
|
15
|
+
// NOTE: The `bindOnUse` flag is a major workaround:
|
|
16
|
+
// See https://github.com/KhronosGroup/WebGL/issues/2346
|
|
17
|
+
bindOnUse = true;
|
|
18
|
+
|
|
19
|
+
static isSupported(gl: WebGLRenderingContext): boolean {
|
|
12
20
|
return isWebGL2(gl);
|
|
13
21
|
}
|
|
14
22
|
|
|
15
|
-
constructor(gl, props = {}) {
|
|
23
|
+
constructor(gl: WebGLRenderingContext, props: TransformFeedbackProps = {}) {
|
|
24
|
+
super(gl, props, {} as any);
|
|
16
25
|
assertWebGL2Context(gl);
|
|
17
|
-
super(gl, props);
|
|
18
26
|
|
|
19
27
|
this.initialize(props);
|
|
20
28
|
this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);
|
|
21
29
|
Object.seal(this);
|
|
22
30
|
}
|
|
23
31
|
|
|
24
|
-
initialize(props
|
|
32
|
+
initialize(props?: TransformFeedbackProps): this {
|
|
25
33
|
this.buffers = {};
|
|
26
34
|
this.unused = {};
|
|
27
35
|
this.configuration = null;
|
|
@@ -36,7 +44,7 @@ export default class TransformFeedback extends Resource {
|
|
|
36
44
|
return this;
|
|
37
45
|
}
|
|
38
46
|
|
|
39
|
-
setProps(props) {
|
|
47
|
+
setProps(props: TransformFeedbackProps) {
|
|
40
48
|
if ('program' in props) {
|
|
41
49
|
this.configuration = props.program && props.program.configuration;
|
|
42
50
|
}
|
|
@@ -151,7 +159,7 @@ export default class TransformFeedback extends Resource {
|
|
|
151
159
|
}
|
|
152
160
|
}
|
|
153
161
|
|
|
154
|
-
_bindBuffer(index, buffer, byteOffset = 0, byteSize) {
|
|
162
|
+
_bindBuffer(index, buffer, byteOffset = 0, byteSize?) {
|
|
155
163
|
const handle = buffer && buffer.handle;
|
|
156
164
|
if (!handle || byteSize === undefined) {
|
|
157
165
|
// @ts-ignore
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
|
|
3
|
-
/* eslint-disable camelcase */
|
|
4
3
|
import {decomposeCompositeGLType} from '../webgl-utils/attribute-utils';
|
|
5
|
-
import {assert} from '../utils
|
|
4
|
+
import {assert} from '../utils';
|
|
6
5
|
|
|
7
6
|
const ERR_ARGUMENT = 'UniformBufferLayout illegal argument';
|
|
8
7
|
|
|
@@ -11,8 +10,10 @@ const GL_FLOAT = 0x1406;
|
|
|
11
10
|
const GL_INT = 0x1404;
|
|
12
11
|
const GL_UNSIGNED_INT = 0x1405;
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Std140 layout for uniforms
|
|
15
|
+
*/
|
|
16
|
+
export default class UniformBufferLayout {
|
|
16
17
|
constructor(layout) {
|
|
17
18
|
this.layout = {};
|
|
18
19
|
this.size = 0;
|
|
@@ -34,7 +35,7 @@ export default class UniformBufferLayout {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
// Get number of bytes needed for buffer allocation
|
|
37
|
-
getBytes() {
|
|
38
|
+
getBytes(): number {
|
|
38
39
|
return this.size * 4;
|
|
39
40
|
}
|
|
40
41
|
|
|
@@ -44,7 +45,10 @@ export default class UniformBufferLayout {
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
// Get offset and data for one object (for bufferSubData)
|
|
47
|
-
getSubData(index) {
|
|
48
|
+
getSubData(index): {
|
|
49
|
+
data: any;
|
|
50
|
+
offset: any;
|
|
51
|
+
} {
|
|
48
52
|
let data;
|
|
49
53
|
let offset;
|
|
50
54
|
if (index === undefined) {
|