@luma.gl/webgl 8.6.0-alpha.1 → 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 (651) 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/classes/accessor.js +2 -2
  6. package/dist/classes/accessor.js.map +1 -1
  7. package/dist/classes/accessor.ts.disabled +1 -1
  8. package/dist/classes/clear.d.ts +3 -2
  9. package/dist/classes/clear.d.ts.map +1 -1
  10. package/dist/classes/clear.js +7 -4
  11. package/dist/classes/clear.js.map +1 -1
  12. package/dist/classes/copy-and-blit.d.ts +18 -1
  13. package/dist/classes/copy-and-blit.d.ts.map +1 -1
  14. package/dist/classes/copy-and-blit.js +30 -25
  15. package/dist/classes/copy-and-blit.js.map +1 -1
  16. package/dist/classes/framebuffer.d.ts +10 -1
  17. package/dist/classes/framebuffer.d.ts.map +1 -1
  18. package/dist/classes/framebuffer.js +15 -15
  19. package/dist/classes/framebuffer.js.map +1 -1
  20. package/dist/classes/program-configuration.d.ts +2 -2
  21. package/dist/classes/program-configuration.d.ts.map +1 -1
  22. package/dist/classes/program-configuration.js +1 -1
  23. package/dist/classes/program-configuration.js.map +1 -1
  24. package/dist/classes/program.d.ts +6 -6
  25. package/dist/classes/program.d.ts.map +1 -1
  26. package/dist/classes/program.js +11 -9
  27. package/dist/classes/program.js.map +1 -1
  28. package/dist/classes/query.d.ts.map +1 -1
  29. package/dist/classes/query.js +6 -5
  30. package/dist/classes/query.js.map +1 -1
  31. package/dist/classes/renderbuffer-formats.js +1 -1
  32. package/dist/classes/renderbuffer-formats.js.map +1 -1
  33. package/dist/classes/renderbuffer.d.ts.map +1 -1
  34. package/dist/classes/renderbuffer.js +4 -3
  35. package/dist/classes/renderbuffer.js.map +1 -1
  36. package/dist/classes/texture-2d.d.ts +4 -3
  37. package/dist/classes/texture-2d.d.ts.map +1 -1
  38. package/dist/classes/texture-2d.js +5 -8
  39. package/dist/classes/texture-2d.js.map +1 -1
  40. package/dist/classes/texture-3d.d.ts +3 -2
  41. package/dist/classes/texture-3d.d.ts.map +1 -1
  42. package/dist/classes/texture-3d.js +15 -6
  43. package/dist/classes/texture-3d.js.map +1 -1
  44. package/dist/classes/texture-cube.d.ts +2 -1
  45. package/dist/classes/texture-cube.d.ts.map +1 -1
  46. package/dist/classes/texture-cube.js +3 -4
  47. package/dist/classes/texture-cube.js.map +1 -1
  48. package/dist/classes/texture-formats.js +1 -1
  49. package/dist/classes/texture-formats.js.map +1 -1
  50. package/dist/classes/texture.d.ts +14 -9
  51. package/dist/classes/texture.d.ts.map +1 -1
  52. package/dist/classes/texture.js +19 -18
  53. package/dist/classes/texture.js.map +1 -1
  54. package/dist/classes/transform-feedback.d.ts.map +1 -1
  55. package/dist/classes/transform-feedback.js +5 -4
  56. package/dist/classes/transform-feedback.js.map +1 -1
  57. package/dist/classes/uniform-buffer-layout.js +1 -1
  58. package/dist/classes/uniform-buffer-layout.js.map +1 -1
  59. package/dist/classes/uniforms.d.ts +0 -1
  60. package/dist/classes/uniforms.d.ts.map +1 -1
  61. package/dist/classes/uniforms.js +1 -2
  62. package/dist/classes/uniforms.js.map +1 -1
  63. package/dist/classes/vertex-array-object.d.ts +1 -1
  64. package/dist/classes/vertex-array-object.d.ts.map +1 -1
  65. package/dist/classes/vertex-array-object.js +8 -9
  66. package/dist/classes/vertex-array-object.js.map +1 -1
  67. package/dist/classes/vertex-array.d.ts +1 -1
  68. package/dist/classes/vertex-array.d.ts.map +1 -1
  69. package/dist/classes/vertex-array.js +1 -2
  70. package/dist/classes/vertex-array.js.map +1 -1
  71. package/dist/classes/webgl-buffer.d.ts +2 -0
  72. package/dist/classes/webgl-buffer.d.ts.map +1 -1
  73. package/dist/classes/webgl-buffer.js +8 -5
  74. package/dist/classes/webgl-buffer.js.map +1 -1
  75. package/dist/classes/webgl-resource.d.ts +6 -4
  76. package/dist/classes/webgl-resource.d.ts.map +1 -1
  77. package/dist/classes/webgl-resource.js +12 -8
  78. package/dist/classes/webgl-resource.js.map +1 -1
  79. package/dist/classes/webgl-shader.d.ts +3 -1
  80. package/dist/classes/webgl-shader.d.ts.map +1 -1
  81. package/dist/classes/webgl-shader.js +7 -4
  82. package/dist/classes/webgl-shader.js.map +1 -1
  83. package/dist/context/context/context-state.d.ts +18 -0
  84. package/dist/context/context/context-state.d.ts.map +1 -0
  85. package/dist/context/context/context-state.js +26 -0
  86. package/dist/context/context/context-state.js.map +1 -0
  87. package/dist/context/context/create-context.d.ts +40 -0
  88. package/dist/context/context/create-context.d.ts.map +1 -0
  89. package/dist/context/context/create-context.js +37 -0
  90. package/dist/context/context/create-context.js.map +1 -0
  91. package/dist/context/context/device-pixels.d.ts +25 -0
  92. package/dist/context/context/device-pixels.d.ts.map +1 -0
  93. package/dist/context/context/device-pixels.js +98 -0
  94. package/dist/context/context/device-pixels.js.map +1 -0
  95. package/dist/context/context/get-canvas.d.ts +13 -0
  96. package/dist/context/context/get-canvas.d.ts.map +1 -0
  97. package/dist/context/context/get-canvas.js +31 -0
  98. package/dist/context/context/get-canvas.js.map +1 -0
  99. package/dist/context/context/resize-context.d.ts +20 -0
  100. package/dist/context/context/resize-context.d.ts.map +1 -0
  101. package/dist/context/context/resize-context.js +15 -0
  102. package/dist/context/context/resize-context.js.map +1 -0
  103. package/dist/context/context/webgl-checks.d.ts +13 -0
  104. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  105. package/dist/context/context/webgl-checks.js +34 -0
  106. package/dist/context/context/webgl-checks.js.map +1 -0
  107. package/dist/context/parameters/unified-parameter-api.d.ts +30 -0
  108. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  109. package/dist/context/parameters/unified-parameter-api.js +65 -0
  110. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  111. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  112. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  113. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  114. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  115. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  116. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  117. package/dist/context/parameters/webgl-parameters.js +2 -0
  118. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  119. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  120. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  121. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  122. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  123. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  124. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  125. package/dist/context/polyfill/polyfill-context.js +91 -0
  126. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  127. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  128. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  129. package/dist/context/polyfill/polyfill-table.js +160 -0
  130. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  131. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  132. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  133. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  134. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  135. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  136. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  137. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  138. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  139. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  140. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  141. package/dist/context/state-tracker/track-context-state.js +169 -0
  142. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  143. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  144. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  145. package/dist/context/state-tracker/with-parameters.js +36 -0
  146. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  147. package/dist/debug/debug-uniforms.js +1 -1
  148. package/dist/debug/debug-uniforms.js.map +1 -1
  149. package/dist/debug/debug-vertex-array.js +2 -2
  150. package/dist/debug/debug-vertex-array.js.map +1 -1
  151. package/dist/device/check-glsl-extension.d.ts +4 -0
  152. package/dist/device/check-glsl-extension.d.ts.map +1 -0
  153. package/dist/device/check-glsl-extension.js +22 -0
  154. package/dist/device/check-glsl-extension.js.map +1 -0
  155. package/dist/device/device-features.d.ts +12 -0
  156. package/dist/device/device-features.d.ts.map +1 -0
  157. package/dist/device/device-features.js +123 -0
  158. package/dist/device/device-features.js.map +1 -0
  159. package/dist/device/device-limits.d.ts +51 -0
  160. package/dist/device/device-limits.d.ts.map +1 -0
  161. package/dist/device/device-limits.js +90 -0
  162. package/dist/device/device-limits.js.map +1 -0
  163. package/dist/device/get-device-info.d.ts +4 -0
  164. package/dist/device/get-device-info.d.ts.map +1 -0
  165. package/dist/device/get-device-info.js +44 -0
  166. package/dist/device/get-device-info.js.map +1 -0
  167. package/dist/device/webgl-device.d.ts +111 -0
  168. package/dist/device/webgl-device.d.ts.map +1 -0
  169. package/dist/device/webgl-device.js +208 -0
  170. package/dist/device/webgl-device.js.map +1 -0
  171. package/dist/es5/api/device2.js +42 -0
  172. package/dist/es5/api/device2.js.map +1 -0
  173. package/dist/es5/bundle.js +1 -1
  174. package/dist/es5/bundle.js.map +1 -1
  175. package/dist/es5/classes/accessor.js +104 -74
  176. package/dist/es5/classes/accessor.js.map +1 -1
  177. package/dist/es5/classes/accessor.ts.disabled +1 -1
  178. package/dist/es5/classes/clear.js +55 -34
  179. package/dist/es5/classes/clear.js.map +1 -1
  180. package/dist/es5/classes/copy-and-blit.js +175 -156
  181. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  182. package/dist/es5/classes/framebuffer.js +647 -518
  183. package/dist/es5/classes/framebuffer.js.map +1 -1
  184. package/dist/es5/classes/program-configuration.js +138 -121
  185. package/dist/es5/classes/program-configuration.js.map +1 -1
  186. package/dist/es5/classes/program.js +368 -292
  187. package/dist/es5/classes/program.js.map +1 -1
  188. package/dist/es5/classes/query.js +172 -107
  189. package/dist/es5/classes/query.js.map +1 -1
  190. package/dist/es5/classes/renderbuffer-formats.js +126 -164
  191. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  192. package/dist/es5/classes/renderbuffer.js +151 -98
  193. package/dist/es5/classes/renderbuffer.js.map +1 -1
  194. package/dist/es5/classes/texture-2d.js +44 -17
  195. package/dist/es5/classes/texture-2d.js.map +1 -1
  196. package/dist/es5/classes/texture-3d.js +107 -48
  197. package/dist/es5/classes/texture-3d.js.map +1 -1
  198. package/dist/es5/classes/texture-cube.js +169 -110
  199. package/dist/es5/classes/texture-cube.js.map +1 -1
  200. package/dist/es5/classes/texture-formats.js +42 -71
  201. package/dist/es5/classes/texture-formats.js.map +1 -1
  202. package/dist/es5/classes/texture.js +780 -665
  203. package/dist/es5/classes/texture.js.map +1 -1
  204. package/dist/es5/classes/transform-feedback.js +206 -150
  205. package/dist/es5/classes/transform-feedback.js.map +1 -1
  206. package/dist/es5/classes/uniform-buffer-layout.js +103 -89
  207. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  208. package/dist/es5/classes/uniforms.js +39 -80
  209. package/dist/es5/classes/uniforms.js.map +1 -1
  210. package/dist/es5/classes/vertex-array-object.js +268 -209
  211. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  212. package/dist/es5/classes/vertex-array.js +348 -303
  213. package/dist/es5/classes/vertex-array.js.map +1 -1
  214. package/dist/es5/classes/webgl-buffer.js +374 -303
  215. package/dist/es5/classes/webgl-buffer.js.map +1 -1
  216. package/dist/es5/classes/webgl-resource.js +231 -161
  217. package/dist/es5/classes/webgl-resource.js.map +1 -1
  218. package/dist/es5/classes/webgl-shader.js +230 -134
  219. package/dist/es5/classes/webgl-shader.js.map +1 -1
  220. package/dist/es5/context/context/context-state.js +31 -0
  221. package/dist/es5/context/context/context-state.js.map +1 -0
  222. package/dist/es5/context/context/create-context.js +57 -0
  223. package/dist/es5/context/context/create-context.js.map +1 -0
  224. package/dist/es5/context/context/device-pixels.js +115 -0
  225. package/dist/es5/context/context/device-pixels.js.map +1 -0
  226. package/dist/es5/context/context/get-canvas.js +40 -0
  227. package/dist/es5/context/context/get-canvas.js.map +1 -0
  228. package/dist/es5/context/context/resize-context.js +23 -0
  229. package/dist/es5/context/context/resize-context.js.map +1 -0
  230. package/dist/es5/context/context/webgl-checks.js +54 -0
  231. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  232. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  233. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  234. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  235. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  236. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  237. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  238. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  239. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  240. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  241. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  242. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  243. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  244. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  245. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  246. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  247. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  248. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  249. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  250. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  251. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  252. package/dist/es5/debug/debug-program-configuration.js +48 -20
  253. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  254. package/dist/es5/debug/debug-uniforms.js +110 -70
  255. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  256. package/dist/es5/debug/debug-vertex-array.js +49 -54
  257. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  258. package/dist/es5/device/check-glsl-extension.js +33 -0
  259. package/dist/es5/device/check-glsl-extension.js.map +1 -0
  260. package/dist/es5/device/device-features.js +152 -0
  261. package/dist/es5/device/device-features.js.map +1 -0
  262. package/dist/es5/device/device-limits.js +64 -0
  263. package/dist/es5/device/device-limits.js.map +1 -0
  264. package/dist/es5/device/get-device-info.js +55 -0
  265. package/dist/es5/device/get-device-info.js.map +1 -0
  266. package/dist/es5/device/webgl-device.js +279 -0
  267. package/dist/es5/device/webgl-device.js.map +1 -0
  268. package/dist/es5/index.js +179 -189
  269. package/dist/es5/index.js.map +1 -1
  270. package/dist/es5/init.js +18 -14
  271. package/dist/es5/init.js.map +1 -1
  272. package/dist/es5/webgl-utils/attribute-utils.js +74 -87
  273. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  274. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  275. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  276. package/dist/es5/webgl-utils/format-utils.js +4 -4
  277. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  278. package/dist/es5/webgl-utils/get-error.js +18 -18
  279. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  280. package/dist/es5/webgl-utils/index.js +10 -10
  281. package/dist/es5/webgl-utils/is-old-ie.js +16 -0
  282. package/dist/es5/webgl-utils/is-old-ie.js.map +1 -0
  283. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +53 -25
  284. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -1
  285. package/dist/es5/webgl-utils/texture-utils.js +32 -36
  286. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  287. package/dist/es5/webgl-utils/typed-array-utils.js +33 -32
  288. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  289. package/dist/es5/webgl-utils/webgl-info.ts.disabled +135 -0
  290. package/dist/esm/api/device2.js +23 -0
  291. package/dist/esm/api/device2.js.map +1 -0
  292. package/dist/esm/classes/accessor.js +2 -2
  293. package/dist/esm/classes/accessor.js.map +1 -1
  294. package/dist/esm/classes/accessor.ts.disabled +1 -1
  295. package/dist/esm/classes/clear.js +7 -4
  296. package/dist/esm/classes/clear.js.map +1 -1
  297. package/dist/esm/classes/copy-and-blit.js +30 -25
  298. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  299. package/dist/esm/classes/framebuffer.js +15 -15
  300. package/dist/esm/classes/framebuffer.js.map +1 -1
  301. package/dist/esm/classes/program-configuration.js +1 -1
  302. package/dist/esm/classes/program-configuration.js.map +1 -1
  303. package/dist/esm/classes/program.js +11 -9
  304. package/dist/esm/classes/program.js.map +1 -1
  305. package/dist/esm/classes/query.js +6 -5
  306. package/dist/esm/classes/query.js.map +1 -1
  307. package/dist/esm/classes/renderbuffer-formats.js +1 -1
  308. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  309. package/dist/esm/classes/renderbuffer.js +4 -3
  310. package/dist/esm/classes/renderbuffer.js.map +1 -1
  311. package/dist/esm/classes/texture-2d.js +5 -8
  312. package/dist/esm/classes/texture-2d.js.map +1 -1
  313. package/dist/esm/classes/texture-3d.js +15 -6
  314. package/dist/esm/classes/texture-3d.js.map +1 -1
  315. package/dist/esm/classes/texture-cube.js +3 -4
  316. package/dist/esm/classes/texture-cube.js.map +1 -1
  317. package/dist/esm/classes/texture-formats.js +1 -1
  318. package/dist/esm/classes/texture-formats.js.map +1 -1
  319. package/dist/esm/classes/texture.js +19 -18
  320. package/dist/esm/classes/texture.js.map +1 -1
  321. package/dist/esm/classes/transform-feedback.js +5 -4
  322. package/dist/esm/classes/transform-feedback.js.map +1 -1
  323. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  324. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  325. package/dist/esm/classes/uniforms.js +1 -2
  326. package/dist/esm/classes/uniforms.js.map +1 -1
  327. package/dist/esm/classes/vertex-array-object.js +8 -9
  328. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  329. package/dist/esm/classes/vertex-array.js +1 -2
  330. package/dist/esm/classes/vertex-array.js.map +1 -1
  331. package/dist/esm/classes/webgl-buffer.js +8 -5
  332. package/dist/esm/classes/webgl-buffer.js.map +1 -1
  333. package/dist/esm/classes/webgl-resource.js +12 -8
  334. package/dist/esm/classes/webgl-resource.js.map +1 -1
  335. package/dist/esm/classes/webgl-shader.js +7 -4
  336. package/dist/esm/classes/webgl-shader.js.map +1 -1
  337. package/dist/esm/context/context/context-state.js +26 -0
  338. package/dist/esm/context/context/context-state.js.map +1 -0
  339. package/dist/esm/context/context/create-context.js +37 -0
  340. package/dist/esm/context/context/create-context.js.map +1 -0
  341. package/dist/esm/context/context/device-pixels.js +98 -0
  342. package/dist/esm/context/context/device-pixels.js.map +1 -0
  343. package/dist/esm/context/context/get-canvas.js +31 -0
  344. package/dist/esm/context/context/get-canvas.js.map +1 -0
  345. package/dist/esm/context/context/resize-context.js +15 -0
  346. package/dist/esm/context/context/resize-context.js.map +1 -0
  347. package/dist/esm/context/context/webgl-checks.js +34 -0
  348. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  349. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  350. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  351. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  352. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  353. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  354. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  355. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  356. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  357. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  358. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  359. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  360. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  361. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  362. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  363. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  364. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  365. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  366. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  367. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  368. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  369. package/dist/esm/debug/debug-uniforms.js +1 -1
  370. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  371. package/dist/esm/debug/debug-vertex-array.js +2 -2
  372. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  373. package/dist/esm/device/check-glsl-extension.js +22 -0
  374. package/dist/esm/device/check-glsl-extension.js.map +1 -0
  375. package/dist/esm/device/device-features.js +123 -0
  376. package/dist/esm/device/device-features.js.map +1 -0
  377. package/dist/esm/device/device-limits.js +90 -0
  378. package/dist/esm/device/device-limits.js.map +1 -0
  379. package/dist/esm/device/get-device-info.js +44 -0
  380. package/dist/esm/device/get-device-info.js.map +1 -0
  381. package/dist/esm/device/webgl-device.js +208 -0
  382. package/dist/esm/device/webgl-device.js.map +1 -0
  383. package/dist/esm/index.js +22 -20
  384. package/dist/esm/index.js.map +1 -1
  385. package/dist/esm/init.js +11 -8
  386. package/dist/esm/init.js.map +1 -1
  387. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  388. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  389. package/dist/esm/webgl-utils/constants-to-keys.js +1 -1
  390. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  391. package/dist/esm/webgl-utils/format-utils.js +1 -1
  392. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  393. package/dist/esm/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
  394. package/dist/esm/webgl-utils/is-old-ie.js.map +1 -0
  395. package/dist/esm/webgl-utils/texture-utils.js +2 -2
  396. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  397. package/dist/esm/webgl-utils/typed-array-utils.js +22 -18
  398. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  399. package/dist/esm/webgl-utils/webgl-info.ts.disabled +135 -0
  400. package/dist/index.d.ts +36 -20
  401. package/dist/index.d.ts.map +1 -1
  402. package/dist/index.js +22 -20
  403. package/dist/index.js.map +1 -1
  404. package/dist/init.d.ts.map +1 -1
  405. package/dist/init.js +11 -8
  406. package/dist/init.js.map +1 -1
  407. package/dist/webgl-utils/attribute-utils.d.ts +1 -1
  408. package/dist/webgl-utils/attribute-utils.js +1 -1
  409. package/dist/webgl-utils/attribute-utils.js.map +1 -1
  410. package/dist/webgl-utils/constants-to-keys.js +1 -1
  411. package/dist/webgl-utils/constants-to-keys.js.map +1 -1
  412. package/dist/webgl-utils/format-utils.d.ts +2 -2
  413. package/dist/webgl-utils/format-utils.js +1 -1
  414. package/dist/webgl-utils/format-utils.js.map +1 -1
  415. package/dist/webgl-utils/is-old-ie.d.ts +2 -0
  416. package/dist/webgl-utils/is-old-ie.d.ts.map +1 -0
  417. package/dist/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
  418. package/dist/webgl-utils/is-old-ie.js.map +1 -0
  419. package/dist/webgl-utils/texture-utils.d.ts +12 -8
  420. package/dist/webgl-utils/texture-utils.d.ts.map +1 -1
  421. package/dist/webgl-utils/texture-utils.js +2 -2
  422. package/dist/webgl-utils/texture-utils.js.map +1 -1
  423. package/dist/webgl-utils/typed-array-utils.d.ts +39 -32
  424. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -1
  425. package/dist/webgl-utils/typed-array-utils.js +22 -18
  426. package/dist/webgl-utils/typed-array-utils.js.map +1 -1
  427. package/dist/webgl-utils/webgl-info.ts.disabled +135 -0
  428. package/package.json +5 -6
  429. package/src/.DS_Store +0 -0
  430. package/src/api/device2.ts +71 -0
  431. package/src/classes/accessor.js +2 -2
  432. package/src/classes/accessor.ts.disabled +1 -1
  433. package/src/classes/clear.ts +9 -4
  434. package/src/classes/copy-and-blit.ts +49 -52
  435. package/src/classes/framebuffer.ts +38 -35
  436. package/src/classes/program-configuration.ts +6 -6
  437. package/src/classes/program.ts +21 -15
  438. package/src/classes/query.ts +6 -6
  439. package/src/classes/renderbuffer-formats.ts +1 -1
  440. package/src/classes/renderbuffer.ts +5 -4
  441. package/src/classes/texture-2d.ts +6 -11
  442. package/src/classes/texture-3d.ts +16 -11
  443. package/src/classes/texture-cube.ts +7 -7
  444. package/src/classes/texture-formats.ts +1 -1
  445. package/src/classes/texture.ts +39 -40
  446. package/src/classes/transform-feedback.ts +14 -13
  447. package/src/classes/uniform-buffer-layout.ts +1 -1
  448. package/src/classes/uniforms.ts +4 -10
  449. package/src/classes/vertex-array-object.ts +10 -14
  450. package/src/classes/vertex-array.ts +2 -3
  451. package/src/classes/webgl-buffer.ts +7 -5
  452. package/src/classes/webgl-resource.ts +20 -18
  453. package/src/classes/webgl-shader.ts +6 -4
  454. package/src/context/context/context-state.ts +39 -0
  455. package/src/context/context/create-context.ts +83 -0
  456. package/src/context/context/device-pixels.ts +147 -0
  457. package/src/context/context/get-canvas.ts +37 -0
  458. package/src/context/context/resize-context.ts +37 -0
  459. package/src/context/context/webgl-checks.ts +49 -0
  460. package/src/context/parameters/unified-parameter-api.ts +127 -0
  461. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  462. package/src/context/parameters/webgl-parameters.ts +197 -0
  463. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  464. package/src/context/polyfill/polyfill-context.ts +98 -0
  465. package/src/context/polyfill/polyfill-table.ts +162 -0
  466. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  467. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  468. package/src/context/state-tracker/track-context-state.ts +250 -0
  469. package/src/context/state-tracker/with-parameters.ts +50 -0
  470. package/src/debug/debug-uniforms.ts +1 -1
  471. package/src/debug/debug-vertex-array.ts +2 -4
  472. package/src/device/check-glsl-extension.ts +44 -0
  473. package/src/device/device-features.ts +227 -0
  474. package/src/device/device-limits.ts +150 -0
  475. package/src/device/get-device-info.ts +49 -0
  476. package/src/device/webgl-device.ts +406 -0
  477. package/src/index.ts +76 -22
  478. package/src/init.ts +12 -9
  479. package/src/types.ts +1 -1
  480. package/src/webgl-utils/attribute-utils.ts +1 -1
  481. package/src/webgl-utils/constants-to-keys.ts +1 -1
  482. package/src/webgl-utils/format-utils.ts +1 -1
  483. package/src/{features/check-old-ie.ts → webgl-utils/is-old-ie.ts} +3 -3
  484. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +13 -10
  485. package/src/webgl-utils/{typed-array-utils.js → typed-array-utils.ts} +59 -16
  486. package/src/webgl-utils/webgl-info.ts.disabled +135 -0
  487. package/dist/context/gl-context.d.ts +0 -15
  488. package/dist/context/gl-context.d.ts.map +0 -1
  489. package/dist/context/gl-context.js +0 -32
  490. package/dist/context/gl-context.js.map +0 -1
  491. package/dist/context/luma-context-data.d.ts +0 -31
  492. package/dist/context/luma-context-data.d.ts.map +0 -1
  493. package/dist/context/luma-context-data.js +0 -5
  494. package/dist/context/luma-context-data.js.map +0 -1
  495. package/dist/es5/context/gl-context.js +0 -46
  496. package/dist/es5/context/gl-context.js.map +0 -1
  497. package/dist/es5/context/luma-context-data.js +0 -12
  498. package/dist/es5/context/luma-context-data.js.map +0 -1
  499. package/dist/es5/features/check-glsl-extension.js +0 -40
  500. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  501. package/dist/es5/features/check-old-ie.js +0 -15
  502. package/dist/es5/features/check-old-ie.js.map +0 -1
  503. package/dist/es5/features/features.js +0 -85
  504. package/dist/es5/features/features.js.map +0 -1
  505. package/dist/es5/features/index.js +0 -64
  506. package/dist/es5/features/index.js.map +0 -1
  507. package/dist/es5/features/limits.js +0 -72
  508. package/dist/es5/features/limits.js.map +0 -1
  509. package/dist/es5/features/webgl-features-table.js +0 -84
  510. package/dist/es5/features/webgl-features-table.js.map +0 -1
  511. package/dist/es5/features/webgl-limits-table.js +0 -172
  512. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  513. package/dist/es5/utils/array-utils-flat.js +0 -50
  514. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  515. package/dist/es5/utils/assert.js +0 -13
  516. package/dist/es5/utils/assert.js.map +0 -1
  517. package/dist/es5/utils/check-props.js +0 -50
  518. package/dist/es5/utils/check-props.js.map +0 -1
  519. package/dist/es5/utils/format-value.js +0 -57
  520. package/dist/es5/utils/format-value.js.map +0 -1
  521. package/dist/es5/utils/index.js +0 -68
  522. package/dist/es5/utils/index.js.map +0 -1
  523. package/dist/es5/utils/is-old-ie.js +0 -13
  524. package/dist/es5/utils/is-old-ie.js.map +0 -1
  525. package/dist/es5/utils/load-file.js +0 -43
  526. package/dist/es5/utils/load-file.js.map +0 -1
  527. package/dist/es5/utils/stub-methods.js +0 -25
  528. package/dist/es5/utils/stub-methods.js.map +0 -1
  529. package/dist/es5/utils/utils.js +0 -31
  530. package/dist/es5/utils/utils.js.map +0 -1
  531. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  532. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  533. package/dist/esm/context/gl-context.js +0 -32
  534. package/dist/esm/context/gl-context.js.map +0 -1
  535. package/dist/esm/context/luma-context-data.js +0 -5
  536. package/dist/esm/context/luma-context-data.js.map +0 -1
  537. package/dist/esm/features/check-glsl-extension.js +0 -27
  538. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  539. package/dist/esm/features/check-old-ie.js.map +0 -1
  540. package/dist/esm/features/features.js +0 -67
  541. package/dist/esm/features/features.js.map +0 -1
  542. package/dist/esm/features/index.js +0 -5
  543. package/dist/esm/features/index.js.map +0 -1
  544. package/dist/esm/features/limits.js +0 -55
  545. package/dist/esm/features/limits.js.map +0 -1
  546. package/dist/esm/features/webgl-features-table.js +0 -71
  547. package/dist/esm/features/webgl-features-table.js.map +0 -1
  548. package/dist/esm/features/webgl-limits-table.js +0 -161
  549. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  550. package/dist/esm/utils/array-utils-flat.js +0 -39
  551. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  552. package/dist/esm/utils/assert.js +0 -6
  553. package/dist/esm/utils/assert.js.map +0 -1
  554. package/dist/esm/utils/check-props.js +0 -38
  555. package/dist/esm/utils/check-props.js.map +0 -1
  556. package/dist/esm/utils/format-value.js +0 -50
  557. package/dist/esm/utils/format-value.js.map +0 -1
  558. package/dist/esm/utils/index.js +0 -7
  559. package/dist/esm/utils/index.js.map +0 -1
  560. package/dist/esm/utils/is-old-ie.js +0 -5
  561. package/dist/esm/utils/is-old-ie.js.map +0 -1
  562. package/dist/esm/utils/load-file.js +0 -30
  563. package/dist/esm/utils/load-file.js.map +0 -1
  564. package/dist/esm/utils/stub-methods.js +0 -16
  565. package/dist/esm/utils/stub-methods.js.map +0 -1
  566. package/dist/esm/utils/utils.js +0 -20
  567. package/dist/esm/utils/utils.js.map +0 -1
  568. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  569. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  570. package/dist/features/check-glsl-extension.d.ts +0 -2
  571. package/dist/features/check-glsl-extension.d.ts.map +0 -1
  572. package/dist/features/check-glsl-extension.js +0 -27
  573. package/dist/features/check-glsl-extension.js.map +0 -1
  574. package/dist/features/check-old-ie.d.ts +0 -2
  575. package/dist/features/check-old-ie.d.ts.map +0 -1
  576. package/dist/features/check-old-ie.js.map +0 -1
  577. package/dist/features/features.d.ts +0 -6
  578. package/dist/features/features.d.ts.map +0 -1
  579. package/dist/features/features.js +0 -67
  580. package/dist/features/features.js.map +0 -1
  581. package/dist/features/index.d.ts +0 -5
  582. package/dist/features/index.d.ts.map +0 -1
  583. package/dist/features/index.js +0 -5
  584. package/dist/features/index.js.map +0 -1
  585. package/dist/features/limits.d.ts +0 -28
  586. package/dist/features/limits.d.ts.map +0 -1
  587. package/dist/features/limits.js +0 -55
  588. package/dist/features/limits.js.map +0 -1
  589. package/dist/features/webgl-features-table.d.ts +0 -30
  590. package/dist/features/webgl-features-table.d.ts.map +0 -1
  591. package/dist/features/webgl-features-table.js +0 -71
  592. package/dist/features/webgl-features-table.js.map +0 -1
  593. package/dist/features/webgl-limits-table.d.ts +0 -161
  594. package/dist/features/webgl-limits-table.d.ts.map +0 -1
  595. package/dist/features/webgl-limits-table.js +0 -161
  596. package/dist/features/webgl-limits-table.js.map +0 -1
  597. package/dist/utils/array-utils-flat.d.ts +0 -9
  598. package/dist/utils/array-utils-flat.d.ts.map +0 -1
  599. package/dist/utils/array-utils-flat.js +0 -39
  600. package/dist/utils/array-utils-flat.js.map +0 -1
  601. package/dist/utils/assert.d.ts +0 -2
  602. package/dist/utils/assert.d.ts.map +0 -1
  603. package/dist/utils/assert.js +0 -6
  604. package/dist/utils/assert.js.map +0 -1
  605. package/dist/utils/check-props.d.ts +0 -2
  606. package/dist/utils/check-props.d.ts.map +0 -1
  607. package/dist/utils/check-props.js +0 -38
  608. package/dist/utils/check-props.js.map +0 -1
  609. package/dist/utils/format-value.d.ts +0 -5
  610. package/dist/utils/format-value.d.ts.map +0 -1
  611. package/dist/utils/format-value.js +0 -50
  612. package/dist/utils/format-value.js.map +0 -1
  613. package/dist/utils/index.d.ts +0 -7
  614. package/dist/utils/index.d.ts.map +0 -1
  615. package/dist/utils/index.js +0 -7
  616. package/dist/utils/index.js.map +0 -1
  617. package/dist/utils/is-old-ie.d.ts +0 -4
  618. package/dist/utils/is-old-ie.d.ts.map +0 -1
  619. package/dist/utils/is-old-ie.js +0 -5
  620. package/dist/utils/is-old-ie.js.map +0 -1
  621. package/dist/utils/load-file.d.ts +0 -4
  622. package/dist/utils/load-file.d.ts.map +0 -1
  623. package/dist/utils/load-file.js +0 -30
  624. package/dist/utils/load-file.js.map +0 -1
  625. package/dist/utils/stub-methods.d.ts +0 -2
  626. package/dist/utils/stub-methods.d.ts.map +0 -1
  627. package/dist/utils/stub-methods.js +0 -16
  628. package/dist/utils/stub-methods.js.map +0 -1
  629. package/dist/utils/utils.d.ts +0 -15
  630. package/dist/utils/utils.d.ts.map +0 -1
  631. package/dist/utils/utils.js +0 -20
  632. package/dist/utils/utils.js.map +0 -1
  633. package/src/context/gl-context.ts +0 -31
  634. package/src/context/luma-context-data.ts +0 -27
  635. package/src/features/check-glsl-extension.ts +0 -34
  636. package/src/features/features.ts +0 -80
  637. package/src/features/index.ts +0 -5
  638. package/src/features/limits.ts +0 -66
  639. package/src/features/webgl-features-table.ts +0 -104
  640. package/src/features/webgl-limits-table.ts +0 -51
  641. package/src/utils/array-utils-flat.ts +0 -56
  642. package/src/utils/assert.ts +0 -7
  643. package/src/utils/check-props.ts +0 -68
  644. package/src/utils/format-value.ts +0 -37
  645. package/src/utils/index.ts +0 -6
  646. package/src/utils/is-old-ie.ts +0 -6
  647. package/src/utils/load-file.ts +0 -40
  648. package/src/utils/stub-methods.ts +0 -20
  649. package/src/utils/utils.ts +0 -35
  650. package/src/webgl-utils/texture-utils.d.ts +0 -11
  651. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -1,20 +1,25 @@
