@luma.gl/webgl 9.0.0-alpha.16 → 9.0.0-alpha.19

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 (417) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +117 -200
  3. package/dist/adapter/converters/device-parameters.js.map +1 -0
  4. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  5. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  6. package/dist/adapter/converters/renderbuffer-formats.js +172 -62
  7. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  8. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  9. package/dist/adapter/converters/sampler-parameters.js +151 -149
  10. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  11. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  12. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  13. package/dist/adapter/converters/texture-formats.js +847 -438
  14. package/dist/adapter/converters/texture-formats.js.map +1 -0
  15. package/dist/adapter/converters/vertex-formats.js +24 -15
  16. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  17. package/dist/adapter/device-helpers/device-features.js +84 -120
  18. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  19. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  20. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  21. package/dist/adapter/device-helpers/device-limits.js +83 -88
  22. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  23. package/dist/adapter/device-helpers/get-device-info.js +37 -42
  24. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  25. package/dist/adapter/device-helpers/is-old-ie.js +8 -10
  26. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  27. package/dist/adapter/helpers/attribute-utils.js +57 -50
  28. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  29. package/dist/adapter/helpers/get-shader-info.d.ts +1 -1
  30. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -1
  31. package/dist/adapter/helpers/get-shader-info.js +19 -21
  32. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  33. package/dist/adapter/helpers/get-shader-layout.js +251 -310
  34. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  35. package/dist/adapter/helpers/parse-shader-compiler-log.js +26 -32
  36. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  37. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  38. package/dist/adapter/helpers/set-uniform.js +80 -67
  39. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  40. package/dist/adapter/helpers/uniforms.js +75 -80
  41. package/dist/adapter/helpers/uniforms.js.map +1 -0
  42. package/dist/adapter/objects/constants-to-keys.js +26 -33
  43. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  44. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  45. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  46. package/dist/adapter/objects/webgl-renderbuffer.js +70 -67
  47. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  48. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  49. package/dist/adapter/objects/webgl-resource.js +158 -213
  50. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  51. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  52. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  53. package/dist/adapter/objects/webgl-vertex-array-object.js +66 -74
  54. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  55. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  56. package/dist/adapter/resources/webgl-buffer.js +118 -150
  57. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  58. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  59. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-command-buffer.js +41 -40
  61. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  62. package/dist/adapter/resources/webgl-command-encoder.js +37 -26
  63. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  64. package/dist/adapter/resources/webgl-external-texture.js +1 -91
  65. package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
  66. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  67. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  68. package/dist/adapter/resources/webgl-framebuffer.js +198 -231
  69. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  70. package/dist/adapter/resources/webgl-render-pass.js +11 -8
  71. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  72. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-render-pipeline.js +289 -316
  74. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  75. package/dist/adapter/resources/webgl-sampler.js +35 -42
  76. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  77. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-shader.js +53 -57
  79. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  80. package/dist/adapter/resources/webgl-texture.d.ts +4 -4
  81. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-texture.js +697 -661
  83. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  84. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  85. package/dist/adapter/webgl-canvas-context.js +35 -55
  86. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  87. package/dist/adapter/webgl-device.d.ts +5 -0
  88. package/dist/adapter/webgl-device.d.ts.map +1 -1
  89. package/dist/adapter/webgl-device.js +270 -287
  90. package/dist/adapter/webgl-device.js.map +1 -0
  91. package/dist/classic/accessor.js +103 -120
  92. package/dist/classic/accessor.js.map +1 -0
  93. package/dist/classic/buffer.d.ts +1 -1
  94. package/dist/classic/buffer.d.ts.map +1 -1
  95. package/dist/classic/buffer.js +300 -325
  96. package/dist/classic/buffer.js.map +1 -0
  97. package/dist/classic/typed-array-utils.d.ts +1 -1
  98. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  99. package/dist/classic/typed-array-utils.js +81 -91
  100. package/dist/classic/typed-array-utils.js.map +1 -0
  101. package/dist/context/context/create-browser-context.d.ts +3 -1
  102. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  103. package/dist/context/context/create-browser-context.js +49 -66
  104. package/dist/context/context/create-browser-context.js.map +1 -0
  105. package/dist/context/context/create-headless-context.d.ts +1 -1
  106. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  107. package/dist/context/context/create-headless-context.js +30 -24
  108. package/dist/context/context/create-headless-context.js.map +1 -0
  109. package/dist/context/context/webgl-checks.js +17 -25
  110. package/dist/context/context/webgl-checks.js.map +1 -0
  111. package/dist/context/debug/spector.d.ts +3 -1
  112. package/dist/context/debug/spector.d.ts.map +1 -1
  113. package/dist/context/debug/spector.js +50 -53
  114. package/dist/context/debug/spector.js.map +1 -0
  115. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  116. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  117. package/dist/context/debug/webgl-developer-tools.js +76 -107
  118. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  119. package/dist/context/parameters/unified-parameter-api.js +46 -93
  120. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  121. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  122. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  123. package/dist/context/parameters/webgl-parameter-tables.js +404 -462
  124. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  125. package/dist/context/polyfill/context-data.js +10 -16
  126. package/dist/context/polyfill/context-data.js.map +1 -0
  127. package/dist/context/polyfill/get-parameter-polyfill.js +71 -91
  128. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  129. package/dist/context/polyfill/polyfill-context.js +73 -75
  130. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  131. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  132. package/dist/context/polyfill/polyfill-table.js +116 -133
  133. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  134. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  135. package/dist/context/polyfill/polyfill-vertex-array-object.js +227 -255
  136. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  137. package/dist/context/state-tracker/deep-array-equal.js +14 -16
  138. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  139. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  140. package/dist/context/state-tracker/track-context-state.js +127 -183
  141. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  142. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  143. package/dist/context/state-tracker/with-parameters.js +29 -43
  144. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  145. package/dist/dist.dev.js +9205 -0
  146. package/dist/index.cjs +5948 -0
  147. package/dist/index.d.ts +0 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +25 -41
  150. package/dist/index.js.map +1 -0
  151. package/dist/types/webgl.d.ts +16 -16
  152. package/dist/types/webgl.d.ts.map +1 -1
  153. package/dist/types/webgl.js +1 -0
  154. package/dist/types/webgl.js.map +1 -0
  155. package/dist/types.d.ts +1 -1
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +1 -0
  158. package/dist/types.js.map +1 -0
  159. package/dist.min.js +36 -0
  160. package/package.json +18 -9
  161. package/src/adapter/converters/device-parameters.ts +5 -2
  162. package/src/adapter/converters/sampler-parameters.ts +4 -2
  163. package/src/adapter/converters/texture-formats.ts +3 -1
  164. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  165. package/src/adapter/helpers/get-shader-info.ts +1 -1
  166. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  167. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  168. package/src/adapter/helpers/set-uniform.ts +2 -0
  169. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  170. package/src/adapter/objects/webgl-resource.ts +1 -1
  171. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  172. package/src/adapter/resources/webgl-buffer.ts +6 -6
  173. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  174. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  175. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  176. package/src/adapter/resources/webgl-shader.ts +1 -1
  177. package/src/adapter/resources/webgl-texture.ts +8 -9
  178. package/src/adapter/webgl-canvas-context.ts +2 -2
  179. package/src/adapter/webgl-device.ts +12 -2
  180. package/src/classic/accessor.ts +1 -1
  181. package/src/classic/buffer.ts +3 -3
  182. package/src/classic/typed-array-utils.ts +1 -1
  183. package/src/context/context/create-browser-context.ts +4 -2
  184. package/src/context/context/create-headless-context.ts +2 -2
  185. package/src/context/debug/spector.ts +5 -4
  186. package/src/context/debug/webgl-developer-tools.ts +1 -0
  187. package/src/context/polyfill/polyfill-table.ts +1 -0
  188. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  189. package/src/context/state-tracker/track-context-state.ts +6 -5
  190. package/src/context/state-tracker/with-parameters.ts +1 -1
  191. package/src/index.ts +1 -5
  192. package/src/types/webgl.ts +2 -0
  193. package/dist/bundle.d.ts +0 -2
  194. package/dist/bundle.d.ts.map +0 -1
  195. package/dist/bundle.js +0 -4
  196. package/dist/dist.min.js +0 -1
  197. package/dist/es5/adapter/converters/device-parameters.js +0 -139
  198. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  199. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -151
  200. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  201. package/dist/es5/adapter/converters/sampler-parameters.js +0 -182
  202. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  203. package/dist/es5/adapter/converters/texture-formats.js +0 -950
  204. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  205. package/dist/es5/adapter/converters/vertex-formats.js +0 -36
  206. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  207. package/dist/es5/adapter/device-helpers/device-features.js +0 -121
  208. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  209. package/dist/es5/adapter/device-helpers/device-limits.js +0 -54
  210. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  211. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -49
  212. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  213. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -15
  214. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  215. package/dist/es5/adapter/helpers/attribute-utils.js +0 -69
  216. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  217. package/dist/es5/adapter/helpers/get-shader-info.js +0 -31
  218. package/dist/es5/adapter/helpers/get-shader-info.js.map +0 -1
  219. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -311
  220. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  221. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -54
  222. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  223. package/dist/es5/adapter/helpers/set-uniform.js +0 -92
  224. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  225. package/dist/es5/adapter/helpers/uniforms.js +0 -88
  226. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  227. package/dist/es5/adapter/objects/constants-to-keys.js +0 -43
  228. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  229. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -122
  230. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  231. package/dist/es5/adapter/objects/webgl-resource.js +0 -233
  232. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  233. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -109
  234. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  235. package/dist/es5/adapter/resources/webgl-buffer.js +0 -196
  236. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  237. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -70
  238. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  239. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -80
  240. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  241. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  242. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  243. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -275
  244. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  245. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -45
  246. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  247. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -385
  248. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  249. package/dist/es5/adapter/resources/webgl-sampler.js +0 -75
  250. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  251. package/dist/es5/adapter/resources/webgl-shader.js +0 -111
  252. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  253. package/dist/es5/adapter/resources/webgl-texture.js +0 -826
  254. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  255. package/dist/es5/adapter/webgl-canvas-context.js +0 -72
  256. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  257. package/dist/es5/adapter/webgl-device.js +0 -387
  258. package/dist/es5/adapter/webgl-device.js.map +0 -1
  259. package/dist/es5/bundle.js +0 -6
  260. package/dist/es5/bundle.js.map +0 -1
  261. package/dist/es5/classic/accessor.js +0 -151
  262. package/dist/es5/classic/accessor.js.map +0 -1
  263. package/dist/es5/classic/buffer.js +0 -398
  264. package/dist/es5/classic/buffer.js.map +0 -1
  265. package/dist/es5/classic/typed-array-utils.js +0 -99
  266. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  267. package/dist/es5/context/context/create-browser-context.js +0 -66
  268. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  269. package/dist/es5/context/context/create-headless-context.js +0 -47
  270. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  271. package/dist/es5/context/context/webgl-checks.js +0 -44
  272. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  273. package/dist/es5/context/debug/spector.js +0 -99
  274. package/dist/es5/context/debug/spector.js.map +0 -1
  275. package/dist/es5/context/debug/webgl-developer-tools.js +0 -146
  276. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  277. package/dist/es5/context/parameters/unified-parameter-api.js +0 -76
  278. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  279. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -346
  280. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  281. package/dist/es5/context/polyfill/context-data.js +0 -18
  282. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  283. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -69
  284. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  285. package/dist/es5/context/polyfill/polyfill-context.js +0 -109
  286. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  287. package/dist/es5/context/polyfill/polyfill-table.js +0 -143
  288. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  289. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -271
  290. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  291. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -23
  292. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  293. package/dist/es5/context/state-tracker/track-context-state.js +0 -167
  294. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  295. package/dist/es5/context/state-tracker/with-parameters.js +0 -40
  296. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  297. package/dist/es5/index.js +0 -249
  298. package/dist/es5/index.js.map +0 -1
  299. package/dist/es5/init.js +0 -7
  300. package/dist/es5/init.js.map +0 -1
  301. package/dist/es5/types/webgl.js +0 -5
  302. package/dist/es5/types/webgl.js.map +0 -1
  303. package/dist/es5/types.js +0 -2
  304. package/dist/es5/types.js.map +0 -1
  305. package/dist/esm/adapter/converters/device-parameters.js +0 -137
  306. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  307. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -181
  308. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  309. package/dist/esm/adapter/converters/sampler-parameters.js +0 -172
  310. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  311. package/dist/esm/adapter/converters/texture-formats.js +0 -901
  312. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  313. package/dist/esm/adapter/converters/vertex-formats.js +0 -29
  314. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  315. package/dist/esm/adapter/device-helpers/device-features.js +0 -95
  316. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  317. package/dist/esm/adapter/device-helpers/device-limits.js +0 -88
  318. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  319. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -42
  320. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  321. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -9
  322. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  323. package/dist/esm/adapter/helpers/attribute-utils.js +0 -64
  324. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/esm/adapter/helpers/get-shader-info.js +0 -25
  326. package/dist/esm/adapter/helpers/get-shader-info.js.map +0 -1
  327. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -282
  328. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  329. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -30
  330. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  331. package/dist/esm/adapter/helpers/set-uniform.js +0 -85
  332. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  333. package/dist/esm/adapter/helpers/uniforms.js +0 -89
  334. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  335. package/dist/esm/adapter/objects/constants-to-keys.js +0 -35
  336. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  337. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -78
  338. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  339. package/dist/esm/adapter/objects/webgl-resource.js +0 -163
  340. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  341. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -74
  342. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  343. package/dist/esm/adapter/resources/webgl-buffer.js +0 -134
  344. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  345. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -50
  346. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  347. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -41
  348. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  349. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  350. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  351. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -207
  352. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  353. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -14
  354. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  355. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -311
  356. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  357. package/dist/esm/adapter/resources/webgl-sampler.js +0 -42
  358. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  359. package/dist/esm/adapter/resources/webgl-shader.js +0 -62
  360. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  361. package/dist/esm/adapter/resources/webgl-texture.js +0 -714
  362. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  363. package/dist/esm/adapter/webgl-canvas-context.js +0 -41
  364. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  365. package/dist/esm/adapter/webgl-device.js +0 -276
  366. package/dist/esm/adapter/webgl-device.js.map +0 -1
  367. package/dist/esm/bundle.js +0 -4
  368. package/dist/esm/bundle.js.map +0 -1
  369. package/dist/esm/classic/accessor.js +0 -120
  370. package/dist/esm/classic/accessor.js.map +0 -1
  371. package/dist/esm/classic/buffer.js +0 -327
  372. package/dist/esm/classic/buffer.js.map +0 -1
  373. package/dist/esm/classic/typed-array-utils.js +0 -92
  374. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  375. package/dist/esm/context/context/create-browser-context.js +0 -53
  376. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  377. package/dist/esm/context/context/create-headless-context.js +0 -39
  378. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  379. package/dist/esm/context/context/webgl-checks.js +0 -31
  380. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  381. package/dist/esm/context/debug/spector.js +0 -64
  382. package/dist/esm/context/debug/spector.js.map +0 -1
  383. package/dist/esm/context/debug/webgl-developer-tools.js +0 -97
  384. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  385. package/dist/esm/context/parameters/unified-parameter-api.js +0 -55
  386. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  387. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -427
  388. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  389. package/dist/esm/context/polyfill/context-data.js +0 -12
  390. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  391. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -86
  392. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  393. package/dist/esm/context/polyfill/polyfill-context.js +0 -84
  394. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  395. package/dist/esm/context/polyfill/polyfill-table.js +0 -138
  396. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  397. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -265
  398. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  399. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -17
  400. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  401. package/dist/esm/context/state-tracker/track-context-state.js +0 -148
  402. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  403. package/dist/esm/context/state-tracker/with-parameters.js +0 -34
  404. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  405. package/dist/esm/index.js +0 -27
  406. package/dist/esm/index.js.map +0 -1
  407. package/dist/esm/init.js +0 -4
  408. package/dist/esm/init.js.map +0 -1
  409. package/dist/esm/types/webgl.js +0 -2
  410. package/dist/esm/types/webgl.js.map +0 -1
  411. package/dist/esm/types.js +0 -2
  412. package/dist/esm/types.js.map +0 -1
  413. package/dist/init.d.ts +0 -2
  414. package/dist/init.d.ts.map +0 -1
  415. package/dist/init.js +0 -3
  416. package/src/bundle.ts +0 -4
  417. package/src/init.ts +0 -4
