@luma.gl/webgl 9.0.0-beta.5 → 9.0.0-beta.7

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.
Files changed (192) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +128 -71
  3. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/sampler-parameters.js +20 -19
  5. package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
  6. package/dist/adapter/converters/shader-formats.js +40 -20
  7. package/dist/adapter/converters/texture-formats.d.ts +16 -11
  8. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  9. package/dist/adapter/converters/texture-formats.js +224 -205
  10. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  11. package/dist/adapter/converters/vertex-formats.js +22 -21
  12. package/dist/adapter/device-helpers/webgl-device-features.d.ts +19 -5
  13. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  14. package/dist/adapter/device-helpers/webgl-device-features.js +89 -43
  15. package/dist/adapter/device-helpers/webgl-device-info.d.ts +2 -1
  16. package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -1
  17. package/dist/adapter/device-helpers/webgl-device-info.js +22 -19
  18. package/dist/adapter/device-helpers/webgl-device-limits.d.ts +33 -48
  19. package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -1
  20. package/dist/adapter/device-helpers/webgl-device-limits.js +42 -87
  21. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -1
  22. package/dist/adapter/helpers/decode-webgl-types.js +47 -46
  23. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  24. package/dist/adapter/helpers/get-shader-layout.js +35 -34
  25. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  26. package/dist/adapter/helpers/parse-shader-compiler-log.js +3 -2
  27. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  28. package/dist/adapter/helpers/set-uniform.js +42 -41
  29. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
  30. package/dist/adapter/helpers/webgl-topology-utils.js +40 -39
  31. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  32. package/dist/adapter/objects/constants-to-keys.js +2 -1
  33. package/dist/adapter/objects/webgl-renderbuffer.d.ts +2 -2
  34. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  35. package/dist/adapter/objects/webgl-renderbuffer.js +30 -17
  36. package/dist/adapter/objects/webgl-resource.d.ts +2 -24
  37. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  38. package/dist/adapter/objects/webgl-resource.js +6 -101
  39. package/dist/adapter/resources/webgl-buffer.d.ts +1 -1
  40. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  41. package/dist/adapter/resources/webgl-buffer.js +16 -15
  42. package/dist/adapter/resources/webgl-command-buffer.d.ts +1 -1
  43. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  44. package/dist/adapter/resources/webgl-command-buffer.js +32 -31
  45. package/dist/adapter/resources/webgl-command-encoder.d.ts +8 -3
  46. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  47. package/dist/adapter/resources/webgl-command-encoder.js +4 -2
  48. package/dist/adapter/resources/webgl-external-texture.js +6 -5
  49. package/dist/adapter/resources/webgl-framebuffer.d.ts +6 -10
  50. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgl-framebuffer.js +60 -53
  52. package/dist/adapter/resources/webgl-query-set.d.ts +44 -0
  53. package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -0
  54. package/dist/adapter/resources/webgl-query-set.js +136 -0
  55. package/dist/adapter/resources/webgl-render-pass.d.ts +3 -1
  56. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  57. package/dist/adapter/resources/webgl-render-pass.js +20 -12
  58. package/dist/adapter/resources/webgl-render-pipeline.d.ts +4 -5
  59. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-render-pipeline.js +52 -61
  61. package/dist/adapter/resources/webgl-sampler.d.ts +1 -1
  62. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-sampler.js +5 -4
  64. package/dist/adapter/resources/webgl-shader.d.ts +3 -2
  65. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-shader.js +15 -9
  67. package/dist/adapter/resources/webgl-texture-view.d.ts +14 -0
  68. package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -0
  69. package/dist/adapter/resources/webgl-texture-view.js +18 -0
  70. package/dist/adapter/resources/webgl-texture.d.ts +6 -4
  71. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-texture.js +39 -32
  73. package/dist/adapter/resources/webgl-transform-feedback.d.ts +1 -1
  74. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-transform-feedback.js +10 -10
  76. package/dist/adapter/resources/webgl-vertex-array.d.ts +3 -3
  77. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-vertex-array.js +10 -9
  79. package/dist/adapter/webgl-canvas-context.d.ts +2 -2
  80. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  81. package/dist/adapter/webgl-canvas-context.js +3 -2
  82. package/dist/adapter/webgl-device.d.ts +35 -30
  83. package/dist/adapter/webgl-device.d.ts.map +1 -1
  84. package/dist/adapter/webgl-device.js +110 -109
  85. package/dist/classic/accessor.d.ts.map +1 -1
  86. package/dist/classic/accessor.js +8 -7
  87. package/dist/classic/clear.d.ts.map +1 -1
  88. package/dist/classic/clear.js +5 -4
  89. package/dist/classic/copy-and-blit.d.ts +1 -1
  90. package/dist/classic/copy-and-blit.d.ts.map +1 -1
  91. package/dist/classic/copy-and-blit.js +19 -19
  92. package/dist/classic/format-utils.d.ts.map +1 -1
  93. package/dist/classic/format-utils.js +16 -15
  94. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  95. package/dist/classic/typed-array-utils.js +20 -19
  96. package/dist/context/debug/spector.d.ts.map +1 -1
  97. package/dist/context/debug/spector.js +2 -1
  98. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  99. package/dist/context/debug/webgl-developer-tools.js +7 -6
  100. package/dist/context/{context → helpers}/create-browser-context.d.ts.map +1 -1
  101. package/dist/context/{context → helpers}/create-browser-context.js +2 -1
  102. package/dist/context/{context/context-data.d.ts → helpers/webgl-context-data.d.ts} +2 -3
  103. package/dist/context/helpers/webgl-context-data.d.ts.map +1 -0
  104. package/dist/context/helpers/webgl-context-data.js +21 -0
  105. package/dist/context/helpers/webgl-extensions.d.ts +4 -0
  106. package/dist/context/helpers/webgl-extensions.d.ts.map +1 -0
  107. package/dist/context/helpers/webgl-extensions.js +10 -0
  108. package/dist/context/parameters/unified-parameter-api.d.ts +3 -4
  109. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  110. package/dist/context/parameters/unified-parameter-api.js +7 -11
  111. package/dist/context/parameters/webgl-parameter-tables.d.ts +12 -13
  112. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  113. package/dist/context/parameters/webgl-parameter-tables.js +302 -295
  114. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  115. package/dist/context/state-tracker/deep-array-equal.js +2 -1
  116. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  117. package/dist/context/state-tracker/track-context-state.js +5 -4
  118. package/dist/context/state-tracker/with-parameters.d.ts +2 -3
  119. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  120. package/dist/context/state-tracker/with-parameters.js +6 -8
  121. package/dist/dist.dev.js +1635 -1387
  122. package/dist/index.cjs +1766 -1534
  123. package/dist/index.cjs.map +4 -4
  124. package/dist/index.d.ts +25 -25
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +24 -23
  127. package/dist/types.d.ts.map +1 -1
  128. package/dist/types.js +2 -1
  129. package/dist.min.js +6 -6
  130. package/package.json +4 -4
  131. package/src/adapter/converters/device-parameters.ts +114 -27
  132. package/src/adapter/converters/sampler-parameters.ts +12 -3
  133. package/src/adapter/converters/shader-formats.ts +47 -22
  134. package/src/adapter/converters/texture-formats.ts +138 -114
  135. package/src/adapter/converters/vertex-formats.ts +3 -3
  136. package/src/adapter/device-helpers/webgl-device-features.ts +102 -50
  137. package/src/adapter/device-helpers/webgl-device-info.ts +28 -19
  138. package/src/adapter/device-helpers/webgl-device-limits.ts +46 -150
  139. package/src/adapter/helpers/decode-webgl-types.ts +13 -7
  140. package/src/adapter/helpers/get-shader-layout.ts +4 -3
  141. package/src/adapter/helpers/parse-shader-compiler-log.ts +10 -6
  142. package/src/adapter/helpers/set-uniform.ts +2 -1
  143. package/src/adapter/helpers/webgl-topology-utils.ts +10 -3
  144. package/src/adapter/objects/constants-to-keys.ts +2 -1
  145. package/src/adapter/objects/webgl-renderbuffer.ts +36 -14
  146. package/src/adapter/objects/webgl-resource.ts +7 -125
  147. package/src/adapter/resources/webgl-buffer.ts +4 -3
  148. package/src/adapter/resources/webgl-command-buffer.ts +5 -5
  149. package/src/adapter/resources/webgl-command-encoder.ts +14 -11
  150. package/src/adapter/resources/webgl-external-texture.ts +6 -5
  151. package/src/adapter/resources/webgl-framebuffer.ts +61 -53
  152. package/src/adapter/resources/webgl-query-set.ts +171 -0
  153. package/src/adapter/resources/webgl-render-pass.ts +20 -11
  154. package/src/adapter/resources/webgl-render-pipeline.ts +54 -54
  155. package/src/adapter/resources/webgl-sampler.ts +2 -1
  156. package/src/adapter/resources/webgl-shader.ts +12 -5
  157. package/src/adapter/resources/webgl-texture-view.ts +28 -0
  158. package/src/adapter/resources/webgl-texture.ts +14 -3
  159. package/src/adapter/resources/webgl-transform-feedback.ts +2 -7
  160. package/src/adapter/resources/webgl-vertex-array.ts +4 -3
  161. package/src/adapter/webgl-canvas-context.ts +6 -4
  162. package/src/adapter/webgl-device.ts +116 -107
  163. package/src/classic/accessor.ts +5 -4
  164. package/src/classic/clear.ts +14 -8
  165. package/src/classic/copy-and-blit.ts +11 -4
  166. package/src/classic/format-utils.ts +2 -1
  167. package/src/classic/typed-array-utils.ts +3 -7
  168. package/src/context/debug/spector.ts +9 -6
  169. package/src/context/debug/webgl-developer-tools.ts +27 -14
  170. package/src/context/{context → helpers}/create-browser-context.ts +3 -2
  171. package/src/context/helpers/webgl-context-data.ts +31 -0
  172. package/src/context/helpers/webgl-extensions.ts +17 -0
  173. package/src/context/parameters/unified-parameter-api.ts +6 -17
  174. package/src/context/parameters/webgl-parameter-tables.ts +69 -32
  175. package/src/context/state-tracker/deep-array-equal.ts +2 -1
  176. package/src/context/state-tracker/track-context-state.ts +11 -6
  177. package/src/context/state-tracker/with-parameters.ts +8 -8
  178. package/src/index.ts +7 -6
  179. package/src/types.ts +2 -1
  180. package/dist/adapter/device-helpers/device-features.d.ts +0 -6
  181. package/dist/adapter/device-helpers/device-features.d.ts.map +0 -1
  182. package/dist/adapter/device-helpers/device-features.js +0 -65
  183. package/dist/adapter/device-helpers/device-limits.d.ts +0 -50
  184. package/dist/adapter/device-helpers/device-limits.d.ts.map +0 -1
  185. package/dist/adapter/device-helpers/device-limits.js +0 -92
  186. package/dist/adapter/device-helpers/get-device-info.d.ts +0 -4
  187. package/dist/adapter/device-helpers/get-device-info.d.ts.map +0 -1
  188. package/dist/adapter/device-helpers/get-device-info.js +0 -87
  189. package/dist/context/context/context-data.d.ts.map +0 -1
  190. package/dist/context/context/context-data.js +0 -33
  191. package/src/context/context/context-data.ts +0 -44
  192. /package/dist/context/{context → helpers}/create-browser-context.d.ts +0 -0