1
- // @ts-nocheck
1
+ import {log, assert} from '@luma.gl/api';
2
2
  import GL from '@luma.gl/constants';
3
3
  import Buffer from './webgl-buffer';
4
4
  import Framebuffer from './framebuffer';
5
5
  import Texture from './texture';
6
- import {assertWebGL2Context, withParameters, log} from '@luma.gl/gltools';
7
- import {flipRows, scalePixels} from '../webgl-utils';
6
+ import {assertWebGL2Context} from '../context/context/webgl-checks';
7
+ import {withParameters} from '../context/state-tracker/with-parameters';
8
+ import {flipRows, scalePixels} from '../webgl-utils/typed-array-utils';
8
9
  import {getTypedArrayFromGLType, getGLTypeFromTypedArray} from '../webgl-utils/typed-array-utils';
9
10
  import {glFormatToComponents, glTypeToBytes} from '../webgl-utils/format-utils';
10
11
  import {toFramebuffer} from '../webgl-utils/texture-utils';
11
- import {assert} from '../utils';
12
12
 
13
- // NOTE: Slow requires roundtrip to GPU
14
- // Copies data from a Framebuffer or a Texture object into ArrayBuffer object.
15
- // App can provide targetPixelArray or have it auto allocated by this method
13
+ /**
14
+ * Copies data from a Framebuffer or a Texture object into ArrayBuffer object.
15
+ * App can provide targetPixelArray or have it auto allocated by this method
16
+ * newly allocated by this method unless provided by app.
17
+ * @note Slow requires roundtrip to GPU
18
+ *
19
+ * @param source
20
+ * @param options
16
21
  // @returns {Uint8Array|Uint16Array|FloatArray} - pixel array,
17
- // newly allocated by this method unless provided by app.
22
+ */
18
23
  export function readPixelsToArray(
19
24
  source: Framebuffer | Texture,
20
25
  options?: {
@@ -28,15 +33,8 @@ export function readPixelsToArray(
28
33
  sourceHeight?: number;
29
34
  sourceType?: number;
30
35
  }
31
- ): Uint8Array | Uint16Array | Float32Array;
32
-
33
- // NOTE: Slow requires roundtrip to GPU
34
- // Copies data from a Framebuffer or a Texture object into ArrayBuffer object.
35
- // App can provide targetPixelArray or have it auto allocated by this method
36
- // @returns {Uint8Array|Uint16Array|FloatArray} - pixel array,
37
- // newly allocated by this method unless provided by app.
38
- export function readPixelsToArray(source, options = {}) {
39
- const {sourceX = 0, sourceY = 0, sourceFormat = GL.RGBA} = options;
36
+ ): Uint8Array | Uint16Array | Float32Array {
37
+ const {sourceX = 0, sourceY = 0, sourceFormat = GL.RGBA} = options || {};
40
38
  let {
41
39
  sourceAttachment = GL.COLOR_ATTACHMENT0, // TODO - support gl.readBuffer
42
40
  target = null,
@@ -44,7 +42,7 @@ export function readPixelsToArray(source, options = {}) {
44
42
  sourceWidth,
45
43
  sourceHeight,
46
44
  sourceType
47
- } = options;
45
+ } = options || {};
48
46
 
49
47
  const {framebuffer, deleteFramebuffer} = getFramebuffer(source);
50
48
  assert(framebuffer);
@@ -70,7 +68,7 @@ export function readPixelsToArray(source, options = {}) {
70
68
 
71
69
  const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
72
70
  gl.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, target);
73
- // @ts-ignore
71
+ // @ts-expect-error
74
72
  gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
75
73
  if (deleteFramebuffer) {
76
74
  framebuffer.delete();
@@ -78,8 +76,12 @@ export function readPixelsToArray(source, options = {}) {
78
76
  return target;
79
77
  }
80
78
 
81
- // NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.
82
- // Copies data from a Framebuffer or a Texture object into a Buffer object.
79
+ /**
80
+ * Copies data from a Framebuffer or a Texture object into a Buffer object.
81
+ * NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.
82
+ * @param source
83
+ * @param options
84
+ */
83
85
  export function readPixelsToBuffer(
84
86
  source: Framebuffer | Texture,
85
87
  options?: {
@@ -93,30 +95,23 @@ export function readPixelsToBuffer(
93
95
  sourceHeight?: number;
94
96
  sourceType?: number;
95
97
  }
96
- ): Buffer;
97
-
98
- // NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.
99
- // Copies data from a Framebuffer or a Texture object into a Buffer object.
100
- export function readPixelsToBuffer(
101
- source,
102
- {
103
- sourceX = 0,
104
- sourceY = 0,
105
- sourceFormat = GL.RGBA,
106
- target = null, // A new Buffer object is created when not provided.
107
- targetByteOffset = 0, // byte offset in buffer object
98
+ ): Buffer {
99
+ const {sourceX = 0, sourceY = 0, sourceFormat = GL.RGBA,
100
+ targetByteOffset = 0
101
+ } = options || {};
108
102
  // following parameters are auto deduced if not provided
103
+ let {
104
+ target,
109
105
  sourceWidth,
110
106
  sourceHeight,
111
- sourceType
112
- }
113
- ) {
107
+ sourceType,
108
+ } = options || {}
114
109
  const {framebuffer, deleteFramebuffer} = getFramebuffer(source);
115
110
  assert(framebuffer);
116
111
  sourceWidth = sourceWidth || framebuffer.width;
117
112
  sourceHeight = sourceHeight || framebuffer.height;
118
113
 
119
- // Asynchronus read (PIXEL_PACK_BUFFER) is WebGL2 only feature
114
+ // Asynchronous read (PIXEL_PACK_BUFFER) is WebGL2 only feature
120
115
  const gl2 = assertWebGL2Context(framebuffer.gl);
121
116
 
122
117
  // deduce type if not available.
@@ -127,12 +122,11 @@ export function readPixelsToBuffer(
127
122
  const components = glFormatToComponents(sourceFormat);
128
123
  const byteCount = glTypeToBytes(sourceType);
129
124
  const byteLength = targetByteOffset + sourceWidth * sourceHeight * components * byteCount;
130
- // @ts-expect-error TODO why is WebGL2 context not compatible
131
125
  target = new Buffer(gl2, {byteLength, accessor: {type: sourceType, size: components}});
132
126
  }
133
127
 
128
+ // @ts-expect-error
134
129
  target.bind({target: GL.PIXEL_PACK_BUFFER});
135
- // @ts-expect-error TODO why is WebGL2 context not compatible
136
130
  withParameters(gl2, {framebuffer}, () => {
137
131
  gl2.readPixels(
138
132
  sourceX,
@@ -204,6 +198,7 @@ export function copyToImage(
204
198
  ): typeof Image {
205
199
  const dataUrl = copyToDataUrl(source, {sourceAttachment: options?.sourceAttachment || GL.COLOR_ATTACHMENT0});
206
200
  const targetImage = options?.targetImage || new Image();
201
+ // @ts-expect-error
207
202
  targetImage.src = dataUrl;
208
203
  // @ts-expect-error
209
204
  return targetImage;
@@ -215,7 +210,7 @@ export function copyToImage(
215
210
  // eslint-disable-next-line complexity, max-statements
216
211
  export function copyToTexture(
217
212
  source: Framebuffer | Texture,
218
- target: Texture,
213
+ target: Texture | GL,
219
214
  options?: {
220
215
  sourceX?: number;
221
216
  sourceY?: number;
@@ -236,14 +231,14 @@ export function copyToTexture(
236
231
  // attachment = GL.COLOR_ATTACHMENT0, // TODO - support gl.readBuffer
237
232
  targetMipmaplevel = 0,
238
233
  targetInternalFormat = GL.RGBA
239
- } = options;
234
+ } = options || {};
240
235
  let {
241
236
  targetX,
242
237
  targetY,
243
238
  targetZ,
244
239
  width, // defaults to target width
245
240
  height // defaults to target height
246
- } = options;
241
+ } = options || {};
247
242
 
248
243
  const {framebuffer, deleteFramebuffer} = getFramebuffer(source);
249
244
  assert(framebuffer);
@@ -260,17 +255,20 @@ export function copyToTexture(
260
255
  // const prevBuffer = gl.readBuffer(attachment);
261
256
  assert(target);
262
257
  let texture = null;
258
+ let textureTarget: GL;
263
259
  if (target instanceof Texture) {
264
260
  texture = target;
265
261
  width = Number.isFinite(width) ? width : texture.width;
266
262
  height = Number.isFinite(height) ? height : texture.height;
267
263
  texture.bind(0);
268
- target = texture.target;
264
+ textureTarget = texture.target;
265
+ } else {
266
+ textureTarget = target;
269
267
  }
270
268
 
271
269
  if (!isSubCopy) {
272
270
  gl.copyTexImage2D(
273
- target,
271
+ textureTarget,
274
272
  targetMipmaplevel,
275
273
  targetInternalFormat,
276
274
  sourceX,
@@ -280,11 +278,11 @@ export function copyToTexture(
280
278
  0 /* border must be 0 */
281
279
  );
282
280
  } else {
283
- switch (target) {
281
+ switch (textureTarget) {
284
282
  case GL.TEXTURE_2D:
285
283
  case GL.TEXTURE_CUBE_MAP:
286
284
  gl.copyTexSubImage2D(
287
- target,
285
+ textureTarget,
288
286
  targetMipmaplevel,
289
287
  targetX,
290
288
  targetY,
@@ -298,7 +296,7 @@ export function copyToTexture(
298
296
  case GL.TEXTURE_3D:
299
297
  const gl2 = assertWebGL2Context(gl);
300
298
  gl2.copyTexSubImage3D(
301
- target,
299
+ textureTarget,
302
300
  targetMipmaplevel,
303
301
  targetX,
304
302
  targetY,
@@ -315,7 +313,7 @@ export function copyToTexture(
315
313
  if (texture) {
316
314
  texture.unbind();
317
315
  }
318
- // @ts-ignore
316
+ // @ts-expect-error
319
317
  gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
320
318
  if (deleteFramebuffer) {
321
319
  framebuffer.delete();
@@ -378,7 +376,6 @@ export function blit(
378
376
 
379
377
  assert(srcFramebuffer);
380
378
  assert(dstFramebuffer);
381
- // @ts-ignore
382
379
  const {gl, handle, width, height, readBuffer} = dstFramebuffer;
383
380
  const gl2 = assertWebGL2Context(gl);
384
381
 
@@ -427,9 +424,9 @@ export function blit(
427
424
  filter
428
425
  );
429
426
  gl2.readBuffer(readBuffer);
430
- // @ts-ignore
427
+ // @ts-expect-error
431
428
  gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, prevReadHandle || null);
432
- // @ts-ignore
429
+ // @ts-expect-error
433
430
  gl2.bindFramebuffer(GL.DRAW_FRAMEBUFFER, prevDrawHandle || null);
434
431
  if (deleteSrcFramebuffer) {
435
432
  srcFramebuffer.delete();
@@ -438,7 +435,7 @@ export function blit(
438
435
  dstFramebuffer.delete();
439
436
  }
440
437
 
441
- return dstFramebuffer;
438
+ // return dstFramebuffer;
442
439
  }
443
440
 
444
441
  // Helper methods
@@ -1,16 +1,14 @@
1
+ import {log, assert} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
- import {getWebGL2Context, assertWebGL2Context, log} from '@luma.gl/gltools';
3
+ import WebGLDevice from '../device/webgl-device';
4
+ import {getWebGL2Context, assertWebGL2Context} from '../context/context/webgl-checks';
5
+ import {getKey} from '../webgl-utils/constants-to-keys';
3
6
  import Resource, {ResourceProps} from './webgl-resource';
4
7
  import Texture2D from './texture-2d';
5
8
  import Renderbuffer from './renderbuffer';
6
9
  import {clear, clearBuffer} from './clear';
7
10
  import {copyToDataUrl} from './copy-and-blit';
8
11
 
9
- import {getLumaContextData} from '../context/luma-context-data';
10
- import {getFeatures} from '../features';
11
- import {getKey} from '../webgl-utils';
12
- import {assert} from '../utils';
13
-
14
12
  const ERR_MULTIPLE_RENDERTARGETS = 'Multiple render targets not supported';
15
13
 
16
14
  type TextureAttachment = {
@@ -40,7 +38,7 @@ type colorBufferFloatOptions = {colorBufferFloat?: boolean; colorBufferHalfFloat
40
38
 
41
39
  export class ImmutableFramebuffer extends Resource<FramebufferProps> {
42
40
  constructor(gl: WebGLRenderingContext, props?: FramebufferProps) {
43
- super(gl, props, {} as any);
41
+ super(WebGLDevice.attach(gl), props, {} as any);
44
42
  this._initialize({
45
43
  attachments: props?.attachments || {},
46
44
  readBuffer: props?.readBuffer,
@@ -61,7 +59,7 @@ export class ImmutableFramebuffer extends Resource<FramebufferProps> {
61
59
  const {gl} = this;
62
60
  const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
63
61
  const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER);
64
- // @ts-ignore
62
+ // @ts-expect-error
65
63
  gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
66
64
  return status;
67
65
  }
@@ -82,7 +80,8 @@ export class ImmutableFramebuffer extends Resource<FramebufferProps> {
82
80
  }
83
81
  message = message || `Framebuffer ${this.id}`;
84
82
  const image = copyToDataUrl(this, {targetMaxHeight: 100});
85
- log.image({logLevel, message, image}, message)();
83
+ // @ts-expect-error probe.gl typings incorrectly require priority...
84
+ log.image({logLevel, message, image})();
86
85
  return this;
87
86
  }
88
87
 
@@ -112,7 +111,7 @@ export class ImmutableFramebuffer extends Resource<FramebufferProps> {
112
111
  if (drawBuffers) {
113
112
  this._setDrawBuffers(drawBuffers);
114
113
  }
115
- // @ts-ignore
114
+ // @ts-expect-error
116
115
  this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
117
116
 
118
117
  return this;
@@ -131,7 +130,7 @@ export class ImmutableFramebuffer extends Resource<FramebufferProps> {
131
130
  this._attachOne(attachmentPoint, attachment);
132
131
  }
133
132
 
134
- // @ts-ignore
133
+ // @ts-expect-error
135
134
  this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
136
135
  }
137
136
 
@@ -280,16 +279,16 @@ export default class Framebuffer extends ImmutableFramebuffer {
280
279
  * Creates a Framebuffer object wrapper for the default WebGL framebuffer (target === null)
281
280
  */
282
281
  static getDefaultFramebuffer(gl: WebGLRenderingContext): Framebuffer {
283
- const lumaContextData = getLumaContextData(gl);
284
- lumaContextData.defaultFramebuffer =
285
- lumaContextData.defaultFramebuffer ||
282
+ const webglDevice = WebGLDevice.fromContext(gl);
283
+ webglDevice.defaultFramebuffer =
284
+ webglDevice.defaultFramebuffer ||
286
285
  new Framebuffer(gl, {
287
286
  id: 'default-framebuffer',
288
287
  handle: null,
289
288
  attachments: {}
290
289
  });
291
290
  // TODO - can we query for and get a handle to the GL.FRONT renderbuffer?
292
- return lumaContextData.defaultFramebuffer;
291
+ return webglDevice.defaultFramebuffer;
293
292
  }
294
293
 
295
294
  get MAX_COLOR_ATTACHMENTS(): number {
@@ -407,13 +406,13 @@ export default class Framebuffer extends ImmutableFramebuffer {
407
406
  this._setDrawBuffers(drawBuffers);
408
407
  this.drawBuffers = drawBuffers;
409
408
  }
410
- // @ts-ignore
409
+ // @ts-expect-error
411
410
  gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
412
411
 
413
412
  return this;
414
413
  }
415
414
 
416
- // Attachment resize is expected to be a noop if size is same
415
+ /** Attachment resize is expected to be a noop if size is same */
417
416
  resize(size?: {width?: number; height?: number}): this {
418
417
  let {width, height} = size || {};
419
418
  // for default framebuffer, just update the stored size
@@ -442,7 +441,7 @@ export default class Framebuffer extends ImmutableFramebuffer {
442
441
  return this;
443
442
  }
444
443
 
445
- // Attach from a map of attachments
444
+ /** Attach from a map of attachments */
446
445
  attach(attachments, {clearAttachments = false, resizeAttachments = true} = {}) {
447
446
  const newAttachments = {};
448
447
 
@@ -480,7 +479,7 @@ export default class Framebuffer extends ImmutableFramebuffer {
480
479
  }
481
480
  }
482
481
 
483
- // @ts-ignore
482
+ // @ts-expect-error
484
483
  this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
485
484
 
486
485
  // Assign to attachments and remove any nulls to get a clean attachment map
@@ -506,7 +505,7 @@ export default class Framebuffer extends ImmutableFramebuffer {
506
505
  clearBuffer(this.gl, {drawBuffer, value});
507
506
  });
508
507
 
509
- // @ts-ignore
508
+ // @ts-expect-error
510
509
  this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
511
510
 
512
511
  return this;
@@ -531,10 +530,10 @@ export default class Framebuffer extends ImmutableFramebuffer {
531
530
  gl2.invalidateFramebuffer(GL.READ_FRAMEBUFFER, attachments);
532
531
  } else {
533
532
  // TODO - why does type checking fail on this line
534
- // @ts-ignore
533
+ // @ts-expect-error
535
534
  gl2.invalidateFramebuffer(GL.READ_FRAMEBUFFER, attachments, x, y, width, height);
536
535
  }
537
- // @ts-ignore
536
+ // @ts-expect-error
538
537
  gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, prevHandle);
539
538
  return this;
540
539
  }
@@ -549,7 +548,7 @@ export default class Framebuffer extends ImmutableFramebuffer {
549
548
  this.gl.bindFramebuffer(GL.FRAMEBUFFER, null);
550
549
  }
551
550
  if (keys && value > 1000) {
552
- // @ts-ignore
551
+ // @ts-expect-error
553
552
  value = getKey(this.gl, value);
554
553
  }
555
554
  return value;
@@ -558,7 +557,7 @@ export default class Framebuffer extends ImmutableFramebuffer {
558
557
  getAttachmentParameters(
559
558
  attachment = GL.COLOR_ATTACHMENT0,
560
559
  keys,
561
- // @ts-ignore
560
+ // @ts-expect-error
562
561
  parameters = this.constructor.ATTACHMENT_PARAMETERS || []
563
562
  ) {
564
563
  const values = {};
@@ -672,32 +671,36 @@ export default class Framebuffer extends ImmutableFramebuffer {
672
671
  delete this.attachments[attachment];
673
672
  }
674
673
 
675
- // Attempt to provide workable defaults for WebGL2 symbols under WebGL1
676
- // null means OK to query
677
- // TODO - move to webgl1 polyfills
678
- /* eslint-disable complexity */
674
+ /**
675
+ * Attempt to provide workable defaults for WebGL2 symbols under WebGL1
676
+ * null means OK to query
677
+ * TODO - move to webgl1 polyfills
678
+ * @param pname
679
+ * @returns
680
+ */
681
+ // eslint-disable-next-line complexity
679
682
  _getAttachmentParameterFallback(pname) {
680
- const caps = getFeatures(this.gl);
683
+ const webglDevice = WebGLDevice.fromContext(this.gl);
684
+ const features = webglDevice.features;
681
685
 
682
686
  switch (pname) {
683
687
  case GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: // GLint
684
- return !caps.WEBGL2 ? 0 : null;
688
+ return !features.has('webgl2') ? 0 : null;
685
689
  case GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE: // GLint
686
690
  case GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: // GLint
687
691
  case GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: // GLint
688
692
  case GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: // GLint
689
693
  case GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: // GLint
690
694
  case GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: // GLint
691
- return !caps.WEBGL2 ? 8 : null;
695
+ return !features.has('webgl2') ? 8 : null;
692
696
  case GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: // GLenum
693
- return !caps.WEBGL2 ? GL.UNSIGNED_INT : null;
697
+ return !features.has('webgl2') ? GL.UNSIGNED_INT : null;
694
698
  case GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:
695
- return !caps.WEBGL2 && !caps.EXT_sRGB ? GL.LINEAR : null;
699
+ return !features.has('webgl2') && !features.has('webgl-color-encoding-srgb') ? GL.LINEAR : null;
696
700
  default:
697
701
  return null;
698
702
  }
699
703
  }
700
- /* eslint-enable complexity */
701
704
  }
702
705
 
703
706
  // PUBLIC METHODS
@@ -713,7 +716,7 @@ function mapIndexToCubeMapFace(layer) {
713
716
  // Get a string describing the framebuffer error if installed
714
717
  function _getFrameBufferStatus(status) {
715
718
  // Use error mapping if installed
716
- // @ts-ignore
719
+ // @ts-expect-error
717
720
  const STATUS = Framebuffer.STATUS || {};
718
721
  return STATUS[status] || `Framebuffer error ${status}`;
719
722
  }
@@ -1,7 +1,7 @@
1
1
  // Contains metadata describing attribute configurations for a program's shaders
2
2
  // Much of this is automatically extracted from shaders after program linking
3
3
  import Accessor from './accessor';
4
- import {isWebGL2} from '@luma.gl/gltools';
4
+ import {isWebGL2} from '../context/context/webgl-checks';
5
5
  import {decomposeCompositeGLType} from '../webgl-utils/attribute-utils';
6
6
 
7
7
  /**
@@ -12,13 +12,13 @@ import {decomposeCompositeGLType} from '../webgl-utils/attribute-utils';
12
12
  */
13
13
  export default class ProgramConfiguration {
14
14
  id: string;
15
- attributeInfos = [];
16
- attributeInfosByName = {};
15
+ attributeInfos: any[] = [];
16
+ attributeInfosByName: Record<string, any> = {};
17
17
  // Locations may not be contiguous the case of matrix attributes
18
18
  // so keep a separate location->attribute map.
19
- attributeInfosByLocation = [];
20
- varyingInfos = [];
21
- varyingInfosByName = {};
19
+ attributeInfosByLocation: any[] = [];
20
+ varyingInfos: any[] = [];
21
+ varyingInfosByName: Record<string, any> = {};
22
22
 
23
23
  constructor(program) {
24
24
  this.id = program.id;
@@ -1,5 +1,6 @@
1
+ import {log, assert, uid} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
-
3
+ import WebGLDevice from '../device/webgl-device';
3
4
  import WebGLResource, {ResourceProps} from './webgl-resource';
4
5
  import Texture from './texture';
5
6
  import Framebuffer from './framebuffer';
@@ -8,10 +9,10 @@ import {VertexShader, FragmentShader} from './webgl-shader';
8
9
  import ProgramConfiguration from './program-configuration';
9
10
  import {copyUniform, checkUniformValues} from './uniforms';
10
11
 
11
- import {isWebGL2, assertWebGL2Context, withParameters, log} from '@luma.gl/gltools';
12
- import {getKey} from '../webgl-utils';
12
+ import {isWebGL2, assertWebGL2Context} from '../context/context/webgl-checks';
13
+ import {withParameters} from '../context/state-tracker/with-parameters';
14
+ import {getKey} from '../webgl-utils/constants-to-keys';
13
15
  import {getPrimitiveDrawMode} from '../webgl-utils/attribute-utils';
14
- import {uid, assert} from '../utils';
15
16
 
16
17
  const LOG_PROGRAM_PERF_PRIORITY = 4;
17
18
 
@@ -47,19 +48,19 @@ export type ProgramDrawOptions = {
47
48
  export default class Program extends WebGLResource<ProgramProps> {
48
49
  configuration: ProgramConfiguration;
49
50
  // Experimental flag to avoid deleting Program object while it is cached
50
- _isCached = false;
51
- _textureIndexCounter = 0;
52
51
  hash: string;; // Used by ProgramManager
53
52
  vs;
54
53
  fs;
55
- uniforms: {};
56
- _textureUniforms: {};
57
- varyings: {};
58
- _uniformCount = 0;
59
- _uniformSetters: {};
54
+ uniforms: Record<string, any>;
55
+ varyings: Record<string, any>;
56
+ _textureUniforms: Record<string, any>;
57
+ _isCached: boolean = false;
58
+ _textureIndexCounter: number = 0;
59
+ _uniformCount: number = 0;
60
+ _uniformSetters: Record<string, Function>;
60
61
 
61
62
  constructor(gl: WebGLRenderingContext, props: ProgramProps = {}) {
62
- super(gl, props, {} as any);
63
+ super(WebGLDevice.attach(gl), props, {} as any);
63
64
 
64
65
 
65
66
  this.initialize(props);
@@ -234,12 +235,15 @@ export default class Program extends WebGLResource<ProgramProps> {
234
235
 
235
236
  if (textureUpdate) {
236
237
  // eslint-disable-next-line max-depth
238
+ // @ts-expect-error
237
239
  if (uniformSetter.textureIndex === undefined) {
240
+ // @ts-expect-error
238
241
  uniformSetter.textureIndex = this._textureIndexCounter++;
239
242
  }
240
243
 
241
244
  // Bind texture to index
242
245
  const texture = value;
246
+ // @ts-expect-error
243
247
  const {textureIndex} = uniformSetter;
244
248
 
245
249
  texture.bind(textureIndex);
@@ -247,6 +251,7 @@ export default class Program extends WebGLResource<ProgramProps> {
247
251
 
248
252
  this._textureUniforms[uniformName] = texture;
249
253
  } else {
254
+ // @ts-expect-error
250
255
  value = uniformSetter.textureIndex;
251
256
  }
252
257
  } else if (this._textureUniforms[uniformName]) {
@@ -285,6 +290,7 @@ export default class Program extends WebGLResource<ProgramProps> {
285
290
  // Note: This is currently done before every draw call
286
291
  _bindTextures() {
287
292
  for (const uniformName in this._textureUniforms) {
293
+ // @ts-expect-error
288
294
  const textureIndex = this._uniformSetters[uniformName].textureIndex;
289
295
  this._textureUniforms[uniformName].bind(textureIndex);
290
296
  }
@@ -308,11 +314,11 @@ export default class Program extends WebGLResource<ProgramProps> {
308
314
  const type = this.gl.getShaderParameter(this.handle, GL.SHADER_TYPE);
309
315
  switch (type) {
310
316
  case GL.VERTEX_SHADER:
311
- // @ts-ignore
317
+ // @ts-expect-error
312
318
  opts.vs = new VertexShader({handle: shaderHandle});
313
319
  break;
314
320
  case GL.FRAGMENT_SHADER:
315
- // @ts-ignore
321
+ // @ts-expect-error
316
322
  opts.fs = new FragmentShader({handle: shaderHandle});
317
323
  break;
318
324
  default:
@@ -351,7 +357,7 @@ export default class Program extends WebGLResource<ProgramProps> {
351
357
  log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this._getName()}`)();
352
358
 
353
359
  // Avoid checking program linking error in production
354
- // @ts-ignore
360
+ // @ts-expect-error
355
361
  if (gl.debug || log.level > 0) {
356
362
  const linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);
357
363
  if (!linked) {
@@ -1,8 +1,8 @@
1
1
  // WebGL2 Query (also handles disjoint timer extensions)
2
- import {isWebGL2} from '@luma.gl/gltools';
2
+ import {assert} from '@luma.gl/api';
3
+ import WebGLDevice from '../device/webgl-device';
4
+ import {isWebGL2} from '../context/context/webgl-checks';
3
5
  import WebGLResource, {ResourceProps} from './webgl-resource';
4
- import {FEATURES, hasFeatures} from '../features';
5
- import {assert} from '../utils';
6
6
 
7
7
  const GL_QUERY_RESULT = 0x8866; // Returns a GLuint containing the query result.
8
8
  const GL_QUERY_RESULT_AVAILABLE = 0x8867; // whether query result is available.
@@ -27,7 +27,8 @@ export default class Query extends WebGLResource<QueryProps> {
27
27
  const webgl2 = isWebGL2(gl);
28
28
 
29
29
  // Initial value
30
- const hasTimerQuery = hasFeatures(gl, FEATURES.TIMER_QUERY);
30
+ const webglDevice = WebGLDevice.fromContext(gl);
31
+ const hasTimerQuery = webglDevice.features.has('webgl-timer-query');
31
32
  let supported = webgl2 || hasTimerQuery;
32
33
 
33
34
  for (const key of options) {
@@ -52,8 +53,7 @@ export default class Query extends WebGLResource<QueryProps> {
52
53
 
53
54
  // Create a query class
54
55
  constructor(gl: WebGLRenderingContext, opts: QueryProps = {}) {
55
- super(gl, opts, {} as any);
56
-
56
+ super(WebGLDevice.attach(gl), opts, {} as any);
57
57
  Object.seal(this);
58
58
  }
59
59
 
@@ -1,5 +1,5 @@
1
1
  import GL from '@luma.gl/constants';
2
- import {isWebGL2} from '@luma.gl/gltools';
2
+ import {isWebGL2} from '../context/context/webgl-checks';
3
3
 
4
4
  export function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: GL): boolean {
5
5
  const info = RENDERBUFFER_FORMATS[format];
@@ -1,9 +1,10 @@
1
1
  /* eslint-disable no-inline-comments */
2
+ import {assert} from '@luma.gl/api';
2
3
  import GL from '@luma.gl/constants';
4
+ import WebGLDevice from '../device/webgl-device';
3
5
  import WebGLResource, {ResourceProps} from './webgl-resource';
4
6
  import {isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel} from './renderbuffer-formats';
5
- import {isWebGL2} from '@luma.gl/gltools';
6
- import {assert} from '../utils';
7
+ import {isWebGL2} from '../context/context/webgl-checks';
7
8
 
8
9
  export type RenderbufferProps = ResourceProps & {
9
10
  format: number;
@@ -38,7 +39,7 @@ export class ImmutableRenderbuffer extends WebGLResource<RenderbufferProps> {
38
39
  }
39
40
 
40
41
  constructor(gl: WebGLRenderingContext, props: RenderbufferProps) {
41
- super(gl, props, DEFAULT_RENDERBUFFER_PROPS);
42
+ super(WebGLDevice.attach(gl), props, DEFAULT_RENDERBUFFER_PROPS);
42
43
  this._initialize(this.props);
43
44
  }
44
45
 
@@ -54,7 +55,7 @@ export class ImmutableRenderbuffer extends WebGLResource<RenderbufferProps> {
54
55
  this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
55
56
 
56
57
  if (samples !== 0 && isWebGL2(this.gl)) {
57
- // @ts-ignore
58
+ // @ts-expect-error
58
59
  this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
59
60
  } else {
60
61
  this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);