@@ -1 +0,0 @@
1
- {"version":3,"file":"texture-formats.js","names":["_api","require","_constants","_interopRequireDefault","_webglChecks","_DATA_FORMAT_CHANNELS","_TYPE_SIZES","texture_compression_bc","texture_compression_astc","texture_compression_etc2","texture_compression_etc1_webgl","texture_compression_pvrtc_webgl","texture_compression_atc_webgl","X_S3TC","X_S3TC_SRGB","X_RGTC","X_BPTC","X_ETC2","X_ASTC","X_ETC1","X_PVRTC","X_ATC","EXT_SRGB","EXT_TEXTURE_NORM16","EXT_FLOAT_WEBGL1","EXT_FLOAT_RENDER_WEBGL2","checkExtension","gl","extension","getExtension","checkExtensions","extensions","every","TEXTURE_FEATURE_CHECKS","textureBlendFloatWebgl1","isWebGL2","textureFormatsSrgbWebgl1","textureFormatsDepthWebgl1","textureFormatsFloat32Webgl1","textureFormatsFloat16Webgl1","textureFormatsNorm16Webgl","textureFilterLinearFloat32Webgl","textureFilterLinearFloat16Webgl","textureFilterAnisotropicWebgl","textureRenderableFloat32Webgl","textureRenderableFloat16Webgl","textureCompressionBc","textureCompressionBc5Webgl","textureCompressionEtc2","textureCompressionAstc","textureCompressionEtc1Webgl","textureCompressionPvrtcWebgl","textureCompressionAtcWebgl","checkTextureFeature","feature","_TEXTURE_FEATURE_CHEC","call","checkTextureFeatures","features","getTextureFeatures","textureFeatures","Object","keys","filter","TEXTURE_FORMATS","GL","RGB","gl1","b","c","bpp","dataFormat","types","UNSIGNED_BYTE","UNSIGNED_SHORT_5_6_5","RGBA","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","R8","R8_SNORM","R8UI","R8I","RG8","RG8_SNORM","RG8UI","RG8I","R16UI","R16I","R16F","render","R16_EXT","f","R16_SNORM_EXT","RGBA4","wgpu","RGB565","RGB5_A1","RGB8","RGB8_SNORM","RGBA8","SRGB8_ALPHA8","SRGB_ALPHA_EXT","gl1ext","RGBA8_SNORM","RGBA8UI","RGBA8I","RG16UI","RG16I","RG16F","RG16_EXT","RG16_SNORM_EXT","R32UI","R32I","R32F","RGB9_E5","p","R11F_G11F_B10F","RGB10_A2","RGB10_A2UI","RGB16_EXT","RGB16_SNORM_EXT","RG32UI","RG32I","RG32F","RGBA16UI","RGBA16I","RGBA16F","RGBA16_EXT","RGBA16_SNORM_EXT","RGB32F","gl2ext","FLOAT","RGBA32UI","RGBA32I","RGBA32F","STENCIL_INDEX8","attachment","STENCIL_ATTACHMENT","DEPTH_COMPONENT16","DEPTH_ATTACHMENT","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","UNSIGNED_INT_24_8","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH24_STENCIL8","DEPTH32F_STENCIL8","COMPRESSED_RGB_S3TC_DXT1_EXT","x","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT","COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT","COMPRESSED_RGBA_BPTC_UNORM_EXT","COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_R11_EAC","COMPRESSED_SIGNED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_SIGNED_RG11_EAC","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR","COMPRESSED_RGBA_ASTC_5x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_12x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB_ATC_WEBGL","COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL","COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL","exports","getTextureFormat","format","entry","entries","find","_ref","_ref2","_slicedToArray2","default","Error","concat","isTextureFormatSupported","formatOrGL","info","undefined","Boolean","getTextureFormatSupport","supported","renderable","filterable","blendable","storable","isTextureFormatFilterable","decoded","decodeTextureFormat","signed","_unused","endsWith","isTextureFormatRenderable","getWebGLTextureFormat","formatInfo","webglFormat","getWebGLTextureParameters","getWebGLPixelDataFormat","integer","normalized","type","getWebGLDataType","dataType","compressed","getWebGLDepthStencilAttachment","_checkFloat32ColorAttachment","internalFormat","arguments","length","srcFormat","srcType","texture","framebuffer","createTexture","bindTexture","TEXTURE_2D","level","width","height","border","pixel","Uint8Array","texImage2D","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","status","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","deleteTexture","deleteFramebuffer","DATA_FORMAT_CHANNELS","_defineProperty2","RED","RED_INTEGER","RG","RG_INTEGER","RGB_INTEGER","RGBA_INTEGER","DEPTH_COMPONENT","ALPHA","LUMINANCE","LUMINANCE_ALPHA","TYPE_SIZES","UNSIGNED_INT","INT","UNSIGNED_SHORT","SHORT","HALF_FLOAT","BYTE","getTextureFormatBytesPerPixel","params","channels","channelSize"],"sources":["../../../../src/adapter/converters/texture-formats.ts"],"sourcesContent":["import type {TextureFormat, DeviceFeature} from '@luma.gl/api';\nimport {decodeTextureFormat} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\n// TEXTURE FEATURES\n\n// Define local device feature strings to optimize minification\nconst texture_compression_bc: DeviceFeature = 'texture-compression-bc';\nconst texture_compression_astc: DeviceFeature = 'texture-compression-astc';\nconst texture_compression_etc2: DeviceFeature = 'texture-compression-etc2';\nconst texture_compression_etc1_webgl: DeviceFeature = 'texture-compression-etc1-webgl';\nconst texture_compression_pvrtc_webgl: DeviceFeature = 'texture-compression-pvrtc-webgl';\nconst texture_compression_atc_webgl: DeviceFeature = 'texture-compression-atc-webgl';\n\n// Define local webgl extension strings to optimize minification\nconst X_S3TC = 'WEBGL_compressed_texture_s3tc'; // BC1, BC2, BC3\nconst X_S3TC_SRGB = 'WEBGL_compressed_texture_s3tc_srgb'; // BC1, BC2, BC3\nconst X_RGTC = 'EXT_texture_compression_rgtc'; // BC4, BC5\nconst X_BPTC = 'EXT_texture_compression_bptc'; // BC6, BC7\nconst X_ETC2 = 'WEBGL_compressed_texture_etc'; // Renamed from 'WEBGL_compressed_texture_es3'\nconst X_ASTC = 'WEBGL_compressed_texture_astc';\nconst X_ETC1 = 'WEBGL_compressed_texture_etc1';\nconst X_PVRTC = 'WEBGL_compressed_texture_pvrtc';\nconst X_ATC = 'WEBGL_compressed_texture_atc';\n\n// Define local webgl extension strings to optimize minification\nconst EXT_SRGB = 'EXT_sRGB'; // https://developer.mozilla.org/en-US/docs/Web/API/EXT_sRGB\nconst EXT_TEXTURE_NORM16 = 'EXT_texture_norm16';\nconst EXT_FLOAT_WEBGL1 = 'WEBGL_color_buffer_float';\nconst EXT_FLOAT_RENDER_WEBGL2 = 'EXT_color_buffer_float';\n// const EXT_HALF_FLOAT_WEBGL1 = 'EXT_color_buffer_half_float';\n// const DEPTH = 'WEBGL_depth_texture';\n\nconst checkExtension = (gl: WebGLRenderingContext, extension: string): boolean =>\n gl.getExtension(extension);\nconst checkExtensions = (gl: WebGLRenderingContext, extensions: string[]): boolean =>\n extensions.every((extension) => gl.getExtension(extension));\n\n// prettier-ignore\nconst TEXTURE_FEATURE_CHECKS: Partial<Record<DeviceFeature, (gl: WebGLRenderingContext) => boolean> > = {\n 'texture-blend-float-webgl1': (gl) => isWebGL2(gl) ? true : checkExtension(gl, 'EXT_float_blend'),\n 'texture-formats-srgb-webgl1': (gl) => (isWebGL2(gl) ? true : checkExtension(gl, EXT_SRGB)),\n 'texture-formats-depth-webgl1': (gl) => isWebGL2(gl) ? true : checkExtension(gl, 'WEBGL_depth_texture'),\n 'texture-formats-float32-webgl1': (gl) => isWebGL2(gl) ? true : checkExtension(gl, 'OES_texture_float'),\n 'texture-formats-float16-webgl1': (gl) => isWebGL2(gl) ? true : checkExtension(gl, 'OES_texture_half_float'),\n 'texture-formats-norm16-webgl': (gl) => isWebGL2(gl) ? checkExtension(gl, EXT_TEXTURE_NORM16) : false,\n 'texture-filter-linear-float32-webgl': (gl) => checkExtension(gl, 'OES_texture_float_linear'),\n 'texture-filter-linear-float16-webgl': (gl) => checkExtension(gl, 'OES_texture_half_float_linear'),\n 'texture-filter-anisotropic-webgl': (gl) => checkExtension(gl, 'EXT_texture_filter_anisotropic'),\n 'texture-renderable-float32-webgl': (gl) => checkExtension(gl, 'EXT_color_buffer_float'), // [false, 'EXT_color_buffer_float'],\n 'texture-renderable-float16-webgl': (gl) => checkExtension(gl, 'EXT_color_buffer_half_float'),\n\n 'texture-compression-bc': (gl) => checkExtensions(gl, [X_S3TC, X_S3TC_SRGB, X_RGTC, X_BPTC]),\n 'texture-compression-bc5-webgl': (gl) => checkExtensions(gl, [X_RGTC]),\n // 'texture-compression-bc7-webgl': gl => checkExtensions(gl, [X_BPTC]),\n // 'texture-compression-bc3-srgb-webgl': gl => checkExtensions(gl, [X_S3TC_SRGB]),\n // 'texture-compression-bc3-webgl': gl => checkExtensions(gl, [X_S3TC]),\n 'texture-compression-etc2': (gl) => checkExtensions(gl, [X_ETC2]),\n 'texture-compression-astc': (gl) => checkExtensions(gl, [X_ASTC]),\n 'texture-compression-etc1-webgl': (gl) => checkExtensions(gl, [X_ETC1]),\n 'texture-compression-pvrtc-webgl': (gl) => checkExtensions(gl, [X_PVRTC]),\n 'texture-compression-atc-webgl': (gl) => checkExtensions(gl, [X_ATC])\n};\n\nexport function checkTextureFeature(gl: WebGLRenderingContext, feature: DeviceFeature): boolean {\n return TEXTURE_FEATURE_CHECKS[feature]?.(gl) || false;\n}\n\nconst checkTextureFeatures = (gl: WebGLRenderingContext, features: DeviceFeature[]): boolean =>\n features.every((feature) => checkTextureFeature(gl, feature));\n\n/** Return a list of texture feature strings (for Device.features). Mainly compressed texture support */\nexport function getTextureFeatures(gl: WebGLRenderingContext): DeviceFeature[] {\n const textureFeatures = Object.keys(TEXTURE_FEATURE_CHECKS) as DeviceFeature[];\n return textureFeatures.filter((feature) => checkTextureFeature(gl, feature));\n}\n\n// TEXTURE FORMATS\n\n/** Map a format to webgl and constants */\ntype Format = {\n gl?: GL;\n /** If a different unsized format is needed in WebGL1 */\n gl1?: GL;\n gl1ext?: string;\n gl2ext?: string; // format requires WebGL2, when using a WebGL 1 context, color renderbuffer formats are limited\n\n b?: number; // (bytes per pixel), for memory usage calculations.\n /** channels */\n c?: number;\n bpp?: number;\n /** packed */\n p?: number;\n x?: string; // compressed\n f?: DeviceFeature; // for compressed texture formats\n render?: DeviceFeature; // renderable if extension is present\n filter?: DeviceFeature;\n\n wgpu?: false; // If not supported on WebGPU\n\n types?: number[];\n\n dataFormat?: GL;\n attachment?: GL.DEPTH_ATTACHMENT | GL.STENCIL_ATTACHMENT | GL.DEPTH_STENCIL_ATTACHMENT;\n};\n\n// TABLES\n\n/** Legal combinations for internalFormat, format and type *\n// [GL.DEPTH_COMPONENT]: {types: [GL.UNSIGNED_SHORT, GL.UNSIGNED_INT, GL.UNSIGNED_INT_24_8], gl1ext: DEPTH},\n// [GL.DEPTH_STENCIL]: {gl1ext: DEPTH},\n// Sized texture format\n// R\n[GL.R8]: {dataFormat: GL.RED, types: [GL.UNSIGNED_BYTE], gl2: true},\n[GL.R16F]: {dataFormat: GL.RED, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n[GL.R8UI]: {dataFormat: GL.RED_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n// // RG\n[GL.RG8]: {dataFormat: GL.RG, types: [GL.UNSIGNED_BYTE], gl2: true},\n[GL.RG16F]: {dataFormat: GL.RG, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n[GL.RG8UI]: {dataFormat: GL.RG_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n// // RGB\n[GL.RGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true},\n[GL.SRGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true, gl1ext: EXT_SRGB},\n[GL.RGB16F]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1ext: EXT_HALF_FLOAT_WEBGL1},\n[GL.RGB8UI]: {dataFormat: GL.RGB_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n// // RGBA\n\n[GL.RGB565]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5], gl2: true},\n[GL.R11F_G11F_B10F]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_INT_10F_11F_11F_REV, GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n[GL.RGB9_E5]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1ext: EXT_HALF_FLOAT_WEBGL1},\n[GL.RGBA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true},\n[GL.SRGB8_ALPHA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true, gl1ext: EXT_SRGB},\n[GL.RGB5_A1]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_5_5_1], gl2: true},\n[GL.RGBA4]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4], gl2: true},\n[GL.RGBA16F]: {dataFormat: GL.RGBA, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1ext: EXT_HALF_FLOAT_WEBGL1},\n[GL.RGBA8UI]: {dataFormat: GL.RGBA_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true}\n*/\n\n/** Texture format data */\n// prettier-ignore\nexport const TEXTURE_FORMATS: Record<TextureFormat, Format> = {\n // Unsized formats that leave the precision up to the driver.\n // TODO - Fix bpp constants\n // 'r8unorm-unsized': {gl: GL.LUMINANCE, b: 4, c: 2, bpp: 4},\n 'rgb8unorm-unsized': {gl: GL.RGB, gl1: GL.RGB, b: 4, c: 2, bpp: 4,\n dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5]},\n 'rgba8unorm-unsized': {gl: GL.RGBA, gl1: GL.RGBA, b: 4, c: 2, bpp: 4,\n dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4, GL.UNSIGNED_SHORT_5_5_5_1]},\n // 'rgb8unorm-srgb-unsized': {gl: GL.SRGB_EXT, b: 4, c: 2, bpp: 4, gl1Ext: SRGB},\n // 'rgba8unorm-srgb-unsized': {gl: GL.SRGB_ALPHA_EXT, b: 4, c: 2, bpp: 4, gl1Ext: SRGB},\n\n // 8-bit formats\n 'r8unorm': {gl: GL.R8, b: 1, c: 1},\n 'r8snorm': {gl: GL.R8_SNORM, b: 1, c: 1},\n 'r8uint': {gl: GL.R8UI, b: 1, c: 1},\n 'r8sint': {gl: GL.R8I, b: 1, c: 1},\n\n // 16-bit formats\n 'rg8unorm': {gl: GL.RG8, b: 2, c: 2},\n 'rg8snorm': {gl: GL.RG8_SNORM, b: 2, c: 2},\n 'rg8uint': {gl: GL.RG8UI, b: 2, c: 2},\n 'rg8sint': {gl: GL.RG8I, b: 2, c: 2},\n\n 'r16uint': {gl: GL.R16UI, b: 2, c: 1},\n 'r16sint': {gl: GL.R16I, b: 2, c: 1},\n 'r16float': {gl: GL.R16F, b: 2, c: 1, render: 'texture-renderable-float16-webgl', filter: 'texture-filter-linear-float16-webgl'},\n 'r16unorm-webgl': {gl: GL.R16_EXT, b:2, c:1, f: 'texture-formats-norm16-webgl'},\n 'r16snorm-webgl': {gl: GL.R16_SNORM_EXT, b:2, c:1, f: 'texture-formats-norm16-webgl'},\n\n // Packed 16-bit formats\n 'rgba4unorm-webgl': {gl: GL.RGBA4, b: 2, c: 4, wgpu: false},\n 'rgb565unorm-webgl': {gl: GL.RGB565, b: 2, c: 4, wgpu: false},\n 'rgb5a1unorm-webgl': {gl: GL.RGB5_A1, b: 2, c: 4, wgpu: false},\n\n // 24-bit formats\n 'rbg8unorm-webgl': {gl: GL.RGB8, b: 3, c: 3, wgpu: false},\n 'rbg8snorm-webgl': {gl: GL.RGB8_SNORM, b: 3, c: 3, wgpu: false},\n\n // 32-bit formats \n 'rgba8unorm': {gl: GL.RGBA8, gl1: GL.RGBA, b: 4, c: 2, bpp: 4},\n 'rgba8unorm-srgb': {gl: GL.SRGB8_ALPHA8, gl1: GL.SRGB_ALPHA_EXT, b: 4, c: 4, gl1ext: EXT_SRGB, bpp: 4},\n 'rgba8snorm': {gl: GL.RGBA8_SNORM, b: 4, c: 4},\n 'rgba8uint': {gl: GL.RGBA8UI, b: 4, c: 4, bpp: 4},\n 'rgba8sint': {gl: GL.RGBA8I, b: 4, c: 4, bpp: 4},\n // reverse colors, webgpu only\n 'bgra8unorm': {b: 4, c: 4},\n 'bgra8unorm-srgb': {b: 4, c: 4},\n\n 'rg16uint': {gl: GL.RG16UI, b: 4, c: 1, bpp: 4},\n 'rg16sint': {gl: GL.RG16I, b: 4, c: 2, bpp: 4},\n // When using a WebGL 2 context and the EXT_color_buffer_float WebGL2 extension\n 'rg16float': {gl: GL.RG16F, bpp: 4, b: 4, c: 2, render: 'texture-renderable-float16-webgl', filter: 'texture-filter-linear-float16-webgl'},\n 'rg16unorm-webgl': {gl: GL.RG16_EXT, b:2, c:2, f: 'texture-formats-norm16-webgl'},\n 'rg16snorm-webgl': {gl: GL.RG16_SNORM_EXT, b:2, c:2, f: 'texture-formats-norm16-webgl'},\n\n 'r32uint': {gl: GL.R32UI, b: 4, c: 1, bpp: 4},\n 'r32sint': {gl: GL.R32I, b: 4, c: 1, bpp: 4},\n 'r32float': {gl: GL.R32F, bpp: 4, b: 4, c: 1, render: 'texture-renderable-float32-webgl', filter: 'texture-filter-linear-float32-webgl'},\n\n // Packed 32-bit formats\n 'rgb9e5ufloat': {gl: GL.RGB9_E5, b: 4, c: 3, p: 1, render: 'texture-renderable-float16-webgl', filter: 'texture-filter-linear-float16-webgl'},\n 'rg11b10ufloat': {gl: GL.R11F_G11F_B10F, b: 4, c: 3, p: 1,render: 'texture-renderable-float32-webgl'},\n 'rgb10a2unorm': {gl: GL.RGB10_A2, b: 4, c: 4, p: 1},\n // webgl2 only\n 'rgb10a2unorm-webgl': {b: 4, c: 4, gl: GL.RGB10_A2UI, p: 1, wgpu: false, bpp: 4},\n\n // 48-bit formats\n 'rgb16unorm-webgl': {gl: GL.RGB16_EXT, b:2, c:3, f: 'texture-formats-norm16-webgl'},\n 'rgb16snorm-webgl': {gl: GL.RGB16_SNORM_EXT, b:2, c:3, f: 'texture-formats-norm16-webgl'},\n\n // 64-bit formats\n 'rg32uint': {gl: GL.RG32UI, b: 8, c: 2},\n 'rg32sint': {gl: GL.RG32I, b: 8, c: 2},\n 'rg32float': {gl: GL.RG32F, b: 8, c: 2, render: 'texture-renderable-float32-webgl', filter: 'texture-filter-linear-float32-webgl'},\n 'rgba16uint': {gl: GL.RGBA16UI, b: 8, c: 4},\n 'rgba16sint': {gl: GL.RGBA16I, b: 8, c: 4},\n 'rgba16float': {gl: GL.RGBA16F, gl1: GL.RGBA, b: 8, c: 4, render: 'texture-renderable-float16-webgl', filter: 'texture-filter-linear-float16-webgl'},\n 'rgba16unorm-webgl': {gl: GL.RGBA16_EXT, b:2, c:4, f: 'texture-formats-norm16-webgl'},\n 'rgba16snorm-webgl': {gl: GL.RGBA16_SNORM_EXT, b:2, c:4, f: 'texture-formats-norm16-webgl'},\n\n // 96-bit formats (deprecated!)\n 'rgb32float-webgl': {gl: GL.RGB32F, gl1: GL.RGB, render: 'texture-renderable-float32-webgl', filter: 'texture-filter-linear-float32-webgl',\n gl2ext: EXT_FLOAT_RENDER_WEBGL2, gl1ext: EXT_FLOAT_WEBGL1, // WebGL1 render buffers are supported with GL.RGB32F\n dataFormat: GL.RGB, types: [GL.FLOAT]},\n \n // 128-bit formats\n 'rgba32uint': {gl: GL.RGBA32UI, b: 16, c: 4},\n 'rgba32sint': {gl: GL.RGBA32I, b: 16, c: 4},\n 'rgba32float': {gl: GL.RGBA32F, gl1: GL.RGBA, b: 16, c: 4, render: 'texture-renderable-float32-webgl', filter: 'texture-filter-linear-float32-webgl'},\n\n // Depth and stencil formats\n 'stencil8': {gl: GL.STENCIL_INDEX8, b: 1, c: 1, attachment: GL.STENCIL_ATTACHMENT}, // 8 stencil bits\n\n 'depth16unorm': {gl: GL.DEPTH_COMPONENT16, gl1: GL.DEPTH_COMPONENT16, b: 2, c: 1, attachment: GL.DEPTH_ATTACHMENT}, // 16 depth bits\n 'depth24plus': {gl: GL.DEPTH_COMPONENT24, b: 3, c: 1, attachment: GL.DEPTH_ATTACHMENT},\n 'depth32float': {gl: GL.DEPTH_COMPONENT32F, b: 4, c: 1, attachment: GL.DEPTH_ATTACHMENT},\n\n 'depth24plus-stencil8': {b: 4, gl: GL.UNSIGNED_INT_24_8, gl1: GL.DEPTH_STENCIL, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},\n // \"depth24unorm-stencil8\" feature\n 'depth24unorm-stencil8': {gl: GL.DEPTH24_STENCIL8, b: 4, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},\n // \"depth32float-stencil8\" feature\n \"depth32float-stencil8\": {gl: GL.DEPTH32F_STENCIL8, b: 5, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},\n\n // BC compressed formats: check device.features.has(\"texture-compression-bc\");\n\n 'bc1-rgb-unorm-webgl': {gl: GL.COMPRESSED_RGB_S3TC_DXT1_EXT, x: X_S3TC, f: texture_compression_bc},\n 'bc1-rgb-unorm-srgb-webgl': {gl: GL.COMPRESSED_SRGB_S3TC_DXT1_EXT, x: X_S3TC_SRGB, f: texture_compression_bc},\n\n 'bc1-rgba-unorm': {gl: GL.COMPRESSED_RGBA_S3TC_DXT1_EXT, x: X_S3TC, f: texture_compression_bc},\n 'bc1-rgba-unorm-srgb': {gl: GL.COMPRESSED_SRGB_S3TC_DXT1_EXT, x: X_S3TC_SRGB, f: texture_compression_bc},\n 'bc2-rgba-unorm': {gl: GL.COMPRESSED_RGBA_S3TC_DXT3_EXT, x: X_S3TC, f: texture_compression_bc},\n 'bc2-rgba-unorm-srgb': {gl: GL.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, x: X_S3TC_SRGB, f: texture_compression_bc},\n 'bc3-rgba-unorm': {gl: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT, x: X_S3TC, f: texture_compression_bc},\n 'bc3-rgba-unorm-srgb': {gl: GL.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, x: X_S3TC_SRGB, f: texture_compression_bc},\n 'bc4-r-unorm': {gl: GL.COMPRESSED_RED_RGTC1_EXT, x: X_RGTC, f: texture_compression_bc},\n 'bc4-r-snorm': {gl: GL.COMPRESSED_SIGNED_RED_RGTC1_EXT, x: X_RGTC, f: texture_compression_bc},\n 'bc5-rg-unorm': {gl: GL.COMPRESSED_RED_GREEN_RGTC2_EXT, x: X_RGTC, f: texture_compression_bc},\n 'bc5-rg-snorm': {gl: GL.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT, x: X_RGTC, f: texture_compression_bc},\n 'bc6h-rgb-ufloat': {gl: GL.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT, x: X_BPTC, f: texture_compression_bc},\n 'bc6h-rgb-float': {gl: GL.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT, x: X_BPTC, f: texture_compression_bc},\n 'bc7-rgba-unorm': {gl: GL.COMPRESSED_RGBA_BPTC_UNORM_EXT, x: X_BPTC, f: texture_compression_bc},\n 'bc7-rgba-unorm-srgb': {gl: GL.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT, x: X_BPTC, f: texture_compression_bc},\n\n // WEBGL_compressed_texture_etc: device.features.has(\"texture-compression-etc2\")\n // Note: Supposedly guaranteed availability compressed formats in WebGL2, but through CPU decompression\n\n 'etc2-rgb8unorm': {gl: GL.COMPRESSED_RGB8_ETC2, f: texture_compression_etc2},\n 'etc2-rgb8unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ETC2, f: texture_compression_etc2},\n 'etc2-rgb8a1unorm': {gl: GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, f: texture_compression_etc2},\n 'etc2-rgb8a1unorm-srgb': {gl: GL.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, f: texture_compression_etc2},\n 'etc2-rgba8unorm': {gl: GL.COMPRESSED_RGBA8_ETC2_EAC, f: texture_compression_etc2},\n 'etc2-rgba8unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, f: texture_compression_etc2},\n\n 'eac-r11unorm': {gl: GL.COMPRESSED_R11_EAC, f: texture_compression_etc2},\n 'eac-r11snorm': {gl: GL.COMPRESSED_SIGNED_R11_EAC, f: texture_compression_etc2},\n 'eac-rg11unorm': {gl: GL.COMPRESSED_RG11_EAC, f: texture_compression_etc2},\n 'eac-rg11snorm': {gl: GL.COMPRESSED_SIGNED_RG11_EAC, f: texture_compression_etc2},\n\n // X_ASTC compressed formats: device.features.has(\"texture-compression-astc\")\n\n 'astc-4x4-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_4x4_KHR, f: texture_compression_astc},\n 'astc-4x4-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, f: texture_compression_astc},\n 'astc-5x4-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_5x4_KHR, f: texture_compression_astc},\n 'astc-5x4-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, f: texture_compression_astc},\n 'astc-5x5-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_5x5_KHR, f: texture_compression_astc},\n 'astc-5x5-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, f: texture_compression_astc},\n 'astc-6x5-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_6x5_KHR, f: texture_compression_astc},\n 'astc-6x5-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, f: texture_compression_astc},\n 'astc-6x6-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_6x6_KHR, f: texture_compression_astc},\n 'astc-6x6-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, f: texture_compression_astc},\n 'astc-8x5-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_8x5_KHR, f: texture_compression_astc},\n 'astc-8x5-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, f: texture_compression_astc},\n 'astc-8x6-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_8x6_KHR, f: texture_compression_astc},\n 'astc-8x6-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, f: texture_compression_astc},\n 'astc-8x8-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_8x8_KHR, f: texture_compression_astc},\n 'astc-8x8-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, f: texture_compression_astc},\n 'astc-10x5-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_10x10_KHR, f: texture_compression_astc},\n 'astc-10x5-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, f: texture_compression_astc},\n 'astc-10x6-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_10x6_KHR, f: texture_compression_astc},\n 'astc-10x6-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, f: texture_compression_astc},\n 'astc-10x8-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_10x8_KHR, f: texture_compression_astc},\n 'astc-10x8-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, f: texture_compression_astc},\n 'astc-10x10-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_10x10_KHR, f: texture_compression_astc},\n 'astc-10x10-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, f: texture_compression_astc},\n 'astc-12x10-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_12x10_KHR, f: texture_compression_astc},\n 'astc-12x10-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, f: texture_compression_astc},\n 'astc-12x12-unorm': {gl: GL.COMPRESSED_RGBA_ASTC_12x12_KHR, f: texture_compression_astc},\n 'astc-12x12-unorm-srgb': {gl: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, f: texture_compression_astc},\n\n // WEBGL_compressed_texture_pvrtc\n\n 'pvrtc-rgb4unorm-webgl': {gl: GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG, f: texture_compression_pvrtc_webgl},\n 'pvrtc-rgba4unorm-webgl': {gl: GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, f: texture_compression_pvrtc_webgl},\n 'pvrtc-rbg2unorm-webgl': {gl: GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG, f: texture_compression_pvrtc_webgl},\n 'pvrtc-rgba2unorm-webgl': {gl: GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG, f: texture_compression_pvrtc_webgl},\n\n // WEBGL_compressed_texture_etc1\n\n 'etc1-rbg-unorm-webgl': {gl: GL.COMPRESSED_RGB_ETC1_WEBGL, f: texture_compression_etc1_webgl},\n\n // WEBGL_compressed_texture_atc\n\n 'atc-rgb-unorm-webgl': {gl: GL.COMPRESSED_RGB_ATC_WEBGL, f: texture_compression_atc_webgl},\n 'atc-rgba-unorm-webgl': {gl: GL.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL, f: texture_compression_atc_webgl},\n 'atc-rgbai-unorm-webgl': {gl: GL.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL, f: texture_compression_atc_webgl}\n};\n\n// FUNCTIONS\n\nfunction getTextureFormat(format: TextureFormat | GL): TextureFormat {\n if (typeof format === 'string') {\n return format;\n }\n const entry = Object.entries(TEXTURE_FORMATS).find(([, entry]) => (entry.gl === format || entry.gl1 === format));\n if (!entry) {\n throw new Error(`Unknown texture format ${format}`);\n }\n return entry[0] as TextureFormat;\n}\n\n/** Checks if a texture format is supported */\nexport function isTextureFormatSupported(\n gl: WebGLRenderingContext,\n formatOrGL: TextureFormat | GL\n): boolean {\n const format = getTextureFormat(formatOrGL);\n const info = TEXTURE_FORMATS[format];\n if (!info) {\n return false;\n }\n // Check that we have a GL constant\n if (isWebGL2(gl) ? info.gl === undefined : info.gl1 === undefined) {\n return false;\n }\n // Check extensions\n const extension = info.x || (isWebGL2(gl) ? info.gl2ext || info.gl1ext : info.gl1ext);\n if (extension) {\n return Boolean(gl.getExtension(extension));\n }\n // if (info.gl1 === undefined && info.gl2 === undefined) {\n // // No info - always supported\n // }\n return true;\n}\n\n/** Checks if a texture format is supported */\nexport function getTextureFormatSupport(\n gl: WebGLRenderingContext,\n formatOrGL: TextureFormat | GL\n): {\n supported: boolean;\n filterable?: boolean;\n renderable?: boolean;\n blendable?: boolean;\n storable?: boolean;\n} {\n const format = getTextureFormat(formatOrGL);\n const info = TEXTURE_FORMATS[format];\n if (!info) {\n return {supported: false};\n }\n // let decoded;\n // try {\n // decoded = decodeTextureFormat(format);\n // } catch {}\n\n // Support Check that we have a GL constant\n let supported = isWebGL2(gl) ? info.gl === undefined : info.gl1 === undefined;\n supported = supported && checkTextureFeatures(gl, [info.f]);\n\n // Filtering\n // const filterable = info.filter\n // ? checkTextureFeatures(gl, [info.filter])\n // : decoded && !decoded.signed;\n // const renderable = info.filter\n // ? checkTextureFeatures(gl, [info.render])\n // : decoded && !decoded.signed;\n\n return {\n supported,\n renderable: supported && checkTextureFeatures(gl, [info.render]),\n filterable: supported && checkTextureFeatures(gl, [info.filter]),\n blendable: false, // tod,\n storable: false\n };\n}\n\n/** Checks whether linear filtering (interpolated sampling) is available for floating point textures */\nexport function isTextureFormatFilterable(\n gl: WebGLRenderingContext,\n formatOrGL: TextureFormat | GL\n): boolean {\n const format = getTextureFormat(formatOrGL);\n if (!isTextureFormatSupported(gl, format)) {\n return false;\n }\n try {\n const decoded = decodeTextureFormat(format);\n if (decoded.signed) {\n return false;\n }\n } catch {\n return false;\n }\n if (format.endsWith('32float')) {\n return Boolean(gl.getExtension('OES_texture_float_linear'));\n }\n if (format.endsWith('16float')) {\n return Boolean(gl.getExtension('OES_texture_half_float_linear'));\n }\n // if (typeof format === 'string') {\n // if (format === 'rgba32float') {\n // return gl.device.features.has('texture-renderable-rgba32float-webgl');\n // }\n // if (format.endsWith('32float')) {\n // return gl.device.features.has('texture-renderable-float32-webgl');\n // }\n // if (format.endsWith('16float')) {\n // return gl.device.features.has('texture-renderable-float16-webgl');\n // }\n // }\n return true;\n}\n\nexport function isTextureFormatRenderable(\n gl: WebGLRenderingContext,\n formatOrGL: TextureFormat | GL\n): boolean {\n const format = getTextureFormat(formatOrGL);\n if (!isTextureFormatSupported(gl, format)) {\n return false;\n }\n if (typeof format === 'number') {\n return false; // isTextureFormatFilterableWebGL(gl, format);\n }\n // TODO depends on device...\n return true;\n}\n\n/**\n * Converts WebGPU string style texture formats to GL constants\n * Pass through GL constants\n */\nexport function getWebGLTextureFormat(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): GL | undefined {\n const format = getTextureFormat(formatOrGL);\n const formatInfo = TEXTURE_FORMATS[format];\n const webglFormat = isWebGL2(gl) ? formatInfo?.gl : formatInfo?.gl1;\n // Remap or pass through\n if (typeof format === 'number') {\n return webglFormat || format;\n }\n if (webglFormat === undefined) {\n throw new Error(`Unsupported texture format ${format}`);\n }\n return webglFormat;\n}\n\nexport function getWebGLTextureParameters(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL) {\n const format = getTextureFormat(formatOrGL);\n const webglFormat = getWebGLTextureFormat(gl, format);\n const decoded = decodeTextureFormat(format);\n return {\n format: webglFormat,\n dataFormat: getWebGLPixelDataFormat(\n decoded.format,\n decoded.integer,\n decoded.normalized,\n webglFormat\n ),\n type: getWebGLDataType(decoded.dataType),\n // @ts-expect-error\n compressed: decoded.compressed\n };\n}\n\nexport function getWebGLDepthStencilAttachment(\n formatOrGL: TextureFormat | GL\n): GL.DEPTH_ATTACHMENT | GL.STENCIL_ATTACHMENT | GL.DEPTH_STENCIL_ATTACHMENT {\n const format = getTextureFormat(formatOrGL);\n if (typeof format === 'number') {\n // TODO\n throw new Error('unsupported depth stencil format')\n }\n const info = TEXTURE_FORMATS[format];\n const attachment = info.attachment;\n if (!attachment) {\n throw new Error('not a depth stencil format');\n }\n return attachment;\n}\n\n/**\n * function to test if Float 32 bit format texture can be bound as color attachment\n * @todo Generalize to check arbitrary formats?\n */\nexport function _checkFloat32ColorAttachment(\n gl: WebGLRenderingContext,\n internalFormat = gl.RGBA,\n srcFormat = GL.RGBA,\n srcType = GL.UNSIGNED_BYTE\n) {\n let texture: WebGLTexture | null = null;\n let framebuffer: WebGLFramebuffer | null = null;\n try {\n texture = gl.createTexture();\n gl.bindTexture(GL.TEXTURE_2D, texture);\n\n const level = 0;\n const width = 1;\n const height = 1;\n const border = 0;\n const pixel = new Uint8Array([0, 0, 255, 255]); // opaque blue\n gl.texImage2D(\n gl.TEXTURE_2D,\n level,\n internalFormat,\n width,\n height,\n border,\n srcFormat,\n srcType,\n pixel\n );\n\n framebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(GL.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(GL.FRAMEBUFFER, GL.COLOR_ATTACHMENT0, GL.TEXTURE_2D, texture, 0);\n const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER) === GL.FRAMEBUFFER_COMPLETE;\n\n gl.bindTexture(GL.TEXTURE_2D, null);\n return status;\n } finally {\n gl.deleteTexture(texture);\n gl.deleteFramebuffer(framebuffer);\n }\n}\n\n/** @deprecated should be removed */\nconst DATA_FORMAT_CHANNELS = {\n [GL.RED]: 1,\n [GL.RED_INTEGER]: 1,\n [GL.RG]: 2,\n [GL.RG_INTEGER]: 2,\n [GL.RGB]: 3,\n [GL.RGB_INTEGER]: 3,\n [GL.RGBA]: 4,\n [GL.RGBA_INTEGER]: 4,\n [GL.DEPTH_COMPONENT]: 1,\n [GL.DEPTH_STENCIL]: 1,\n [GL.ALPHA]: 1,\n [GL.LUMINANCE]: 1,\n [GL.LUMINANCE_ALPHA]: 2\n};\n\n/** @deprecated should be removed */\nconst TYPE_SIZES = {\n [GL.FLOAT]: 4,\n [GL.UNSIGNED_INT]: 4,\n [GL.INT]: 4,\n [GL.UNSIGNED_SHORT]: 2,\n [GL.SHORT]: 2,\n [GL.HALF_FLOAT]: 2,\n [GL.BYTE]: 1,\n [GL.UNSIGNED_BYTE]: 1\n};\n\n/** TODO - VERY roundabout legacy way of calculating bytes per pixel */\nexport function getTextureFormatBytesPerPixel(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): number {\n const format = getTextureFormat(formatOrGL);\n const params = getWebGLTextureParameters(gl, format);\n // NOTE(Tarek): Default to RGBA bytes\n const channels = DATA_FORMAT_CHANNELS[params.dataFormat] || 4;\n const channelSize = TYPE_SIZES[params.type] || 1;\n return channels * channelSize;\n}\n\n// DATA TYPE HELPERS\n\nfunction getWebGLPixelDataFormat(\n dataFormat: string,\n integer: boolean,\n normalized: boolean,\n format: GL\n): GL {\n // WebGL1 formats use same internalFormat\n if (format === GL.RGBA || format === GL.RGB) {\n return format;\n }\n // prettier-ignore\n switch (dataFormat) {\n case 'r': return integer && !normalized ? GL.RED_INTEGER : GL.RED;\n case 'rg': return integer && !normalized ? GL.RG_INTEGER : GL.RG;\n case 'rgb': return integer && !normalized ? GL.RGB_INTEGER : GL.RGB;\n case 'rgba': return integer && !normalized ? GL.RGBA_INTEGER : GL.RGBA;\n default: return GL.RGBA;\n }\n}\n\nexport function getWebGLDataType(dataType: string): GL {\n // prettier-ignore\n switch (dataType) {\n case 'uint8': return GL.UNSIGNED_BYTE;\n case 'sint8': return GL.BYTE;\n case 'uint16': return GL.UNSIGNED_SHORT;\n case 'sint16': return GL.SHORT;\n case 'uint32': return GL.UNSIGNED_INT;\n case 'sint32': return GL.INT;\n case 'float16': return GL.HALF_FLOAT;\n case 'float32': return GL.FLOAT;\n default: return GL.UNSIGNED_BYTE;\n }\n}\n"],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getVertexFormat = getVertexFormat;
8
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
9
- function getVertexFormat(type, components) {
10
- var base = getDataFormat(type);
11
- switch (components) {
12
- case 1:
13
- return base;
14
- case 2:
15
- return "".concat(base, "x2");
16
- case 3:
17
- return "".concat(base, "x3");
18
- case 4:
19
- return "".concat(base, "x4");
20
- default:
21
- throw new Error(String(components));
22
- }
23
- }
24
- function getDataFormat(type) {
25
- switch (type) {
26
- case _constants.default.INT:
27
- return 'sint32';
28
- case _constants.default.UNSIGNED_INT:
29
- return 'uint32';
30
- case _constants.default.FLOAT:
31
- return 'float32';
32
- default:
33
- throw new Error(String(type));
34
- }
35
- }
36
- //# sourceMappingURL=vertex-formats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vertex-formats.js","names":["_constants","_interopRequireDefault","require","getVertexFormat","type","components","base","getDataFormat","concat","Error","String","GL","INT","UNSIGNED_INT","FLOAT"],"sources":["../../../../src/adapter/converters/vertex-formats.ts"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {VertexFormat} from '@luma.gl/api';\n\nexport function getVertexFormat(type: GL, components: number): VertexFormat {\n const base = getDataFormat(type);\n switch (components) {\n case 1: return base;\n case 2: return `${base}x2`;\n case 3: return `${base}x3`;\n case 4: return `${base}x4`;\n default: throw new Error(String(components));\n }\n}\n\nfunction getDataFormat(type: GL): 'sint32' | 'uint32' | 'float32' {\n switch (type) {\n // TODO\n case GL.INT: return 'sint32';\n case GL.UNSIGNED_INT: return 'uint32';\n case GL.FLOAT: return 'float32';\n default: throw new Error(String(type));\n }\n}"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGO,SAASC,eAAeA,CAACC,IAAQ,EAAEC,UAAkB,EAAgB;EAC1E,IAAMC,IAAI,GAAGC,aAAa,CAACH,IAAI,CAAC;EAChC,QAAQC,UAAU;IAChB,KAAK,CAAC;MAAE,OAAOC,IAAI;IACnB,KAAK,CAAC;MAAE,UAAAE,MAAA,CAAUF,IAAI;IACtB,KAAK,CAAC;MAAE,UAAAE,MAAA,CAAUF,IAAI;IACtB,KAAK,CAAC;MAAE,UAAAE,MAAA,CAAUF,IAAI;IACtB;MAAS,MAAM,IAAIG,KAAK,CAACC,MAAM,CAACL,UAAU,CAAC,CAAC;EAAC;AAEjD;AAEA,SAASE,aAAaA,CAACH,IAAQ,EAAmC;EAChE,QAAQA,IAAI;IAEV,KAAKO,kBAAE,CAACC,GAAG;MAAE,OAAO,QAAQ;IAC5B,KAAKD,kBAAE,CAACE,YAAY;MAAE,OAAO,QAAQ;IACrC,KAAKF,kBAAE,CAACG,KAAK;MAAE,OAAO,SAAS;IAC/B;MAAS,MAAM,IAAIL,KAAK,CAACC,MAAM,CAACN,IAAI,CAAC,CAAC;EAAC;AAE3C"}
@@ -1,121 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.canCompileGLSLExtension = canCompileGLSLExtension;
8
- exports.getDeviceFeatures = getDeviceFeatures;
9
- exports.getWebGLFeatures = getWebGLFeatures;
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _webglChecks = require("../../context/context/webgl-checks");
12
- var _isOldIe = require("./is-old-ie");
13
- var _textureFormats = require("../converters/texture-formats");
14
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
15
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
- function getDeviceFeatures(gl) {
18
- var features = getWebGLFeatures(gl);
19
- var _iterator = _createForOfIteratorHelper((0, _textureFormats.getTextureFeatures)(gl)),
20
- _step;
21
- try {
22
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
23
- var textureFeature = _step.value;
24
- features.add(textureFeature);
25
- }
26
- } catch (err) {
27
- _iterator.e(err);
28
- } finally {
29
- _iterator.f();
30
- }
31
- return features;
32
- }
33
- function getWebGLFeatures(gl) {
34
- gl.getExtension('EXT_color_buffer_float');
35
- gl.getExtension('WEBGL_color_buffer_float');
36
- gl.getExtension('EXT_float_blend');
37
- var features = new Set();
38
- for (var _i = 0, _Object$keys = Object.keys(WEBGL_FEATURES); _i < _Object$keys.length; _i++) {
39
- var feature = _Object$keys[_i];
40
- if (isFeatureSupported(gl, feature)) {
41
- features.add(feature);
42
- }
43
- }
44
- return features;
45
- }
46
- function isFeatureSupported(gl, feature) {
47
- var featureInfo = WEBGL_FEATURES[feature];
48
- if (!featureInfo) {
49
- return false;
50
- }
51
- var _ref = featureInfo || [],
52
- _ref2 = (0, _slicedToArray2.default)(_ref, 2),
53
- webgl1Feature = _ref2[0],
54
- webgl2Feature = _ref2[1];
55
- var featureDefinition = (0, _webglChecks.isWebGL2)(gl) ? webgl2Feature : webgl1Feature;
56
- if (typeof featureDefinition === 'boolean') {
57
- return featureDefinition;
58
- }
59
- switch (feature) {
60
- case 'texture-renderable-rgba32float-webgl':
61
- return (0, _webglChecks.isWebGL2)(gl) ? Boolean(gl.getExtension(featureDefinition)) : (0, _textureFormats._checkFloat32ColorAttachment)(gl);
62
- case 'glsl-derivatives':
63
- return canCompileGLSLExtension(gl, featureDefinition);
64
- case 'glsl-frag-data':
65
- return canCompileGLSLExtension(gl, featureDefinition, {
66
- behavior: 'require'
67
- });
68
- case 'glsl-frag-depth':
69
- return canCompileGLSLExtension(gl, featureDefinition);
70
- default:
71
- return Boolean(gl.getExtension(featureDefinition));
72
- }
73
- }
74
- var compiledGLSLExtensions = {};
75
- function canCompileGLSLExtension(gl, extensionName) {
76
- var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
77
- if (!(0, _isOldIe.isOldIE)(opts)) {
78
- return true;
79
- }
80
- if (extensionName in compiledGLSLExtensions) {
81
- return compiledGLSLExtensions[extensionName];
82
- }
83
- var behavior = opts.behavior || 'enable';
84
- var source = "#extension GL_".concat(extensionName, " : ").concat(behavior, "\nvoid main(void) {}");
85
- var shader = gl.createShader(gl.VERTEX_SHADER);
86
- if (!shader) {
87
- throw new Error('shader');
88
- }
89
- gl.shaderSource(shader, source);
90
- gl.compileShader(shader);
91
- var canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
92
- gl.deleteShader(shader);
93
- compiledGLSLExtensions[extensionName] = canCompile;
94
- return canCompile;
95
- }
96
- var WEBGL_FEATURES = {
97
- 'webgl': [true, true],
98
- 'webgl2': [false, true],
99
- 'timer-query-webgl': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],
100
- 'vertex-array-object-webgl1': ['OES_vertex_array_object', true],
101
- 'instanced-rendering-webgl1': ['ANGLE_instanced_arrays', true],
102
- 'multiple-render-targets-webgl1': ['WEBGL_draw_buffers', true],
103
- 'index-uint32-webgl1': ['OES_element_index_uint', true],
104
- 'blend-minmax-webgl1': ['EXT_blend_minmax', true],
105
- 'texture-blend-float-webgl1': ['EXT_float_blend', 'EXT_float_blend'],
106
- 'texture-formats-srgb-webgl1': ['EXT_sRGB', true],
107
- 'texture-formats-depth-webgl1': ['WEBGL_depth_texture', true],
108
- 'texture-formats-float32-webgl1': ['OES_texture_float', true],
109
- 'texture-formats-float16-webgl1': ['OES_texture_half_float', true],
110
- 'texture-filter-linear-float32-webgl': ['OES_texture_float_linear', 'OES_texture_float_linear'],
111
- 'texture-filter-linear-float16-webgl': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],
112
- 'texture-filter-anisotropic-webgl': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],
113
- 'texture-renderable-rgba32float-webgl': ['WEBGL_color_buffer_float', 'EXT_color_buffer_float'],
114
- 'texture-renderable-float32-webgl': [false, 'EXT_color_buffer_float'],
115
- 'texture-renderable-float16-webgl': ['EXT_color_buffer_half_float', 'EXT_color_buffer_half_float'],
116
- 'glsl-frag-data': ['WEBGL_draw_buffers', true],
117
- 'glsl-frag-depth': ['EXT_frag_depth', true],
118
- 'glsl-derivatives': ['OES_standard_derivatives', true],
119
- 'glsl-texture-lod': ['EXT_shader_texture_lod', true]
120
- };
121
- //# sourceMappingURL=device-features.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"device-features.js","names":["_webglChecks","require","_isOldIe","_textureFormats","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","getDeviceFeatures","gl","features","getWebGLFeatures","_iterator","getTextureFeatures","_step","textureFeature","add","getExtension","Set","_i","_Object$keys","keys","WEBGL_FEATURES","feature","isFeatureSupported","featureInfo","_ref","_ref2","_slicedToArray2","default","webgl1Feature","webgl2Feature","featureDefinition","isWebGL2","Boolean","_checkFloat32ColorAttachment","canCompileGLSLExtension","behavior","compiledGLSLExtensions","extensionName","opts","arguments","undefined","isOldIE","source","concat","shader","createShader","VERTEX_SHADER","Error","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"sources":["../../../../src/adapter/device-helpers/device-features.ts"],"sourcesContent":["// Feature detection for WebGL\n// Provides a function that enables simple checking of which WebGL features are\n// available in an WebGL1 or WebGL2 environment.\n\nimport {DeviceFeature} from '@luma.gl/api';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport {isOldIE} from './is-old-ie';\nimport {getTextureFeatures, _checkFloat32ColorAttachment} from '../converters/texture-formats';\n\n/** Get WebGPU style feature strings */\nexport function getDeviceFeatures(gl: WebGLRenderingContext): Set<DeviceFeature> {\n const features = getWebGLFeatures(gl);\n\n // texture features\n // features.add('texture-compression-bc'); \n for (const textureFeature of getTextureFeatures(gl)) {\n features.add(textureFeature);\n }\n\n // TODO\n // features.add('depth-clip-control'); // GPUPrimitiveState.clampDepth\n // features.add('depth24unorm-stencil8'); // GPUTextureFormat 'depth24unorm-stencil8'.\n // features.add('depth32float-stencil8'); // GPUTextureFormat 'depth32float-stencil8'.\n // features.add('timestamp-query'); // GPUQueryType \"timestamp-query\"\n // \"indirect-first-instance\"\n\n return features;\n}\n\n/** Extract all WebGL features */\nexport function getWebGLFeatures(gl: WebGLRenderingContext): Set<DeviceFeature> {\n // Enables EXT_float_blend first: https://developer.mozilla.org/en-US/docs/Web/API/EXT_float_blend\n gl.getExtension('EXT_color_buffer_float');\n gl.getExtension('WEBGL_color_buffer_float');\n gl.getExtension('EXT_float_blend');\n\n const features = new Set<DeviceFeature>();\n for (const feature of Object.keys(WEBGL_FEATURES)) {\n // @ts-expect-error\n if (isFeatureSupported(gl, feature)) {\n // @ts-expect-error\n features.add(feature);\n }\n }\n return features;\n}\n\nfunction isFeatureSupported(gl: WebGLRenderingContext, feature: DeviceFeature): boolean {\n const featureInfo = WEBGL_FEATURES[feature];\n if (!featureInfo) {\n return false;\n }\n\n const [webgl1Feature, webgl2Feature] = featureInfo || [];\n\n // Get extension name from table\n const featureDefinition = isWebGL2(gl) ? webgl2Feature : webgl1Feature;\n\n // Check if the value is dependent on checking one or more extensions\n if (typeof featureDefinition === 'boolean') {\n return featureDefinition;\n }\n\n switch (feature) {\n case 'texture-renderable-rgba32float-webgl':\n return isWebGL2(gl) ? Boolean(gl.getExtension(featureDefinition)) :\n _checkFloat32ColorAttachment(gl);\n case 'glsl-derivatives':\n return canCompileGLSLExtension(gl, featureDefinition); // TODO options\n case 'glsl-frag-data':\n return canCompileGLSLExtension(gl, featureDefinition, {behavior: 'require'}); // TODO options\n case 'glsl-frag-depth':\n return canCompileGLSLExtension(gl, featureDefinition); // TODO options\n default:\n return Boolean(gl.getExtension(featureDefinition));\n }\n}\n\nconst compiledGLSLExtensions: Record<string, boolean> = {};\n\n/*\n * Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n * but fail to compile when the extension is enabled in the shader. Specifically,\n * the OES_standard_derivatives and WEBGL_draw_buffers extensions fails to compile in IE11 even though its included\n * in the list of supported extensions.\n * opts allows user agent to be overridden for testing\n * Inputs :\n * gl : WebGL context\n * cap : Key of WEBGL_FEATURES object identifying the extension\n * opts :\n * behavior : behavior of extension to be tested, by defualt `enable` is used\n * Returns : true, if shader is compiled successfully, false otherwise\n */\nexport function canCompileGLSLExtension(gl: WebGLRenderingContext, extensionName, opts: {behavior?} = {}) {\n if (!isOldIE(opts)) {\n return true;\n }\n\n if (extensionName in compiledGLSLExtensions) {\n return compiledGLSLExtensions[extensionName];\n }\n\n const behavior = opts.behavior || 'enable';\n const source = `#extension GL_${extensionName} : ${behavior}\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n if (!shader) {\n throw new Error('shader');\n }\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGLSLExtensions[extensionName] = canCompile;\n return canCompile;\n}\n\n/** Defines luma.gl \"feature\" names and semantics\n * Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension\n */\nconst WEBGL_FEATURES: Partial<Record<DeviceFeature, [boolean | string, boolean | string]>> = {\n 'webgl': [true, true],\n 'webgl2': [false, true],\n\n 'timer-query-webgl': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n\n // WEBGL1 SUPPORT\n 'vertex-array-object-webgl1': ['OES_vertex_array_object', true],\n 'instanced-rendering-webgl1': ['ANGLE_instanced_arrays', true],\n 'multiple-render-targets-webgl1': ['WEBGL_draw_buffers', true],\n 'index-uint32-webgl1': ['OES_element_index_uint', true],\n 'blend-minmax-webgl1': ['EXT_blend_minmax', true],\n 'texture-blend-float-webgl1': ['EXT_float_blend', 'EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n 'texture-formats-srgb-webgl1': ['EXT_sRGB', true],\n\n // TEXTURES\n 'texture-formats-depth-webgl1': ['WEBGL_depth_texture', true],\n 'texture-formats-float32-webgl1': ['OES_texture_float', true],\n 'texture-formats-float16-webgl1': ['OES_texture_half_float', true],\n\n 'texture-filter-linear-float32-webgl': ['OES_texture_float_linear', 'OES_texture_float_linear'],\n 'texture-filter-linear-float16-webgl': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],\n 'texture-filter-anisotropic-webgl': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n 'texture-renderable-rgba32float-webgl': ['WEBGL_color_buffer_float', 'EXT_color_buffer_float'], // Note override check\n 'texture-renderable-float32-webgl': [false, 'EXT_color_buffer_float'],\n 'texture-renderable-float16-webgl': ['EXT_color_buffer_half_float', 'EXT_color_buffer_half_float'],\n\n // GLSL extensions\n 'glsl-frag-data': ['WEBGL_draw_buffers', true],\n 'glsl-frag-depth': ['EXT_frag_depth', true],\n 'glsl-derivatives': ['OES_standard_derivatives', true],\n 'glsl-texture-lod': ['EXT_shader_texture_lod', true]\n};\n"],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getDeviceLimits = getDeviceLimits;
8
- exports.getWebGLLimits = getWebGLLimits;
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
11
- var _webglChecks = require("../../context/context/webgl-checks");
12
- function getDeviceLimits(gl) {
13
- var gl2 = (0, _webglChecks.getWebGL2Context)(gl);
14
- return {
15
- maxTextureDimension1D: 0,
16
- maxTextureDimension2D: gl.getParameter(_constants.default.MAX_TEXTURE_SIZE),
17
- maxTextureDimension3D: gl2 ? gl2.getParameter(_constants.default.MAX_3D_TEXTURE_SIZE) : 0,
18
- maxTextureArrayLayers: gl2 ? gl2.getParameter(_constants.default.MAX_ARRAY_TEXTURE_LAYERS) : 0,
19
- maxBindGroups: 1,
20
- maxDynamicUniformBuffersPerPipelineLayout: 0,
21
- maxDynamicStorageBuffersPerPipelineLayout: 0,
22
- maxSampledTexturesPerShaderStage: gl.getParameter(_constants.default.MAX_VERTEX_TEXTURE_IMAGE_UNITS),
23
- maxSamplersPerShaderStage: gl.getParameter(_constants.default.MAX_COMBINED_TEXTURE_IMAGE_UNITS),
24
- maxStorageBuffersPerShaderStage: 0,
25
- maxStorageTexturesPerShaderStage: 0,
26
- maxUniformBuffersPerShaderStage: gl2 ? gl2.getParameter(_constants.default.MAX_UNIFORM_BUFFER_BINDINGS) : 0,
27
- maxUniformBufferBindingSize: gl2 ? gl2.getParameter(_constants.default.MAX_UNIFORM_BLOCK_SIZE) : 0,
28
- maxStorageBufferBindingSize: 0,
29
- minUniformBufferOffsetAlignment: gl2 ? gl2.getParameter(_constants.default.UNIFORM_BUFFER_OFFSET_ALIGNMENT) : 0,
30
- minStorageBufferOffsetAlignment: 0,
31
- maxVertexBuffers: 0,
32
- maxVertexAttributes: gl.getParameter(_constants.default.MAX_VERTEX_ATTRIBS),
33
- maxVertexBufferArrayStride: 2048,
34
- maxInterStageShaderComponents: gl2 ? gl2.getParameter(_constants.default.MAX_VARYING_COMPONENTS) : 0,
35
- maxComputeWorkgroupStorageSize: 0,
36
- maxComputeInvocationsPerWorkgroup: 0,
37
- maxComputeWorkgroupSizeX: 0,
38
- maxComputeWorkgroupSizeY: 0,
39
- maxComputeWorkgroupSizeZ: 0,
40
- maxComputeWorkgroupsPerDimension: 0
41
- };
42
- }
43
- function getWebGLLimits(gl) {
44
- var _ref;
45
- var gl2 = (0, _webglChecks.getWebGL2Context)(gl);
46
- function get(pname) {
47
- return gl.getParameter(pname);
48
- }
49
- function get2(pname, defaultValue) {
50
- return gl2 ? gl2.getParameter(pname) : defaultValue || 0;
51
- }
52
- return _ref = {}, (0, _defineProperty2.default)(_ref, _constants.default.ALIASED_LINE_WIDTH_RANGE, get(_constants.default.ALIASED_LINE_WIDTH_RANGE)), (0, _defineProperty2.default)(_ref, _constants.default.ALIASED_POINT_SIZE_RANGE, get(_constants.default.ALIASED_POINT_SIZE_RANGE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TEXTURE_SIZE, get(_constants.default.MAX_TEXTURE_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_CUBE_MAP_TEXTURE_SIZE, get(_constants.default.MAX_CUBE_MAP_TEXTURE_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TEXTURE_IMAGE_UNITS, get(_constants.default.MAX_TEXTURE_IMAGE_UNITS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COMBINED_TEXTURE_IMAGE_UNITS, get(_constants.default.MAX_COMBINED_TEXTURE_IMAGE_UNITS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_TEXTURE_IMAGE_UNITS, get(_constants.default.MAX_VERTEX_TEXTURE_IMAGE_UNITS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_RENDERBUFFER_SIZE, get(_constants.default.MAX_RENDERBUFFER_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VARYING_VECTORS, get(_constants.default.MAX_VARYING_VECTORS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_ATTRIBS, get(_constants.default.MAX_VERTEX_ATTRIBS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_UNIFORM_VECTORS, get(_constants.default.MAX_VERTEX_UNIFORM_VECTORS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_FRAGMENT_UNIFORM_VECTORS, get(_constants.default.MAX_FRAGMENT_UNIFORM_VECTORS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VIEWPORT_DIMS, get(_constants.default.MAX_VIEWPORT_DIMS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TEXTURE_MAX_ANISOTROPY_EXT, get(_constants.default.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_3D_TEXTURE_SIZE, get2(_constants.default.MAX_3D_TEXTURE_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_ARRAY_TEXTURE_LAYERS, get2(_constants.default.MAX_ARRAY_TEXTURE_LAYERS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_CLIENT_WAIT_TIMEOUT_WEBGL, get2(_constants.default.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COLOR_ATTACHMENTS, get2(_constants.default.MAX_COLOR_ATTACHMENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS, get2(_constants.default.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COMBINED_UNIFORM_BLOCKS, get2(_constants.default.MAX_COMBINED_UNIFORM_BLOCKS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, get2(_constants.default.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_DRAW_BUFFERS, get2(_constants.default.MAX_DRAW_BUFFERS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_ELEMENT_INDEX, get2(_constants.default.MAX_ELEMENT_INDEX)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_ELEMENTS_INDICES, get2(_constants.default.MAX_ELEMENTS_INDICES)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_ELEMENTS_VERTICES, get2(_constants.default.MAX_ELEMENTS_VERTICES)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_FRAGMENT_INPUT_COMPONENTS, get2(_constants.default.MAX_FRAGMENT_INPUT_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_FRAGMENT_UNIFORM_BLOCKS, get2(_constants.default.MAX_FRAGMENT_UNIFORM_BLOCKS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_FRAGMENT_UNIFORM_COMPONENTS, get2(_constants.default.MAX_FRAGMENT_UNIFORM_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_SAMPLES, get2(_constants.default.MAX_SAMPLES)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_SERVER_WAIT_TIMEOUT, get2(_constants.default.MAX_SERVER_WAIT_TIMEOUT)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TEXTURE_LOD_BIAS, get2(_constants.default.MAX_TEXTURE_LOD_BIAS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS, get2(_constants.default.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, get2(_constants.default.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS, get2(_constants.default.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_UNIFORM_BLOCK_SIZE, get2(_constants.default.MAX_UNIFORM_BLOCK_SIZE)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_UNIFORM_BUFFER_BINDINGS, get2(_constants.default.MAX_UNIFORM_BUFFER_BINDINGS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VARYING_COMPONENTS, get2(_constants.default.MAX_VARYING_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_OUTPUT_COMPONENTS, get2(_constants.default.MAX_VERTEX_OUTPUT_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_UNIFORM_BLOCKS, get2(_constants.default.MAX_VERTEX_UNIFORM_BLOCKS)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_VERTEX_UNIFORM_COMPONENTS, get2(_constants.default.MAX_VERTEX_UNIFORM_COMPONENTS)), (0, _defineProperty2.default)(_ref, _constants.default.MIN_PROGRAM_TEXEL_OFFSET, get2(_constants.default.MIN_PROGRAM_TEXEL_OFFSET)), (0, _defineProperty2.default)(_ref, _constants.default.MAX_PROGRAM_TEXEL_OFFSET, get2(_constants.default.MAX_PROGRAM_TEXEL_OFFSET)), (0, _defineProperty2.default)(_ref, _constants.default.UNIFORM_BUFFER_OFFSET_ALIGNMENT, get2(_constants.default.UNIFORM_BUFFER_OFFSET_ALIGNMENT)), _ref;
53
- }
54
- //# sourceMappingURL=device-limits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"device-limits.js","names":["_constants","_interopRequireDefault","require","_webglChecks","getDeviceLimits","gl","gl2","getWebGL2Context","maxTextureDimension1D","maxTextureDimension2D","getParameter","GL","MAX_TEXTURE_SIZE","maxTextureDimension3D","MAX_3D_TEXTURE_SIZE","maxTextureArrayLayers","MAX_ARRAY_TEXTURE_LAYERS","maxBindGroups","maxDynamicUniformBuffersPerPipelineLayout","maxDynamicStorageBuffersPerPipelineLayout","maxSampledTexturesPerShaderStage","MAX_VERTEX_TEXTURE_IMAGE_UNITS","maxSamplersPerShaderStage","MAX_COMBINED_TEXTURE_IMAGE_UNITS","maxStorageBuffersPerShaderStage","maxStorageTexturesPerShaderStage","maxUniformBuffersPerShaderStage","MAX_UNIFORM_BUFFER_BINDINGS","maxUniformBufferBindingSize","MAX_UNIFORM_BLOCK_SIZE","maxStorageBufferBindingSize","minUniformBufferOffsetAlignment","UNIFORM_BUFFER_OFFSET_ALIGNMENT","minStorageBufferOffsetAlignment","maxVertexBuffers","maxVertexAttributes","MAX_VERTEX_ATTRIBS","maxVertexBufferArrayStride","maxInterStageShaderComponents","MAX_VARYING_COMPONENTS","maxComputeWorkgroupStorageSize","maxComputeInvocationsPerWorkgroup","maxComputeWorkgroupSizeX","maxComputeWorkgroupSizeY","maxComputeWorkgroupSizeZ","maxComputeWorkgroupsPerDimension","getWebGLLimits","_ref","get","pname","get2","defaultValue","_defineProperty2","default","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_TEXTURE_IMAGE_UNITS","MAX_RENDERBUFFER_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_UNIFORM_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_CLIENT_WAIT_TIMEOUT_WEBGL","MAX_COLOR_ATTACHMENTS","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_DRAW_BUFFERS","MAX_ELEMENT_INDEX","MAX_ELEMENTS_INDICES","MAX_ELEMENTS_VERTICES","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_SAMPLES","MAX_SERVER_WAIT_TIMEOUT","MAX_TEXTURE_LOD_BIAS","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_VERTEX_UNIFORM_BLOCKS","MAX_VERTEX_UNIFORM_COMPONENTS","MIN_PROGRAM_TEXEL_OFFSET","MAX_PROGRAM_TEXEL_OFFSET"],"sources":["../../../../src/adapter/device-helpers/device-limits.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {DeviceLimits} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getWebGL2Context} from '../../context/context/webgl-checks';\n\n/** Populate a WebGPU style device limits */\nexport function getDeviceLimits(gl: WebGLRenderingContext): DeviceLimits {\n const gl2: WebGL2RenderingContext | null = getWebGL2Context(gl);\n return {\n maxTextureDimension1D: 0, // WebGL does not support 1D textures\n maxTextureDimension2D: gl.getParameter(GL.MAX_TEXTURE_SIZE),\n maxTextureDimension3D: gl2 ? gl2.getParameter(GL.MAX_3D_TEXTURE_SIZE) : 0,\n maxTextureArrayLayers: gl2 ? gl2.getParameter(GL.MAX_ARRAY_TEXTURE_LAYERS) : 0,\n maxBindGroups: 1, // TBD\n maxDynamicUniformBuffersPerPipelineLayout: 0, // TBD\n maxDynamicStorageBuffersPerPipelineLayout: 0, // TBD\n maxSampledTexturesPerShaderStage: gl.getParameter(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // TBD\n maxSamplersPerShaderStage: gl.getParameter(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n maxStorageBuffersPerShaderStage: 0, // TBD\n maxStorageTexturesPerShaderStage: 0, // TBD\n maxUniformBuffersPerShaderStage: gl2 ? gl2.getParameter(GL.MAX_UNIFORM_BUFFER_BINDINGS) : 0,\n maxUniformBufferBindingSize: gl2 ? gl2.getParameter(GL.MAX_UNIFORM_BLOCK_SIZE) : 0,\n maxStorageBufferBindingSize: 0,\n minUniformBufferOffsetAlignment: gl2 ? gl2.getParameter(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) : 0,\n minStorageBufferOffsetAlignment: 0, // TBD\n maxVertexBuffers: 0,\n maxVertexAttributes: gl.getParameter(GL.MAX_VERTEX_ATTRIBS),\n maxVertexBufferArrayStride: 2048, // TBD, this is just the default value from WebGPU\n maxInterStageShaderComponents: gl2 ? gl2.getParameter(GL.MAX_VARYING_COMPONENTS) : 0,\n maxComputeWorkgroupStorageSize: 0, // WebGL does not support compute shaders\n maxComputeInvocationsPerWorkgroup: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeX: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeY: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeZ: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupsPerDimension: 0, // WebGL does not support compute shaders\n }\n}\n\n/** WebGL context limits */\nexport type WebGLLimits = {\n [GL.ALIASED_LINE_WIDTH_RANGE]: [number, number];\n [GL.ALIASED_POINT_SIZE_RANGE]: [number, number];\n [GL.MAX_TEXTURE_SIZE]: number;\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: number;\n [GL.MAX_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_RENDERBUFFER_SIZE]: number;\n [GL.MAX_VARYING_VECTORS]: number;\n [GL.MAX_VERTEX_ATTRIBS]: number;\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: number;\n [GL.MAX_VIEWPORT_DIMS]: [number, number];\n\n // Extensions\n [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: number;\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: number;\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: number;\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: number;\n [GL.MAX_COLOR_ATTACHMENTS]: number;\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: number;\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: number;\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: number;\n [GL.MAX_DRAW_BUFFERS]: number;\n [GL.MAX_ELEMENT_INDEX]: number;\n [GL.MAX_ELEMENTS_INDICES]: number;\n [GL.MAX_ELEMENTS_VERTICES]: number;\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: number;\n [GL.MAX_SAMPLES]: number;\n [GL.MAX_SERVER_WAIT_TIMEOUT]: number;\n [GL.MAX_TEXTURE_LOD_BIAS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: number;\n [GL.MAX_UNIFORM_BLOCK_SIZE]: number;\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: number;\n [GL.MAX_VARYING_COMPONENTS]: number;\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: number;\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: number;\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: number;\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: number;\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: number;\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: number;\n};\n\n\nexport function getWebGLLimits(gl: WebGLRenderingContext): WebGLLimits {\n const gl2 = getWebGL2Context(gl);\n function get<T = number>(pname: number): T {\n return gl.getParameter(pname) as T;\n }\n function get2(pname: number, defaultValue?: number): number;\n function get2<T>(pname: number, defaultValue: T): T;\n function get2<T>(pname: number, defaultValue: T): T {\n return gl2 ? gl2.getParameter(pname) as T : (defaultValue || 0) as T;\n }\n // function getMaxAnistropy() {\n // const extension = gl.getExtension('EXT_texture_filter_anisotropic');\n // }\n return {\n [GL.ALIASED_LINE_WIDTH_RANGE]: get(GL.ALIASED_LINE_WIDTH_RANGE),\n [GL.ALIASED_POINT_SIZE_RANGE]: get(GL.ALIASED_POINT_SIZE_RANGE),\n [GL.MAX_TEXTURE_SIZE]: get(GL.MAX_TEXTURE_SIZE),\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: get(GL.MAX_CUBE_MAP_TEXTURE_SIZE), // GLint\n [GL.MAX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: get(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_RENDERBUFFER_SIZE]: get(GL.MAX_RENDERBUFFER_SIZE), // GLint\n [GL.MAX_VARYING_VECTORS]: get(GL.MAX_VARYING_VECTORS), // GLint\n [GL.MAX_VERTEX_ATTRIBS]: get(GL.MAX_VERTEX_ATTRIBS), // GLint\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: get(GL.MAX_VERTEX_UNIFORM_VECTORS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: get(GL.MAX_FRAGMENT_UNIFORM_VECTORS), // GLint\n [GL.MAX_VIEWPORT_DIMS]: get(GL.MAX_VIEWPORT_DIMS),\n\n // Extensions\n [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: get(GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT), // getMaxAnistropy(),\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: get2(GL.MAX_3D_TEXTURE_SIZE), // GLint\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: get2(GL.MAX_ARRAY_TEXTURE_LAYERS), // GLint\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: get2(GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL), // GLint64\n [GL.MAX_COLOR_ATTACHMENTS]: get2(GL.MAX_COLOR_ATTACHMENTS), // GLint\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS), // GLint64\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: get2(GL.MAX_COMBINED_UNIFORM_BLOCKS), // GLint\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS), // GLint64\n [GL.MAX_DRAW_BUFFERS]: get2(GL.MAX_DRAW_BUFFERS), // GLint\n [GL.MAX_ELEMENT_INDEX]: get2(GL.MAX_ELEMENT_INDEX), // GLint64\n [GL.MAX_ELEMENTS_INDICES]: get2(GL.MAX_ELEMENTS_INDICES), // GLint\n [GL.MAX_ELEMENTS_VERTICES]: get2(GL.MAX_ELEMENTS_VERTICES), // GLint\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: get2(GL.MAX_FRAGMENT_INPUT_COMPONENTS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: get2(GL.MAX_FRAGMENT_UNIFORM_BLOCKS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_FRAGMENT_UNIFORM_COMPONENTS), // GLint\n [GL.MAX_SAMPLES]: get2(GL.MAX_SAMPLES), // GLint\n [GL.MAX_SERVER_WAIT_TIMEOUT]: get2(GL.MAX_SERVER_WAIT_TIMEOUT), // GLint64\n [GL.MAX_TEXTURE_LOD_BIAS]: get2(GL.MAX_TEXTURE_LOD_BIAS), // GLfloat\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS), // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS), // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS), // GLint\n [GL.MAX_UNIFORM_BLOCK_SIZE]: get2(GL.MAX_UNIFORM_BLOCK_SIZE), // GLint64\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: get2(GL.MAX_UNIFORM_BUFFER_BINDINGS), // GLint\n [GL.MAX_VARYING_COMPONENTS]: get2(GL.MAX_VARYING_COMPONENTS), // GLint\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: get2(GL.MAX_VERTEX_OUTPUT_COMPONENTS), // GLint\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: get2(GL.MAX_VERTEX_UNIFORM_BLOCKS), // GLint\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_VERTEX_UNIFORM_COMPONENTS), // GLint\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: get2(GL.MIN_PROGRAM_TEXEL_OFFSET), // GLint\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: get2(GL.MAX_PROGRAM_TEXEL_OFFSET), // GLint\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: get2(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) // GLint\n };\n}\n"],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getDeviceInfo = getDeviceInfo;
8
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
9
- var _webglChecks = require("../../context/context/webgl-checks");
10
- function getDeviceInfo(gl) {
11
- var vendorMasked = gl.getParameter(_constants.default.VENDOR);
12
- var rendererMasked = gl.getParameter(_constants.default.RENDERER);
13
- var ext = gl.getExtension('WEBGL_debug_renderer_info');
14
- var vendorUnmasked = gl.getParameter(ext ? ext.UNMASKED_VENDOR_WEBGL : _constants.default.VENDOR);
15
- var rendererUnmasked = gl.getParameter(ext ? ext.UNMASKED_RENDERER_WEBGL : _constants.default.RENDERER);
16
- var vendor = vendorUnmasked || vendorMasked;
17
- var renderer = rendererUnmasked || rendererMasked;
18
- var gpu = identifyGPUVendor(vendor, renderer);
19
- return {
20
- type: (0, _webglChecks.isWebGL2)(gl) ? 'webgl2' : 'webgl',
21
- gpu: gpu,
22
- vendor: vendorUnmasked || vendorMasked,
23
- renderer: rendererUnmasked || rendererMasked,
24
- version: gl.getParameter(_constants.default.VERSION),
25
- shadingLanguages: ['glsl'],
26
- shadingLanguageVersions: {
27
- 'glsl': gl.getParameter(_constants.default.SHADING_LANGUAGE_VERSION)
28
- }
29
- };
30
- }
31
- function identifyGPUVendor(vendor, renderer) {
32
- if (vendor.match(/NVIDIA/i) || renderer.match(/NVIDIA/i)) {
33
- return 'nvidia';
34
- }
35
- if (vendor.match(/INTEL/i) || renderer.match(/INTEL/i)) {
36
- return 'intel';
37
- }
38
- if (vendor.match(/Apple/i) || renderer.match(/Apple/i)) {
39
- return 'apple';
40
- }
41
- if (vendor.match(/AMD/i) || renderer.match(/AMD/i) || vendor.match(/ATI/i) || renderer.match(/ATI/i)) {
42
- return 'amd';
43
- }
44
- if (vendor.match(/SwiftShader/i) || renderer.match(/SwiftShader/i)) {
45
- return 'software';
46
- }
47
- return 'unknown';
48
- }
49
- //# sourceMappingURL=get-device-info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-device-info.js","names":["_constants","_interopRequireDefault","require","_webglChecks","getDeviceInfo","gl","vendorMasked","getParameter","GL","VENDOR","rendererMasked","RENDERER","ext","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","vendor","renderer","gpu","identifyGPUVendor","type","isWebGL2","version","VERSION","shadingLanguages","shadingLanguageVersions","SHADING_LANGUAGE_VERSION","match"],"sources":["../../../../src/adapter/device-helpers/get-device-info.ts"],"sourcesContent":["import {DeviceInfo} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\n/** @returns strings identifying the GPU vendor and driver. */\nexport function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo {\n const vendorMasked = gl.getParameter(GL.VENDOR);\n const rendererMasked = gl.getParameter(GL.RENDERER);\n // Get unmasked strings if available\n // https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/\n const ext = gl.getExtension('WEBGL_debug_renderer_info');\n const vendorUnmasked = gl.getParameter(ext ? ext.UNMASKED_VENDOR_WEBGL : GL.VENDOR);\n const rendererUnmasked = gl.getParameter(ext ? ext.UNMASKED_RENDERER_WEBGL : GL.RENDERER);\n const vendor = vendorUnmasked || vendorMasked;\n const renderer = rendererUnmasked || rendererMasked;\n const gpu = identifyGPUVendor(vendor, renderer);\n return {\n type: isWebGL2(gl) ? 'webgl2' : 'webgl',\n gpu,\n vendor: vendorUnmasked || vendorMasked,\n renderer: rendererUnmasked || rendererMasked,\n version: gl.getParameter(GL.VERSION),\n shadingLanguages: ['glsl'],\n shadingLanguageVersions: {\n 'glsl': gl.getParameter(GL.SHADING_LANGUAGE_VERSION) as string\n }\n };\n}\n\nfunction identifyGPUVendor(vendor: string, renderer: string): 'nvidia' | 'intel' | 'apple' | 'amd' | 'software' | 'unknown' {\n if (vendor.match(/NVIDIA/i) || renderer.match(/NVIDIA/i)) {\n return 'nvidia';\n }\n if (vendor.match(/INTEL/i) || renderer.match(/INTEL/i)) {\n return 'intel';\n }\n if (vendor.match(/Apple/i) || renderer.match(/Apple/i)) {\n return 'apple';\n }\n if (\n vendor.match(/AMD/i) ||\n renderer.match(/AMD/i) ||\n vendor.match(/ATI/i) ||\n renderer.match(/ATI/i)\n ) {\n return 'amd';\n }\n if (vendor.match(/SwiftShader/i) || renderer.match(/SwiftShader/i)) {\n return 'software';\n }\n \n return 'unknown';\n}\n"],"mappings":";;;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGO,SAASE,aAAaA,CAACC,EAAyB,EAAc;EACnE,IAAMC,YAAY,GAAGD,EAAE,CAACE,YAAY,CAACC,kBAAE,CAACC,MAAM,CAAC;EAC/C,IAAMC,cAAc,GAAGL,EAAE,CAACE,YAAY,CAACC,kBAAE,CAACG,QAAQ,CAAC;EAGnD,IAAMC,GAAG,GAAGP,EAAE,CAACQ,YAAY,CAAC,2BAA2B,CAAC;EACxD,IAAMC,cAAc,GAAGT,EAAE,CAACE,YAAY,CAACK,GAAG,GAAGA,GAAG,CAACG,qBAAqB,GAAGP,kBAAE,CAACC,MAAM,CAAC;EACnF,IAAMO,gBAAgB,GAAGX,EAAE,CAACE,YAAY,CAACK,GAAG,GAAGA,GAAG,CAACK,uBAAuB,GAAGT,kBAAE,CAACG,QAAQ,CAAC;EACzF,IAAMO,MAAM,GAAGJ,cAAc,IAAIR,YAAY;EAC7C,IAAMa,QAAQ,GAAGH,gBAAgB,IAAIN,cAAc;EACnD,IAAMU,GAAG,GAAGC,iBAAiB,CAACH,MAAM,EAAEC,QAAQ,CAAC;EAC/C,OAAO;IACLG,IAAI,EAAE,IAAAC,qBAAQ,EAAClB,EAAE,CAAC,GAAG,QAAQ,GAAG,OAAO;IACvCe,GAAG,EAAHA,GAAG;IACHF,MAAM,EAAEJ,cAAc,IAAIR,YAAY;IACtCa,QAAQ,EAAEH,gBAAgB,IAAIN,cAAc;IAC5Cc,OAAO,EAAEnB,EAAE,CAACE,YAAY,CAACC,kBAAE,CAACiB,OAAO,CAAC;IACpCC,gBAAgB,EAAE,CAAC,MAAM,CAAC;IAC1BC,uBAAuB,EAAE;MACvB,MAAM,EAAEtB,EAAE,CAACE,YAAY,CAACC,kBAAE,CAACoB,wBAAwB;IACrD;EACF,CAAC;AACH;AAEA,SAASP,iBAAiBA,CAACH,MAAc,EAAEC,QAAgB,EAAiE;EAC1H,IAAID,MAAM,CAACW,KAAK,CAAC,SAAS,CAAC,IAAIV,QAAQ,CAACU,KAAK,CAAC,SAAS,CAAC,EAAE;IACxD,OAAO,QAAQ;EACjB;EACA,IAAIX,MAAM,CAACW,KAAK,CAAC,QAAQ,CAAC,IAAIV,QAAQ,CAACU,KAAK,CAAC,QAAQ,CAAC,EAAE;IACtD,OAAO,OAAO;EAChB;EACA,IAAIX,MAAM,CAACW,KAAK,CAAC,QAAQ,CAAC,IAAIV,QAAQ,CAACU,KAAK,CAAC,QAAQ,CAAC,EAAE;IACtD,OAAO,OAAO;EAChB;EACA,IACEX,MAAM,CAACW,KAAK,CAAC,MAAM,CAAC,IACpBV,QAAQ,CAACU,KAAK,CAAC,MAAM,CAAC,IACtBX,MAAM,CAACW,KAAK,CAAC,MAAM,CAAC,IACpBV,QAAQ,CAACU,KAAK,CAAC,MAAM,CAAC,EACtB;IACA,OAAO,KAAK;EACd;EACA,IAAIX,MAAM,CAACW,KAAK,CAAC,cAAc,CAAC,IAAIV,QAAQ,CAACU,KAAK,CAAC,cAAc,CAAC,EAAE;IAClE,OAAO,UAAU;EACnB;EAEA,OAAO,SAAS;AAClB"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.isOldIE = isOldIE;
7
- function isOldIE() {
8
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9
- var navigator = typeof window !== 'undefined' ? window.navigator || {} : {};
10
- var userAgent = opts.userAgent || navigator.userAgent || '';
11
- var isMSIE = userAgent.indexOf('MSIE ') !== -1;
12
- var isTrident = userAgent.indexOf('Trident/') !== -1;
13
- return isMSIE || isTrident;
14
- }
15
- //# sourceMappingURL=is-old-ie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-old-ie.js","names":["isOldIE","opts","arguments","length","undefined","navigator","window","userAgent","isMSIE","indexOf","isTrident"],"sources":["../../../../src/adapter/device-helpers/is-old-ie.ts"],"sourcesContent":["// opts allows user agent to be overridden for testing\nexport function isOldIE(opts = {}) {\n const navigator = typeof window !== 'undefined' ? window.navigator || {} : {};\n // @ts-expect-error\n const userAgent = opts.userAgent || navigator.userAgent || '';\n // We only care about older versions of IE (IE 11 and below). Newer versions of IE (Edge)\n // have much better web standards support.\n const isMSIE = userAgent.indexOf('MSIE ') !== -1;\n const isTrident = userAgent.indexOf('Trident/') !== -1;\n return isMSIE || isTrident;\n}\n"],"mappings":";;;;;;AACO,SAASA,OAAOA,CAAA,EAAY;EAAA,IAAXC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC/B,IAAMG,SAAS,GAAG,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,CAACD,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;EAE7E,IAAME,SAAS,GAAGN,IAAI,CAACM,SAAS,IAAIF,SAAS,CAACE,SAAS,IAAI,EAAE;EAG7D,IAAMC,MAAM,GAAGD,SAAS,CAACE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;EAChD,IAAMC,SAAS,GAAGH,SAAS,CAACE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;EACtD,OAAOD,MAAM,IAAIE,SAAS;AAC5B"}
@@ -1,69 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getPrimitiveCount = getPrimitiveCount;
8
- exports.getPrimitiveDrawMode = getPrimitiveDrawMode;
9
- exports.getVertexCount = getVertexCount;
10
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
11
- function getPrimitiveDrawMode(drawMode) {
12
- switch (drawMode) {
13
- case _constants.default.POINTS:
14
- return _constants.default.POINTS;
15
- case _constants.default.LINES:
16
- return _constants.default.LINES;
17
- case _constants.default.LINE_STRIP:
18
- return _constants.default.LINES;
19
- case _constants.default.LINE_LOOP:
20
- return _constants.default.LINES;
21
- case _constants.default.TRIANGLES:
22
- return _constants.default.TRIANGLES;
23
- case _constants.default.TRIANGLE_STRIP:
24
- return _constants.default.TRIANGLES;
25
- case _constants.default.TRIANGLE_FAN:
26
- return _constants.default.TRIANGLES;
27
- default:
28
- throw new Error('drawMode');
29
- }
30
- }
31
- function getPrimitiveCount(options) {
32
- var drawMode = options.drawMode,
33
- vertexCount = options.vertexCount;
34
- switch (drawMode) {
35
- case _constants.default.POINTS:
36
- case _constants.default.LINE_LOOP:
37
- return vertexCount;
38
- case _constants.default.LINES:
39
- return vertexCount / 2;
40
- case _constants.default.LINE_STRIP:
41
- return vertexCount - 1;
42
- case _constants.default.TRIANGLES:
43
- return vertexCount / 3;
44
- case _constants.default.TRIANGLE_STRIP:
45
- case _constants.default.TRIANGLE_FAN:
46
- return vertexCount - 2;
47
- default:
48
- throw new Error('drawMode');
49
- }
50
- }
51
- function getVertexCount(options) {
52
- var drawMode = options.drawMode,
53
- vertexCount = options.vertexCount;
54
- var primitiveCount = getPrimitiveCount({
55
- drawMode: drawMode,
56
- vertexCount: vertexCount
57
- });
58
- switch (getPrimitiveDrawMode(drawMode)) {
59
- case _constants.default.POINTS:
60
- return primitiveCount;
61
- case _constants.default.LINES:
62
- return primitiveCount * 2;
63
- case _constants.default.TRIANGLES:
64
- return primitiveCount * 3;
65
- default:
66
- throw new Error('drawMode');
67
- }
68
- }
69
- //# sourceMappingURL=attribute-utils.js.map