@@ -1,50 +0,0 @@
1
- import type { DeviceLimits } from '@luma.gl/core';
2
- import { GL } from '@luma.gl/constants';
3
- /** Populate a WebGPU style device limits */
4
- export declare function getDeviceLimits(gl: WebGL2RenderingContext): DeviceLimits;
5
- /** WebGL context limits */
6
- export type WebGLLimits = {
7
- [GL.ALIASED_LINE_WIDTH_RANGE]: [number, number];
8
- [GL.ALIASED_POINT_SIZE_RANGE]: [number, number];
9
- [GL.MAX_TEXTURE_SIZE]: number;
10
- [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: number;
11
- [GL.MAX_TEXTURE_IMAGE_UNITS]: number;
12
- [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: number;
13
- [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: number;
14
- [GL.MAX_RENDERBUFFER_SIZE]: number;
15
- [GL.MAX_VARYING_VECTORS]: number;
16
- [GL.MAX_VERTEX_ATTRIBS]: number;
17
- [GL.MAX_VERTEX_UNIFORM_VECTORS]: number;
18
- [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: number;
19
- [GL.MAX_VIEWPORT_DIMS]: [number, number];
20
- [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: number;
21
- [GL.MAX_3D_TEXTURE_SIZE]: number;
22
- [GL.MAX_ARRAY_TEXTURE_LAYERS]: number;
23
- [GL.MAX_COLOR_ATTACHMENTS]: number;
24
- [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: number;
25
- [GL.MAX_COMBINED_UNIFORM_BLOCKS]: number;
26
- [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: number;
27
- [GL.MAX_DRAW_BUFFERS]: number;
28
- [GL.MAX_ELEMENT_INDEX]: number;
29
- [GL.MAX_ELEMENTS_INDICES]: number;
30
- [GL.MAX_ELEMENTS_VERTICES]: number;
31
- [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: number;
32
- [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: number;
33
- [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: number;
34
- [GL.MAX_SAMPLES]: number;
35
- [GL.MAX_TEXTURE_LOD_BIAS]: number;
36
- [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: number;
37
- [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: number;
38
- [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: number;
39
- [GL.MAX_UNIFORM_BLOCK_SIZE]: number;
40
- [GL.MAX_UNIFORM_BUFFER_BINDINGS]: number;
41
- [GL.MAX_VARYING_COMPONENTS]: number;
42
- [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: number;
43
- [GL.MAX_VERTEX_UNIFORM_BLOCKS]: number;
44
- [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: number;
45
- [GL.MIN_PROGRAM_TEXEL_OFFSET]: number;
46
- [GL.MAX_PROGRAM_TEXEL_OFFSET]: number;
47
- [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: number;
48
- };
49
- export declare function getWebGLLimits(gl: WebGL2RenderingContext): WebGLLimits;
50
- //# sourceMappingURL=device-limits.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"device-limits.d.ts","sourceRoot":"","sources":["../../../src/adapter/device-helpers/device-limits.ts"],"names":[],"mappings":"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"}
@@ -1,92 +0,0 @@
1
- // luma.gl, MIT license
2
- // Copyright (c) vis.gl contributors
3
- import { GL } from '@luma.gl/constants';
4
- /** Populate a WebGPU style device limits */
5
- export function getDeviceLimits(gl) {
6
- return {
7
- maxTextureDimension1D: 0, // WebGL does not support 1D textures
8
- maxTextureDimension2D: gl.getParameter(GL.MAX_TEXTURE_SIZE),
9
- maxTextureDimension3D: gl.getParameter(GL.MAX_3D_TEXTURE_SIZE),
10
- maxTextureArrayLayers: gl.getParameter(GL.MAX_ARRAY_TEXTURE_LAYERS),
11
- maxBindGroups: 1, // TBD - if we emulate bind groups we could support any number...
12
- maxDynamicUniformBuffersPerPipelineLayout: 0, // TBD
13
- maxDynamicStorageBuffersPerPipelineLayout: 0, // TBD
14
- maxSampledTexturesPerShaderStage: gl.getParameter(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // TBD
15
- maxSamplersPerShaderStage: gl.getParameter(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS),
16
- maxStorageBuffersPerShaderStage: 0, // TBD
17
- maxStorageTexturesPerShaderStage: 0, // TBD
18
- maxUniformBuffersPerShaderStage: gl.getParameter(GL.MAX_UNIFORM_BUFFER_BINDINGS),
19
- maxUniformBufferBindingSize: gl.getParameter(GL.MAX_UNIFORM_BLOCK_SIZE),
20
- maxStorageBufferBindingSize: 0,
21
- minUniformBufferOffsetAlignment: gl.getParameter(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT),
22
- minStorageBufferOffsetAlignment: 0, // TBD
23
- maxVertexBuffers: 0,
24
- maxVertexAttributes: gl.getParameter(GL.MAX_VERTEX_ATTRIBS),
25
- maxVertexBufferArrayStride: 2048, // TBD, this is just the default value from WebGPU
26
- maxInterStageShaderComponents: gl.getParameter(GL.MAX_VARYING_COMPONENTS),
27
- maxComputeWorkgroupStorageSize: 0, // WebGL does not support compute shaders
28
- maxComputeInvocationsPerWorkgroup: 0, // WebGL does not support compute shaders
29
- maxComputeWorkgroupSizeX: 0, // WebGL does not support compute shaders
30
- maxComputeWorkgroupSizeY: 0, // WebGL does not support compute shaders
31
- maxComputeWorkgroupSizeZ: 0, // WebGL does not support compute shaders
32
- maxComputeWorkgroupsPerDimension: 0 // WebGL does not support compute shaders
33
- };
34
- }
35
- export function getWebGLLimits(gl) {
36
- function get(pname) {
37
- return gl.getParameter(pname);
38
- }
39
- function get2(pname, defaultValue) {
40
- return gl.getParameter(pname) || defaultValue;
41
- }
42
- // function getMaxAnistropy() {
43
- // const extension = gl.getExtension('EXT_texture_filter_anisotropic');
44
- // }
45
- return {
46
- [GL.ALIASED_LINE_WIDTH_RANGE]: get(GL.ALIASED_LINE_WIDTH_RANGE),
47
- [GL.ALIASED_POINT_SIZE_RANGE]: get(GL.ALIASED_POINT_SIZE_RANGE),
48
- [GL.MAX_TEXTURE_SIZE]: get(GL.MAX_TEXTURE_SIZE),
49
- [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: get(GL.MAX_CUBE_MAP_TEXTURE_SIZE), // GLint
50
- [GL.MAX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_TEXTURE_IMAGE_UNITS), // GLint
51
- [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: get(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS), // GLint
52
- [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // GLint
53
- [GL.MAX_RENDERBUFFER_SIZE]: get(GL.MAX_RENDERBUFFER_SIZE), // GLint
54
- [GL.MAX_VARYING_VECTORS]: get(GL.MAX_VARYING_VECTORS), // GLint
55
- [GL.MAX_VERTEX_ATTRIBS]: get(GL.MAX_VERTEX_ATTRIBS), // GLint
56
- [GL.MAX_VERTEX_UNIFORM_VECTORS]: get(GL.MAX_VERTEX_UNIFORM_VECTORS), // GLint
57
- [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: get(GL.MAX_FRAGMENT_UNIFORM_VECTORS), // GLint
58
- [GL.MAX_VIEWPORT_DIMS]: get(GL.MAX_VIEWPORT_DIMS),
59
- // Extensions
60
- [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: get(GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT), // getMaxAnistropy(),
61
- // WebGL2 Limits
62
- [GL.MAX_3D_TEXTURE_SIZE]: get2(GL.MAX_3D_TEXTURE_SIZE), // GLint
63
- [GL.MAX_ARRAY_TEXTURE_LAYERS]: get2(GL.MAX_ARRAY_TEXTURE_LAYERS), // GLint
64
- // [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: get2(GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL), // GLint64
65
- [GL.MAX_COLOR_ATTACHMENTS]: get2(GL.MAX_COLOR_ATTACHMENTS), // GLint
66
- [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS), // GLint64
67
- [GL.MAX_COMBINED_UNIFORM_BLOCKS]: get2(GL.MAX_COMBINED_UNIFORM_BLOCKS), // GLint
68
- [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS), // GLint64
69
- [GL.MAX_DRAW_BUFFERS]: get2(GL.MAX_DRAW_BUFFERS), // GLint
70
- [GL.MAX_ELEMENT_INDEX]: get2(GL.MAX_ELEMENT_INDEX), // GLint64
71
- [GL.MAX_ELEMENTS_INDICES]: get2(GL.MAX_ELEMENTS_INDICES), // GLint
72
- [GL.MAX_ELEMENTS_VERTICES]: get2(GL.MAX_ELEMENTS_VERTICES), // GLint
73
- [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: get2(GL.MAX_FRAGMENT_INPUT_COMPONENTS), // GLint
74
- [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: get2(GL.MAX_FRAGMENT_UNIFORM_BLOCKS), // GLint
75
- [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_FRAGMENT_UNIFORM_COMPONENTS), // GLint
76
- [GL.MAX_SAMPLES]: get2(GL.MAX_SAMPLES), // GLint
77
- // [GL.MAX_SERVER_WAIT_TIMEOUT]: get2(GL.MAX_SERVER_WAIT_TIMEOUT), // GLint64
78
- [GL.MAX_TEXTURE_LOD_BIAS]: get2(GL.MAX_TEXTURE_LOD_BIAS), // GLfloat
79
- [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS), // GLint
80
- [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS), // GLint
81
- [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS), // GLint
82
- [GL.MAX_UNIFORM_BLOCK_SIZE]: get2(GL.MAX_UNIFORM_BLOCK_SIZE), // GLint64
83
- [GL.MAX_UNIFORM_BUFFER_BINDINGS]: get2(GL.MAX_UNIFORM_BUFFER_BINDINGS), // GLint
84
- [GL.MAX_VARYING_COMPONENTS]: get2(GL.MAX_VARYING_COMPONENTS), // GLint
85
- [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: get2(GL.MAX_VERTEX_OUTPUT_COMPONENTS), // GLint
86
- [GL.MAX_VERTEX_UNIFORM_BLOCKS]: get2(GL.MAX_VERTEX_UNIFORM_BLOCKS), // GLint
87
- [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_VERTEX_UNIFORM_COMPONENTS), // GLint
88
- [GL.MIN_PROGRAM_TEXEL_OFFSET]: get2(GL.MIN_PROGRAM_TEXEL_OFFSET), // GLint
89
- [GL.MAX_PROGRAM_TEXEL_OFFSET]: get2(GL.MAX_PROGRAM_TEXEL_OFFSET), // GLint
90
- [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: get2(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) // GLint
91
- };
92
- }
@@ -1,4 +0,0 @@
1
- import { DeviceInfo } from '@luma.gl/core';
2
- /** @returns strings identifying the GPU vendor and driver. */
3
- export declare function getDeviceInfo(gl: WebGL2RenderingContext): DeviceInfo;
4
- //# sourceMappingURL=get-device-info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-device-info.d.ts","sourceRoot":"","sources":["../../../src/adapter/device-helpers/get-device-info.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAGzC,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,EAAE,EAAE,sBAAsB,GAAG,UAAU,CAuCpE"}
@@ -1,87 +0,0 @@
1
- // luma.gl, MIT license
2
- // Copyright (c) vis.gl contributors
3
- import { GL } from '@luma.gl/constants';
4
- /** @returns strings identifying the GPU vendor and driver. */
5
- export function getDeviceInfo(gl) {
6
- // "Masked" info is always available, but don't contain much useful information
7
- const vendorMasked = gl.getParameter(GL.VENDOR);
8
- const rendererMasked = gl.getParameter(GL.RENDERER);
9
- // If we are lucky, unmasked info is available
10
- // https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/
11
- const ext = gl.getExtension('WEBGL_debug_renderer_info');
12
- const vendorUnmasked = gl.getParameter(ext ? ext.UNMASKED_VENDOR_WEBGL : GL.VENDOR);
13
- const rendererUnmasked = gl.getParameter(ext ? ext.UNMASKED_RENDERER_WEBGL : GL.RENDERER);
14
- const vendor = vendorUnmasked || vendorMasked;
15
- const renderer = rendererUnmasked || rendererMasked;
16
- // Driver version
17
- const version = gl.getParameter(GL.VERSION);
18
- // "Sniff" the GPU type and backend from the info. This works best if unmasked info is available.
19
- const gpu = identifyGPUVendor(vendor, renderer);
20
- const gpuBackend = identifyGPUBackend(vendor, renderer);
21
- const gpuType = identifyGPUType(vendor, renderer);
22
- // Determine GLSL version
23
- // For now, skip parsing of the long version string, just use context type below to deduce version
24
- // const version = gl.getParameter(GL.SHADING_LANGUAGE_VERSION) as string;
25
- // const shadingLanguageVersion = parseGLSLVersion(version);
26
- const shadingLanguage = 'glsl';
27
- const shadingLanguageVersion = 300;
28
- return {
29
- type: 'webgl',
30
- gpu,
31
- gpuType,
32
- gpuBackend,
33
- vendor,
34
- renderer,
35
- version,
36
- shadingLanguage,
37
- shadingLanguageVersion
38
- };
39
- }
40
- /** "Sniff" the GPU type from the info. This works best if unmasked info is available. */
41
- function identifyGPUVendor(vendor, renderer) {
42
- if ((/NVIDIA/i.exec(vendor)) || (/NVIDIA/i.exec(renderer))) {
43
- return 'nvidia';
44
- }
45
- if ((/INTEL/i.exec(vendor)) || (/INTEL/i.exec(renderer))) {
46
- return 'intel';
47
- }
48
- if ((/Apple/i.exec(vendor)) || (/Apple/i.exec(renderer))) {
49
- return 'apple';
50
- }
51
- if ((/AMD/i.exec(vendor)) ||
52
- (/AMD/i.exec(renderer)) ||
53
- (/ATI/i.exec(vendor)) ||
54
- (/ATI/i.exec(renderer))) {
55
- return 'amd';
56
- }
57
- if ((/SwiftShader/i.exec(vendor)) || (/SwiftShader/i.exec(renderer))) {
58
- return 'software';
59
- }
60
- return 'unknown';
61
- }
62
- /** "Sniff" the GPU backend from the info. This works best if unmasked info is available. */
63
- function identifyGPUBackend(vendor, renderer) {
64
- if ((/Metal/i.exec(vendor)) || (/Metal/i.exec(renderer))) {
65
- return 'metal';
66
- }
67
- if ((/ANGLE/i.exec(vendor)) || (/ANGLE/i.exec(renderer))) {
68
- return 'opengl';
69
- }
70
- return 'unknown';
71
- }
72
- function identifyGPUType(vendor, renderer) {
73
- if ((/SwiftShader/i.exec(vendor)) || (/SwiftShader/i.exec(renderer))) {
74
- return 'cpu';
75
- }
76
- const gpuVendor = identifyGPUVendor(vendor, renderer);
77
- switch (gpuVendor) {
78
- case 'intel':
79
- return 'integrated';
80
- case 'software':
81
- return 'cpu';
82
- case 'unknown':
83
- return 'unknown';
84
- default:
85
- return 'discrete';
86
- }
87
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-data.d.ts","sourceRoot":"","sources":["../../../src/context/context/context-data.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,sBAAsB,GAAG,gBAAgB,CAc3E;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,CAYrE"}
@@ -1,33 +0,0 @@
1
- // luma.gl, MIT license
2
- // Copyright (c) vis.gl contributors
3
- /**
4
- * Gets luma.gl specific state from a context
5
- * @returns context state
6
- */
7
- export function getContextData(gl) {
8
- // @ts-expect-error
9
- const luma = gl.luma;
10
- if (!luma) {
11
- const contextState = {
12
- _polyfilled: false,
13
- _extensions: {}
14
- };
15
- // @ts-expect-error
16
- gl.luma = contextState;
17
- }
18
- // @ts-expect-error
19
- return gl.luma;
20
- }
21
- export function initializeExtensions(gl) {
22
- const contextState = getContextData(gl);
23
- // `getSupportedExtensions` can return null when context is lost.
24
- const EXTENSIONS = gl.getSupportedExtensions() || [];
25
- // Generates warnings in Chrome
26
- const IGNORE_EXTENSIONS = ['WEBGL_polygon_mode'];
27
- for (const extensionName of EXTENSIONS) {
28
- if (!IGNORE_EXTENSIONS.includes(extensionName)) {
29
- const extension = gl.getExtension(extensionName);
30
- contextState._extensions[extensionName] = extension;
31
- }
32
- }
33
- }
@@ -1,44 +0,0 @@
1
- // luma.gl, MIT license
2
- // Copyright (c) vis.gl contributors
3
-
4
- /**
5
- * Stores luma.gl specific state associated with a context
6
- */
7
- export interface WebGLContextData {
8
- _polyfilled: boolean;
9
- _extensions: Record<string, any>;
10
- }
11
-
12
- /**
13
- * Gets luma.gl specific state from a context
14
- * @returns context state
15
- */
16
- export function getContextData(gl: WebGL2RenderingContext): WebGLContextData {
17
- // @ts-expect-error
18
- const luma = gl.luma as WebGLContextData | null;
19
- if (!luma) {
20
- const contextState: WebGLContextData = {
21
- _polyfilled: false,
22
- _extensions: {}
23
- };
24
- // @ts-expect-error
25
- gl.luma = contextState;
26
- }
27
-
28
- // @ts-expect-error
29
- return gl.luma;
30
- }
31
-
32
- export function initializeExtensions(gl: WebGL2RenderingContext): void {
33
- const contextState = getContextData(gl);
34
- // `getSupportedExtensions` can return null when context is lost.
35
- const EXTENSIONS = gl.getSupportedExtensions() || [];
36
- // Generates warnings in Chrome
37
- const IGNORE_EXTENSIONS = ['WEBGL_polygon_mode'];
38
- for (const extensionName of EXTENSIONS) {
39
- if (!IGNORE_EXTENSIONS.includes(extensionName)) {
40
- const extension = gl.getExtension(extensionName);
41
- contextState._extensions[extensionName] = extension;
42
- }
43
- }
44
- }