@luma.gl/webgl 8.5.8 → 8.6.0-alpha.2

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 (763) hide show
  1. package/dist/api/device2.d.ts +52 -0
  2. package/dist/api/device2.d.ts.map +1 -0
  3. package/dist/api/device2.js +23 -0
  4. package/dist/api/device2.js.map +1 -0
  5. package/dist/bundle.d.ts +2 -0
  6. package/dist/bundle.d.ts.map +1 -0
  7. package/dist/bundle.js +5 -0
  8. package/dist/bundle.js.map +1 -0
  9. package/dist/classes/accessor.d.ts +28 -0
  10. package/dist/classes/accessor.d.ts.map +1 -0
  11. package/dist/classes/accessor.js +112 -0
  12. package/dist/classes/accessor.js.map +1 -0
  13. package/dist/classes/accessor.ts.disabled +159 -0
  14. package/dist/classes/clear.d.ts +17 -0
  15. package/dist/classes/clear.d.ts.map +1 -0
  16. package/{src → dist}/classes/clear.js +29 -23
  17. package/dist/classes/clear.js.map +1 -0
  18. package/dist/classes/copy-and-blit.d.ts +86 -0
  19. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  20. package/dist/classes/copy-and-blit.js +338 -0
  21. package/dist/classes/copy-and-blit.js.map +1 -0
  22. package/dist/classes/framebuffer.d.ts +139 -0
  23. package/dist/classes/framebuffer.d.ts.map +1 -0
  24. package/dist/classes/framebuffer.js +656 -0
  25. package/dist/classes/framebuffer.js.map +1 -0
  26. package/dist/classes/program-configuration.d.ts +27 -0
  27. package/dist/classes/program-configuration.d.ts.map +1 -0
  28. package/dist/classes/program-configuration.js +160 -0
  29. package/dist/classes/program-configuration.js.map +1 -0
  30. package/dist/classes/program.d.ts +61 -0
  31. package/dist/classes/program.d.ts.map +1 -0
  32. package/dist/classes/program.js +370 -0
  33. package/dist/classes/program.js.map +1 -0
  34. package/dist/classes/query.d.ts +27 -0
  35. package/dist/classes/query.d.ts.map +1 -0
  36. package/dist/classes/query.js +145 -0
  37. package/dist/classes/query.js.map +1 -0
  38. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  39. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  40. package/dist/classes/renderbuffer-formats.js +185 -0
  41. package/dist/classes/renderbuffer-formats.js.map +1 -0
  42. package/dist/classes/renderbuffer.d.ts +60 -0
  43. package/dist/classes/renderbuffer.d.ts.map +1 -0
  44. package/dist/classes/renderbuffer.js +128 -0
  45. package/dist/classes/renderbuffer.js.map +1 -0
  46. package/dist/classes/texture-2d.d.ts +9 -0
  47. package/dist/classes/texture-2d.d.ts.map +1 -0
  48. package/dist/classes/texture-2d.js +36 -0
  49. package/dist/classes/texture-2d.js.map +1 -0
  50. package/dist/classes/texture-3d.d.ts +29 -0
  51. package/dist/classes/texture-3d.d.ts.map +1 -0
  52. package/dist/classes/texture-3d.js +76 -0
  53. package/dist/classes/texture-3d.js.map +1 -0
  54. package/dist/classes/texture-cube.d.ts +28 -0
  55. package/dist/classes/texture-cube.d.ts.map +1 -0
  56. package/dist/classes/texture-cube.js +130 -0
  57. package/dist/classes/texture-cube.js.map +1 -0
  58. package/dist/classes/texture-formats.d.ts +37 -0
  59. package/dist/classes/texture-formats.d.ts.map +1 -0
  60. package/dist/classes/texture-formats.js +98 -0
  61. package/dist/classes/texture-formats.js.map +1 -0
  62. package/dist/classes/texture.d.ts +123 -0
  63. package/dist/classes/texture.d.ts.map +1 -0
  64. package/dist/classes/texture.js +786 -0
  65. package/dist/classes/texture.js.map +1 -0
  66. package/dist/classes/transform-feedback.d.ts +33 -0
  67. package/dist/classes/transform-feedback.d.ts.map +1 -0
  68. package/dist/classes/transform-feedback.js +198 -0
  69. package/dist/classes/transform-feedback.js.map +1 -0
  70. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  71. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  72. package/dist/classes/uniform-buffer-layout.js +104 -0
  73. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  74. package/dist/classes/uniforms.d.ts +37 -0
  75. package/dist/classes/uniforms.d.ts.map +1 -0
  76. package/dist/classes/uniforms.js +250 -0
  77. package/dist/classes/uniforms.js.map +1 -0
  78. package/dist/classes/vertex-array-object.d.ts +75 -0
  79. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  80. package/dist/classes/vertex-array-object.js +261 -0
  81. package/dist/classes/vertex-array-object.js.map +1 -0
  82. package/dist/classes/vertex-array.d.ts +75 -0
  83. package/dist/classes/vertex-array.d.ts.map +1 -0
  84. package/dist/classes/vertex-array.js +408 -0
  85. package/dist/classes/vertex-array.js.map +1 -0
  86. package/dist/classes/webgl-buffer.d.ts +100 -0
  87. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  88. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
  89. package/dist/classes/webgl-buffer.js.map +1 -0
  90. package/dist/classes/webgl-resource.d.ts +56 -0
  91. package/dist/classes/webgl-resource.d.ts.map +1 -0
  92. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
  93. package/dist/classes/webgl-resource.js.map +1 -0
  94. package/dist/classes/webgl-shader.d.ts +53 -0
  95. package/dist/classes/webgl-shader.d.ts.map +1 -0
  96. package/dist/classes/webgl-shader.js +193 -0
  97. package/dist/classes/webgl-shader.js.map +1 -0
  98. package/dist/context/context/context-state.d.ts +18 -0
  99. package/dist/context/context/context-state.d.ts.map +1 -0
  100. package/dist/context/context/context-state.js +26 -0
  101. package/dist/context/context/context-state.js.map +1 -0
  102. package/dist/context/context/create-context.d.ts +40 -0
  103. package/dist/context/context/create-context.d.ts.map +1 -0
  104. package/dist/context/context/create-context.js +37 -0
  105. package/dist/context/context/create-context.js.map +1 -0
  106. package/dist/context/context/device-pixels.d.ts +25 -0
  107. package/dist/context/context/device-pixels.d.ts.map +1 -0
  108. package/dist/context/context/device-pixels.js +98 -0
  109. package/dist/context/context/device-pixels.js.map +1 -0
  110. package/dist/context/context/get-canvas.d.ts +13 -0
  111. package/dist/context/context/get-canvas.d.ts.map +1 -0
  112. package/dist/context/context/get-canvas.js +31 -0
  113. package/dist/context/context/get-canvas.js.map +1 -0
  114. package/dist/context/context/resize-context.d.ts +20 -0
  115. package/dist/context/context/resize-context.d.ts.map +1 -0
  116. package/dist/context/context/resize-context.js +15 -0
  117. package/dist/context/context/resize-context.js.map +1 -0
  118. package/dist/context/context/webgl-checks.d.ts +13 -0
  119. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  120. package/dist/context/context/webgl-checks.js +34 -0
  121. package/dist/context/context/webgl-checks.js.map +1 -0
  122. package/dist/context/parameters/unified-parameter-api.d.ts +30 -0
  123. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  124. package/dist/context/parameters/unified-parameter-api.js +65 -0
  125. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  126. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  127. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  128. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  129. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  130. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  131. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  132. package/dist/context/parameters/webgl-parameters.js +2 -0
  133. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  134. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  135. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  136. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  137. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  138. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  139. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  140. package/dist/context/polyfill/polyfill-context.js +91 -0
  141. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  142. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  143. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  144. package/dist/context/polyfill/polyfill-table.js +160 -0
  145. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  146. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  147. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  148. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  149. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  150. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  151. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  152. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  153. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  154. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  155. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  156. package/dist/context/state-tracker/track-context-state.js +169 -0
  157. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  158. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  159. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  160. package/dist/context/state-tracker/with-parameters.js +36 -0
  161. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  162. package/dist/debug/debug-program-configuration.d.ts +2 -0
  163. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  164. package/dist/debug/debug-program-configuration.js +40 -0
  165. package/dist/debug/debug-program-configuration.js.map +1 -0
  166. package/dist/debug/debug-uniforms.d.ts +12 -0
  167. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  168. package/dist/debug/debug-uniforms.js +108 -0
  169. package/dist/debug/debug-uniforms.js.map +1 -0
  170. package/dist/debug/debug-vertex-array.d.ts +5 -0
  171. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  172. package/dist/debug/debug-vertex-array.js +118 -0
  173. package/dist/debug/debug-vertex-array.js.map +1 -0
  174. package/dist/device/check-glsl-extension.d.ts +4 -0
  175. package/dist/device/check-glsl-extension.d.ts.map +1 -0
  176. package/dist/device/check-glsl-extension.js +22 -0
  177. package/dist/device/check-glsl-extension.js.map +1 -0
  178. package/dist/device/device-features.d.ts +12 -0
  179. package/dist/device/device-features.d.ts.map +1 -0
  180. package/dist/device/device-features.js +123 -0
  181. package/dist/device/device-features.js.map +1 -0
  182. package/dist/device/device-limits.d.ts +51 -0
  183. package/dist/device/device-limits.d.ts.map +1 -0
  184. package/dist/device/device-limits.js +90 -0
  185. package/dist/device/device-limits.js.map +1 -0
  186. package/dist/device/get-device-info.d.ts +4 -0
  187. package/dist/device/get-device-info.d.ts.map +1 -0
  188. package/dist/device/get-device-info.js +44 -0
  189. package/dist/device/get-device-info.js.map +1 -0
  190. package/dist/device/webgl-device.d.ts +111 -0
  191. package/dist/device/webgl-device.d.ts.map +1 -0
  192. package/dist/device/webgl-device.js +208 -0
  193. package/dist/device/webgl-device.js.map +1 -0
  194. package/dist/es5/api/device2.js +42 -0
  195. package/dist/es5/api/device2.js.map +1 -0
  196. package/dist/es5/bundle.js +2 -4
  197. package/dist/es5/bundle.js.map +1 -1
  198. package/dist/es5/classes/accessor.js +36 -38
  199. package/dist/es5/classes/accessor.js.map +1 -1
  200. package/dist/es5/classes/accessor.ts.disabled +159 -0
  201. package/dist/es5/classes/clear.js +17 -11
  202. package/dist/es5/classes/clear.js.map +1 -1
  203. package/dist/es5/classes/copy-and-blit.js +121 -117
  204. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  205. package/dist/es5/classes/framebuffer.js +435 -423
  206. package/dist/es5/classes/framebuffer.js.map +1 -1
  207. package/dist/es5/classes/program-configuration.js +14 -11
  208. package/dist/es5/classes/program-configuration.js.map +1 -1
  209. package/dist/es5/classes/program.js +79 -67
  210. package/dist/es5/classes/program.js.map +1 -1
  211. package/dist/es5/classes/query.js +58 -59
  212. package/dist/es5/classes/query.js.map +1 -1
  213. package/dist/es5/classes/renderbuffer-formats.js +79 -52
  214. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  215. package/dist/es5/classes/renderbuffer.js +129 -100
  216. package/dist/es5/classes/renderbuffer.js.map +1 -1
  217. package/dist/es5/classes/texture-2d.js +25 -21
  218. package/dist/es5/classes/texture-2d.js.map +1 -1
  219. package/dist/es5/classes/texture-3d.js +49 -29
  220. package/dist/es5/classes/texture-3d.js.map +1 -1
  221. package/dist/es5/classes/texture-cube.js +45 -36
  222. package/dist/es5/classes/texture-cube.js.map +1 -1
  223. package/dist/es5/classes/texture-formats.js +35 -33
  224. package/dist/es5/classes/texture-formats.js.map +1 -1
  225. package/dist/es5/classes/texture.js +213 -101
  226. package/dist/es5/classes/texture.js.map +1 -1
  227. package/dist/es5/classes/transform-feedback.js +37 -34
  228. package/dist/es5/classes/transform-feedback.js.map +1 -1
  229. package/dist/es5/classes/uniform-buffer-layout.js +4 -4
  230. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  231. package/dist/es5/classes/uniforms.js +73 -73
  232. package/dist/es5/classes/uniforms.js.map +1 -1
  233. package/dist/es5/classes/vertex-array-object.js +106 -149
  234. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  235. package/dist/es5/classes/vertex-array.js +47 -38
  236. package/dist/es5/classes/vertex-array.js.map +1 -1
  237. package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
  238. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  239. package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
  240. package/dist/es5/classes/webgl-resource.js.map +1 -0
  241. package/dist/es5/classes/webgl-shader.js +309 -0
  242. package/dist/es5/classes/webgl-shader.js.map +1 -0
  243. package/dist/es5/context/context/context-state.js +31 -0
  244. package/dist/es5/context/context/context-state.js.map +1 -0
  245. package/dist/es5/context/context/create-context.js +57 -0
  246. package/dist/es5/context/context/create-context.js.map +1 -0
  247. package/dist/es5/context/context/device-pixels.js +115 -0
  248. package/dist/es5/context/context/device-pixels.js.map +1 -0
  249. package/dist/es5/context/context/get-canvas.js +40 -0
  250. package/dist/es5/context/context/get-canvas.js.map +1 -0
  251. package/dist/es5/context/context/resize-context.js +23 -0
  252. package/dist/es5/context/context/resize-context.js.map +1 -0
  253. package/dist/es5/context/context/webgl-checks.js +54 -0
  254. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  255. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  256. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  257. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  258. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  259. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  260. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  261. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  262. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  263. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  264. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  265. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  266. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  267. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  268. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  269. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  270. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  271. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  272. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  273. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  274. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  275. package/dist/es5/debug/debug-program-configuration.js +1 -1
  276. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  277. package/dist/es5/debug/debug-uniforms.js +18 -20
  278. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  279. package/dist/es5/debug/debug-vertex-array.js +16 -16
  280. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  281. package/dist/es5/device/check-glsl-extension.js +33 -0
  282. package/dist/es5/device/check-glsl-extension.js.map +1 -0
  283. package/dist/es5/device/device-features.js +152 -0
  284. package/dist/es5/device/device-features.js.map +1 -0
  285. package/dist/es5/device/device-limits.js +64 -0
  286. package/dist/es5/device/device-limits.js.map +1 -0
  287. package/dist/es5/device/get-device-info.js +55 -0
  288. package/dist/es5/device/get-device-info.js.map +1 -0
  289. package/dist/es5/device/webgl-device.js +279 -0
  290. package/dist/es5/device/webgl-device.js.map +1 -0
  291. package/dist/es5/index.js +140 -96
  292. package/dist/es5/index.js.map +1 -1
  293. package/dist/es5/init.js +21 -41
  294. package/dist/es5/init.js.map +1 -1
  295. package/dist/es5/types.js +2 -0
  296. package/dist/es5/types.js.map +1 -0
  297. package/dist/es5/webgl-utils/attribute-utils.js +4 -4
  298. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  299. package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
  300. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  301. package/dist/es5/webgl-utils/format-utils.js +21 -17
  302. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  303. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  304. package/dist/es5/webgl-utils/index.js +74 -0
  305. package/dist/es5/webgl-utils/index.js.map +1 -0
  306. package/dist/es5/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
  307. package/dist/es5/webgl-utils/is-old-ie.js.map +1 -0
  308. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
  309. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  310. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  311. package/dist/es5/webgl-utils/texture-utils.js +6 -4
  312. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  313. package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
  314. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  315. package/dist/es5/webgl-utils/webgl-info.ts.disabled +135 -0
  316. package/dist/esm/api/device2.js +23 -0
  317. package/dist/esm/api/device2.js.map +1 -0
  318. package/dist/esm/bundle.js +2 -4
  319. package/dist/esm/bundle.js.map +1 -1
  320. package/dist/esm/classes/accessor.js +6 -6
  321. package/dist/esm/classes/accessor.js.map +1 -1
  322. package/dist/esm/classes/accessor.ts.disabled +159 -0
  323. package/dist/esm/classes/clear.js +19 -14
  324. package/dist/esm/classes/clear.js.map +1 -1
  325. package/dist/esm/classes/copy-and-blit.js +67 -64
  326. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  327. package/dist/esm/classes/framebuffer.js +341 -313
  328. package/dist/esm/classes/framebuffer.js.map +1 -1
  329. package/dist/esm/classes/program-configuration.js +18 -10
  330. package/dist/esm/classes/program-configuration.js.map +1 -1
  331. package/dist/esm/classes/program.js +71 -44
  332. package/dist/esm/classes/program.js.map +1 -1
  333. package/dist/esm/classes/query.js +20 -16
  334. package/dist/esm/classes/query.js.map +1 -1
  335. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  336. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  337. package/dist/esm/classes/renderbuffer.js +86 -73
  338. package/dist/esm/classes/renderbuffer.js.map +1 -1
  339. package/dist/esm/classes/texture-2d.js +13 -9
  340. package/dist/esm/classes/texture-2d.js.map +1 -1
  341. package/dist/esm/classes/texture-3d.js +28 -16
  342. package/dist/esm/classes/texture-3d.js.map +1 -1
  343. package/dist/esm/classes/texture-cube.js +45 -31
  344. package/dist/esm/classes/texture-cube.js.map +1 -1
  345. package/dist/esm/classes/texture-formats.js +52 -51
  346. package/dist/esm/classes/texture-formats.js.map +1 -1
  347. package/dist/esm/classes/texture.js +174 -58
  348. package/dist/esm/classes/texture.js.map +1 -1
  349. package/dist/esm/classes/transform-feedback.js +26 -14
  350. package/dist/esm/classes/transform-feedback.js.map +1 -1
  351. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  352. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  353. package/dist/esm/classes/uniforms.js +111 -113
  354. package/dist/esm/classes/uniforms.js.map +1 -1
  355. package/dist/esm/classes/vertex-array-object.js +52 -89
  356. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  357. package/dist/esm/classes/vertex-array.js +50 -29
  358. package/dist/esm/classes/vertex-array.js.map +1 -1
  359. package/dist/esm/classes/webgl-buffer.js +382 -0
  360. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  361. package/dist/esm/classes/webgl-resource.js +212 -0
  362. package/dist/esm/classes/webgl-resource.js.map +1 -0
  363. package/dist/esm/classes/webgl-shader.js +193 -0
  364. package/dist/esm/classes/webgl-shader.js.map +1 -0
  365. package/dist/esm/context/context/context-state.js +26 -0
  366. package/dist/esm/context/context/context-state.js.map +1 -0
  367. package/dist/esm/context/context/create-context.js +37 -0
  368. package/dist/esm/context/context/create-context.js.map +1 -0
  369. package/dist/esm/context/context/device-pixels.js +98 -0
  370. package/dist/esm/context/context/device-pixels.js.map +1 -0
  371. package/dist/esm/context/context/get-canvas.js +31 -0
  372. package/dist/esm/context/context/get-canvas.js.map +1 -0
  373. package/dist/esm/context/context/resize-context.js +15 -0
  374. package/dist/esm/context/context/resize-context.js.map +1 -0
  375. package/dist/esm/context/context/webgl-checks.js +34 -0
  376. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  377. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  378. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  379. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  380. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  381. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  382. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  383. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  384. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  385. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  386. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  387. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  388. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  389. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  390. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  391. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  392. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  393. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  394. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  395. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  396. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  397. package/dist/esm/debug/debug-program-configuration.js +4 -4
  398. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  399. package/dist/esm/debug/debug-uniforms.js +9 -9
  400. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  401. package/dist/esm/debug/debug-vertex-array.js +18 -16
  402. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  403. package/dist/esm/device/check-glsl-extension.js +22 -0
  404. package/dist/esm/device/check-glsl-extension.js.map +1 -0
  405. package/dist/esm/device/device-features.js +123 -0
  406. package/dist/esm/device/device-features.js.map +1 -0
  407. package/dist/esm/device/device-limits.js +90 -0
  408. package/dist/esm/device/device-limits.js.map +1 -0
  409. package/dist/esm/device/get-device-info.js +44 -0
  410. package/dist/esm/device/get-device-info.js.map +1 -0
  411. package/dist/esm/device/webgl-device.js +208 -0
  412. package/dist/esm/device/webgl-device.js.map +1 -0
  413. package/dist/esm/index.js +15 -15
  414. package/dist/esm/index.js.map +1 -1
  415. package/dist/esm/init.js +12 -28
  416. package/dist/esm/init.js.map +1 -1
  417. package/dist/esm/types.js +2 -0
  418. package/dist/esm/types.js.map +1 -0
  419. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  420. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  421. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  422. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  423. package/dist/esm/webgl-utils/format-utils.js +16 -15
  424. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  425. package/dist/esm/webgl-utils/get-error.js +1 -1
  426. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  427. package/dist/esm/webgl-utils/index.js +5 -0
  428. package/dist/esm/webgl-utils/index.js.map +1 -0
  429. package/dist/esm/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
  430. package/dist/esm/webgl-utils/is-old-ie.js.map +1 -0
  431. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  432. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  433. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  434. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  435. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  436. package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
  437. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  438. package/dist/esm/webgl-utils/webgl-info.ts.disabled +135 -0
  439. package/dist/index.d.ts +49 -0
  440. package/dist/index.d.ts.map +1 -0
  441. package/dist/index.js +35 -0
  442. package/dist/index.js.map +1 -0
  443. package/dist/init.d.ts +5 -0
  444. package/dist/init.d.ts.map +1 -0
  445. package/dist/init.js +33 -0
  446. package/dist/init.js.map +1 -0
  447. package/dist/types.d.ts +9 -0
  448. package/dist/types.d.ts.map +1 -0
  449. package/dist/types.js +2 -0
  450. package/dist/types.js.map +1 -0
  451. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  452. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  453. package/dist/webgl-utils/attribute-utils.js +182 -0
  454. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  455. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  456. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  457. package/dist/webgl-utils/constants-to-keys.js +41 -0
  458. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  459. package/dist/webgl-utils/format-utils.d.ts +3 -0
  460. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  461. package/dist/webgl-utils/format-utils.js +45 -0
  462. package/dist/webgl-utils/format-utils.js.map +1 -0
  463. package/dist/webgl-utils/get-error.d.ts +3 -0
  464. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  465. package/dist/webgl-utils/get-error.js +41 -0
  466. package/dist/webgl-utils/get-error.js.map +1 -0
  467. package/dist/webgl-utils/index.d.ts +5 -0
  468. package/dist/webgl-utils/index.d.ts.map +1 -0
  469. package/dist/webgl-utils/index.js +5 -0
  470. package/dist/webgl-utils/index.js.map +1 -0
  471. package/dist/webgl-utils/is-old-ie.d.ts +2 -0
  472. package/dist/webgl-utils/is-old-ie.d.ts.map +1 -0
  473. package/dist/webgl-utils/is-old-ie.js +8 -0
  474. package/dist/webgl-utils/is-old-ie.js.map +1 -0
  475. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  476. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  477. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  478. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  479. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  480. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  481. package/dist/webgl-utils/request-animation-frame.js +7 -0
  482. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  483. package/dist/webgl-utils/texture-utils.d.ts +15 -0
  484. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  485. package/dist/webgl-utils/texture-utils.js +48 -0
  486. package/dist/webgl-utils/texture-utils.js.map +1 -0
  487. package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
  488. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  489. package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
  490. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  491. package/dist/webgl-utils/webgl-info.ts.disabled +135 -0
  492. package/package.json +9 -9
  493. package/src/.DS_Store +0 -0
  494. package/src/api/device2.ts +71 -0
  495. package/src/bundle.ts +4 -0
  496. package/src/classes/accessor.js +2 -3
  497. package/src/classes/accessor.ts.disabled +159 -0
  498. package/src/classes/clear.ts +108 -0
  499. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
  500. package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
  501. package/src/classes/{program-configuration.js → program-configuration.ts} +19 -12
  502. package/src/classes/{program.js → program.ts} +66 -40
  503. package/src/classes/{query.js → query.ts} +31 -25
  504. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  505. package/src/classes/renderbuffer.ts +154 -0
  506. package/src/classes/texture-2d.ts +35 -0
  507. package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
  508. package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
  509. package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
  510. package/src/classes/{texture.js → texture.ts} +223 -57
  511. package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
  512. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  513. package/src/classes/{uniforms.js → uniforms.ts} +123 -77
  514. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +133 -112
  515. package/src/classes/{vertex-array.js → vertex-array.ts} +74 -55
  516. package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
  517. package/src/classes/{resource.js → webgl-resource.ts} +55 -46
  518. package/src/classes/webgl-shader.ts +202 -0
  519. package/src/context/context/context-state.ts +39 -0
  520. package/src/context/context/create-context.ts +83 -0
  521. package/src/context/context/device-pixels.ts +147 -0
  522. package/src/context/context/get-canvas.ts +37 -0
  523. package/src/context/context/resize-context.ts +37 -0
  524. package/src/context/context/webgl-checks.ts +49 -0
  525. package/src/context/parameters/unified-parameter-api.ts +127 -0
  526. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  527. package/src/context/parameters/webgl-parameters.ts +197 -0
  528. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  529. package/src/context/polyfill/polyfill-context.ts +98 -0
  530. package/src/context/polyfill/polyfill-table.ts +162 -0
  531. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  532. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  533. package/src/context/state-tracker/track-context-state.ts +250 -0
  534. package/src/context/state-tracker/with-parameters.ts +50 -0
  535. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  536. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  537. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
  538. package/src/device/check-glsl-extension.ts +44 -0
  539. package/src/device/device-features.ts +227 -0
  540. package/src/device/device-limits.ts +150 -0
  541. package/src/device/get-device-info.ts +49 -0
  542. package/src/device/webgl-device.ts +406 -0
  543. package/src/index.ts +127 -0
  544. package/src/{init.js → init.ts} +11 -25
  545. package/src/{types.d.ts → types.ts} +1 -1
  546. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  547. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  548. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  549. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  550. package/src/webgl-utils/index.ts +12 -0
  551. package/src/{features/check-old-ie.js → webgl-utils/is-old-ie.ts} +3 -3
  552. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  553. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  554. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
  555. package/src/webgl-utils/typed-array-utils.ts +137 -0
  556. package/src/webgl-utils/webgl-info.ts.disabled +135 -0
  557. package/dist/dist.js +0 -13710
  558. package/dist/dist.min.js +0 -1
  559. package/dist/es5/classes/buffer.d.ts +0 -84
  560. package/dist/es5/classes/buffer.js.map +0 -1
  561. package/dist/es5/classes/clear.d.ts +0 -11
  562. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  563. package/dist/es5/classes/framebuffer.d.ts +0 -96
  564. package/dist/es5/classes/program-configuration.d.ts +0 -15
  565. package/dist/es5/classes/program.d.ts +0 -44
  566. package/dist/es5/classes/query.d.ts +0 -21
  567. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  568. package/dist/es5/classes/resource.d.ts +0 -47
  569. package/dist/es5/classes/resource.js.map +0 -1
  570. package/dist/es5/classes/shader.d.ts +0 -29
  571. package/dist/es5/classes/shader.js +0 -221
  572. package/dist/es5/classes/shader.js.map +0 -1
  573. package/dist/es5/classes/texture-2d.d.ts +0 -11
  574. package/dist/es5/classes/texture-3d.d.ts +0 -29
  575. package/dist/es5/classes/texture-cube.d.ts +0 -23
  576. package/dist/es5/classes/texture.d.ts +0 -80
  577. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  578. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  579. package/dist/es5/classes/uniforms.d.ts +0 -63
  580. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  581. package/dist/es5/classes/vertex-array.d.ts +0 -37
  582. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  583. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  584. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  585. package/dist/es5/features/check-glsl-extension.js +0 -41
  586. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  587. package/dist/es5/features/check-old-ie.js.map +0 -1
  588. package/dist/es5/features/features.js +0 -99
  589. package/dist/es5/features/features.js.map +0 -1
  590. package/dist/es5/features/index.js +0 -64
  591. package/dist/es5/features/index.js.map +0 -1
  592. package/dist/es5/features/limits.js +0 -64
  593. package/dist/es5/features/limits.js.map +0 -1
  594. package/dist/es5/features/webgl-features-table.js +0 -64
  595. package/dist/es5/features/webgl-features-table.js.map +0 -1
  596. package/dist/es5/features/webgl-limits-table.js +0 -132
  597. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  598. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  599. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  600. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  601. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  602. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  603. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  604. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  605. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  606. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  607. package/dist/es5/glsl-utils/index.js +0 -48
  608. package/dist/es5/glsl-utils/index.js.map +0 -1
  609. package/dist/es5/index.d.ts +0 -71
  610. package/dist/es5/init.d.ts +0 -12
  611. package/dist/es5/types.d.ts +0 -8
  612. package/dist/es5/utils/array-utils-flat.js +0 -51
  613. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  614. package/dist/es5/utils/assert.d.ts +0 -1
  615. package/dist/es5/utils/assert.js +0 -13
  616. package/dist/es5/utils/assert.js.map +0 -1
  617. package/dist/es5/utils/check-props.js +0 -51
  618. package/dist/es5/utils/check-props.js.map +0 -1
  619. package/dist/es5/utils/format-value.js +0 -57
  620. package/dist/es5/utils/format-value.js.map +0 -1
  621. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  622. package/dist/es5/utils/is-old-ie.js +0 -14
  623. package/dist/es5/utils/is-old-ie.js.map +0 -1
  624. package/dist/es5/utils/load-file.js +0 -50
  625. package/dist/es5/utils/load-file.js.map +0 -1
  626. package/dist/es5/utils/stub-methods.js +0 -25
  627. package/dist/es5/utils/stub-methods.js.map +0 -1
  628. package/dist/es5/utils/utils.d.ts +0 -13
  629. package/dist/es5/utils/utils.js +0 -36
  630. package/dist/es5/utils/utils.js.map +0 -1
  631. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  632. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  633. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  634. package/dist/esm/classes/buffer.d.ts +0 -84
  635. package/dist/esm/classes/buffer.js.map +0 -1
  636. package/dist/esm/classes/clear.d.ts +0 -11
  637. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  638. package/dist/esm/classes/framebuffer.d.ts +0 -96
  639. package/dist/esm/classes/program-configuration.d.ts +0 -15
  640. package/dist/esm/classes/program.d.ts +0 -44
  641. package/dist/esm/classes/query.d.ts +0 -21
  642. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  643. package/dist/esm/classes/resource.d.ts +0 -47
  644. package/dist/esm/classes/resource.js.map +0 -1
  645. package/dist/esm/classes/shader.d.ts +0 -29
  646. package/dist/esm/classes/shader.js +0 -138
  647. package/dist/esm/classes/shader.js.map +0 -1
  648. package/dist/esm/classes/texture-2d.d.ts +0 -11
  649. package/dist/esm/classes/texture-3d.d.ts +0 -29
  650. package/dist/esm/classes/texture-cube.d.ts +0 -23
  651. package/dist/esm/classes/texture.d.ts +0 -80
  652. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  653. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  654. package/dist/esm/classes/uniforms.d.ts +0 -63
  655. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  656. package/dist/esm/classes/vertex-array.d.ts +0 -37
  657. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  658. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  659. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  660. package/dist/esm/features/check-glsl-extension.js +0 -27
  661. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  662. package/dist/esm/features/check-old-ie.js.map +0 -1
  663. package/dist/esm/features/features.js +0 -66
  664. package/dist/esm/features/features.js.map +0 -1
  665. package/dist/esm/features/index.js +0 -5
  666. package/dist/esm/features/index.js.map +0 -1
  667. package/dist/esm/features/limits.js +0 -52
  668. package/dist/esm/features/limits.js.map +0 -1
  669. package/dist/esm/features/webgl-features-table.js +0 -71
  670. package/dist/esm/features/webgl-features-table.js.map +0 -1
  671. package/dist/esm/features/webgl-limits-table.js +0 -160
  672. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  673. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  674. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  675. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  676. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  677. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  678. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  679. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  680. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  681. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  682. package/dist/esm/glsl-utils/index.js +0 -5
  683. package/dist/esm/glsl-utils/index.js.map +0 -1
  684. package/dist/esm/index.d.ts +0 -71
  685. package/dist/esm/init.d.ts +0 -12
  686. package/dist/esm/types.d.ts +0 -8
  687. package/dist/esm/utils/array-utils-flat.js +0 -39
  688. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  689. package/dist/esm/utils/assert.d.ts +0 -1
  690. package/dist/esm/utils/assert.js +0 -6
  691. package/dist/esm/utils/assert.js.map +0 -1
  692. package/dist/esm/utils/check-props.js +0 -38
  693. package/dist/esm/utils/check-props.js.map +0 -1
  694. package/dist/esm/utils/format-value.js +0 -50
  695. package/dist/esm/utils/format-value.js.map +0 -1
  696. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  697. package/dist/esm/utils/is-old-ie.js +0 -5
  698. package/dist/esm/utils/is-old-ie.js.map +0 -1
  699. package/dist/esm/utils/load-file.js +0 -30
  700. package/dist/esm/utils/load-file.js.map +0 -1
  701. package/dist/esm/utils/stub-methods.js +0 -17
  702. package/dist/esm/utils/stub-methods.js.map +0 -1
  703. package/dist/esm/utils/utils.d.ts +0 -13
  704. package/dist/esm/utils/utils.js +0 -22
  705. package/dist/esm/utils/utils.js.map +0 -1
  706. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  707. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  708. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  709. package/src/bundle.js +0 -8
  710. package/src/classes/buffer.d.ts +0 -84
  711. package/src/classes/clear.d.ts +0 -11
  712. package/src/classes/copy-and-blit.d.ts +0 -101
  713. package/src/classes/framebuffer.d.ts +0 -96
  714. package/src/classes/program-configuration.d.ts +0 -15
  715. package/src/classes/program.d.ts +0 -44
  716. package/src/classes/query.d.ts +0 -21
  717. package/src/classes/renderbuffer.d.ts +0 -34
  718. package/src/classes/renderbuffer.js +0 -105
  719. package/src/classes/resource.d.ts +0 -47
  720. package/src/classes/shader.d.ts +0 -29
  721. package/src/classes/shader.js +0 -147
  722. package/src/classes/texture-2d.d.ts +0 -11
  723. package/src/classes/texture-2d.js +0 -30
  724. package/src/classes/texture-3d.d.ts +0 -29
  725. package/src/classes/texture-cube.d.ts +0 -23
  726. package/src/classes/texture.d.ts +0 -80
  727. package/src/classes/transform-feedback.d.ts +0 -16
  728. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  729. package/src/classes/uniforms.d.ts +0 -63
  730. package/src/classes/vertex-array-object.d.ts +0 -25
  731. package/src/classes/vertex-array.d.ts +0 -37
  732. package/src/debug/debug-program-configuration.d.ts +0 -1
  733. package/src/debug/debug-uniforms.d.ts +0 -11
  734. package/src/debug/debug-vertex-array.d.ts +0 -1
  735. package/src/features/check-glsl-extension.js +0 -34
  736. package/src/features/features.js +0 -79
  737. package/src/features/index.js +0 -5
  738. package/src/features/limits.js +0 -65
  739. package/src/features/webgl-features-table.js +0 -104
  740. package/src/features/webgl-limits-table.js +0 -51
  741. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  742. package/src/glsl-utils/format-glsl-error.js +0 -107
  743. package/src/glsl-utils/get-shader-name.js +0 -7
  744. package/src/glsl-utils/get-shader-type-name.js +0 -13
  745. package/src/glsl-utils/get-shader-version.js +0 -12
  746. package/src/glsl-utils/index.js +0 -8
  747. package/src/index.d.ts +0 -71
  748. package/src/index.js +0 -70
  749. package/src/init.d.ts +0 -12
  750. package/src/utils/array-utils-flat.js +0 -56
  751. package/src/utils/assert.d.ts +0 -1
  752. package/src/utils/assert.js +0 -7
  753. package/src/utils/check-props.js +0 -68
  754. package/src/utils/format-value.js +0 -37
  755. package/src/utils/is-old-ie.d.ts +0 -1
  756. package/src/utils/is-old-ie.js +0 -6
  757. package/src/utils/load-file.js +0 -39
  758. package/src/utils/stub-methods.js +0 -20
  759. package/src/utils/utils.d.ts +0 -13
  760. package/src/utils/utils.js +0 -36
  761. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
  762. package/src/webgl-utils/texture-utils.d.ts +0 -11
  763. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.withParameters = withParameters;
