@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 @@
1
+ {"version":3,"sources":["../../../src/device/device-limits.ts"],"names":["getDeviceLimits","gl","gl2","maxTextureDimension1D","maxTextureDimension2D","getParameter","GL","MAX_TEXTURE_SIZE","maxTextureDimension3D","MAX_3D_TEXTURE_SIZE","maxTextureArrayLayers","MAX_ARRAY_TEXTURE_LAYERS","maxBindGroups","maxDynamicUniformBuffersPerPipelineLayout","maxDynamicStorageBuffersPerPipelineLayout","maxSampledTexturesPerShaderStage","MAX_VERTEX_TEXTURE_IMAGE_UNITS","maxSamplersPerShaderStage","MAX_COMBINED_TEXTURE_IMAGE_UNITS","maxStorageBuffersPerShaderStage","maxStorageTexturesPerShaderStage","maxUniformBuffersPerShaderStage","MAX_UNIFORM_BUFFER_BINDINGS","maxUniformBufferBindingSize","MAX_UNIFORM_BLOCK_SIZE","maxStorageBufferBindingSize","minUniformBufferOffsetAlignment","UNIFORM_BUFFER_OFFSET_ALIGNMENT","minStorageBufferOffsetAlignment","maxVertexBuffers","maxVertexAttributes","MAX_VERTEX_ATTRIBS","maxVertexBufferArrayStride","maxInterStageShaderComponents","MAX_VARYING_COMPONENTS","maxComputeWorkgroupStorageSize","maxComputeInvocationsPerWorkgroup","maxComputeWorkgroupSizeX","maxComputeWorkgroupSizeY","maxComputeWorkgroupSizeZ","maxComputeWorkgroupsPerDimension","getWebGLLimits","get","pname","get2","defaultValue","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_TEXTURE_IMAGE_UNITS","MAX_RENDERBUFFER_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_UNIFORM_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MAX_CLIENT_WAIT_TIMEOUT_WEBGL","MAX_COLOR_ATTACHMENTS","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_DRAW_BUFFERS","MAX_ELEMENT_INDEX","MAX_ELEMENTS_INDICES","MAX_ELEMENTS_VERTICES","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_SAMPLES","MAX_SERVER_WAIT_TIMEOUT","MAX_TEXTURE_LOD_BIAS","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_VERTEX_UNIFORM_BLOCKS","MAX_VERTEX_UNIFORM_COMPONENTS","MIN_PROGRAM_TEXEL_OFFSET","MAX_PROGRAM_TEXEL_OFFSET"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport type {DeviceLimits} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getWebGL2Context} from '../context/context/webgl-checks';\n\n/** Populate a WebGPU style device limits */\nexport function getDeviceLimits(gl: WebGLRenderingContext): DeviceLimits {\n const gl2: WebGL2RenderingContext = getWebGL2Context(gl);\n return {\n maxTextureDimension1D: 0, // WebGL does not support 1D textures\n maxTextureDimension2D: gl.getParameter(GL.MAX_TEXTURE_SIZE),\n maxTextureDimension3D: gl2 ? gl2.getParameter(GL.MAX_3D_TEXTURE_SIZE) : 0,\n maxTextureArrayLayers: gl2 ? gl2.getParameter(GL.MAX_ARRAY_TEXTURE_LAYERS) : 0,\n maxBindGroups: 1, // TBD\n maxDynamicUniformBuffersPerPipelineLayout: 0, // TBD\n maxDynamicStorageBuffersPerPipelineLayout: 0, // TBD\n maxSampledTexturesPerShaderStage: gl.getParameter(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // TBD\n maxSamplersPerShaderStage: gl.getParameter(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n maxStorageBuffersPerShaderStage: 0, // TBD\n maxStorageTexturesPerShaderStage: 0, // TBD\n maxUniformBuffersPerShaderStage: gl2 ? gl2.getParameter(GL.MAX_UNIFORM_BUFFER_BINDINGS) : 0,\n maxUniformBufferBindingSize: gl2 ? gl2.getParameter(GL.MAX_UNIFORM_BLOCK_SIZE) : 0,\n maxStorageBufferBindingSize: 0,\n minUniformBufferOffsetAlignment: gl2 ? gl2.getParameter(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) : 0,\n minStorageBufferOffsetAlignment: 0, // TBD\n maxVertexBuffers: 0,\n maxVertexAttributes: gl.getParameter(GL.MAX_VERTEX_ATTRIBS),\n maxVertexBufferArrayStride: 2048, // TBD, this is just the default value from WebGPU\n maxInterStageShaderComponents: gl2 ? gl2.getParameter(GL.MAX_VARYING_COMPONENTS) : 0,\n maxComputeWorkgroupStorageSize: 0, // WebGL does not support compute shaders\n maxComputeInvocationsPerWorkgroup: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeX: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeY: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupSizeZ: 0, // WebGL does not support compute shaders\n maxComputeWorkgroupsPerDimension: 0, // WebGL does not support compute shaders\n }\n}\n\n/** WebGL context limits */\nexport type WebGLLimits = {\n [GL.ALIASED_LINE_WIDTH_RANGE]: [number, number];\n [GL.ALIASED_POINT_SIZE_RANGE]: [number, number];\n [GL.MAX_TEXTURE_SIZE]: number;\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: number;\n [GL.MAX_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: number;\n [GL.MAX_RENDERBUFFER_SIZE]: number;\n [GL.MAX_VARYING_VECTORS]: number;\n [GL.MAX_VERTEX_ATTRIBS]: number;\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: number;\n [GL.MAX_VIEWPORT_DIMS]: [number, number];\n\n // Extensions\n // [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: number;\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: number;\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: number;\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: number;\n [GL.MAX_COLOR_ATTACHMENTS]: number;\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: number;\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: number;\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: number;\n [GL.MAX_DRAW_BUFFERS]: number;\n [GL.MAX_ELEMENT_INDEX]: number;\n [GL.MAX_ELEMENTS_INDICES]: number;\n [GL.MAX_ELEMENTS_VERTICES]: number;\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: number;\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: number;\n [GL.MAX_SAMPLES]: number;\n [GL.MAX_SERVER_WAIT_TIMEOUT]: number;\n [GL.MAX_TEXTURE_LOD_BIAS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: number;\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: number;\n [GL.MAX_UNIFORM_BLOCK_SIZE]: number;\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: number;\n [GL.MAX_VARYING_COMPONENTS]: number;\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: number;\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: number;\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: number;\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: number;\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: number;\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: number;\n};\n\n\nexport function getWebGLLimits(gl: WebGLRenderingContext): WebGLLimits {\n const gl2 = getWebGL2Context(gl);\n function get<T = number>(pname: number): T {\n return gl.getParameter(pname) as T;\n }\n function get2(pname: number, defaultValue?: number): number;\n function get2<T>(pname: number, defaultValue: T): T;\n function get2<T>(pname: number, defaultValue: T): T {\n return gl2 ? gl2.getParameter(pname) as T : (defaultValue || 0) as T;\n }\n return {\n [GL.ALIASED_LINE_WIDTH_RANGE]: get(GL.ALIASED_LINE_WIDTH_RANGE),\n [GL.ALIASED_POINT_SIZE_RANGE]: get(GL.ALIASED_POINT_SIZE_RANGE),\n [GL.MAX_TEXTURE_SIZE]: get(GL.MAX_TEXTURE_SIZE),\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: get(GL.MAX_CUBE_MAP_TEXTURE_SIZE), // GLint\n [GL.MAX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: get(GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: get(GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS), // GLint\n [GL.MAX_RENDERBUFFER_SIZE]: get(GL.MAX_RENDERBUFFER_SIZE), // GLint\n [GL.MAX_VARYING_VECTORS]: get(GL.MAX_VARYING_VECTORS), // GLint\n [GL.MAX_VERTEX_ATTRIBS]: get(GL.MAX_VERTEX_ATTRIBS), // GLint\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: get(GL.MAX_VERTEX_UNIFORM_VECTORS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: get(GL.MAX_FRAGMENT_UNIFORM_VECTORS), // GLint\n [GL.MAX_VIEWPORT_DIMS]: get(GL.MAX_VIEWPORT_DIMS),\n\n // Extensions\n // [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: {gl1: 1.0, extension: 'EXT_texture_filter_anisotropic'},\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: get2(GL.MAX_3D_TEXTURE_SIZE), // GLint\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: get2(GL.MAX_ARRAY_TEXTURE_LAYERS), // GLint\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: get2(GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL), // GLint64\n [GL.MAX_COLOR_ATTACHMENTS]: get2(GL.MAX_COLOR_ATTACHMENTS), // GLint\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS), // GLint64\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: get2(GL.MAX_COMBINED_UNIFORM_BLOCKS), // GLint\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS), // GLint64\n [GL.MAX_DRAW_BUFFERS]: get2(GL.MAX_DRAW_BUFFERS), // GLint\n [GL.MAX_ELEMENT_INDEX]: get2(GL.MAX_ELEMENT_INDEX), // GLint64\n [GL.MAX_ELEMENTS_INDICES]: get2(GL.MAX_ELEMENTS_INDICES), // GLint\n [GL.MAX_ELEMENTS_VERTICES]: get2(GL.MAX_ELEMENTS_VERTICES), // GLint\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: get2(GL.MAX_FRAGMENT_INPUT_COMPONENTS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: get2(GL.MAX_FRAGMENT_UNIFORM_BLOCKS), // GLint\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: get2(GL.MAX_FRAGMENT_UNIFORM_COMPONENTS), // GLint\n [GL.MAX_SAMPLES]: get2(GL.MAX_SAMPLES), // GLint\n [GL.MAX_SERVER_WAIT_TIMEOUT]: get2(GL.MAX_SERVER_WAIT_TIMEOUT), // GLint64\n [GL.MAX_TEXTURE_LOD_BIAS]: get2(GL.MAX_TEXTURE_LOD_BIAS), // GLfloat\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS), // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS), // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: get2(GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS), // GLint\n [GL.MAX_UNIFORM_BLOCK_SIZE]: get2(GL.MAX_UNIFORM_BLOCK_SIZE), // GLint64\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: get2(GL.MAX_UNIFORM_BUFFER_BINDINGS), // GLint\n [GL.MAX_VARYING_COMPONENTS]: get2(GL.MAX_VARYING_COMPONENTS), // GLint\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: get2(GL.MAX_VERTEX_OUTPUT_COMPONENTS), // GLint\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: get2(GL.MAX_VERTEX_UNIFORM_BLOCKS), // GLint\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: get2(GL.MAX_VERTEX_UNIFORM_COMPONENTS), // GLint\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: get2(GL.MIN_PROGRAM_TEXEL_OFFSET), // GLint\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: get2(GL.MAX_PROGRAM_TEXEL_OFFSET), // GLint\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: get2(GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT) // GLint\n };\n}\n"],"file":"device-limits.js"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getDeviceInfo = getDeviceInfo;
9
+
10
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
11
+
12
+ var _webglChecks = require("../context/context/webgl-checks");
13
+
14
+ function getDeviceInfo(gl) {
15
+ var vendorMasked = gl.getParameter(_constants.default.VENDOR);
16
+ var rendererMasked = gl.getParameter(_constants.default.RENDERER);
17
+ var ext = gl.getExtension('WEBGL_debug_renderer_info');
18
+ var vendorUnmasked = gl.getParameter(ext ? ext.UNMASKED_VENDOR_WEBGL : _constants.default.VENDOR);
19
+ var rendererUnmasked = gl.getParameter(ext ? ext.UNMASKED_RENDERER_WEBGL : _constants.default.RENDERER);
20
+ var vendor = vendorUnmasked || vendorMasked;
21
+ var renderer = rendererUnmasked || rendererMasked;
22
+ var gpuVendor = identifyGPUVendor(vendor, renderer);
23
+ return {
24
+ type: (0, _webglChecks.isWebGL2)(gl) ? 'webgl2' : 'webgl',
25
+ gpuVendor: gpuVendor,
26
+ vendor: vendorUnmasked || vendorMasked,
27
+ renderer: rendererUnmasked || rendererMasked,
28
+ version: gl.getParameter(_constants.default.VERSION),
29
+ shadingLanguages: ['glsl'],
30
+ shadingLanguageVersions: {
31
+ 'glsl': gl.getParameter(_constants.default.SHADING_LANGUAGE_VERSION)
32
+ }
33
+ };
34
+ }
35
+
36
+ function identifyGPUVendor(vendor, renderer) {
37
+ if (vendor.match(/NVIDIA/i) || renderer.match(/NVIDIA/i)) {
38
+ return 'NVIDIA';
39
+ }
40
+
41
+ if (vendor.match(/INTEL/i) || renderer.match(/INTEL/i)) {
42
+ return 'INTEL';
43
+ }
44
+
45
+ if (vendor.match(/Apple/i) || renderer.match(/Apple/i)) {
46
+ return 'APPLE';
47
+ }
48
+
49
+ if (vendor.match(/AMD/i) || renderer.match(/AMD/i) || vendor.match(/ATI/i) || renderer.match(/ATI/i)) {
50
+ return 'AMD';
51
+ }
52
+
53
+ return 'UNKNOWN';
54
+ }
55
+ //# sourceMappingURL=get-device-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/device/get-device-info.ts"],"names":["getDeviceInfo","gl","vendorMasked","getParameter","GL","VENDOR","rendererMasked","RENDERER","ext","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","vendor","renderer","gpuVendor","identifyGPUVendor","type","version","VERSION","shadingLanguages","shadingLanguageVersions","SHADING_LANGUAGE_VERSION","match"],"mappings":";;;;;;;;;AACA;;AACA;;AAGO,SAASA,aAAT,CAAuBC,EAAvB,EAA8D;AACnE,MAAMC,YAAY,GAAGD,EAAE,CAACE,YAAH,CAAgBC,mBAAGC,MAAnB,CAArB;AACA,MAAMC,cAAc,GAAGL,EAAE,CAACE,YAAH,CAAgBC,mBAAGG,QAAnB,CAAvB;AAGA,MAAMC,GAAG,GAAGP,EAAE,CAACQ,YAAH,CAAgB,2BAAhB,CAAZ;AACA,MAAMC,cAAc,GAAGT,EAAE,CAACE,YAAH,CAAgBK,GAAG,GAAGA,GAAG,CAACG,qBAAP,GAA+BP,mBAAGC,MAArD,CAAvB;AACA,MAAMO,gBAAgB,GAAGX,EAAE,CAACE,YAAH,CAAgBK,GAAG,GAAGA,GAAG,CAACK,uBAAP,GAAiCT,mBAAGG,QAAvD,CAAzB;AACA,MAAMO,MAAM,GAAGJ,cAAc,IAAIR,YAAjC;AACA,MAAMa,QAAQ,GAAGH,gBAAgB,IAAIN,cAArC;AACA,MAAMU,SAAS,GAAGC,iBAAiB,CAACH,MAAD,EAASC,QAAT,CAAnC;AACA,SAAO;AACLG,IAAAA,IAAI,EAAE,2BAASjB,EAAT,IAAe,QAAf,GAA0B,OAD3B;AAELe,IAAAA,SAAS,EAATA,SAFK;AAGLF,IAAAA,MAAM,EAAEJ,cAAc,IAAIR,YAHrB;AAILa,IAAAA,QAAQ,EAAEH,gBAAgB,IAAIN,cAJzB;AAKLa,IAAAA,OAAO,EAAElB,EAAE,CAACE,YAAH,CAAgBC,mBAAGgB,OAAnB,CALJ;AAMLC,IAAAA,gBAAgB,EAAE,CAAC,MAAD,CANb;AAOLC,IAAAA,uBAAuB,EAAE;AACvB,cAAQrB,EAAE,CAACE,YAAH,CAAgBC,mBAAGmB,wBAAnB;AADe;AAPpB,GAAP;AAWD;;AAED,SAASN,iBAAT,CAA2BH,MAA3B,EAA2CC,QAA3C,EAA+G;AAC7G,MAAID,MAAM,CAACU,KAAP,CAAa,SAAb,KAA2BT,QAAQ,CAACS,KAAT,CAAe,SAAf,CAA/B,EAA0D;AACxD,WAAO,QAAP;AACD;;AACD,MAAIV,MAAM,CAACU,KAAP,CAAa,QAAb,KAA0BT,QAAQ,CAACS,KAAT,CAAe,QAAf,CAA9B,EAAwD;AACtD,WAAO,OAAP;AACD;;AACD,MAAIV,MAAM,CAACU,KAAP,CAAa,QAAb,KAA0BT,QAAQ,CAACS,KAAT,CAAe,QAAf,CAA9B,EAAwD;AACtD,WAAO,OAAP;AACD;;AACD,MACEV,MAAM,CAACU,KAAP,CAAa,MAAb,KACAT,QAAQ,CAACS,KAAT,CAAe,MAAf,CADA,IAEAV,MAAM,CAACU,KAAP,CAAa,MAAb,CAFA,IAGAT,QAAQ,CAACS,KAAT,CAAe,MAAf,CAJF,EAKE;AACA,WAAO,KAAP;AACD;;AACD,SAAO,SAAP;AACD","sourcesContent":["import {DeviceInfo} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../context/context/webgl-checks';\n \n/** @returns strings identifying the GPU vendor and driver. */\nexport function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo {\n const vendorMasked = gl.getParameter(GL.VENDOR);\n const rendererMasked = gl.getParameter(GL.RENDERER);\n // Get unmasked strings if available\n // https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/\n const ext = gl.getExtension('WEBGL_debug_renderer_info');\n const vendorUnmasked = gl.getParameter(ext ? ext.UNMASKED_VENDOR_WEBGL : GL.VENDOR);\n const rendererUnmasked = gl.getParameter(ext ? ext.UNMASKED_RENDERER_WEBGL : GL.RENDERER);\n const vendor = vendorUnmasked || vendorMasked;\n const renderer = rendererUnmasked || rendererMasked;\n const gpuVendor = identifyGPUVendor(vendor, renderer);\n return {\n type: isWebGL2(gl) ? 'webgl2' : 'webgl',\n gpuVendor,\n vendor: vendorUnmasked || vendorMasked,\n renderer: rendererUnmasked || rendererMasked,\n version: gl.getParameter(GL.VERSION),\n shadingLanguages: ['glsl'],\n shadingLanguageVersions: {\n 'glsl': gl.getParameter(GL.SHADING_LANGUAGE_VERSION) as string\n }\n };\n}\n\nfunction identifyGPUVendor(vendor: string, renderer: string): 'NVIDIA' | 'INTEL' | 'APPLE' | 'AMD' | 'UNKNOWN' {\n if (vendor.match(/NVIDIA/i) || renderer.match(/NVIDIA/i)) {\n return 'NVIDIA';\n }\n if (vendor.match(/INTEL/i) || renderer.match(/INTEL/i)) {\n return 'INTEL';\n }\n if (vendor.match(/Apple/i) || renderer.match(/Apple/i)) {\n return 'APPLE';\n }\n if (\n vendor.match(/AMD/i) ||\n renderer.match(/AMD/i) ||\n vendor.match(/ATI/i) ||\n renderer.match(/ATI/i)\n ) {\n return 'AMD';\n }\n return 'UNKNOWN';\n}\n"],"file":"get-device-info.js"}
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getWebGLDevice = getWebGLDevice;
9
+ exports.default = void 0;
10
+
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+
15
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
16
+
17
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
18
+
19
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
20
+
21
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
22
+
23
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
24
+
25
+ var _api = require("@luma.gl/api");
26
+
27
+ var _polyfillContext = require("../context/polyfill/polyfill-context");
28
+
29
+ var _trackContextState = require("../context/state-tracker/track-context-state");
30
+
31
+ var _devicePixels = require("../context/context/device-pixels");
32
+
33
+ var _createContext2 = require("../context/context/create-context");
34
+
35
+ var _getCanvas = require("../context/context/get-canvas");
36
+
37
+ var _webglChecks = require("../context/context/webgl-checks");
38
+
39
+ var _getDeviceInfo = require("./get-device-info");
40
+
41
+ var _deviceFeatures = require("./device-features");
42
+
43
+ var _deviceLimits = require("./device-limits");
44
+
45
+ var _webglBuffer = _interopRequireDefault(require("../classes/webgl-buffer"));
46
+
47
+ var _webglShader = require("../classes/webgl-shader");
48
+
49
+ var _texture2d = _interopRequireDefault(require("../classes/texture-2d"));
50
+
51
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
52
+
53
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
54
+
55
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
56
+
57
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
58
+
59
+ var DEFAULT_DEVICE_PROPS = {
60
+ canvas: undefined,
61
+ gl: undefined,
62
+ webgl2: true,
63
+ webgl1: true,
64
+ manageState: true,
65
+ width: 800,
66
+ height: 600,
67
+ debug: false,
68
+ break: undefined,
69
+ onContextLost: function onContextLost() {
70
+ return console.error('WebGL context lost');
71
+ },
72
+ onContextRestored: function onContextRestored() {
73
+ return console.info('WebGL context restored');
74
+ },
75
+ alpha: undefined,
76
+ depth: undefined,
77
+ stencil: undefined,
78
+ antialias: undefined,
79
+ premultipliedAlpha: undefined,
80
+ preserveDrawingBuffer: undefined,
81
+ failIfMajorPerformanceCaveat: undefined
82
+ };
83
+ var glToContextMap = new WeakMap();
84
+
85
+ function getWebGLDevice(gl) {
86
+ return glToContextMap.get(gl);
87
+ }
88
+
89
+ var counter = 0;
90
+
91
+ var WebGLDevice = function (_Device) {
92
+ (0, _inherits2.default)(WebGLDevice, _Device);
93
+
94
+ var _super = _createSuper(WebGLDevice);
95
+
96
+ function WebGLDevice(props) {
97
+ var _this$props$gl;
98
+
99
+ var _this;
100
+
101
+ (0, _classCallCheck2.default)(this, WebGLDevice);
102
+ _this = _super.call(this);
103
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "features", void 0);
104
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "limits", void 0);
105
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "info", void 0);
106
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lost", void 0);
107
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "props", void 0);
108
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "userData", void 0);
109
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isWebGL2", void 0);
110
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "gl", void 0);
111
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "gl2", void 0);
112
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "offScreen", false);
113
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "webglFeatures", void 0);
114
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "webglLimits", void 0);
115
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "defaultFramebuffer", void 0);
116
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "defaultVertexArray", void 0);
117
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_state", 'uninitialized');
118
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_canvasSizeInfo", {
119
+ clientWidth: 0,
120
+ clientHeight: 0,
121
+ devicePixelRatio: 1
122
+ });
123
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_extensions", {});
124
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_polyfilled", false);
125
+ _this.props = _objectSpread(_objectSpread({}, DEFAULT_DEVICE_PROPS), props);
126
+ var device = (_this$props$gl = _this.props.gl) === null || _this$props$gl === void 0 ? void 0 : _this$props$gl.device;
127
+
128
+ if (device) {
129
+ if (device._state !== 'initialized') {
130
+ _api.log.error('recursive context');
131
+
132
+ throw new Error('recursive context');
133
+ }
134
+
135
+ return (0, _possibleConstructorReturn2.default)(_this, device);
136
+ }
137
+
138
+ _this.offScreen = typeof OffscreenCanvas !== 'undefined' && props.canvas instanceof OffscreenCanvas;
139
+ _this.gl = _this.props.gl || _this._createContext(props);
140
+ _this.gl2 = _this.gl;
141
+ _this.isWebGL2 = (0, _webglChecks.isWebGL2)(_this.gl);
142
+ _this._state = 'initializing';
143
+
144
+ if (_this.gl.device) {
145
+ _api.log.error('device already created');
146
+
147
+ throw new Error('device already created');
148
+ }
149
+
150
+ _this.gl.device = (0, _assertThisInitialized2.default)(_this);
151
+ _this.gl._version = typeof WebGL2RenderingContext !== 'undefined' && _this.gl instanceof WebGL2RenderingContext ? 2 : 1;
152
+ glToContextMap.set(_this.gl, (0, _assertThisInitialized2.default)(_this));
153
+ _this.info = (0, _getDeviceInfo.getDeviceInfo)(_this.gl);
154
+ var debug = _this.gl.debug ? ' debug' : '';
155
+ var webGL = (0, _webglChecks.isWebGL2)(_this.gl) ? 'WebGL2' : 'WebGL1';
156
+
157
+ _api.log.group(0, "".concat(webGL).concat(debug, " context: ").concat(_this.info.vendor, ", ").concat(_this.info.renderer))();
158
+
159
+ (0, _polyfillContext.polyfillContext)(_this.gl);
160
+
161
+ _api.log.probe(0, 'polyfilled context')();
162
+
163
+ (0, _trackContextState.trackContextState)(_this.gl, {
164
+ copyState: false,
165
+ log: function log() {
166
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
167
+ args[_key] = arguments[_key];
168
+ }
169
+
170
+ return _api.log.log.apply(_api.log, [1].concat(args))();
171
+ }
172
+ });
173
+
174
+ _api.log.probe(0, 'instrumented context')();
175
+
176
+ _this.features = (0, _deviceFeatures.getDeviceFeatures)(_this.gl);
177
+
178
+ _api.log.probe(0, "queried device features ".concat(counter))();
179
+
180
+ _this.limits = (0, _deviceLimits.getDeviceLimits)(_this.gl);
181
+
182
+ _api.log.probe(0, 'queried device limits')();
183
+
184
+ _this.webglLimits = (0, _deviceLimits.getWebGLLimits)(_this.gl);
185
+
186
+ _api.log.probe(0, 'queried webgl limits')();
187
+
188
+ _api.log.groupEnd(0)();
189
+
190
+ _this._state = 'initialized';
191
+ return _this;
192
+ }
193
+
194
+ (0, _createClass2.default)(WebGLDevice, [{
195
+ key: "destroy",
196
+ value: function destroy() {
197
+ var ext = this.gl.getExtension('STACKGL_destroy_context');
198
+
199
+ if (ext) {
200
+ ext.destroy();
201
+ }
202
+ }
203
+ }, {
204
+ key: "resize",
205
+ value: function resize(options) {
206
+ if (this.gl.canvas) {
207
+ var devicePixelRatio = (0, _devicePixels.getDevicePixelRatio)(options === null || options === void 0 ? void 0 : options.useDevicePixels);
208
+ (0, _devicePixels.setDevicePixelRatio)(this.gl, devicePixelRatio, options);
209
+ return;
210
+ }
211
+
212
+ var ext = this.gl.getExtension('STACKGL_resize_drawingbuffer');
213
+
214
+ if (ext && options && "width" in options && "height" in options) {
215
+ ext.resize(options.width, options.height);
216
+ }
217
+ }
218
+ }, {
219
+ key: "_createBuffer",
220
+ value: function _createBuffer(props) {
221
+ return new _webglBuffer.default(this.gl, props);
222
+ }
223
+ }, {
224
+ key: "createTexture",
225
+ value: function createTexture(props) {
226
+ return new _texture2d.default(this.gl, props);
227
+ }
228
+ }, {
229
+ key: "createShader",
230
+ value: function createShader(props) {
231
+ return new _webglShader.WEBGLShader(this.gl, props);
232
+ }
233
+ }, {
234
+ key: "commit",
235
+ value: function commit() {
236
+ if (this.offScreen && this.gl.commit) {
237
+ this.gl.commit();
238
+ }
239
+ }
240
+ }, {
241
+ key: "_createContext",
242
+ value: function _createContext(options) {
243
+ var _this$props = this.props,
244
+ width = _this$props.width,
245
+ height = _this$props.height,
246
+ canvas = _this$props.canvas;
247
+ var targetCanvas = (0, _getCanvas.getCanvas)({
248
+ canvas: canvas,
249
+ width: width,
250
+ height: height
251
+ });
252
+ return (0, _createContext2.createBrowserContext)(targetCanvas, options);
253
+ }
254
+ }], [{
255
+ key: "fromContext",
256
+ value: function fromContext(gl) {
257
+ return gl.device;
258
+ }
259
+ }, {
260
+ key: "attach",
261
+ value: function attach(gl, props) {
262
+ if (gl instanceof WebGLDevice) {
263
+ return gl;
264
+ }
265
+
266
+ if (!(0, _webglChecks.isWebGL)(gl)) {
267
+ throw new Error('Invalid WebGLRenderingContext');
268
+ }
269
+
270
+ return new WebGLDevice(_objectSpread(_objectSpread({}, props), {}, {
271
+ gl: gl
272
+ }));
273
+ }
274
+ }]);
275
+ return WebGLDevice;
276
+ }(_api.Device);
277
+
278
+ exports.default = WebGLDevice;
279
+ //# sourceMappingURL=webgl-device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/device/webgl-device.ts"],"names":["DEFAULT_DEVICE_PROPS","canvas","undefined","gl","webgl2","webgl1","manageState","width","height","debug","break","onContextLost","console","error","onContextRestored","info","alpha","depth","stencil","antialias","premultipliedAlpha","preserveDrawingBuffer","failIfMajorPerformanceCaveat","glToContextMap","WeakMap","getWebGLDevice","get","counter","WebGLDevice","props","clientWidth","clientHeight","devicePixelRatio","device","_state","log","Error","offScreen","OffscreenCanvas","_createContext","gl2","isWebGL2","_version","WebGL2RenderingContext","set","webGL","group","vendor","renderer","probe","copyState","args","features","limits","webglLimits","groupEnd","ext","getExtension","destroy","options","useDevicePixels","resize","WEBGLBuffer","Texture2D","WEBGLShader","commit","targetCanvas","Device"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;;;;;;;;;AA6BA,IAAMA,oBAAgD,GAAG;AACvDC,EAAAA,MAAM,EAAEC,SAD+C;AAEvDC,EAAAA,EAAE,EAAED,SAFmD;AAGvDE,EAAAA,MAAM,EAAE,IAH+C;AAIvDC,EAAAA,MAAM,EAAE,IAJ+C;AAKvDC,EAAAA,WAAW,EAAE,IAL0C;AAMvDC,EAAAA,KAAK,EAAE,GANgD;AAOvDC,EAAAA,MAAM,EAAE,GAP+C;AAQvDC,EAAAA,KAAK,EAAE,KARgD;AASvDC,EAAAA,KAAK,EAAER,SATgD;AAUvDS,EAAAA,aAAa,EAAE;AAAA,WAAMC,OAAO,CAACC,KAAR,CAAc,oBAAd,CAAN;AAAA,GAVwC;AAWvDC,EAAAA,iBAAiB,EAAE;AAAA,WAAMF,OAAO,CAACG,IAAR,CAAa,wBAAb,CAAN;AAAA,GAXoC;AAavDC,EAAAA,KAAK,EAAEd,SAbgD;AAcvDe,EAAAA,KAAK,EAAEf,SAdgD;AAevDgB,EAAAA,OAAO,EAAEhB,SAf8C;AAgBvDiB,EAAAA,SAAS,EAAEjB,SAhB4C;AAiBvDkB,EAAAA,kBAAkB,EAAElB,SAjBmC;AAkBvDmB,EAAAA,qBAAqB,EAAEnB,SAlBgC;AAmBvDoB,EAAAA,4BAA4B,EAAEpB;AAnByB,CAAzD;AAuBA,IAAMqB,cAAc,GAAG,IAAIC,OAAJ,EAAvB;;AAEO,SAASC,cAAT,CAAwBtB,EAAxB,EAAqG;AAC1G,SAAOoB,cAAc,CAACG,GAAf,CAAmBvB,EAAnB,CAAP;AACD;;AAED,IAAIwB,OAAO,GAAG,CAAd;;IAGqBC,W;;;;;AA8DnB,uBAAYC,KAAZ,EAAqC;AAAA;;AAAA;;AAAA;AACnC;AADmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4FA1CP,KA0CO;AAAA;AAAA;AAAA;AAAA;AAAA,yFAjCsB,eAiCtB;AAAA,kGAhCV;AAACC,MAAAA,WAAW,EAAE,CAAd;AAAiBC,MAAAA,YAAY,EAAE,CAA/B;AAAkCC,MAAAA,gBAAgB,EAAE;AAApD,KAgCU;AAAA,8FA/BO,EA+BP;AAAA,8FA9Bd,KA8Bc;AAGnC,UAAKH,KAAL,mCAAiB7B,oBAAjB,GAA0C6B,KAA1C;AAIA,QAAMI,MAA+B,qBAAG,MAAKJ,KAAL,CAAW1B,EAAd,mDAAG,eAAe8B,MAAvD;;AACA,QAAIA,MAAJ,EAAY;AACV,UAAIA,MAAM,CAACC,MAAP,KAAkB,aAAtB,EAAqC;AACnCC,iBAAItB,KAAJ,CAAU,mBAAV;;AACA,cAAM,IAAIuB,KAAJ,CAAU,mBAAV,CAAN;AACD;;AACD,6DAAOH,MAAP;AACD;;AAED,UAAKI,SAAL,GACE,OAAOC,eAAP,KAA2B,WAA3B,IACAT,KAAK,CAAC5B,MAAN,YAAwBqC,eAF1B;AAKA,UAAKnC,EAAL,GAAW,MAAK0B,KAAL,CAAW1B,EAAX,IAAiB,MAAKoC,cAAL,CAAoBV,KAApB,CAA5B;AACA,UAAKW,GAAL,GAAW,MAAKrC,EAAhB;AACA,UAAKsC,QAAL,GAAgB,2BAAS,MAAKtC,EAAd,CAAhB;AACA,UAAK+B,MAAL,GAAc,cAAd;;AAGA,QAAI,MAAK/B,EAAL,CAAQ8B,MAAZ,EAAoB;AAClBE,eAAItB,KAAJ,CAAU,wBAAV;;AACA,YAAM,IAAIuB,KAAJ,CAAU,wBAAV,CAAN;AACD;;AAED,UAAKjC,EAAL,CAAQ8B,MAAR;AAEA,UAAK9B,EAAL,CAAQuC,QAAR,GAAmB,OAAOC,sBAAP,KAAkC,WAAlC,IAAiD,MAAKxC,EAAL,YAAmBwC,sBAApE,GAA6F,CAA7F,GAAiG,CAApH;AAEApB,IAAAA,cAAc,CAACqB,GAAf,CAAmB,MAAKzC,EAAxB;AAGA,UAAKY,IAAL,GAAY,kCAAc,MAAKZ,EAAnB,CAAZ;AAGA,QAAMM,KAAK,GAAG,MAAKN,EAAL,CAAQM,KAAR,GAAgB,QAAhB,GAA2B,EAAzC;AACA,QAAMoC,KAAK,GAAG,2BAAS,MAAK1C,EAAd,IAAoB,QAApB,GAA+B,QAA7C;;AACAgC,aAAIW,KAAJ,CAAU,CAAV,YAAgBD,KAAhB,SAAwBpC,KAAxB,uBAA0C,MAAKM,IAAL,CAAUgC,MAApD,eAA+D,MAAKhC,IAAL,CAAUiC,QAAzE;;AAEA,0CAAgB,MAAK7C,EAArB;;AACAgC,aAAIc,KAAJ,CAAU,CAAV,EAAa,oBAAb;;AAGA,8CAAkB,MAAK9C,EAAvB,EAA2B;AACzB+C,MAAAA,SAAS,EAAE,KADc;AAEzBf,MAAAA,GAAG,EAAE;AAAA,0CAAIgB,IAAJ;AAAIA,UAAAA,IAAJ;AAAA;;AAAA,eAAahB,SAAIA,GAAJ,kBAAQ,CAAR,SAAcgB,IAAd,IAAb;AAAA;AAFoB,KAA3B;;AAIAhB,aAAIc,KAAJ,CAAU,CAAV,EAAa,sBAAb;;AAGA,UAAKG,QAAL,GAAgB,uCAAkB,MAAKjD,EAAvB,CAAhB;;AACAgC,aAAIc,KAAJ,CAAU,CAAV,oCAAwCtB,OAAxC;;AACA,UAAK0B,MAAL,GAAc,mCAAgB,MAAKlD,EAArB,CAAd;;AACAgC,aAAIc,KAAJ,CAAU,CAAV,EAAa,uBAAb;;AAKA,UAAKK,WAAL,GAAmB,kCAAe,MAAKnD,EAApB,CAAnB;;AACAgC,aAAIc,KAAJ,CAAU,CAAV,EAAa,sBAAb;;AAiBAd,aAAIoB,QAAJ,CAAa,CAAb;;AACA,UAAKrB,MAAL,GAAc,aAAd;AApFmC;AAqFpC;;;;WAMD,mBAAU;AACR,UAAIsB,GAAG,GAAG,KAAKrD,EAAL,CAAQsD,YAAR,CAAqB,yBAArB,CAAV;;AACA,UAAID,GAAJ,EAAS;AACPA,QAAAA,GAAG,CAACE,OAAJ;AACD;AAMF;;;WAgBD,gBAAOC,OAAP,EAA8F;AAE5F,UAAI,KAAKxD,EAAL,CAAQF,MAAZ,EAAoB;AAClB,YAAM+B,gBAAgB,GAAG,uCAAoB2B,OAApB,aAAoBA,OAApB,uBAAoBA,OAAO,CAAEC,eAA7B,CAAzB;AACA,+CAAoB,KAAKzD,EAAzB,EAA6B6B,gBAA7B,EAA+C2B,OAA/C;AACA;AACD;;AAGD,UAAMH,GAAG,GAAG,KAAKrD,EAAL,CAAQsD,YAAR,CAAqB,8BAArB,CAAZ;;AACA,UAAID,GAAG,IAAIG,OAAP,IAAkB,WAAWA,OAA7B,IAAwC,YAAYA,OAAxD,EAAiE;AAC/DH,QAAAA,GAAG,CAACK,MAAJ,CAAWF,OAAO,CAACpD,KAAnB,EAA0BoD,OAAO,CAACnD,MAAlC;AACD;AACF;;;WAED,uBAAcqB,KAAd,EAA+C;AAC7C,aAAO,IAAIiC,oBAAJ,CAAgB,KAAK3D,EAArB,EAAyB0B,KAAzB,CAAP;AACD;;;WAED,uBAAcA,KAAd,EAAgD;AAC9C,aAAO,IAAIkC,kBAAJ,CAAc,KAAK5D,EAAnB,EAAuB0B,KAAvB,CAAP;AACD;;;WAED,sBAAaA,KAAb,EAA8C;AAC5C,aAAO,IAAImC,wBAAJ,CAAgB,KAAK7D,EAArB,EAAyB0B,KAAzB,CAAP;AACD;;;WAOD,kBAAe;AAEb,UAAI,KAAKQ,SAAL,IAAkB,KAAKlC,EAAL,CAAQ8D,MAA9B,EAAsC;AAEpC,aAAK9D,EAAL,CAAQ8D,MAAR;AACD;AACF;;;WAOD,wBAAeN,OAAf,EAAkE;AAChE,wBAAgC,KAAK9B,KAArC;AAAA,UAAOtB,KAAP,eAAOA,KAAP;AAAA,UAAcC,MAAd,eAAcA,MAAd;AAAA,UAAsBP,MAAtB,eAAsBA,MAAtB;AAEA,UAAMiE,YAAY,GAAG,0BAAU;AAACjE,QAAAA,MAAM,EAANA,MAAD;AAASM,QAAAA,KAAK,EAALA,KAAT;AAAgBC,QAAAA,MAAM,EAANA;AAAhB,OAAV,CAArB;AAEA,aAAO,0CAAqB0D,YAArB,EAAmCP,OAAnC,CAAP;AACD;;;WAjMD,qBAAmBxD,EAAnB,EAA2D;AAEzD,aAAOA,EAAE,CAAC8B,MAAV;AACD;;;WAQD,gBACE9B,EADF,EAEE0B,KAFF,EAGe;AACb,UAAI1B,EAAE,YAAYyB,WAAlB,EAA+B;AAC7B,eAAOzB,EAAP;AACD;;AACD,UAAI,CAAC,0BAAQA,EAAR,CAAL,EAAkB;AAChB,cAAM,IAAIiC,KAAJ,CAAU,+BAAV,CAAN;AACD;;AACD,aAAO,IAAIR,WAAJ,iCAAoBC,KAApB;AAA2B1B,QAAAA,EAAE,EAAEA;AAA/B,SAAP;AACD;;;EA3DsCgE,W","sourcesContent":["// luma.gl, MIT license\nimport {Device, DeviceInfo, DeviceLimits, log} from '@luma.gl/api';\nimport {polyfillContext} from '../context/polyfill/polyfill-context';\nimport {trackContextState} from '../context/state-tracker/track-context-state';\nimport { ContextState } from '../context/context/context-state';\nimport {getDevicePixelRatio, setDevicePixelRatio} from '../context/context/device-pixels';\nimport {createBrowserContext} from '../context/context/create-context';\nimport {getCanvas} from '../context/context/get-canvas';\nimport {isWebGL, isWebGL2} from '../context/context/webgl-checks';\nimport {getDeviceInfo} from './get-device-info';\nimport {getDeviceFeatures, Feature} from './device-features';\nimport {getDeviceLimits, getWebGLLimits, WebGLLimits} from './device-limits';\n\n// WebGL classes\nimport type {BufferProps, ShaderProps} from '@luma.gl/api';\nimport WEBGLBuffer from '../classes/webgl-buffer';\nimport {WEBGLShader} from '../classes/webgl-shader';\nimport Texture2D, {Texture2DProps} from '../classes/texture-2d';\nimport type {default as Framebuffer} from '../classes/framebuffer';\nimport type {default as VertexArrayObject} from '../classes/vertex-array-object';\n\n/** WebGLDevice options */\nexport type WebGLDeviceProps = {\n canvas?: HTMLCanvasElement | OffscreenCanvas | string; // A canvas element or a canvas string id\n width?: number /** width is only used when creating a new canvas */;\n height?: number /** height is only used when creating a new canvas */;\n // Attach to existing context\n gl?: WebGLRenderingContext | WebGL2RenderingContext;\n // COMMON CONTEXT PARAMETERS\n webgl2?: boolean; // Set to false to not create a WebGL2 context (force webgl1)\n webgl1?: boolean; // set to false to not create a WebGL1 context (fails if webgl2 not available)\n manageState?: boolean; // Set to false to disable WebGL state management instrumentation\n debug?: boolean; // Instrument context (at the expense of performance)\n break?: Array<any>; // TODO: types\n onContextLost?: (event: Event) => void;\n onContextRestored?: (event: Event) => void;\n // BROWSER CONTEXT PARAMETERS\n alpha?: boolean; // Default render target has an alpha buffer.\n depth?: boolean; // Default render target has a depth buffer of at least 16 bits.\n stencil?: boolean; // Default render target has a stencil buffer of at least 8 bits.\n antialias?: boolean; // Boolean that indicates whether or not to perform anti-aliasing.\n premultipliedAlpha?: boolean; // Boolean that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.\n preserveDrawingBuffer?: boolean; // Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten\n failIfMajorPerformanceCaveat?: boolean; // Do not create if the system performance is low.\n};\n\nconst DEFAULT_DEVICE_PROPS: Required<WebGLDeviceProps> = {\n canvas: undefined, // A canvas element or a canvas string id\n gl: undefined,\n webgl2: true, // Attempt to create a WebGL2 context\n webgl1: true, // Attempt to create a WebGL1 context (false to fail if webgl2 not available)\n manageState: true,\n width: 800, // width are height are only used by headless gl\n height: 600,\n debug: false, // Instrument context (at the expense of performance)\n break: undefined,\n onContextLost: () => console.error('WebGL context lost'),\n onContextRestored: () => console.info('WebGL context restored'),\n\n alpha: undefined,\n depth: undefined,\n stencil: undefined,\n antialias: undefined,\n premultipliedAlpha: undefined,\n preserveDrawingBuffer: undefined,\n failIfMajorPerformanceCaveat: undefined\n};\n\n// TODO use weakmap instead of modifying context\nconst glToContextMap = new WeakMap<WebGLRenderingContext | WebGL2RenderingContext, WebGLDevice>();\n\nexport function getWebGLDevice(gl: WebGLRenderingContext | WebGL2RenderingContext): WebGLDevice | undefined {\n return glToContextMap.get(gl);\n}\n\nlet counter = 0;\n\n/** WebGPU style Device API for a WebGL context */\nexport default class WebGLDevice extends Device implements ContextState {\n // WebGPU style API\n\n /** A set like interface to test features */\n readonly features: Set<Feature>;\n readonly limits: DeviceLimits;\n readonly info: DeviceInfo;\n\n /** Promise that rejects when context is lost */\n readonly lost: Promise<string>;\n\n // Common API\n props: Required<WebGLDeviceProps>;\n userData: {[key: string]: any};\n\n // WebGL specific API\n readonly isWebGL2: boolean;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n /** Is this device attached to an offscreen context */\n readonly offScreen: boolean = false;\n\n readonly webglFeatures: Set<string>;\n readonly webglLimits: WebGLLimits;\n\n defaultFramebuffer?: Framebuffer;\n defaultVertexArray?: VertexArrayObject;\n\n // State used by luma.gl classes\n _state: 'uninitialized' | 'initializing' | 'initialized' = 'uninitialized';\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n readonly _extensions: Record<string, any> = {};\n _polyfilled: boolean = false;\n\n /**\n * \n */\n static fromContext(gl: WebGLRenderingContext): WebGLDevice {\n // @ts-expect-error\n return gl.device as WebGLDevice;\n }\n\n /**\n * Get a device instance from a GL context\n * Creates and instruments the device if not already created\n * @param gl\n * @returns\n */\n static attach(\n gl: Device | WebGLRenderingContext | WebGL2RenderingContext,\n props?: WebGLDeviceProps\n ): WebGLDevice {\n if (gl instanceof WebGLDevice) {\n return gl;\n } \n if (!isWebGL(gl)) {\n throw new Error('Invalid WebGLRenderingContext');\n }\n return new WebGLDevice({...props, gl: gl as WebGLRenderingContext});\n }\n\n\n constructor(props: WebGLDeviceProps) {\n super();\n \n this.props = {...DEFAULT_DEVICE_PROPS, ...props};\n\n // If attaching to an already attached context, return the attached device\n // @ts-expect-error device is attached to context\n const device: WebGLDevice | undefined = this.props.gl?.device;\n if (device) {\n if (device._state !== 'initialized') {\n log.error('recursive context');\n throw new Error('recursive context');\n }\n return device;\n }\n\n this.offScreen =\n typeof OffscreenCanvas !== 'undefined' &&\n props.canvas instanceof OffscreenCanvas;\n\n // Create an instrument context\n this.gl = (this.props.gl || this._createContext(props)) as WebGLRenderingContext;\n this.gl2 = this.gl as WebGL2RenderingContext;\n this.isWebGL2 = isWebGL2(this.gl);\n this._state = 'initializing';\n // Avoid multiple instrumentations\n // @ts-expect-error\n if (this.gl.device) {\n log.error('device already created');\n throw new Error('device already created'); // ASSERT this device;\n }\n // @ts-expect-error\n this.gl.device = this;\n // @ts-ignore\n this.gl._version = typeof WebGL2RenderingContext !== 'undefined' && this.gl instanceof WebGL2RenderingContext ? 2 : 1;\n // TODO - move to weak map indexing\n glToContextMap.set(this.gl, this);\n\n // Luma Device fields\n this.info = getDeviceInfo(this.gl);\n // Log some debug info about the newly created context\n // @ts-expect-error device is attached to context\n const debug = this.gl.debug ? ' debug' : '';\n const webGL = isWebGL2(this.gl) ? 'WebGL2' : 'WebGL1';\n log.group(0, `${webGL}${debug} context: ${this.info.vendor}, ${this.info.renderer}`)();\n\n polyfillContext(this.gl);\n log.probe(0, 'polyfilled context')();\n\n // Install context state tracking\n trackContextState(this.gl, {\n copyState: false,\n log: (...args) => log.log(1, ...args)()\n });\n log.probe(0, 'instrumented context')();\n\n // WebGPU Device fields\n this.features = getDeviceFeatures(this.gl);\n log.probe(0, `queried device features ${counter}`)();\n this.limits = getDeviceLimits(this.gl);\n log.probe(0, 'queried device limits')();\n\n // Add seer integration - TODO - currently removed\n\n // WEBGL specific fields\n this.webglLimits = getWebGLLimits(this.gl);\n log.probe(0, 'queried webgl limits')();\n\n // Add debug instrumentation to the context\n // if (isBrowser() && props.debug) {\n // // @ts-ignore\n // const {makeDebugContext} = global;\n // if (!makeDebugContext) {\n // log.warn('WebGL debug mode not activated. import \"@luma.gl/debug\" to enable.')();\n // } else {\n // // @ts-ignore\n // this.gl = global.makeDebugContext(this.gl, props);\n // this.gl2 = this.gl as WebGL2RenderingContext;\n // // Debug forces log level to at least 1\n // log.level = Math.max(log.level, 1);\n // }\n // }\n\n log.groupEnd(0)();\n this._state = 'initialized';\n }\n\n /**\n * Destroys the context\n * @note Has no effect for browser contexts, there is no browser API for destroying contexts\n */\n destroy() {\n let ext = this.gl.getExtension('STACKGL_destroy_context');\n if (ext) {\n ext.destroy();\n }\n // ext = this.gl.getExtension('WEBGL_lose_context');\n // if (ext) {\n // // TODO - disconnect context lost callbacks?\n // ext.loseContext();\n // }\n }\n\n // WEBGL SPECIFIC METHODS\n\n /**\n * Resize the canvas' drawing buffer.\n *\n * Can match the canvas CSS size, and optionally also consider devicePixelRatio\n * Can be called every frame\n *\n * Regardless of size, the drawing buffer will always be scaled to the viewport, but\n * for best visual results, usually set to either:\n * canvas CSS width x canvas CSS height\n * canvas CSS width * devicePixelRatio x canvas CSS height * devicePixelRatio\n * See http://webgl2fundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html\n */\n resize(options?: {width?: number; height?: number; useDevicePixels?: boolean | number}): void {\n // Resize browser context .\n if (this.gl.canvas) {\n const devicePixelRatio = getDevicePixelRatio(options?.useDevicePixels);\n setDevicePixelRatio(this.gl, devicePixelRatio, options);\n return;\n }\n\n // Resize headless gl context\n const ext = this.gl.getExtension('STACKGL_resize_drawingbuffer');\n if (ext && options && `width` in options && `height` in options) {\n ext.resize(options.width, options.height);\n }\n }\n\n _createBuffer(props: BufferProps): WEBGLBuffer {\n return new WEBGLBuffer(this.gl, props);\n }\n\n createTexture(props: Texture2DProps): Texture2D {\n return new Texture2D(this.gl, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this.gl, props);\n }\n\n /**\n * Offscreen Canvas Support: Commit the frame\n * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/commit\n * Chrome's offscreen canvas does not require gl.commit\n */\n commit(): void {\n // @ts-expect-error gl.commit is not officially part of WebGLRenderingContext\n if (this.offScreen && this.gl.commit) {\n // @ts-expect-error gl.commit is not officially part of WebGLRenderingContext\n this.gl.commit();\n }\n }\n\n // PRIVATE METHODS\n\n /**\n * Creates a context giving access to the WebGL API\n */\n _createContext(options?: WebGLDeviceProps): WebGLRenderingContext {\n const {width, height, canvas} = this.props;\n // Get or create a canvas\n const targetCanvas = getCanvas({canvas, width, height});\n // Create a WebGL context in the canvas\n return createBrowserContext(targetCanvas, options);\n }\n}\n\n/*\nimport {\n isWebGL, isWebGL2,\n createGLContext,\n instrumentGLContext,\n getContextDebugInfo,\n resizeGLContext\n} from '@luma.gl/gltools';\n\n// prettier-ignore\nimport {\n Device, DeviceInfo, DeviceLimits,\n Buffer, BufferProps\n} from '@luma.gl/api';\n\nimport {getWebGLDeviceInfo} from '../converters/webgl-device-info';\nimport {getWebGLLimits} from '../converters/webgl-limits';\nimport {getWebGLFeatures} from '../converters/webgl-features';\n\nexport default class WEBGLDevice implements Device {\n readonly handle: WebGLRenderingContext;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n readonly canvas: HTMLCanvasElement;\n\n static isSupported(options: {canvas?: HTMLCanvasElement}): boolean {\n const {canvas} = options;\n let gl;\n try {\n gl = canvas && canvas.getContext(\"webgl\");\n gl = gl && canvas && canvas.getContext(\"experimental-webgl\");\n } catch (x) {\n gl = null;\n }\n return Boolean(gl);\n }\n\n constructor(props = {}) {\n const {canvas, swapChainFormat = \"bgra8unorm\"} = props;\n\n const gl = createGLContext(props);\n this.handle =\n this.gl = gl;\n this.gl2 = gl instanceof WebGL2RenderingContext ? gl : null;\n this.canvas = canvas;\n }\n\n resize(width, height) {\n resizeGLContext(this.gl);\n }\n\n getInfo(): DeviceInfo {\n return getWebGLDeviceInfo(this.gl);\n }\n\n getLimits(): DeviceLimits {\n return getWebGLLimits(this.gl, this.gl2);\n }\n\n getFeatures(): string[] {\n return getWebGLFeatures(this.gl);\n }\n\n createBuffer(props: WebGPUBufferProps): WEBGLBuffer {\n return new WEBGLBuffer(this.gl2 || this.gl, props);\n }\n\n createTexture(props: WebGPUTextureProps): WEBGLTexture {\n return new WEBGLTexture(this, props);\n }\n\n createSampler(props: WebGPUSamplerProps): WEBGLSampler {\n return new WEBGLSampler(this, props);\n }\n\n createShader(props: WebGPUShaderProps): WEBGLShader {\n return new WEBGLShader(this, props);\n }\n\n createRenderPipeline(props: WebGPURenderPipelineProps): WEBGLPipeline {\n return new WEBGLRenderPipeline(this, props);\n }\n\n createComputePipeline(props: WebGPUComputePipelineProps): WebGPUPipeline {\n return new WebGPUComputePipeline(this, props);\n }\n\n\n // PRIVATE\n\n _startFrame() {}\n\n _endFrame() {}\n}\n*/\n"],"file":"webgl-device.js"}