@luma.gl/webgl 9.0.0-beta.4 → 9.0.0-beta.6

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 (288) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +297 -155
  3. package/dist/adapter/converters/sampler-parameters.d.ts +0 -4
  4. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  5. package/dist/adapter/converters/sampler-parameters.js +73 -67
  6. package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
  7. package/dist/adapter/converters/shader-formats.js +53 -46
  8. package/dist/adapter/converters/texture-formats.d.ts +13 -19
  9. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  10. package/dist/adapter/converters/texture-formats.js +474 -879
  11. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  12. package/dist/adapter/converters/vertex-formats.js +53 -61
  13. package/dist/adapter/device-helpers/device-features.d.ts +2 -5
  14. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  15. package/dist/adapter/device-helpers/device-features.js +56 -87
  16. package/dist/adapter/device-helpers/device-limits.d.ts +2 -4
  17. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  18. package/dist/adapter/device-helpers/device-limits.js +88 -83
  19. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  20. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  21. package/dist/adapter/device-helpers/get-device-info.js +79 -63
  22. package/dist/adapter/device-helpers/webgl-device-features.d.ts +19 -0
  23. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/webgl-device-features.js +86 -0
  25. package/dist/adapter/device-helpers/webgl-device-info.d.ts +5 -0
  26. package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -0
  27. package/dist/adapter/device-helpers/webgl-device-info.js +90 -0
  28. package/dist/adapter/device-helpers/webgl-device-limits.d.ts +35 -0
  29. package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -0
  30. package/dist/adapter/device-helpers/webgl-device-limits.js +47 -0
  31. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -1
  32. package/dist/adapter/helpers/decode-webgl-types.js +88 -76
  33. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
  34. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  35. package/dist/adapter/helpers/get-shader-layout.js +261 -225
  36. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  37. package/dist/adapter/helpers/parse-shader-compiler-log.js +47 -37
  38. package/dist/adapter/helpers/set-uniform.d.ts +1 -1
  39. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  40. package/dist/adapter/helpers/set-uniform.js +68 -82
  41. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
  42. package/dist/adapter/helpers/webgl-topology-utils.js +78 -93
  43. package/dist/adapter/objects/constants-to-keys.d.ts +1 -1
  44. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  45. package/dist/adapter/objects/constants-to-keys.js +19 -12
  46. package/dist/adapter/objects/webgl-renderbuffer.d.ts +2 -2
  47. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  48. package/dist/adapter/objects/webgl-renderbuffer.js +86 -77
  49. package/dist/adapter/objects/webgl-resource.d.ts +3 -25
  50. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  51. package/dist/adapter/objects/webgl-resource.js +102 -146
  52. package/dist/adapter/resources/webgl-buffer.d.ts +3 -4
  53. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  54. package/dist/adapter/resources/webgl-buffer.js +161 -119
  55. package/dist/adapter/resources/webgl-command-buffer.d.ts +1 -1
  56. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  57. package/dist/adapter/resources/webgl-command-buffer.js +266 -168
  58. package/dist/adapter/resources/webgl-command-encoder.d.ts +8 -3
  59. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-command-encoder.js +33 -39
  61. package/dist/adapter/resources/webgl-external-texture.js +93 -1
  62. package/dist/adapter/resources/webgl-framebuffer.d.ts +8 -10
  63. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  64. package/dist/adapter/resources/webgl-framebuffer.js +167 -137
  65. package/dist/adapter/resources/webgl-query-set.d.ts +44 -0
  66. package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -0
  67. package/dist/adapter/resources/webgl-query-set.js +136 -0
  68. package/dist/adapter/resources/webgl-render-pass.d.ts +3 -1
  69. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  70. package/dist/adapter/resources/webgl-render-pass.js +124 -90
  71. package/dist/adapter/resources/webgl-render-pipeline.d.ts +15 -6
  72. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-render-pipeline.js +356 -221
  74. package/dist/adapter/resources/webgl-sampler.d.ts +1 -3
  75. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  76. package/dist/adapter/resources/webgl-sampler.js +43 -33
  77. package/dist/adapter/resources/webgl-shader.d.ts +12 -2
  78. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-shader.js +114 -47
  80. package/dist/adapter/resources/webgl-texture-view.d.ts +14 -0
  81. package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -0
  82. package/dist/adapter/resources/webgl-texture-view.js +18 -0
  83. package/dist/adapter/resources/webgl-texture.d.ts +6 -9
  84. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  85. package/dist/adapter/resources/webgl-texture.js +615 -695
  86. package/dist/adapter/resources/webgl-transform-feedback.d.ts +2 -2
  87. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-transform-feedback.js +141 -143
  89. package/dist/adapter/resources/webgl-vertex-array.d.ts +3 -3
  90. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
  91. package/dist/adapter/resources/webgl-vertex-array.js +229 -157
  92. package/dist/adapter/webgl-canvas-context.d.ts +2 -2
  93. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  94. package/dist/adapter/webgl-canvas-context.js +58 -36
  95. package/dist/adapter/webgl-device.d.ts +34 -40
  96. package/dist/adapter/webgl-device.d.ts.map +1 -1
  97. package/dist/adapter/webgl-device.js +418 -363
  98. package/dist/classic/accessor.d.ts.map +1 -1
  99. package/dist/classic/accessor.js +132 -101
  100. package/dist/classic/clear.d.ts +2 -2
  101. package/dist/classic/clear.d.ts.map +1 -1
  102. package/dist/classic/clear.js +73 -72
  103. package/dist/classic/copy-and-blit.d.ts +1 -1
  104. package/dist/classic/copy-and-blit.d.ts.map +1 -1
  105. package/dist/classic/copy-and-blit.js +175 -175
  106. package/dist/classic/format-utils.d.ts +2 -2
  107. package/dist/classic/format-utils.d.ts.map +1 -1
  108. package/dist/classic/format-utils.js +39 -32
  109. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  110. package/dist/classic/typed-array-utils.js +96 -81
  111. package/dist/context/context/context-data.d.ts +14 -0
  112. package/dist/context/context/context-data.d.ts.map +1 -0
  113. package/dist/context/context/context-data.js +33 -0
  114. package/dist/context/context/create-browser-context.d.ts +1 -6
  115. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  116. package/dist/context/context/create-browser-context.js +62 -49
  117. package/dist/context/debug/spector.d.ts.map +1 -1
  118. package/dist/context/debug/spector.js +55 -50
  119. package/dist/context/debug/webgl-developer-tools.d.ts +1 -2
  120. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  121. package/dist/context/debug/webgl-developer-tools.js +104 -77
  122. package/dist/context/helpers/create-browser-context.d.ts +35 -0
  123. package/dist/context/helpers/create-browser-context.d.ts.map +1 -0
  124. package/dist/context/helpers/create-browser-context.js +67 -0
  125. package/dist/context/{polyfill/context-data.d.ts → helpers/webgl-context-data.d.ts} +2 -2
  126. package/dist/context/helpers/webgl-context-data.d.ts.map +1 -0
  127. package/dist/context/helpers/webgl-context-data.js +21 -0
  128. package/dist/context/helpers/webgl-extensions.d.ts +4 -0
  129. package/dist/context/helpers/webgl-extensions.d.ts.map +1 -0
  130. package/dist/context/helpers/webgl-extensions.js +10 -0
  131. package/dist/context/parameters/unified-parameter-api.d.ts +3 -3
  132. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  133. package/dist/context/parameters/unified-parameter-api.js +94 -44
  134. package/dist/context/parameters/webgl-parameter-tables.d.ts +120 -99
  135. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  136. package/dist/context/parameters/webgl-parameter-tables.js +469 -404
  137. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  138. package/dist/context/state-tracker/deep-array-equal.js +19 -14
  139. package/dist/context/state-tracker/track-context-state.d.ts +4 -4
  140. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  141. package/dist/context/state-tracker/track-context-state.js +188 -123
  142. package/dist/context/state-tracker/with-parameters.d.ts +2 -2
  143. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  144. package/dist/context/state-tracker/with-parameters.js +43 -26
  145. package/dist/dist.dev.js +3135 -4142
  146. package/dist/index.cjs +1766 -2717
  147. package/dist/index.cjs.map +7 -0
  148. package/dist/index.d.ts +25 -28
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +16 -5
  151. package/dist/types.d.ts.map +1 -1
  152. package/dist/types.js +3 -1
  153. package/dist.min.js +9 -42
  154. package/package.json +11 -15
  155. package/src/adapter/converters/device-parameters.ts +105 -17
  156. package/src/adapter/converters/sampler-parameters.ts +12 -20
  157. package/src/adapter/converters/shader-formats.ts +47 -22
  158. package/src/adapter/converters/texture-formats.ts +138 -185
  159. package/src/adapter/converters/vertex-formats.ts +3 -3
  160. package/src/adapter/device-helpers/webgl-device-features.ts +101 -0
  161. package/src/adapter/device-helpers/{get-device-info.ts → webgl-device-info.ts} +30 -22
  162. package/src/adapter/device-helpers/webgl-device-limits.ts +53 -0
  163. package/src/adapter/helpers/decode-webgl-types.ts +13 -7
  164. package/src/adapter/helpers/get-shader-layout.ts +21 -31
  165. package/src/adapter/helpers/parse-shader-compiler-log.ts +10 -6
  166. package/src/adapter/helpers/set-uniform.ts +3 -4
  167. package/src/adapter/helpers/webgl-topology-utils.ts +10 -3
  168. package/src/adapter/objects/constants-to-keys.ts +3 -2
  169. package/src/adapter/objects/webgl-renderbuffer.ts +38 -16
  170. package/src/adapter/objects/webgl-resource.ts +7 -140
  171. package/src/adapter/resources/webgl-buffer.ts +10 -14
  172. package/src/adapter/resources/webgl-command-buffer.ts +24 -34
  173. package/src/adapter/resources/webgl-command-encoder.ts +14 -11
  174. package/src/adapter/resources/webgl-external-texture.ts +5 -5
  175. package/src/adapter/resources/webgl-framebuffer.ts +38 -34
  176. package/src/adapter/resources/webgl-query-set.ts +171 -0
  177. package/src/adapter/resources/webgl-render-pass.ts +24 -15
  178. package/src/adapter/resources/webgl-render-pipeline.ts +138 -70
  179. package/src/adapter/resources/webgl-sampler.ts +7 -10
  180. package/src/adapter/resources/webgl-shader.ts +65 -11
  181. package/src/adapter/resources/webgl-texture-view.ts +28 -0
  182. package/src/adapter/resources/webgl-texture.ts +38 -105
  183. package/src/adapter/resources/webgl-transform-feedback.ts +16 -22
  184. package/src/adapter/resources/webgl-vertex-array.ts +20 -21
  185. package/src/adapter/webgl-canvas-context.ts +7 -11
  186. package/src/adapter/webgl-device.ts +106 -151
  187. package/src/classic/accessor.ts +5 -4
  188. package/src/classic/clear.ts +25 -20
  189. package/src/classic/copy-and-blit.ts +12 -6
  190. package/src/classic/format-utils.ts +2 -1
  191. package/src/classic/typed-array-utils.ts +3 -7
  192. package/src/context/debug/spector.ts +9 -6
  193. package/src/context/debug/webgl-developer-tools.ts +31 -20
  194. package/src/context/{context → helpers}/create-browser-context.ts +9 -33
  195. package/src/context/{polyfill/context-data.ts → helpers/webgl-context-data.ts} +3 -2
  196. package/src/context/helpers/webgl-extensions.ts +17 -0
  197. package/src/context/parameters/unified-parameter-api.ts +5 -4
  198. package/src/context/parameters/webgl-parameter-tables.ts +118 -90
  199. package/src/context/state-tracker/deep-array-equal.ts +2 -1
  200. package/src/context/state-tracker/track-context-state.ts +29 -23
  201. package/src/context/state-tracker/with-parameters.ts +7 -2
  202. package/src/index.ts +4 -18
  203. package/src/types.ts +2 -1
  204. package/dist/adapter/converters/device-parameters.js.map +0 -1
  205. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  206. package/dist/adapter/converters/shader-formats.js.map +0 -1
  207. package/dist/adapter/converters/texture-formats.js.map +0 -1
  208. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  209. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  210. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  211. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  212. package/dist/adapter/device-helpers/is-old-ie.d.ts +0 -2
  213. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +0 -1
  214. package/dist/adapter/device-helpers/is-old-ie.js +0 -9
  215. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  216. package/dist/adapter/helpers/decode-webgl-types.js.map +0 -1
  217. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  218. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  219. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  220. package/dist/adapter/helpers/webgl-topology-utils.js.map +0 -1
  221. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  222. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  223. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  224. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  225. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  226. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  227. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  228. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  229. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  230. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  231. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  232. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  233. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  234. package/dist/adapter/resources/webgl-transform-feedback.js.map +0 -1
  235. package/dist/adapter/resources/webgl-vertex-array.js.map +0 -1
  236. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  237. package/dist/adapter/webgl-device.js.map +0 -1
  238. package/dist/classic/accessor.js.map +0 -1
  239. package/dist/classic/clear.js.map +0 -1
  240. package/dist/classic/copy-and-blit.js.map +0 -1
  241. package/dist/classic/format-utils.js.map +0 -1
  242. package/dist/classic/typed-array-utils.js.map +0 -1
  243. package/dist/context/context/create-browser-context.js.map +0 -1
  244. package/dist/context/context/create-headless-context.d.ts +0 -9
  245. package/dist/context/context/create-headless-context.d.ts.map +0 -1
  246. package/dist/context/context/create-headless-context.js +0 -42
  247. package/dist/context/context/create-headless-context.js.map +0 -1
  248. package/dist/context/context/webgl-checks.d.ts +0 -13
  249. package/dist/context/context/webgl-checks.d.ts.map +0 -1
  250. package/dist/context/context/webgl-checks.js +0 -31
  251. package/dist/context/context/webgl-checks.js.map +0 -1
  252. package/dist/context/debug/spector.js.map +0 -1
  253. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  254. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  255. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  256. package/dist/context/polyfill/context-data.d.ts.map +0 -1
  257. package/dist/context/polyfill/context-data.js +0 -12
  258. package/dist/context/polyfill/context-data.js.map +0 -1
  259. package/dist/context/polyfill/get-parameter-polyfill.d.ts +0 -2
  260. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +0 -1
  261. package/dist/context/polyfill/get-parameter-polyfill.js +0 -85
  262. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  263. package/dist/context/polyfill/polyfill-context.d.ts +0 -5
  264. package/dist/context/polyfill/polyfill-context.d.ts.map +0 -1
  265. package/dist/context/polyfill/polyfill-context.js +0 -87
  266. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  267. package/dist/context/polyfill/polyfill-table.d.ts +0 -48
  268. package/dist/context/polyfill/polyfill-table.d.ts.map +0 -1
  269. package/dist/context/polyfill/polyfill-table.js +0 -137
  270. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  271. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +0 -2
  272. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +0 -1
  273. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -265
  274. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  275. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  276. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  277. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  278. package/dist/index.js.map +0 -1
  279. package/dist/types.js.map +0 -1
  280. package/src/adapter/device-helpers/device-features.ts +0 -161
  281. package/src/adapter/device-helpers/device-limits.ts +0 -155
  282. package/src/adapter/device-helpers/is-old-ie.ts +0 -14
  283. package/src/context/context/create-headless-context.ts +0 -51
  284. package/src/context/context/webgl-checks.ts +0 -51
  285. package/src/context/polyfill/get-parameter-polyfill.ts +0 -122
  286. package/src/context/polyfill/polyfill-context.ts +0 -104
  287. package/src/context/polyfill/polyfill-table.ts +0 -167
  288. package/src/context/polyfill/polyfill-vertex-array-object.ts +0 -365
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/vertex-formats.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAEvD,KAAK,UAAU,GACX,EAAE,CAAC,aAAa,GAChB,EAAE,CAAC,IAAI,GACP,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,KAAK,GACR,EAAE,CAAC,YAAY,GACf,EAAE,CAAC,GAAG,GACN,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,KAAK,CAAC;AAGb,0CAA0C;AAC1C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAa/F;AAED,sCAAsC;AACtC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,UAAQ,GAAG,UAAU,CAepF;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,GAElB,EAAE,CAAC,aAAa,GAChB,EAAE,CAAC,IAAI,GACP,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,KAAK,GACR,EAAE,CAAC,YAAY,GACf,EAAE,CAAC,GAAG,GACN,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,KAAK,CAqBX"}
1
+ {"version":3,"file":"vertex-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/vertex-formats.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAEvD,KAAK,UAAU,GACX,EAAE,CAAC,aAAa,GAChB,EAAE,CAAC,IAAI,GACP,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,KAAK,GACR,EAAE,CAAC,YAAY,GACf,EAAE,CAAC,GAAG,GACN,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,KAAK,CAAC;AAEb,0CAA0C;AAC1C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAa/F;AAED,sCAAsC;AACtC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,UAAQ,GAAG,UAAU,CAepF;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,GAElB,EAAE,CAAC,aAAa,GAChB,EAAE,CAAC,IAAI,GACP,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,KAAK,GACR,EAAE,CAAC,YAAY,GACf,EAAE,CAAC,GAAG,GACN,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,KAAK,CAqBX"}
@@ -1,66 +1,58 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { GL } from '@luma.gl/constants';
5
+ /** Get vertex format from GL constants */
1
6
  export function getVertexFormatFromGL(type, components) {
2
- const base = getVertexTypeFromGL(type);
3
- switch (components) {
4
- case 1:
5
- return base;
6
- case 2:
7
- return `${base}x2`;
8
- case 3:
9
- return `${base}x3`;
10
- case 4:
11
- return `${base}x4`;
12
- }
13
- throw new Error(String(components));
7
+ const base = getVertexTypeFromGL(type);
8
+ // prettier-ignore
9
+ switch (components) {
10
+ // @ts-expect-error TODO deal with lack of formats
11
+ case 1: return base;
12
+ case 2: return `${base}x2`;
13
+ // @ts-expect-error TODO deal with lack of formats
14
+ case 3: return `${base}x3`;
15
+ case 4: return `${base}x4`;
16
+ }
17
+ // @ts-ignore unreachable
18
+ throw new Error(String(components));
14
19
  }