7
+
8
+ var _unifiedParameterApi = require("../parameters/unified-parameter-api");
9
+
10
+ var _trackContextState = require("./track-context-state");
11
+
12
+ function withParameters(gl, parameters, func) {
13
+ if (isObjectEmpty(parameters)) {
14
+ return func(gl);
15
+ }
16
+
17
+ var _parameters$nocatch = parameters.nocatch,
18
+ nocatch = _parameters$nocatch === void 0 ? true : _parameters$nocatch;
19
+ (0, _trackContextState.pushContextState)(gl);
20
+ (0, _unifiedParameterApi.setParameters)(gl, parameters);
21
+ var value;
22
+
23
+ if (nocatch) {
24
+ value = func(gl);
25
+ (0, _trackContextState.popContextState)(gl);
26
+ } else {
27
+ try {
28
+ value = func(gl);
29
+ } finally {
30
+ (0, _trackContextState.popContextState)(gl);
31
+ }
32
+ }
33
+
34
+ return value;
35
+ }
36
+
37
+ function isObjectEmpty(object) {
38
+ for (var key in object) {
39
+ return false;
40
+ }
41
+
42
+ return true;
43
+ }
44
+ //# sourceMappingURL=with-parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/context/state-tracker/with-parameters.ts"],"names":["withParameters","gl","parameters","func","isObjectEmpty","nocatch","value","object","key"],"mappings":";;;;;;;AAAA;;AACA;;AAUQ,SAASA,cAAT,CAAwBC,EAAxB,EAAmDC,UAAnD,EAAmGC,IAAnG,EAAmH;AACzH,MAAIC,aAAa,CAACF,UAAD,CAAjB,EAA+B;AAE7B,WAAOC,IAAI,CAACF,EAAD,CAAX;AACD;;AAED,4BAAyBC,UAAzB,CAAOG,OAAP;AAAA,MAAOA,OAAP,oCAAiB,IAAjB;AAEA,2CAAiBJ,EAAjB;AACA,0CAAcA,EAAd,EAAkBC,UAAlB;AAGA,MAAII,KAAJ;;AAEA,MAAID,OAAJ,EAAa;AAEXC,IAAAA,KAAK,GAAGH,IAAI,CAACF,EAAD,CAAZ;AACA,4CAAgBA,EAAhB;AACD,GAJD,MAIO;AAEL,QAAI;AACFK,MAAAA,KAAK,GAAGH,IAAI,CAACF,EAAD,CAAZ;AACD,KAFD,SAEU;AACR,8CAAgBA,EAAhB;AACD;AACF;;AAED,SAAOK,KAAP;AACD;;AAKD,SAASF,aAAT,CAAuBG,MAAvB,EAA+B;AAC7B,OAAK,IAAMC,GAAX,IAAkBD,MAAlB,EAA0B;AACxB,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD","sourcesContent":["import {GLParameters, setParameters} from '../parameters/unified-parameter-api';\nimport {pushContextState, popContextState} from './track-context-state';\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n */\n export function withParameters(gl: WebGLRenderingContext, parameters: GLParameters & {nocatch?: boolean}, func: any): any {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(gl);\n }\n\n const {nocatch = true} = parameters;\n\n pushContextState(gl);\n setParameters(gl, parameters);\n\n // Setup is done, call the function\n let value;\n\n if (nocatch) {\n // Avoid try catch to minimize stack size impact for safe execution paths\n value = func(gl);\n popContextState(gl);\n } else {\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n try {\n value = func(gl);\n } finally {\n popContextState(gl);\n }\n }\n\n return value;\n}\n\n// Helpers\n\n// Returns true if given object is empty, false otherwise.\nfunction isObjectEmpty(object) {\n for (const key in object) {\n return false;\n }\n return true;\n}\n"],"file":"with-parameters.js"}
@@ -11,7 +11,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
 