15
- export function getVertexTypeFromGL(type) {
16
- let normalized = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
17
- switch (type) {
18
- case 5124:
19
- return normalized ? 'sint32' : 'sint32';
20
- case 5125:
21
- return normalized ? 'uint32' : 'uint32';
22
- case 5122:
23
- return normalized ? 'sint16' : 'unorm16';
24
- case 5123:
25
- return normalized ? 'uint16' : 'unorm16';
26
- case 5120:
27
- return normalized ? 'sint8' : 'snorm16';
28
- case 5121:
29
- return normalized ? 'uint8' : 'unorm8';
30
- case 5126:
31
- return 'float32';
32
- case 5131:
33
- return 'float16';
34
- }
35
- throw new Error(String(type));
20
+ /** Get data type from GL constants */
21
+ export function getVertexTypeFromGL(type, normalized = false) {
22
+ // prettier-ignore
23
+ switch (type) {
24
+ // WebGPU does not support normalized 32 bit integer attributes
25
+ case GL.INT: return normalized ? 'sint32' : 'sint32';
26
+ case GL.UNSIGNED_INT: return normalized ? 'uint32' : 'uint32';
27
+ case GL.SHORT: return normalized ? 'sint16' : 'unorm16';
28
+ case GL.UNSIGNED_SHORT: return normalized ? 'uint16' : 'unorm16';
29
+ case GL.BYTE: return normalized ? 'sint8' : 'snorm16';
30
+ case GL.UNSIGNED_BYTE: return normalized ? 'uint8' : 'unorm8';
31
+ case GL.FLOAT: return 'float32';
32
+ case GL.HALF_FLOAT: return 'float16';
33
+ }
34
+ // @ts-ignore unreachable
35
+ throw new Error(String(type));
36
36
  }
37
37
  export function getGLFromVertexType(dataType) {
38
- switch (dataType) {
39
- case 'uint8':
40
- return 5121;
41
- case 'sint8':
42
- return 5120;
43
- case 'unorm8':
44
- return 5121;
45
- case 'snorm8':
46
- return 5120;
47
- case 'uint16':
48
- return 5123;
49
- case 'sint16':
50
- return 5122;
51
- case 'unorm16':
52
- return 5123;
53
- case 'snorm16':
54
- return 5122;
55
- case 'uint32':
56
- return 5125;
57
- case 'sint32':
58
- return 5124;
59
- case 'float16':
60
- return 5131;
61
- case 'float32':
62
- return 5126;
63
- }
64
- throw new Error(String(dataType));
38
+ // prettier-ignore
39
+ switch (dataType) {
40
+ case 'uint8': return GL.UNSIGNED_BYTE;
41
+ case 'sint8': return GL.BYTE;
42
+ case 'unorm8': return GL.UNSIGNED_BYTE;
43
+ case 'snorm8': return GL.BYTE;
44
+ case 'uint16': return GL.UNSIGNED_SHORT;
45
+ case 'sint16': return GL.SHORT;
46
+ case 'unorm16': return GL.UNSIGNED_SHORT;
47
+ case 'snorm16': return GL.SHORT;
48
+ case 'uint32': return GL.UNSIGNED_INT;
49
+ case 'sint32': return GL.INT;
50
+ // WebGPU does not support normalized 32 bit integer attributes
51
+ // case 'unorm32': return GL.UNSIGNED_INT;
52
+ // case 'snorm32': return GL.INT;
53
+ case 'float16': return GL.HALF_FLOAT;
54
+ case 'float32': return GL.FLOAT;
55
+ }
56
+ // @ts-ignore unreachable
57
+ throw new Error(String(dataType));
65
58
  }
66
- //# sourceMappingURL=vertex-formats.js.map
@@ -1,9 +1,6 @@
1
1
  import { DeviceFeature } from '@luma.gl/core';
2
2
  /** Get WebGPU style feature strings */
3
- export declare function getDeviceFeatures(gl: WebGLRenderingContext): Set<DeviceFeature>;
3
+ export declare function getDeviceFeatures(gl: WebGL2RenderingContext): Set<DeviceFeature>;
4
4
  /** Extract all WebGL features */
5
- export declare function getWebGLFeatures(gl: WebGLRenderingContext): Set<DeviceFeature>;
6
- export declare function canCompileGLSLExtension(gl: WebGLRenderingContext, extensionName: any, opts?: {
7
- behavior?: any;
8
- }): any;
5
+ export declare function getWebGLFeatures(gl: WebGL2RenderingContext): Set<DeviceFeature>;
9
6
  //# sourceMappingURL=device-features.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-features.d.ts","sourceRoot":"","sources":["../../../src/adapter/device-helpers/device-features.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAK5C,uCAAuC;AACvC,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,GAAG,GAAG,CAAC,aAAa,CAAC,CAiB/E;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,qBAAqB,GAAG,GAAG,CAAC,aAAa,CAAC,CAe9E;AAgDD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,qBAAqB,EAAE,aAAa,KAAA,EAAE,IAAI,GAAE;IAAC,QAAQ,CAAC,MAAA;CAAM,OAsBvG"}
1
+ {"version":3,"file":"device-features.d.ts","sourceRoot":"","sources":["../../../src/adapter/device-helpers/device-features.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAG5C,uCAAuC;AACvC,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,sBAAsB,GAAG,GAAG,CAAC,aAAa,CAAC,CAiBhF;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,GAAG,GAAG,CAAC,aAAa,CAAC,CAe/E"}
@@ -1,96 +1,65 @@
1
- import { isWebGL2 } from "../../context/context/webgl-checks.js";
2
- import { isOldIE } from "./is-old-ie.js";
3
- import { getTextureFeatures, _checkFloat32ColorAttachment } from "../converters/texture-formats.js";
1
+ // luma.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
3
+ import { getTextureFeatures } from '../converters/texture-formats';
4
+ /** Get WebGPU style feature strings */
4
5
  export function getDeviceFeatures(gl) {
5
- const features = getWebGLFeatures(gl);
6
- for (const textureFeature of getTextureFeatures(gl)) {
7
- features.add(textureFeature);
8
- }
9
- return features;
6
+ const features = getWebGLFeatures(gl);
7
+ // texture features
8
+ // features.add('texture-compression-bc');
9
+ for (const textureFeature of getTextureFeatures(gl)) {
10
+ features.add(textureFeature);
11
+ }
12
+ // TODO
13
+ // features.add('depth-clip-control'); // GPUPrimitiveState.clampDepth
14
+ // features.add('depth24unorm-stencil8'); // GPUTextureFormat 'depth24unorm-stencil8'.
15
+ // features.add('depth32float-stencil8'); // GPUTextureFormat 'depth32float-stencil8'.
16
+ // features.add('timestamp-query'); // GPUQueryType "timestamp-query"
17
+ // "indirect-first-instance"
18
+ return features;
10
19
  }
20
+ /** Extract all WebGL features */
11
21
  export function getWebGLFeatures(gl) {
12
- gl.getExtension('EXT_color_buffer_float');
13
- gl.getExtension('WEBGL_color_buffer_float');
14
- gl.getExtension('EXT_float_blend');
15
- const features = new Set();
16
- for (const feature of Object.keys(WEBGL_FEATURES)) {
17
- if (isFeatureSupported(gl, feature)) {
18
- features.add(feature);
22
+ // Enables EXT_float_blend first: https://developer.mozilla.org/en-US/docs/Web/API/EXT_float_blend
23
+ gl.getExtension('EXT_color_buffer_float');
24
+ gl.getExtension('WEBGL_color_buffer_float');
25
+ gl.getExtension('EXT_float_blend');
26
+ const features = new Set(WEBGL_ALWAYS_FEATURES);
27
+ for (const feature of Object.keys(WEBGL_FEATURES)) {
28
+ // @ts-expect-error
29
+ if (isFeatureSupported(gl, feature)) {
30
+ // @ts-expect-error
31
+ features.add(feature);
32
+ }
19
33
  }
20
- }
21
- return features;
34
+ return features;
22
35
  }
23
36
  function isFeatureSupported(gl, feature) {
24
- const featureInfo = WEBGL_FEATURES[feature];
25
- if (!featureInfo) {
26
- return false;
27
- }
28
- const [webgl1Feature, webgl2Feature] = featureInfo || [];
29
- const featureDefinition = isWebGL2(gl) ? webgl2Feature : webgl1Feature;
30
- if (typeof featureDefinition === 'boolean') {
31
- return featureDefinition;
32
- }
33
- switch (feature) {
34
- case 'texture-renderable-rgba32float-webgl':
35
- return isWebGL2(gl) ? Boolean(gl.getExtension(featureDefinition)) : _checkFloat32ColorAttachment(gl);
36
- case 'glsl-derivatives':
37
- return canCompileGLSLExtension(gl, featureDefinition);
38
- case 'glsl-frag-data':
39
- return canCompileGLSLExtension(gl, featureDefinition, {
40
- behavior: 'require'
41
- });
42
- case 'glsl-frag-depth':
43
- return canCompileGLSLExtension(gl, featureDefinition);
44
- default:
45
- return Boolean(gl.getExtension(featureDefinition));
46
- }
47
- }
48
- const compiledGLSLExtensions = {};
49
- export function canCompileGLSLExtension(gl, extensionName) {
50
- let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
51
- if (!isOldIE(opts)) {
52
- return true;
53
- }
54
- if (extensionName in compiledGLSLExtensions) {
55
- return compiledGLSLExtensions[extensionName];
56
- }
57
- const behavior = opts.behavior || 'enable';
58
- const source = `#extension GL_${extensionName} : ${behavior}\nvoid main(void) {}`;
59
- const shader = gl.createShader(35633);
60
- if (!shader) {
61
- throw new Error('shader');
62
- }
63
- gl.shaderSource(shader, source);
64
- gl.compileShader(shader);
65
- const canCompile = gl.getShaderParameter(shader, 35713);
66
- gl.deleteShader(shader);
67
- compiledGLSLExtensions[extensionName] = canCompile;
68
- return canCompile;
37
+ const featureInfo = WEBGL_FEATURES[feature];
38
+ if (!featureInfo) {
39
+ return false;
40
+ }
41
+ // Get extension name from table
42
+ const featureDefinition = featureInfo;
43
+ // Check if the value is dependent on checking one or more extensions
44
+ if (typeof featureDefinition === 'boolean') {
45
+ return featureDefinition;
46
+ }
47
+ return Boolean(gl.getExtension(featureDefinition));
69
48
  }
49
+ const WEBGL_ALWAYS_FEATURES = ['webgl', 'glsl', 'transform-feedback-webgl'];
50
+ /**
51
+ * Defines luma.gl "feature" names and semantics
52
+ * when value is 'string' it is the name of the extension that enables this feature
53
+ */
70
54
  const WEBGL_FEATURES = {
71
- 'webgl': [true, true],
72
- 'webgl2': [false, true],
73
- 'timer-query-webgl': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],
74
- 'transform-feedback-webgl2': [false, true],
75
- 'vertex-array-object-webgl1': ['OES_vertex_array_object', true],
76
- 'instanced-rendering-webgl1': ['ANGLE_instanced_arrays', true],
77
- 'multiple-render-targets-webgl1': ['WEBGL_draw_buffers', true],
78
- 'index-uint32-webgl1': ['OES_element_index_uint', true],
79
- 'blend-minmax-webgl1': ['EXT_blend_minmax', true],
80
- 'texture-blend-float-webgl1': ['EXT_float_blend', 'EXT_float_blend'],
81
- 'texture-formats-srgb-webgl1': ['EXT_sRGB', true],
82
- 'texture-formats-depth-webgl1': ['WEBGL_depth_texture', true],
83
- 'texture-formats-float32-webgl1': ['OES_texture_float', true],
84
- 'texture-formats-float16-webgl1': ['OES_texture_half_float', true],
85
- 'texture-filter-linear-float32-webgl': ['OES_texture_float_linear', 'OES_texture_float_linear'],
86
- 'texture-filter-linear-float16-webgl': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],
87
- 'texture-filter-anisotropic-webgl': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],
88
- 'texture-renderable-rgba32float-webgl': ['WEBGL_color_buffer_float', 'EXT_color_buffer_float'],
89
- 'texture-renderable-float32-webgl': [false, 'EXT_color_buffer_float'],
90
- 'texture-renderable-float16-webgl': ['EXT_color_buffer_half_float', 'EXT_color_buffer_half_float'],
91
- 'glsl-frag-data': ['WEBGL_draw_buffers', true],
92
- 'glsl-frag-depth': ['EXT_frag_depth', true],
93
- 'glsl-derivatives': ['OES_standard_derivatives', true],
94
- 'glsl-texture-lod': ['EXT_shader_texture_lod', true]
55
+ 'timer-query-webgl': 'EXT_disjoint_timer_query_webgl2',
56
+ 'transform-feedback-webgl': true,
57
+ // WEBGL1 SUPPORT
58
+ 'texture-blend-float-webgl': 'EXT_float_blend',
59
+ 'float32-filterable-linear-webgl': 'OES_texture_float_linear',
60
+ 'float16-filterable-linear-webgl': 'OES_texture_half_float_linear',
61
+ 'texture-filterable-anisotropic-webgl': 'EXT_texture_filter_anisotropic',
62
+ // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS
63
+ 'float32-renderable-webgl': 'EXT_color_buffer_float',
64
+ 'float16-renderable-webgl': 'EXT_color_buffer_half_float',
95
65
  };