12
12
  var _attributeUtils = require("../webgl-utils/attribute-utils");
13
13
 
14
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { 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 = o[Symbol.iterator](); }, 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; } } }; }
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
15
 
16
16
  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); }
17
17
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/debug/debug-program-configuration.js"],"names":["getDebugTableForProgramConfiguration","config","table","header","id","attributeInfos","attributeInfo","glslDeclaration","getGLSLDeclaration","JSON","stringify","accessor","varyingInfos","varyingInfo","type","size","typeAndName","name"],"mappings":";;;;;;;;;;;AAAA;;;;;;;;AAEO,SAASA,oCAAT,CAA8CC,MAA9C,EAAsD;AAC3D,MAAMC,KAAK,GAAG,EAAd;AAEA,MAAMC,MAAM,2BAAoBF,MAAM,CAACG,EAA3B,CAAZ;;AAH2D,6CAK/BH,MAAM,CAACI,cALwB;AAAA;;AAAA;AAK3D,wDAAmD;AAAA,UAAxCC,aAAwC;;AACjD,UAAIA,aAAJ,EAAmB;AACjB,YAAMC,eAAe,GAAGC,kBAAkB,CAACF,aAAD,CAA1C;AACAJ,QAAAA,KAAK,cAAOK,eAAP,EAAL,qCAAmCJ,MAAnC,EAA4CM,IAAI,CAACC,SAAL,CAAeJ,aAAa,CAACK,QAA7B,CAA5C;AACD;AACF;AAV0D;AAAA;AAAA;AAAA;AAAA;;AAAA,8CAYjCV,MAAM,CAACW,YAZ0B;AAAA;;AAAA;AAY3D,2DAA+C;AAAA,UAApCC,WAAoC;;AAC7C,UAAIA,WAAJ,EAAiB;AACf,YAAMN,gBAAe,GAAGC,kBAAkB,CAACK,WAAD,CAA1C;;AACAX,QAAAA,KAAK,eAAQK,gBAAR,EAAL,qCAAoCJ,MAApC,EAA6CM,IAAI,CAACC,SAAL,CAAeG,WAAW,CAACF,QAA3B,CAA7C;AACD;AACF;AAjB0D;AAAA;AAAA;AAAA;AAAA;;AAmB3D,SAAOT,KAAP;AACD;;AAED,SAASM,kBAAT,CAA4BF,aAA5B,EAA2C;AAAA,8BACpBA,aAAa,CAACK,QADM;AAAA,MAClCG,IADkC,yBAClCA,IADkC;AAAA,MAC5BC,IAD4B,yBAC5BA,IAD4B;AAEzC,MAAMC,WAAW,GAAG,wCAAmBF,IAAnB,EAAyBC,IAAzB,CAApB;;AACA,MAAIC,WAAJ,EAAiB;AACf,qBAAUA,WAAW,CAACC,IAAtB,cAA8BX,aAAa,CAACW,IAA5C;AACD;;AACD,SAAOX,aAAa,CAACW,IAArB;AACD","sourcesContent":["import {getCompositeGLType} from '../webgl-utils/attribute-utils';\n\nexport function getDebugTableForProgramConfiguration(config) {\n const table = {};\n\n const header = `Accessors for ${config.id}`;\n\n for (const attributeInfo of config.attributeInfos) {\n if (attributeInfo) {\n const glslDeclaration = getGLSLDeclaration(attributeInfo);\n table[`in ${glslDeclaration}`] = {[header]: JSON.stringify(attributeInfo.accessor)};\n }\n }\n\n for (const varyingInfo of config.varyingInfos) {\n if (varyingInfo) {\n const glslDeclaration = getGLSLDeclaration(varyingInfo);\n table[`out ${glslDeclaration}`] = {[header]: JSON.stringify(varyingInfo.accessor)};\n }\n }\n\n return table;\n}\n\nfunction getGLSLDeclaration(attributeInfo) {\n const {type, size} = attributeInfo.accessor;\n const typeAndName = getCompositeGLType(type, size);\n if (typeAndName) {\n return `${typeAndName.name} ${attributeInfo.name}`;\n }\n return attributeInfo.name;\n}\n"],"file":"debug-program-configuration.js"}
1
+ {"version":3,"sources":["../../../src/debug/debug-program-configuration.ts"],"names":["getDebugTableForProgramConfiguration","config","table","header","id","attributeInfos","attributeInfo","glslDeclaration","getGLSLDeclaration","JSON","stringify","accessor","varyingInfos","varyingInfo","type","size","typeAndName","name"],"mappings":";;;;;;;;;;;AAAA;;;;;;;;AAEO,SAASA,oCAAT,CAA8CC,MAA9C,EAAsD;AAC3D,MAAMC,KAAK,GAAG,EAAd;AAEA,MAAMC,MAAM,2BAAoBF,MAAM,CAACG,EAA3B,CAAZ;;AAH2D,6CAK/BH,MAAM,CAACI,cALwB;AAAA;;AAAA;AAK3D,wDAAmD;AAAA,UAAxCC,aAAwC;;AACjD,UAAIA,aAAJ,EAAmB;AACjB,YAAMC,eAAe,GAAGC,kBAAkB,CAACF,aAAD,CAA1C;AACAJ,QAAAA,KAAK,cAAOK,eAAP,EAAL,qCAAmCJ,MAAnC,EAA4CM,IAAI,CAACC,SAAL,CAAeJ,aAAa,CAACK,QAA7B,CAA5C;AACD;AACF;AAV0D;AAAA;AAAA;AAAA;AAAA;;AAAA,8CAYjCV,MAAM,CAACW,YAZ0B;AAAA;;AAAA;AAY3D,2DAA+C;AAAA,UAApCC,WAAoC;;AAC7C,UAAIA,WAAJ,EAAiB;AACf,YAAMN,gBAAe,GAAGC,kBAAkB,CAACK,WAAD,CAA1C;;AACAX,QAAAA,KAAK,eAAQK,gBAAR,EAAL,qCAAoCJ,MAApC,EAA6CM,IAAI,CAACC,SAAL,CAAeG,WAAW,CAACF,QAA3B,CAA7C;AACD;AACF;AAjB0D;AAAA;AAAA;AAAA;AAAA;;AAmB3D,SAAOT,KAAP;AACD;;AAED,SAASM,kBAAT,CAA4BF,aAA5B,EAA2C;AACzC,8BAAqBA,aAAa,CAACK,QAAnC;AAAA,MAAOG,IAAP,yBAAOA,IAAP;AAAA,MAAaC,IAAb,yBAAaA,IAAb;AACA,MAAMC,WAAW,GAAG,wCAAmBF,IAAnB,EAAyBC,IAAzB,CAApB;;AACA,MAAIC,WAAJ,EAAiB;AACf,qBAAUA,WAAW,CAACC,IAAtB,cAA8BX,aAAa,CAACW,IAA5C;AACD;;AACD,SAAOX,aAAa,CAACW,IAArB;AACD","sourcesContent":["import {getCompositeGLType} from '../webgl-utils/attribute-utils';\n\nexport function getDebugTableForProgramConfiguration(config) {\n const table = {};\n\n const header = `Accessors for ${config.id}`;\n\n for (const attributeInfo of config.attributeInfos) {\n if (attributeInfo) {\n const glslDeclaration = getGLSLDeclaration(attributeInfo);\n table[`in ${glslDeclaration}`] = {[header]: JSON.stringify(attributeInfo.accessor)};\n }\n }\n\n for (const varyingInfo of config.varyingInfos) {\n if (varyingInfo) {\n const glslDeclaration = getGLSLDeclaration(varyingInfo);\n table[`out ${glslDeclaration}`] = {[header]: JSON.stringify(varyingInfo.accessor)};\n }\n }\n\n return table;\n}\n\nfunction getGLSLDeclaration(attributeInfo) {\n const {type, size} = attributeInfo.accessor;\n const typeAndName = getCompositeGLType(type, size);\n if (typeAndName) {\n return `${typeAndName.name} ${attributeInfo.name}`;\n }\n return attributeInfo.name;\n}\n"],"file":"debug-program-configuration.js"}
@@ -9,24 +9,22 @@ exports.getDebugTableForUniforms = getDebugTableForUniforms;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- var _assert = require("../utils/assert");
12
+ var _api = require("@luma.gl/api");
13
13
 
14
- var _formatValue = require("../utils/format-value");
15
-
16
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { 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 = o[Symbol.iterator](); }, 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; } } }; }
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; } } }; }
17
15
 
18
16
  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); }
19
17
 
20
18
  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; }
21
19
 
22
- function getDebugTableForUniforms(_ref) {
23
- var _ref$header = _ref.header,
24
- header = _ref$header === void 0 ? 'Uniforms' : _ref$header,
25
- program = _ref.program,
26
- uniforms = _ref.uniforms,
27
- _ref$undefinedOnly = _ref.undefinedOnly,
28
- undefinedOnly = _ref$undefinedOnly === void 0 ? false : _ref$undefinedOnly;
29
- (0, _assert.assert)(program);
20
+ function getDebugTableForUniforms(options) {
21
+ var _options$header = options.header,
22
+ header = _options$header === void 0 ? 'Uniforms' : _options$header,
23
+ program = options.program,
24
+ uniforms = options.uniforms,
25
+ _options$undefinedOnl = options.undefinedOnly,
26
+ undefinedOnly = _options$undefinedOnl === void 0 ? false : _options$undefinedOnl;
27
+ (0, _api.assert)(program);
30
28
  var SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';
31
29
  var PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix';
32
30
  var uniformLocations = program._uniformSetters;
@@ -120,7 +118,7 @@ function getDebugTableForUniforms(_ref) {
120
118
  unusedCount++;
121
119
  unusedTable[uniformName] = (0, _defineProperty2.default)({
122
120
  Type: "NOT USED: ".concat(uniform)
123
- }, header, (0, _formatValue.formatValue)(uniform));
121
+ }, header, (0, _api.formatValue)(uniform));
124
122
  }