96
- //# sourceMappingURL=device-features.js.map
@@ -1,7 +1,7 @@
1
1
  import type { DeviceLimits } from '@luma.gl/core';
2
2
  import { GL } from '@luma.gl/constants';
3
3
  /** Populate a WebGPU style device limits */
4
- export declare function getDeviceLimits(gl: WebGLRenderingContext): DeviceLimits;
4
+ export declare function getDeviceLimits(gl: WebGL2RenderingContext): DeviceLimits;
5
5
  /** WebGL context limits */
6
6
  export type WebGLLimits = {
7
7
  [GL.ALIASED_LINE_WIDTH_RANGE]: [number, number];
@@ -20,7 +20,6 @@ export type WebGLLimits = {
20
20
  [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: number;
21
21
  [GL.MAX_3D_TEXTURE_SIZE]: number;
22
22
  [GL.MAX_ARRAY_TEXTURE_LAYERS]: number;
23
- [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: number;
24
23
  [GL.MAX_COLOR_ATTACHMENTS]: number;
25
24
  [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: number;
26
25
  [GL.MAX_COMBINED_UNIFORM_BLOCKS]: number;
@@ -33,7 +32,6 @@ export type WebGLLimits = {
33
32
  [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: number;
34
33
  [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: number;
35
34
  [GL.MAX_SAMPLES]: number;
36
- [GL.MAX_SERVER_WAIT_TIMEOUT]: number;
37
35
  [GL.MAX_TEXTURE_LOD_BIAS]: number;
38
36
  [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: number;
39
37
  [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: number;
@@ -48,5 +46,5 @@ export type WebGLLimits = {
48
46
  [GL.MAX_PROGRAM_TEXEL_OFFSET]: number;
49
47
  [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: number;
50
48
  };
51
- export declare function getWebGLLimits(gl: WebGLRenderingContext): WebGLLimits;
49
+ export declare function getWebGLLimits(gl: WebGL2RenderingContext): WebGLLimits;
52
50
  //# sourceMappingURL=device-limits.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-limits.d.ts","sourceRoot":"","sources":["../../../src/adapter/device-helpers/device-limits.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAGtC,4CAA4C;AAC5C,wBAAgB,eAAe,CAAC,EAAE,EAAE,qBAAqB,GAAG,YAAY,CA8BvE;AAED,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,EAAE,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACvC,CAAC,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACrC,CAAC,EAAE,CAAC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC9C,CAAC,EAAE,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAC5C,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACnC,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAChC,CAAC,EAAE,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,EAAE,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAC1C,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGzC,CAAC,EAAE,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAG5C,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,EAAE,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IACtC,CAAC,EAAE,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAC3C,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACnC,CAAC,EAAE,CAAC,wCAAwC,CAAC,EAAE,MAAM,CAAC;IACtD,CAAC,EAAE,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACzC,CAAC,EAAE,CAAC,sCAAsC,CAAC,EAAE,MAAM,CAAC;IACpD,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC/B,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAClC,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACnC,CAAC,EAAE,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAC3C,CAAC,EAAE,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACzC,CAAC,EAAE,CAAC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAC7C,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACrC,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAClC,CAAC,EAAE,CAAC,6CAA6C,CAAC,EAAE,MAAM,CAAC;IAC3D,CAAC,EAAE,CAAC,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACrD,CAAC,EAAE,CAAC,0CAA0C,CAAC,EAAE,MAAM,CAAC;IACxD,CAAC,EAAE,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACpC,CAAC,EAAE,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACzC,CAAC,EAAE,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACpC,CAAC,EAAE,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAC1C,CAAC,EAAE,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACvC,CAAC,EAAE,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAC3C,CAAC,EAAE,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IACtC,CAAC,EAAE,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IACtC,CAAC,EAAE,CAAC,+BAA+B,CAAC,EAAE,MAAM,CAAC;CAC9C,CAAC;AAGF,wBAAgB,cAAc,CAAC,EAAE,EAAE,qBAAqB,GAAG,WAAW,CA8DrE"}
1
+ {"version":3,"file":"device-limits.d.ts","sourceRoot":"","sources":["../../../src/adapter/device-helpers/device-limits.ts"],"names":[],"mappings":"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"}
@@ -1,87 +1,92 @@
1
- import { getWebGL2Context } from "../../context/context/webgl-checks.js";
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 */
2
5
  export function getDeviceLimits(gl) {
3
- const gl2 = getWebGL2Context(gl);
4
- return {
5
- maxTextureDimension1D: 0,
6
- maxTextureDimension2D: gl.getParameter(3379),
7
- maxTextureDimension3D: gl2 ? gl2.getParameter(32883) : 0,
8
- maxTextureArrayLayers: gl2 ? gl2.getParameter(35071) : 0,
9
- maxBindGroups: 1,
10
- maxDynamicUniformBuffersPerPipelineLayout: 0,
11
- maxDynamicStorageBuffersPerPipelineLayout: 0,
12
- maxSampledTexturesPerShaderStage: gl.getParameter(35660),
13
- maxSamplersPerShaderStage: gl.getParameter(35661),
14
- maxStorageBuffersPerShaderStage: 0,
15
- maxStorageTexturesPerShaderStage: 0,
16
- maxUniformBuffersPerShaderStage: gl2 ? gl2.getParameter(35375) : 0,
17
- maxUniformBufferBindingSize: gl2 ? gl2.getParameter(35376) : 0,
18
- maxStorageBufferBindingSize: 0,
19
- minUniformBufferOffsetAlignment: gl2 ? gl2.getParameter(35380) : 0,
20
- minStorageBufferOffsetAlignment: 0,
21
- maxVertexBuffers: 0,
22
- maxVertexAttributes: gl.getParameter(34921),
23
- maxVertexBufferArrayStride: 2048,
24
- maxInterStageShaderComponents: gl2 ? gl2.getParameter(35659) : 0,
25
- maxComputeWorkgroupStorageSize: 0,
26
- maxComputeInvocationsPerWorkgroup: 0,
27
- maxComputeWorkgroupSizeX: 0,
28
- maxComputeWorkgroupSizeY: 0,
29
- maxComputeWorkgroupSizeZ: 0,
30
- maxComputeWorkgroupsPerDimension: 0
31
- };
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
+ };
32
34
  }
33
35
  export function getWebGLLimits(gl) {
34
- const gl2 = getWebGL2Context(gl);
35
- function get(pname) {
36
- return gl.getParameter(pname);
37
- }
38
- function get2(pname, defaultValue) {
39
- return gl2 ? gl2.getParameter(pname) : defaultValue || 0;
40
- }
41
- return {
42
- [33902]: get(33902),
43
- [33901]: get(33901),
44
- [3379]: get(3379),
45
- [34076]: get(34076),
46
- [34930]: get(34930),
47
- [35661]: get(35661),
48
- [35660]: get(35660),
49
- [34024]: get(34024),
50
- [36348]: get(36348),
51
- [34921]: get(34921),
52
- [36347]: get(36347),
53
- [36349]: get(36349),
54
- [3386]: get(3386),
55
- [34047]: get(34047),
56
- [32883]: get2(32883),
57
- [35071]: get2(35071),
58
- [37447]: get2(37447),
59
- [36063]: get2(36063),
60
- [35379]: get2(35379),
61
- [35374]: get2(35374),
62
- [35377]: get2(35377),
63
- [34852]: get2(34852),
64
- [36203]: get2(36203),
65
- [33001]: get2(33001),
66
- [33000]: get2(33000),
67
- [37157]: get2(37157),
68
- [35373]: get2(35373),
69
- [35657]: get2(35657),
70
- [36183]: get2(36183),
71
- [37137]: get2(37137),
72
- [34045]: get2(34045),
73
- [35978]: get2(35978),
74
- [35979]: get2(35979),
75
- [35968]: get2(35968),
76
- [35376]: get2(35376),
77
- [35375]: get2(35375),
78
- [35659]: get2(35659),
79
- [37154]: get2(37154),
80
- [35371]: get2(35371),
81
- [35658]: get2(35658),
82
- [35076]: get2(35076),
83
- [35077]: get2(35077),
84
- [35380]: get2(35380)
85
- };
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
+ };
86
92
  }
87
- //# sourceMappingURL=device-limits.js.map
@@ -1,4 +1,4 @@
1
1
  import { DeviceInfo } from '@luma.gl/core';
2
2
  /** @returns strings identifying the GPU vendor and driver. */
3
- export declare function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo;
3
+ export declare function getDeviceInfo(gl: WebGL2RenderingContext): DeviceInfo;
4
4
  //# sourceMappingURL=get-device-info.d.ts.map
@@ -1 +1 @@
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;AAIzC,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,EAAE,EAAE,qBAAqB,GAAG,UAAU,CAuCnE"}
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"}