125
123
  }
126
124
  }
@@ -133,19 +131,19 @@ function getDebugTableForUniforms(_ref) {
133
131
  };
134
132
  }
135
133
 
136
- function addUniformToTable(_ref2) {
137
- var table = _ref2.table,
138
- header = _ref2.header,
139
- uniforms = _ref2.uniforms,
140
- uniformName = _ref2.uniformName,
141
- undefinedOnly = _ref2.undefinedOnly;
134
+ function addUniformToTable(_ref) {
135
+ var table = _ref.table,
136
+ header = _ref.header,
137
+ uniforms = _ref.uniforms,
138
+ uniformName = _ref.uniformName,
139
+ undefinedOnly = _ref.undefinedOnly;
142
140
  var value = uniforms[uniformName];
143
141
  var isDefined = isUniformDefined(value);
144
142
 
145
143
  if (!undefinedOnly || !isDefined) {
146
144
  var _table$uniformName;
147
145
 
148
- table[uniformName] = (_table$uniformName = {}, (0, _defineProperty2.default)(_table$uniformName, header, isDefined ? (0, _formatValue.formatValue)(value) : 'N/A'), (0, _defineProperty2.default)(_table$uniformName, 'Uniform Type', isDefined ? value : 'NOT PROVIDED'), _table$uniformName);
146
+ table[uniformName] = (_table$uniformName = {}, (0, _defineProperty2.default)(_table$uniformName, header, isDefined ? (0, _api.formatValue)(value) : 'N/A'), (0, _defineProperty2.default)(_table$uniformName, 'Uniform Type', isDefined ? value : 'NOT PROVIDED'), _table$uniformName);
149
147
  return true;
150
148
  }
151
149
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/debug/debug-uniforms.js"],"names":["getDebugTableForUniforms","header","program","uniforms","undefinedOnly","SHADER_MODULE_UNIFORM_REGEXP","PROJECT_MODULE_UNIFORM_REGEXP","uniformLocations","_uniformSetters","table","uniformNames","Object","keys","sort","count","uniformName","match","addUniformToTable","unusedCount","unusedTable","uniform","Type","value","isDefined","isUniformDefined","undefined"],"mappings":"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","sourcesContent":["import {assert} from '../utils/assert';\nimport {formatValue} from '../utils/format-value';\n\n// Prepares a table suitable for console.table\n/* eslint-disable max-statements, complexity */\nexport function getDebugTableForUniforms({\n header = 'Uniforms',\n program,\n uniforms,\n undefinedOnly = false\n}) {\n assert(program);\n\n const SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';\n const PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix'; // TODO - Use explicit list\n\n const uniformLocations = program._uniformSetters;\n const table = {}; // {[header]: {}};\n\n // Add program's provided uniforms (in alphabetical order)\n const uniformNames = Object.keys(uniformLocations).sort();\n\n let count = 0;\n\n // First add non-underscored uniforms (assumed not coming from shader modules)\n for (const uniformName of uniformNames) {\n if (\n !uniformName.match(SHADER_MODULE_UNIFORM_REGEXP) &&\n !uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)\n ) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // add underscored uniforms (assumed from shader modules)\n for (const uniformName of uniformNames) {\n if (uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n for (const uniformName of uniformNames) {\n if (!table[uniformName]) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // Create a table of unused uniforms\n let unusedCount = 0;\n const unusedTable = {};\n if (!undefinedOnly) {\n for (const uniformName in uniforms) {\n const uniform = uniforms[uniformName];\n if (!table[uniformName]) {\n unusedCount++;\n unusedTable[uniformName] = {\n Type: `NOT USED: ${uniform}`,\n [header]: formatValue(uniform)\n };\n }\n }\n }\n\n return {table, count, unusedTable, unusedCount};\n}\n\n// Helper\nfunction addUniformToTable({table, header, uniforms, uniformName, undefinedOnly}) {\n const value = uniforms[uniformName];\n const isDefined = isUniformDefined(value);\n if (!undefinedOnly || !isDefined) {\n table[uniformName] = {\n // Add program's unprovided uniforms\n [header]: isDefined ? formatValue(value) : 'N/A',\n 'Uniform Type': isDefined ? value : 'NOT PROVIDED'\n };\n return true;\n }\n return false;\n}\n\nfunction isUniformDefined(value) {\n return value !== undefined && value !== null;\n}\n"],"file":"debug-uniforms.js"}
1
+ {"version":3,"sources":["../../../src/debug/debug-uniforms.ts"],"names":["getDebugTableForUniforms","options","header","program","uniforms","undefinedOnly","SHADER_MODULE_UNIFORM_REGEXP","PROJECT_MODULE_UNIFORM_REGEXP","uniformLocations","_uniformSetters","table","uniformNames","Object","keys","sort","count","uniformName","match","addUniformToTable","unusedCount","unusedTable","uniform","Type","value","isDefined","isUniformDefined","undefined"],"mappings":"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","sourcesContent":["import {assert, formatValue} from '@luma.gl/api';\n\n// Prepares a table suitable for console.table\n/* eslint-disable max-statements, complexity */\nexport function getDebugTableForUniforms(options?: {\n header?: string;\n program: any;\n uniforms: any;\n undefinedOnly?: boolean;\n}): {\n table: {};\n count: number;\n unusedTable: {};\n unusedCount: number;\n} {\n const {\n header = 'Uniforms',\n program,\n uniforms,\n undefinedOnly = false\n } = options;\n assert(program);\n\n const SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';\n const PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix'; // TODO - Use explicit list\n\n const uniformLocations = program._uniformSetters;\n const table = {}; // {[header]: {}};\n\n // Add program's provided uniforms (in alphabetical order)\n const uniformNames = Object.keys(uniformLocations).sort();\n\n let count = 0;\n\n // First add non-underscored uniforms (assumed not coming from shader modules)\n for (const uniformName of uniformNames) {\n if (\n !uniformName.match(SHADER_MODULE_UNIFORM_REGEXP) &&\n !uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)\n ) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // add underscored uniforms (assumed from shader modules)\n for (const uniformName of uniformNames) {\n if (uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n for (const uniformName of uniformNames) {\n if (!table[uniformName]) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // Create a table of unused uniforms\n let unusedCount = 0;\n const unusedTable = {};\n if (!undefinedOnly) {\n for (const uniformName in uniforms) {\n const uniform = uniforms[uniformName];\n if (!table[uniformName]) {\n unusedCount++;\n unusedTable[uniformName] = {\n Type: `NOT USED: ${uniform}`,\n [header]: formatValue(uniform)\n };\n }\n }\n }\n\n return {table, count, unusedTable, unusedCount};\n}\n\n// Helper\nfunction addUniformToTable({table, header, uniforms, uniformName, undefinedOnly}) {\n const value = uniforms[uniformName];\n const isDefined = isUniformDefined(value);\n if (!undefinedOnly || !isDefined) {\n table[uniformName] = {\n // Add program's unprovided uniforms\n [header]: isDefined ? formatValue(value) : 'N/A',\n 'Uniform Type': isDefined ? value : 'NOT PROVIDED'\n };\n return true;\n }\n return false;\n}\n\nfunction isUniformDefined(value) {\n return value !== undefined && value !== null;\n}\n"],"file":"debug-uniforms.js"}
@@ -9,18 +9,18 @@ exports.getDebugTableForVertexArray = getDebugTableForVertexArray;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- var _buffer = _interopRequireDefault(require("../classes/buffer"));
12
+ var _api = require("@luma.gl/api");
13
+
14
+ var _webglBuffer = _interopRequireDefault(require("../classes/webgl-buffer"));
13
15
 
14
16
  var _constantsToKeys = require("../webgl-utils/constants-to-keys");
15
17
 
16
18
  var _attributeUtils = require("../webgl-utils/attribute-utils");
17
19
 
18
- var _formatValue = require("../utils/format-value");
19
-
20
- function getDebugTableForVertexArray(_ref) {
21
- var vertexArray = _ref.vertexArray,
22
- _ref$header = _ref.header,
23
- header = _ref$header === void 0 ? 'Attributes' : _ref$header;
20
+ function getDebugTableForVertexArray(options) {
21
+ var vertexArray = options.vertexArray,
22
+ _options$header = options.header,
23
+ header = _options$header === void 0 ? 'Attributes' : _options$header;
24
24
 
25
25
  if (!vertexArray.configuration) {
26
26
  return {};
@@ -53,14 +53,14 @@ function getDebugTableForVertexArray(_ref) {
53
53
  }
54
54
 
55
55
  function getDebugTableRow(vertexArray, attribute, accessor, header) {
56
- var _ref4;
56
+ var _ref3;
57
57
 
58
58
  var gl = vertexArray.gl;
59
59
 
60
60
  if (!attribute) {
61
- var _ref2;
61
+ var _ref;
62
62
 
63
- return _ref2 = {}, (0, _defineProperty2.default)(_ref2, header, 'null'), (0, _defineProperty2.default)(_ref2, 'Format ', 'N/A'), _ref2;
63
+ return _ref = {}, (0, _defineProperty2.default)(_ref, header, 'null'), (0, _defineProperty2.default)(_ref, 'Format ', 'N/A'), _ref;
64
64
  }
65
65
 
66
66
  var type = 'NOT PROVIDED';
@@ -78,8 +78,8 @@ function getDebugTableRow(vertexArray, attribute, accessor, header) {
78
78
  isInteger = type.indexOf('nt') !== -1;
79
79
  }
80
80
 
81
- if (attribute instanceof _buffer.default) {
82
- var _ref3;
81
+ if (attribute instanceof _webglBuffer.default) {
82
+ var _ref2;
83
83
 
84
84
  var buffer = attribute;
85
85
 
@@ -101,20 +101,20 @@ function getDebugTableRow(vertexArray, attribute, accessor, header) {
101
101
  format = "".concat(bytes, " bytes");
102
102
  }
103
103
 
104
- return _ref3 = {}, (0, _defineProperty2.default)(_ref3, header, "".concat(marker).concat((0, _formatValue.formatValue)(value, {
104
+ return _ref2 = {}, (0, _defineProperty2.default)(_ref2, header, "".concat(marker).concat((0, _api.formatValue)(value, {
105
105
  size: size,
106
106
  isInteger: isInteger
107
- }))), (0, _defineProperty2.default)(_ref3, 'Format ', format), _ref3;
107
+ }))), (0, _defineProperty2.default)(_ref2, 'Format ', format), _ref2;
108
108
  }
109
109
 
110
110
  value = attribute;
111
111
  size = attribute.length;
112
112
  type = String(attribute.constructor.name).replace('Array', '');
113
113
  isInteger = type.indexOf('nt') !== -1;
114
- return _ref4 = {}, (0, _defineProperty2.default)(_ref4, header, "".concat((0, _formatValue.formatValue)(value, {
114
+ return _ref3 = {}, (0, _defineProperty2.default)(_ref3, header, "".concat((0, _api.formatValue)(value, {
115
115
  size: size,
116
116
  isInteger: isInteger
117
- }), " (constant)")), (0, _defineProperty2.default)(_ref4, 'Format ', "".concat(size, "x").concat(type, " (constant)")), _ref4;
117
+ }), " (constant)")), (0, _defineProperty2.default)(_ref3, 'Format ', "".concat(size, "x").concat(type, " (constant)")), _ref3;
118
118
  }
119
119
 
120
120
  function getGLSLDeclaration(name, accessor) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/debug/debug-vertex-array.js"],"names":["getDebugTableForVertexArray","vertexArray","header","configuration","table","elements","ELEMENT_ARRAY_BUFFER","getDebugTableRow","attributes","values","attributeLocation","info","_getAttributeInfo","rowHeader","name","accessor","accessors","location","getGLSLDeclaration","attribute","gl","type","size","verts","bytes","isInteger","marker","value","String","replace","indexOf","Buffer","buffer","getDebugData","data","changed","byteLength","BYTES_PER_ELEMENT","format","instanced","divisor","length","constructor","typeAndName"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAGO,SAASA,2BAAT,OAA2E;AAAA,MAArCC,WAAqC,QAArCA,WAAqC;AAAA,yBAAxBC,MAAwB;AAAA,MAAxBA,MAAwB,4BAAf,YAAe;;AAChF,MAAI,CAACD,WAAW,CAACE,aAAjB,EAAgC;AAC9B,WAAO,EAAP;AACD;;AAED,MAAMC,KAAK,GAAG,EAAd;;AAGA,MAAIH,WAAW,CAACI,QAAhB,EAA0B;AAExBD,IAAAA,KAAK,CAACE,oBAAN,GAA6BC,gBAAgB,CAACN,WAAD,EAAcA,WAAW,CAACI,QAA1B,EAAoC,IAApC,EAA0CH,MAA1C,CAA7C;AACD;;AAGD,MAAMM,UAAU,GAAGP,WAAW,CAACQ,MAA/B;;AAEA,OAAK,IAAMC,iBAAX,IAAgCF,UAAhC,EAA4C;AAC1C,QAAMG,IAAI,GAAGV,WAAW,CAACW,iBAAZ,CAA8BF,iBAA9B,CAAb;;AACA,QAAIC,IAAJ,EAAU;AACR,UAAIE,SAAS,aAAMH,iBAAN,eAA4BC,IAAI,CAACG,IAAjC,CAAb;AACA,UAAMC,QAAQ,GAAGd,WAAW,CAACe,SAAZ,CAAsBL,IAAI,CAACM,QAA3B,CAAjB;;AACA,UAAIF,QAAJ,EAAc;AACZF,QAAAA,SAAS,aAAMH,iBAAN,eAA4BQ,kBAAkB,CAACP,IAAI,CAACG,IAAN,EAAYC,QAAZ,CAA9C,CAAT;AACD;;AACDX,MAAAA,KAAK,CAACS,SAAD,CAAL,GAAmBN,gBAAgB,CACjCN,WADiC,EAEjCO,UAAU,CAACE,iBAAD,CAFuB,EAGjCK,QAHiC,EAIjCb,MAJiC,CAAnC;AAMD;AACF;;AAED,SAAOE,KAAP;AACD;;AAGD,SAASG,gBAAT,CAA0BN,WAA1B,EAAuCkB,SAAvC,EAAkDJ,QAAlD,EAA4Db,MAA5D,EAAoE;AAAA;;AAAA,MAC3DkB,EAD2D,GACrDnB,WADqD,CAC3DmB,EAD2D;;AAGlE,MAAI,CAACD,SAAL,EAAgB;AAAA;;AACd,4DACGjB,MADH,EACY,MADZ,wCAEE,SAFF,EAEa,KAFb;AAID;;AAED,MAAImB,IAAI,GAAG,cAAX;AACA,MAAIC,IAAI,GAAG,CAAX;AACA,MAAIC,KAAK,GAAG,CAAZ;AACA,MAAIC,KAAK,GAAG,CAAZ;AAEA,MAAIC,SAAJ;AACA,MAAIC,MAAJ;AACA,MAAIC,KAAJ;;AAEA,MAAIZ,QAAJ,EAAc;AACZM,IAAAA,IAAI,GAAGN,QAAQ,CAACM,IAAhB;AACAC,IAAAA,IAAI,GAAGP,QAAQ,CAACO,IAAhB;AAGAD,IAAAA,IAAI,GAAGO,MAAM,CAACP,IAAD,CAAN,CAAaQ,OAAb,CAAqB,OAArB,EAA8B,EAA9B,CAAP;AAGAJ,IAAAA,SAAS,GAAGJ,IAAI,CAACS,OAAL,CAAa,IAAb,MAAuB,CAAC,CAApC;AACD;;AAED,MAAIX,SAAS,YAAYY,eAAzB,EAAiC;AAAA;;AAC/B,QAAMC,MAAM,GAAGb,SAAf;;AAD+B,+BAGPa,MAAM,CAACC,YAAP,EAHO;AAAA,QAGxBC,IAHwB,wBAGxBA,IAHwB;AAAA,QAGlBC,OAHkB,wBAGlBA,OAHkB;;AAI/BT,IAAAA,MAAM,GAAGS,OAAO,GAAG,GAAH,GAAS,EAAzB;AAEAR,IAAAA,KAAK,GAAGO,IAAR;AAEAV,IAAAA,KAAK,GAAGQ,MAAM,CAACI,UAAf;AAEAb,IAAAA,KAAK,GAAGC,KAAK,GAAGU,IAAI,CAACG,iBAAb,GAAiCf,IAAzC;AAEA,QAAIgB,MAAJ;;AAEA,QAAIvB,QAAJ,EAAc;AACZ,UAAMwB,SAAS,GAAGxB,QAAQ,CAACyB,OAAT,GAAmB,CAArC;AACAF,MAAAA,MAAM,aAAMC,SAAS,GAAG,IAAH,GAAU,IAAzB,cAAiChB,KAAjC,gBAA4CD,IAA5C,cAAoDE,KAApD,oBAAmE,6BAAOJ,EAAP,EAAWC,IAAX,CAAnE,MAAN;AACD,KAHD,MAGO;AAELI,MAAAA,SAAS,GAAG,IAAZ;AACAa,MAAAA,MAAM,aAAMd,KAAN,WAAN;AACD;;AAED,4DACGtB,MADH,YACewB,MADf,SACwB,8BAAYC,KAAZ,EAAmB;AAACL,MAAAA,IAAI,EAAJA,IAAD;AAAOG,MAAAA,SAAS,EAATA;AAAP,KAAnB,CADxB,yCAEE,SAFF,EAEaa,MAFb;AAID;;AAGDX,EAAAA,KAAK,GAAGR,SAAR;AACAG,EAAAA,IAAI,GAAGH,SAAS,CAACsB,MAAjB;AAEApB,EAAAA,IAAI,GAAGO,MAAM,CAACT,SAAS,CAACuB,WAAV,CAAsB5B,IAAvB,CAAN,CAAmCe,OAAnC,CAA2C,OAA3C,EAAoD,EAApD,CAAP;AAEAJ,EAAAA,SAAS,GAAGJ,IAAI,CAACS,OAAL,CAAa,IAAb,MAAuB,CAAC,CAApC;AAEA,0DACG5B,MADH,YACe,8BAAYyB,KAAZ,EAAmB;AAACL,IAAAA,IAAI,EAAJA,IAAD;AAAOG,IAAAA,SAAS,EAATA;AAAP,GAAnB,CADf,wDAEE,SAFF,YAEgBH,IAFhB,cAEwBD,IAFxB;AAID;;AAGD,SAASH,kBAAT,CAA4BJ,IAA5B,EAAkCC,QAAlC,EAA4C;AAAA,MACnCM,IADmC,GACrBN,QADqB,CACnCM,IADmC;AAAA,MAC7BC,IAD6B,GACrBP,QADqB,CAC7BO,IAD6B;AAE1C,MAAMqB,WAAW,GAAG,wCAAmBtB,IAAnB,EAAyBC,IAAzB,CAApB;AACA,SAAOqB,WAAW,aAAM7B,IAAN,eAAe6B,WAAW,CAAC7B,IAA3B,SAAqCA,IAAvD;AACD","sourcesContent":["import Buffer from '../classes/buffer';\nimport {getKey} from '../webgl-utils/constants-to-keys';\nimport {getCompositeGLType} from '../webgl-utils/attribute-utils';\nimport {formatValue} from '../utils/format-value';\n\n// Creates object suitable as input for console.table\nexport function getDebugTableForVertexArray({vertexArray, header = 'Attributes'}) {\n if (!vertexArray.configuration) {\n return {};\n }\n\n const table = {}; // {[header]: {}};\n\n // Add index (elements) if available\n if (vertexArray.elements) {\n // const elements = Object.assign({size: 1}, vertexArray.elements);\n table.ELEMENT_ARRAY_BUFFER = getDebugTableRow(vertexArray, vertexArray.elements, null, header);\n }\n\n // Add used attributes\n const attributes = vertexArray.values;\n\n for (const attributeLocation in attributes) {\n const info = vertexArray._getAttributeInfo(attributeLocation);\n if (info) {\n let rowHeader = `${attributeLocation}: ${info.name}`;\n const accessor = vertexArray.accessors[info.location];\n if (accessor) {\n rowHeader = `${attributeLocation}: ${getGLSLDeclaration(info.name, accessor)}`;\n }\n table[rowHeader] = getDebugTableRow(\n vertexArray,\n attributes[attributeLocation],\n accessor,\n header\n );\n }\n }\n\n return table;\n}\n\n/* eslint-disable max-statements */\nfunction getDebugTableRow(vertexArray, attribute, accessor, header) {\n const {gl} = vertexArray;\n\n if (!attribute) {\n return {\n [header]: 'null',\n 'Format ': 'N/A'\n };\n }\n\n let type = 'NOT PROVIDED';\n let size = 1;\n let verts = 0;\n let bytes = 0;\n\n let isInteger;\n let marker;\n let value;\n\n if (accessor) {\n type = accessor.type;\n size = accessor.size;\n\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(type).replace('Array', '');\n\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n }\n\n if (attribute instanceof Buffer) {\n const buffer = attribute;\n\n const {data, changed} = buffer.getDebugData();\n marker = changed ? '*' : '';\n\n value = data;\n // @ts-ignore\n bytes = buffer.byteLength;\n // @ts-ignore\n verts = bytes / data.BYTES_PER_ELEMENT / size;\n\n let format;\n\n if (accessor) {\n const instanced = accessor.divisor > 0;\n format = `${instanced ? 'I ' : 'P '} ${verts} (x${size}=${bytes} bytes ${getKey(gl, type)})`;\n } else {\n // element buffer\n isInteger = true;\n format = `${bytes} bytes`;\n }\n\n return {\n [header]: `${marker}${formatValue(value, {size, isInteger})}`,\n 'Format ': format\n };\n }\n\n // CONSTANT VALUE\n value = attribute;\n size = attribute.length;\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(attribute.constructor.name).replace('Array', '');\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n\n return {\n [header]: `${formatValue(value, {size, isInteger})} (constant)`,\n 'Format ': `${size}x${type} (constant)`\n };\n}\n/* eslint-ensable max-statements */\n\nfunction getGLSLDeclaration(name, accessor) {\n const {type, size} = accessor;\n const typeAndName = getCompositeGLType(type, size);\n return typeAndName ? `${name} (${typeAndName.name})` : name;\n}\n"],"file":"debug-vertex-array.js"}
1
+ {"version":3,"sources":["../../../src/debug/debug-vertex-array.ts"],"names":["getDebugTableForVertexArray","options","vertexArray","header","configuration","table","elements","ELEMENT_ARRAY_BUFFER","getDebugTableRow","attributes","values","attributeLocation","info","_getAttributeInfo","rowHeader","name","accessor","accessors","location","getGLSLDeclaration","attribute","gl","type","size","verts","bytes","isInteger","marker","value","String","replace","indexOf","Buffer","buffer","getDebugData","data","changed","byteLength","BYTES_PER_ELEMENT","format","instanced","divisor","length","constructor","typeAndName"],"mappings":"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","sourcesContent":["import {formatValue} from '@luma.gl/api';\nimport Buffer from '../classes/webgl-buffer';\nimport {getKey} from '../webgl-utils/constants-to-keys';\nimport {getCompositeGLType} from '../webgl-utils/attribute-utils';\n\n// Creates object suitable as input for console.table\nexport function getDebugTableForVertexArray(options?: {vertexArray: any; header?: string}): {} {\n const {vertexArray, header = 'Attributes'} = options;\n\n if (!vertexArray.configuration) {\n return {};\n }\n\n const table = {}; // {[header]: {}};\n\n // Add index (elements) if available\n if (vertexArray.elements) {\n // const elements = Object.assign({size: 1}, vertexArray.elements);\n // @ts-expect-error\n table.ELEMENT_ARRAY_BUFFER = getDebugTableRow(vertexArray, vertexArray.elements, null, header);\n }\n\n // Add used attributes\n const attributes = vertexArray.values;\n\n for (const attributeLocation in attributes) {\n const info = vertexArray._getAttributeInfo(attributeLocation);\n if (info) {\n let rowHeader = `${attributeLocation}: ${info.name}`;\n const accessor = vertexArray.accessors[info.location];\n if (accessor) {\n rowHeader = `${attributeLocation}: ${getGLSLDeclaration(info.name, accessor)}`;\n }\n table[rowHeader] = getDebugTableRow(\n vertexArray,\n attributes[attributeLocation],\n accessor,\n header\n );\n }\n }\n\n return table;\n}\n\n/* eslint-disable max-statements */\nfunction getDebugTableRow(vertexArray, attribute, accessor, header) {\n const {gl} = vertexArray;\n\n if (!attribute) {\n return {\n [header]: 'null',\n 'Format ': 'N/A'\n };\n }\n\n let type = 'NOT PROVIDED';\n let size = 1;\n let verts = 0;\n let bytes = 0;\n\n let isInteger;\n let marker;\n let value;\n\n if (accessor) {\n type = accessor.type;\n size = accessor.size;\n\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(type).replace('Array', '');\n\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n }\n\n if (attribute instanceof Buffer) {\n const buffer = attribute;\n\n const {data, changed} = buffer.getDebugData();\n marker = changed ? '*' : '';\n\n value = data;\n bytes = buffer.byteLength;\n verts = bytes / data.BYTES_PER_ELEMENT / size;\n\n let format;\n\n if (accessor) {\n const instanced = accessor.divisor > 0;\n format = `${instanced ? 'I ' : 'P '} ${verts} (x${size}=${bytes} bytes ${getKey(gl, type)})`;\n } else {\n // element buffer\n isInteger = true;\n format = `${bytes} bytes`;\n }\n\n return {\n [header]: `${marker}${formatValue(value, {size, isInteger})}`,\n 'Format ': format\n };\n }\n\n // CONSTANT VALUE\n value = attribute;\n size = attribute.length;\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(attribute.constructor.name).replace('Array', '');\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n\n return {\n [header]: `${formatValue(value, {size, isInteger})} (constant)`,\n 'Format ': `${size}x${type} (constant)`\n };\n}\n/* eslint-ensable max-statements */\n\nfunction getGLSLDeclaration(name, accessor) {\n const {type, size} = accessor;\n const typeAndName = getCompositeGLType(type, size);\n return typeAndName ? `${name} (${typeAndName.name})` : name;\n}\n"],"file":"debug-vertex-array.js"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.canCompileGLSLExtension = canCompileGLSLExtension;
7
+
8
+ var _isOldIe = require("../webgl-utils/is-old-ie");
9
+
10
+ var compiledGLSLExtensions = {};
11
+
12
+ function canCompileGLSLExtension(gl, extensionName) {
13
+ var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
14
+
15
+ if (!(0, _isOldIe.isOldIE)(opts)) {
16
+ return true;
17
+ }
18
+
19
+ if (extensionName in compiledGLSLExtensions) {
20
+ return compiledGLSLExtensions[extensionName];
21
+ }
22
+
23
+ var behavior = opts.behavior || 'enable';
24
+ var source = "#extension GL_".concat(extensionName, " : ").concat(behavior, "\nvoid main(void) {}");
25
+ var shader = gl.createShader(gl.VERTEX_SHADER);
26
+ gl.shaderSource(shader, source);
27
+ gl.compileShader(shader);
28
+ var canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
29
+ gl.deleteShader(shader);
30
+ compiledGLSLExtensions[extensionName] = canCompile;
31
+ return canCompile;
32
+ }
33
+ //# sourceMappingURL=check-glsl-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/device/check-glsl-extension.ts"],"names":["compiledGLSLExtensions","canCompileGLSLExtension","gl","extensionName","opts","behavior","source","shader","createShader","VERTEX_SHADER","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"mappings":";;;;;;;AACA;;AAQA,IAAMA,sBAAsB,GAAG,EAA/B;;AAeO,SAASC,uBAAT,CAAiCC,EAAjC,EAA4DC,aAA5D,EAAmG;AAAA,MAAxBC,IAAwB,uEAAJ,EAAI;;AACxG,MAAI,CAAC,sBAAQA,IAAR,CAAL,EAAoB;AAClB,WAAO,IAAP;AACD;;AAED,MAAID,aAAa,IAAIH,sBAArB,EAA6C;AAC3C,WAAOA,sBAAsB,CAACG,aAAD,CAA7B;AACD;;AAED,MAAME,QAAQ,GAAGD,IAAI,CAACC,QAAL,IAAiB,QAAlC;AACA,MAAMC,MAAM,2BAAoBH,aAApB,gBAAuCE,QAAvC,yBAAZ;AAEA,MAAME,MAAM,GAAGL,EAAE,CAACM,YAAH,CAAgBN,EAAE,CAACO,aAAnB,CAAf;AACAP,EAAAA,EAAE,CAACQ,YAAH,CAAgBH,MAAhB,EAAwBD,MAAxB;AACAJ,EAAAA,EAAE,CAACS,aAAH,CAAiBJ,MAAjB;AACA,MAAMK,UAAU,GAAGV,EAAE,CAACW,kBAAH,CAAsBN,MAAtB,EAA8BL,EAAE,CAACY,cAAjC,CAAnB;AACAZ,EAAAA,EAAE,CAACa,YAAH,CAAgBR,MAAhB;AACAP,EAAAA,sBAAsB,CAACG,aAAD,CAAtB,GAAwCS,UAAxC;AACA,SAAOA,UAAP;AACD","sourcesContent":["// luma.gl, MIT license\nimport {isOldIE} from '../webgl-utils/is-old-ie';\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 extension fails to compile in IE11 even though its included\n// in the list of supported extensions.\n// const compiledGLSLExtensions = {};\n\nconst compiledGLSLExtensions = {};\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/*\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 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"],"file":"check-glsl-extension.js"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getDeviceFeatures = getDeviceFeatures;
9
+ exports.getWebGLFeatures = getWebGLFeatures;
10
+ exports.canCompileGLSLExtension = canCompileGLSLExtension;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
15
+
16
+ var _webglChecks = require("../context/context/webgl-checks");
17
+
18
+ var _isOldIe = require("../webgl-utils/is-old-ie");
19
+
20
+ function getDeviceFeatures(gl) {
21
+ var features = getWebGLFeatures(gl);
22
+ return features;
23
+ }
24
+
25
+ function getWebGLFeatures(gl) {
26
+ gl.getExtension('EXT_color_buffer_float');
27
+ gl.getExtension('WEBGL_color_buffer_float');
28
+ gl.getExtension('EXT_float_blend');
29
+ var features = new Set();
30
+
31
+ for (var feature in WEBGL_FEATURES) {
32
+ if (isFeatureSupported(gl, feature)) {
33
+ features.add(feature);
34
+ }
35
+ }
36
+
37
+ return features;
38
+ }
39
+
40
+ function isFeatureSupported(gl, feature) {
41
+ var _WEBGL_FEATURES$featu = (0, _slicedToArray2.default)(WEBGL_FEATURES[feature], 2),
42
+ webgl1Feature = _WEBGL_FEATURES$featu[0],
43
+ webgl2Feature = _WEBGL_FEATURES$featu[1];
44
+
45
+ ;
46
+ var featureDefinition = (0, _webglChecks.isWebGL2)(gl) ? webgl2Feature : webgl1Feature;
47
+
48
+ if (typeof featureDefinition === 'boolean') {
49
+ return featureDefinition;
50
+ }
51
+
52
+ switch (feature) {
53
+ case 'webgl-color-attachment-rgba32f':
54
+ return (0, _webglChecks.isWebGL2)(gl) ? Boolean(gl.getExtension(featureDefinition)) : checkFloat32ColorAttachment(gl);
55
+
56
+ case 'glsl-derivatives':
57
+ return canCompileGLSLExtension(gl, featureDefinition);
58
+
59
+ case 'glsl-frag-data':
60
+ return canCompileGLSLExtension(gl, featureDefinition, {
61
+ behavior: 'require'
62
+ });
63
+
64
+ case 'glsl-frag-depth':
65
+ return canCompileGLSLExtension(gl, featureDefinition);
66
+
67
+ default:
68
+ return Boolean(gl.getExtension(featureDefinition));
69
+ }
70
+ }
71
+
72
+ function checkFloat32ColorAttachment(gl) {
73
+ var texture;
74
+ var framebuffer;
75
+
76
+ try {
77
+ var _texture = gl.createTexture();
78
+
79
+ gl.bindTexture(_constants.default.TEXTURE_2D, _texture);
80
+ var level = 0;
81
+ var internalFormat = gl.RGBA;
82
+ var width = 1;
83
+ var height = 1;
84
+ var border = 0;
85
+ var srcFormat = gl.RGBA;
86
+ var srcType = gl.UNSIGNED_BYTE;
87
+ var pixel = new Uint8Array([0, 0, 255, 255]);
88
+ gl.texImage2D(gl.TEXTURE_2D, level, internalFormat, width, height, border, srcFormat, srcType, pixel);
89
+
90
+ var _framebuffer = gl.createFramebuffer();
91
+
92
+ gl.bindFramebuffer(_constants.default.FRAMEBUFFER, _framebuffer);
93
+ gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, _constants.default.COLOR_ATTACHMENT0, _constants.default.TEXTURE_2D, _texture, 0);
94
+
95
+ var status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER) === _constants.default.FRAMEBUFFER_COMPLETE;
96
+
97
+ return status;
98
+ } finally {
99
+ gl.deleteTexture(texture);
100
+ gl.deleteFramebuffer(framebuffer);
101
+ }
102
+ }
103
+
104
+ var compiledGLSLExtensions = {};
105
+
106
+ function canCompileGLSLExtension(gl, extensionName) {
107
+ var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
108
+
109
+ if (!(0, _isOldIe.isOldIE)(opts)) {
110
+ return true;
111
+ }
112
+
113
+ if (extensionName in compiledGLSLExtensions) {
114
+ return compiledGLSLExtensions[extensionName];
115
+ }
116
+
117
+ var behavior = opts.behavior || 'enable';
118
+ var source = "#extension GL_".concat(extensionName, " : ").concat(behavior, "\nvoid main(void) {}");
119
+ var shader = gl.createShader(gl.VERTEX_SHADER);
120
+ gl.shaderSource(shader, source);
121
+ gl.compileShader(shader);
122
+ var canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
123
+ gl.deleteShader(shader);
124
+ compiledGLSLExtensions[extensionName] = canCompile;
125
+ return canCompile;
126
+ }
127
+
128
+ var WEBGL_FEATURES = {
129
+ 'webgl2': [false, true],
130
+ 'webgl-vertex-array-object': ['OES_vertex_array_object', true],
131
+ 'webgl-timer-query': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],
132
+ 'webgl-instanced-rendering': ['ANGLE_instanced_arrays', true],
133
+ 'webgl-multiple-render-targets': ['WEBGL_draw_buffers', true],
134
+ 'webgl-element-index-uint32': ['OES_element_index_uint', true],
135
+ 'webgl-blend-equation-minmax': ['EXT_blend_minmax', true],
136
+ 'webgl-float-blend': ['EXT_float_blend', 'EXT_float_blend'],
137
+ 'webgl-color-encoding-srgb': ['EXT_sRGB', true],
138
+ 'webgl-texture-depth': ['WEBGL_depth_texture', true],
139
+ 'webgl-texture-float': ['OES_texture_float', true],
140
+ 'webgl-texture-half-float': ['OES_texture_half_float', true],
141
+ 'webgl-texture-filter-linear-float': ['OES_texture_float_linear', 'OES_texture_float_linear'],
142
+ 'webgl-texture-filter-linear-half-float': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],
143
+ 'webgl-texture-filter-anisotropic': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],
144
+ 'webgl-color-attachment-rgba32f': [false, 'EXT_color_buffer_float'],
145
+ 'webgl-color-attachment-float': [false, 'EXT_color_buffer_float'],
146
+ 'webgl-color-attachment-half-float': ['EXT_color_buffer_half_float', 'EXT_color_buffer_half_float'],
147
+ 'glsl-frag-data': ['WEBGL_draw_buffers', true],
148
+ 'glsl-frag-depth': ['EXT_frag_depth', true],
149
+ 'glsl-derivatives': ['OES_standard_derivatives', true],
150
+ 'glsl-texture-lod': ['EXT_shader_texture_lod', true]
151
+ };
152
+ //# sourceMappingURL=device-features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/device/device-features.ts"],"names":["getDeviceFeatures","gl","features","getWebGLFeatures","getExtension","Set","feature","WEBGL_FEATURES","isFeatureSupported","add","webgl1Feature","webgl2Feature","featureDefinition","Boolean","checkFloat32ColorAttachment","canCompileGLSLExtension","behavior","texture","framebuffer","createTexture","bindTexture","GL","TEXTURE_2D","level","internalFormat","RGBA","width","height","border","srcFormat","srcType","UNSIGNED_BYTE","pixel","Uint8Array","texImage2D","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","status","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","deleteTexture","deleteFramebuffer","compiledGLSLExtensions","extensionName","opts","source","shader","createShader","VERTEX_SHADER","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"mappings":"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","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 GL from '@luma.gl/constants';\nimport {isWebGL2} from '../context/context/webgl-checks';\nimport {isOldIE} from '../webgl-utils/is-old-ie';\n\nexport type DeviceFeature = \n 'depth-clamping' |\n 'depth24unorm-stencil8' |\n 'depth32float-stencil8' |\n 'pipeline-statistics-query' |\n 'timestamp-query' |\n 'texture-compression-bc';\n\n// TODO - this should be the default export, test cases need updating\nexport type WebGLFeature = \n 'webgl2' |\n\n // api support (unify with WebGPU timestamp-query?)\n 'webgl-timer-query' |\n\n // api support\n 'webgl-vertex-array-object' |\n 'webgl-instanced-rendering' |\n 'webgl-multiple-render-targets' |\n\n // features\n 'webgl-element-index-uint32' |\n\n // blending\n 'webgl-blend-equation-minmax' |\n 'webgl-float-blend' |\n\n // textures | renderbuffers\n 'webgl-color-encoding-srgb' |\n\n // textures\n 'webgl-texture-depth' |\n 'webgl-texture-float' |\n 'webgl-texture-half-float' |\n\n 'webgl-texture-filter-linear-float' |\n 'webgl-texture-filter-linear-half-float' |\n 'webgl-texture-filter-anisotropic' |\n\n // framebuffers | textures and renderbuffers\n 'webgl-color-attachment-rgba32f' |\n 'webgl-color-attachment-float' |\n 'webgl-color-attachment-half-float' |\n\n // glsl extensions\n 'glsl-frag-data' |\n 'glsl-frag-depth' |\n 'glsl-derivatives' |\n 'glsl-texture-lod';\n\n/** Valid feature strings */\nexport type Feature = DeviceFeature | WebGLFeature;\n\n/** Get WebGPU style feature strings */\nexport function getDeviceFeatures(gl: WebGLRenderingContext): Set<DeviceFeature | WebGLFeature> {\n const features = getWebGLFeatures(gl);\n // features.add('depth-clamping'); // GPUPrimitiveState.clampDepth\n // features.add('depth24unorm-stencil8'); // GPUTextureFormat 'depth24unorm-stencil8'.\n // features.add('depth32float-stencil8'); // GPUTextureFormat 'depth32float-stencil8'.\n // features.add('pipeline-statistics-query'); // GPUQueryType \"pipeline-statistics\"\n // features.add('timestamp-query'); // GPUQueryType \"timestamp-query\"\n // TODO\n // features.add('texture-compression-bc'); // GPUQueryType \"timestamp\"\n // TODO\n return features;\n}\n\n/** Extract all WebGL features */\nexport function getWebGLFeatures(gl: WebGLRenderingContext): Set<WebGLFeature> {\n // Enable 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<WebGLFeature>();\n for (const feature in WEBGL_FEATURES) {\n if (isFeatureSupported(gl, feature as WebGLFeature)) {\n features.add(feature as WebGLFeature );\n }\n }\n return features;\n}\n\nfunction isFeatureSupported(gl: WebGLRenderingContext, feature: WebGLFeature): boolean {\n const [webgl1Feature, webgl2Feature] = WEBGL_FEATURES[feature];;\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 'webgl-color-attachment-rgba32f':\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\n\n// function to test if Float 32 bit format texture can be bound as color attachment\nfunction checkFloat32ColorAttachment(gl: WebGLRenderingContext): boolean {\n let texture: WebGLTexture;\n let framebuffer: WebGLFramebuffer;\n try {\n const texture = gl.createTexture();\n gl.bindTexture(GL.TEXTURE_2D, texture);\n\n const level = 0;\n const internalFormat = gl.RGBA;\n const width = 1;\n const height = 1;\n const border = 0;\n const srcFormat = gl.RGBA;\n const srcType = gl.UNSIGNED_BYTE;\n const pixel = new Uint8Array([0, 0, 255, 255]); // opaque blue\n gl.texImage2D(gl.TEXTURE_2D, level, internalFormat,\n width, height, border, srcFormat, srcType,\n pixel);\n\n const 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 return status;\n } finally {\n gl.deleteTexture(texture);\n gl.deleteFramebuffer(framebuffer);\n }\n}\n\nconst compiledGLSLExtensions = {};\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 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: Record<WebGLFeature, [boolean | string, boolean | string]> = {\n 'webgl2': [false, true],\n\n // API SUPPORT\n 'webgl-vertex-array-object': ['OES_vertex_array_object', true],\n 'webgl-timer-query': ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n 'webgl-instanced-rendering': ['ANGLE_instanced_arrays', true],\n 'webgl-multiple-render-targets': ['WEBGL_draw_buffers', true],\n\n // FEATURES\n 'webgl-element-index-uint32': ['OES_element_index_uint', true],\n\n // BLENDING\n 'webgl-blend-equation-minmax': ['EXT_blend_minmax', true],\n 'webgl-float-blend': ['EXT_float_blend', 'EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n 'webgl-color-encoding-srgb': ['EXT_sRGB', true],\n\n // TEXTURES\n 'webgl-texture-depth': ['WEBGL_depth_texture', true],\n 'webgl-texture-float': ['OES_texture_float', true],\n 'webgl-texture-half-float': ['OES_texture_half_float', true],\n\n 'webgl-texture-filter-linear-float': ['OES_texture_float_linear', 'OES_texture_float_linear'],\n 'webgl-texture-filter-linear-half-float': ['OES_texture_half_float_linear', 'OES_texture_half_float_linear'],\n 'webgl-texture-filter-anisotropic': ['EXT_texture_filter_anisotropic', 'EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n 'webgl-color-attachment-rgba32f': [false, 'EXT_color_buffer_float'], // Note override check\n 'webgl-color-attachment-float': [false, 'EXT_color_buffer_float'],\n 'webgl-color-attachment-half-float': ['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"],"file":"device-features.js"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getDeviceLimits = getDeviceLimits;
9
+ exports.getWebGLLimits = getWebGLLimits;
10
+
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+
13
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
14
+
15
+ var _webglChecks = require("../context/context/webgl-checks");
16
+
17
+ function getDeviceLimits(gl) {
18
+ var gl2 = (0, _webglChecks.getWebGL2Context)(gl);
19
+ return {
20
+ maxTextureDimension1D: 0,
21
+ maxTextureDimension2D: gl.getParameter(_constants.default.MAX_TEXTURE_SIZE),
22
+ maxTextureDimension3D: gl2 ? gl2.getParameter(_constants.default.MAX_3D_TEXTURE_SIZE) : 0,
23
+ maxTextureArrayLayers: gl2 ? gl2.getParameter(_constants.default.MAX_ARRAY_TEXTURE_LAYERS) : 0,
24
+ maxBindGroups: 1,
25
+ maxDynamicUniformBuffersPerPipelineLayout: 0,
26
+ maxDynamicStorageBuffersPerPipelineLayout: 0,
27
+ maxSampledTexturesPerShaderStage: gl.getParameter(_constants.default.MAX_VERTEX_TEXTURE_IMAGE_UNITS),
28
+ maxSamplersPerShaderStage: gl.getParameter(_constants.default.MAX_COMBINED_TEXTURE_IMAGE_UNITS),
29
+ maxStorageBuffersPerShaderStage: 0,
30
+ maxStorageTexturesPerShaderStage: 0,
31
+ maxUniformBuffersPerShaderStage: gl2 ? gl2.getParameter(_constants.default.MAX_UNIFORM_BUFFER_BINDINGS) : 0,
32
+ maxUniformBufferBindingSize: gl2 ? gl2.getParameter(_constants.default.MAX_UNIFORM_BLOCK_SIZE) : 0,
33
+ maxStorageBufferBindingSize: 0,
34
+ minUniformBufferOffsetAlignment: gl2 ? gl2.getParameter(_constants.default.UNIFORM_BUFFER_OFFSET_ALIGNMENT) : 0,
35
+ minStorageBufferOffsetAlignment: 0,
36
+ maxVertexBuffers: 0,
37
+ maxVertexAttributes: gl.getParameter(_constants.default.MAX_VERTEX_ATTRIBS),
38
+ maxVertexBufferArrayStride: 2048,
39
+ maxInterStageShaderComponents: gl2 ? gl2.getParameter(_constants.default.MAX_VARYING_COMPONENTS) : 0,
40
+ maxComputeWorkgroupStorageSize: 0,
41
+ maxComputeInvocationsPerWorkgroup: 0,
42
+ maxComputeWorkgroupSizeX: 0,
43
+ maxComputeWorkgroupSizeY: 0,
44
+ maxComputeWorkgroupSizeZ: 0,
45
+ maxComputeWorkgroupsPerDimension: 0
46
+ };
47
+ }
48
+
49
+ function getWebGLLimits(gl) {
50
+ var _ref;
51
+
52
+ var gl2 = (0, _webglChecks.getWebGL2Context)(gl);
53
+
54
+ function get(pname) {
55
+ return gl.getParameter(pname);
56
+ }
57
+
58
+ function get2(pname, defaultValue) {
59
+ return gl2 ? gl2.getParameter(pname) : defaultValue || 0;
60
+ }
61
+
62
+ 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_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;
63
+ }
64
+ //# sourceMappingURL=device-limits.js.map