@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
@@ -1,17 +1,56 @@
1
- /** @typedef {import('./uniforms')} types */
2
-
1
+ import {log, assert} from '@luma.gl/api';
3
2
  import GL from '@luma.gl/constants';
4
- import {log} from '@luma.gl/gltools';
3
+ import {Matrix4} from '@math.gl/core';
5
4
 
6
5
  import Framebuffer from './framebuffer';
7
6
  import Renderbuffer from './renderbuffer';
8
7
  import Texture from './texture';
9
- import {assert} from '../utils/assert';
8
+
9
+ type NumberUniformInfo = {
10
+ type: 'number'
11
+ value: number
12
+ min: number
13
+ max: number
14
+ }
15
+
16
+ type BooleanUniformInfo = {
17
+ type: 'boolean'
18
+ value: boolean
19
+ }
20
+
21
+ type ArrayUniformInfo = {
22
+ type: 'array'
23
+ value: Array<any>
24
+ }
25
+
26
+ type ObjectUniformInfo = {
27
+ type: 'object'
28
+ value: Object
29
+ }
30
+
31
+ type UniformInfo = NumberUniformInfo |
32
+ BooleanUniformInfo |
33
+ ArrayUniformInfo |
34
+ ObjectUniformInfo
35
+
36
+ // https://luma.gl/docs/developer-guide/shader-modules#getuniforms
37
+ type UniformsOptions = {
38
+ [uniformName: string]: UniformInfo
39
+ }
40
+
41
+ type Uniform = UniformInfo |
42
+ Buffer | (() => Buffer) | Framebuffer |
43
+ Texture |
44
+ Matrix4 | // TODO: which other math.gl classes?
45
+ number | [number, number] | [number, number, number] | [number, number, number, number]
46
+
47
+ type Uniforms = {
48
+ [uniformName: string]: Uniform
49
+ }
10
50
 
11
51
  const UNIFORM_SETTERS = {
12
52
  // WEBGL1
13
53
 
14
- /* eslint-disable max-len */
15
54
  [GL.FLOAT]: getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform),
16
55
  [GL.FLOAT_VEC2]: getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform),
17
56
  [GL.FLOAT_VEC3]: getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform),
@@ -126,7 +165,6 @@ const UNIFORM_SETTERS = {
126
165
  [GL.UNSIGNED_INT_SAMPLER_3D]: getSamplerSetter,
127
166
  [GL.UNSIGNED_INT_SAMPLER_CUBE]: getSamplerSetter,
128
167
  [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: getSamplerSetter
129
- /* eslint-enable max-len */
130
168
  };
131
169
 
132
170
  // Pre-allocated typed arrays for temporary conversion
@@ -136,52 +174,10 @@ const UINT_ARRAY = {};
136
174
 
137
175
  const array1 = [0];
138
176
 
139
- // Functions to ensure the type of uniform values
140
- // This is done because uniform*v functions
141
- // are extremely slow when consuming JS arrays directly.
142
- function toTypedArray(value, uniformLength, Type, cache) {
143
- // convert boolean uniforms to Number
144
- if (uniformLength === 1 && typeof value === 'boolean') {
145
- value = value ? 1 : 0;
146
- }
147
- if (Number.isFinite(value)) {
148
- array1[0] = value;
149
- value = array1;
150
- }
151
- const length = value.length;
152
- if (length % uniformLength) {
153
- log.warn(`Uniform size should be multiples of ${uniformLength}`, value)();
154
- }
155
-
156
- if (value instanceof Type) {
157
- return value;
158
- }
159
- let result = cache[length];
160
- if (!result) {
161
- result = new Type(length);
162
- cache[length] = result;
163
- }
164
- for (let i = 0; i < length; i++) {
165
- result[i] = value[i];
166
- }
167
- return result;
168
- }
169
-
170
- function toFloatArray(value, uniformLength) {
171
- return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);
172
- }
173
-
174
- function toIntArray(value, uniformLength) {
175
- return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);
176
- }
177
-
178
- function toUIntArray(value, uniformLength) {
179
- return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);
180
- } // Returns a Magic Uniform Setter
181
-
182
177
  // PUBLIC API
183
178
 
184
- /** @type {types['getUniformSetter']} */ export function getUniformSetter(gl, location, info) {
179
+ /** Returns a Magic Uniform Setter */
180
+ export function getUniformSetter(gl: WebGLRenderingContext, location: number, info: UniformInfo): any {
185
181
  const setter = UNIFORM_SETTERS[info.type];
186
182
  if (!setter) {
187
183
  throw new Error(`Unknown GLSL uniform type ${info.type}`);
@@ -192,8 +188,7 @@ function toUIntArray(value, uniformLength) {
192
188
  return setter().bind(null, gl, location);
193
189
  }
194
190
 
195
- /** @type {types['parseUniformName']} */
196
- export function parseUniformName(name) {
191
+ export function parseUniformName(name: string): {name: string; isArray: boolean, length: number} {
197
192
  // Shortcut to avoid redundant or bad matches
198
193
  if (name[name.length - 1] !== ']') {
199
194
  return {
@@ -212,15 +207,20 @@ export function parseUniformName(name) {
212
207
 
213
208
  return {
214
209
  name: matches[1],
215
- length: matches[2] || 1,
210
+ length: Number(matches[2]) || 1,
216
211
  isArray: Boolean(matches[2])
217
212
  };
218
- } // To facilitate early detection of e.g. undefined values in JavaScript
213
+ }
214
+
215
+ // To facilitate early detection of e.g. undefined values in JavaScript
219
216
 
220
217
  // Basic checks of uniform values (with or without knowledge of program)
221
218
 
222
- /** @type {types['checkUniformValues']} */
223
- export function checkUniformValues(uniforms, source, uniformMap) {
219
+ /**
220
+ * Basic checks of uniform values (with or without knowledge of program)
221
+ * To facilitate early detection of e.g. undefined values in JavaScript
222
+ */
223
+ export function checkUniformValues(uniforms: object, source?: string, uniformMap?: object): boolean {
224
224
  for (const uniformName in uniforms) {
225
225
  const value = uniforms[uniformName];
226
226
  const shouldCheck = !uniformMap || Boolean(uniformMap[uniformName]);
@@ -228,14 +228,35 @@ export function checkUniformValues(uniforms, source, uniformMap) {
228
228
  // Add space to source
229
229
  source = source ? `${source} ` : '';
230
230
  // Value could be unprintable so write the object on console
231
- console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line
232
- /* eslint-enable no-console */
231
+ console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line no-console
233
232
  throw new Error(`${source} Bad uniform ${uniformName}`);
234
233
  }
235
234
  }
236
235
  return true;
237
236
  }
238
237
 
238
+ /**
239
+ * Creates a copy of the uniform
240
+ */
241
+ export function copyUniform(uniforms: object, key: string, value: any): void {
242
+ if (Array.isArray(value) || ArrayBuffer.isView(value)) {
243
+ if (uniforms[key]) {
244
+ const dest = uniforms[key];
245
+ // @ts-expect-error
246
+ for (let i = 0, len = value.length; i < len; ++i) {
247
+ dest[i] = value[i];
248
+ }
249
+ } else {
250
+ // @ts-expect-error
251
+ uniforms[key] = value.slice();
252
+ }
253
+ } else {
254
+ uniforms[key] = value;
255
+ }
256
+ }
257
+
258
+ // HELPERS
259
+
239
260
  // TODO use type information during validation
240
261
  function checkUniformValue(value) {
241
262
  if (Array.isArray(value) || ArrayBuffer.isView(value)) {
@@ -257,25 +278,6 @@ function checkUniformValue(value) {
257
278
  return false;
258
279
  }
259
280
 
260
- /** @type {types['copyUniform']} */
261
- export function copyUniform(uniforms, key, value) {
262
- if (Array.isArray(value) || ArrayBuffer.isView(value)) {
263
- if (uniforms[key]) {
264
- const dest = uniforms[key];
265
- // @ts-ignore
266
- for (let i = 0, len = value.length; i < len; ++i) {
267
- dest[i] = value[i];
268
- }
269
- } else {
270
- // @ts-ignore
271
- uniforms[key] = value.slice();
272
- }
273
- } else {
274
- uniforms[key] = value;
275
- }
276
- }
277
-
278
- // HELPERS
279
281
 
280
282
  function checkUniformArray(value) {
281
283
  // Check that every element in array is a number, and at least 1 element
@@ -346,3 +348,47 @@ function setVectorUniform(gl, functionName, location, value) {
346
348
  function setMatrixUniform(gl, functionName, location, value) {
347
349
  gl[functionName](location, false, value);
348
350
  }
351
+
352
+ // Functions to ensure the type of uniform values
353
+ // This is done because uniform*v functions
354
+ // are extremely slow when consuming JS arrays directly.
355
+
356
+ function toTypedArray(value, uniformLength, Type, cache) {
357
+ // convert boolean uniforms to Number
358
+ if (uniformLength === 1 && typeof value === 'boolean') {
359
+ value = value ? 1 : 0;
360
+ }
361
+ if (Number.isFinite(value)) {
362
+ array1[0] = value;
363
+ value = array1;
364
+ }
365
+ const length = value.length;
366
+ if (length % uniformLength) {
367
+ log.warn(`Uniform size should be multiples of ${uniformLength}`, value)();
368
+ }
369
+
370
+ if (value instanceof Type) {
371
+ return value;
372
+ }
373
+ let result = cache[length];
374
+ if (!result) {
375
+ result = new Type(length);
376
+ cache[length] = result;
377
+ }
378
+ for (let i = 0; i < length; i++) {
379
+ result[i] = value[i];
380
+ }
381
+ return result;
382
+ }
383
+
384
+ function toFloatArray(value, uniformLength) {
385
+ return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);
386
+ }
387
+
388
+ function toIntArray(value, uniformLength) {
389
+ return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);
390
+ }
391
+
392
+ function toUIntArray(value, uniformLength) {
393
+ return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);
394
+ }
@@ -1,18 +1,30 @@
1
+ import {assert, getScratchArray, fillArray} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
- import Resource from './resource';
3
- import Buffer from './buffer';
4
- import {isWebGL2} from '@luma.gl/gltools';
5
- import {getScratchArray, fillArray} from '../utils/array-utils-flat';
6
- import {assert} from '../utils/assert';
7
- import {getBrowser} from 'probe.gl';
3
+ import {getBrowser} from '@probe.gl/env';
4
+ import WebGLDevice from '../device/webgl-device';
5
+ import {assertWebGL2Context, isWebGL2} from '../context/context/webgl-checks';
6
+ import Program from './program';
7
+ import WebGLResource, {ResourceProps} from './webgl-resource';
8
+ import Buffer from './webgl-buffer';
8
9
 
9
10
  const ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';
10
11
 
11
- export default class VertexArrayObject extends Resource {
12
- static isSupported(gl, options = {}) {
13
- // Attribute 0 can not be disable on most desktop OpenGL based browsers
14
- // and on iOS Safari browser.
15
- if (options.constantAttributeZero) {
12
+ /**
13
+ * VertexArrayObject properties
14
+ * @param constantAttributeZero Attribute 0 can not be disable on most desktop OpenGL based browsers
15
+ * and on iOS Safari browser.
16
+ */
17
+ export type VertexArrayObjectProps = ResourceProps & {
18
+ constantAttributeZero?: boolean;
19
+ program?: Program;
20
+ isDefaultArray?: boolean;
21
+ };
22
+
23
+ export default class VertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
24
+ private static MAX_ATTRIBUTES: number;
25
+
26
+ static isSupported(gl: WebGLRenderingContext | WebGL2RenderingContext, options?: VertexArrayObjectProps): boolean {
27
+ if (options?.constantAttributeZero) {
16
28
  return isWebGL2(gl) || getBrowser() === 'Chrome';
17
29
  }
18
30
 
@@ -20,65 +32,69 @@ export default class VertexArrayObject extends Resource {
20
32
  return true;
21
33
  }
22
34
 
23
- // Returns the global (null) vertex array object. Exists even when no extension available
24
- // TODO(Tarek): VAOs are now polyfilled. Deprecate this in 9.0
25
- static getDefaultArray(gl) {
26
- gl.luma = gl.luma || {};
27
- if (!gl.luma.defaultVertexArray) {
28
- gl.luma.defaultVertexArray = new VertexArrayObject(gl, {handle: null, isDefaultArray: true});
29
- }
30
- return gl.luma.defaultVertexArray;
35
+ /**
36
+ * Returns the global (null) vertex array object. Exists even when no extension available.
37
+ * @todo (Tarek): VAOs are now polyfilled. Deprecate this in 9.0
38
+ */
39
+ static getDefaultArray(gl: WebGLRenderingContext): VertexArrayObject {
40
+ const webglDevice = WebGLDevice.fromContext(gl);
41
+ webglDevice.defaultVertexArray = webglDevice.defaultVertexArray ||
42
+ new VertexArrayObject(gl, {handle: null, isDefaultArray: true});
43
+ return webglDevice.defaultVertexArray;
31
44
  }
32
45
 
33
- static getMaxAttributes(gl) {
46
+ /** Get maximum number of attributes in a vertex array */
47
+ static getMaxAttributes(gl: WebGLRenderingContext): number {
34
48
  // TODO - should be cached per context
35
- // @ts-ignore
36
49
  VertexArrayObject.MAX_ATTRIBUTES =
37
- // @ts-ignore
38
50
  VertexArrayObject.MAX_ATTRIBUTES || gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
39
- // @ts-ignore
40
51
  return VertexArrayObject.MAX_ATTRIBUTES;
41
52
  }
42
53
 
43
- // Note: Constants are stored globally on the WebGL context, not the VAO
44
- // So they need to be updated before every render
45
- // TODO - use known type (in configuration or passed in) to allow non-typed arrays?
46
- // TODO - remember/cache values to avoid setting them unnecessarily?
47
- static setConstant(gl, location, array) {
54
+ /**
55
+ * Set an attribute to a constant value
56
+ * @param gl
57
+ * @param location
58
+ * @param array
59
+ *
60
+ * @note Constants are stored globally on the WebGL context, not the VAO
61
+ * so they need to be updated before every render
62
+ * @todo - use known type (in configuration or passed in) to allow non-typed arrays?
63
+ * @todo - remember/cache values to avoid setting them unnecessarily?
64
+ */
65
+ static setConstant(gl: WebGLRenderingContext, location: any, array: any): void {
48
66
  switch (array.constructor) {
49
67
  case Float32Array:
50
68
  VertexArrayObject._setConstantFloatArray(gl, location, array);
51
69
  break;
52
70
  case Int32Array:
53
- VertexArrayObject._setConstantIntArray(gl, location, array);
71
+ VertexArrayObject._setConstantIntArray(assertWebGL2Context(gl), location, array);
54
72
  break;
55
73
  case Uint32Array:
56
- VertexArrayObject._setConstantUintArray(gl, location, array);
74
+ VertexArrayObject._setConstantUintArray(assertWebGL2Context(gl), location, array);
57
75
  break;
58
76
  default:
59
77
  assert(false);
60
78
  }
61
79
  }
62
80
 
81
+ private buffer: Buffer | null = null;
82
+ private bufferValue = null;
83
+ private isDefaultArray: boolean = false;
84
+
63
85
  // Create a VertexArray
64
- constructor(gl, opts = {}) {
86
+ constructor(gl: WebGLRenderingContext, opts?: VertexArrayObjectProps) {
65
87
  // Use program's id if program but no id is supplied
66
- const id = opts.id || (opts.program && opts.program.id);
67
- super(gl, Object.assign({}, opts, {id}));
88
+ super(WebGLDevice.attach(gl), {...opts, id: opts?.id || (opts?.program && opts?.program.id)}, {} as any);
68
89
 
69
90
  this.buffer = null;
70
91
  this.bufferValue = null;
71
- this.isDefaultArray = opts.isDefaultArray || false;
72
-
73
- /** @type {WebGL2RenderingContext} */
74
- this.gl2 = gl;
75
-
76
- this.initialize(opts);
92
+ this.isDefaultArray = opts?.isDefaultArray || false;
77
93
 
78
94
  Object.seal(this);
79
95
  }
80
96
 
81
- delete() {
97
+ delete(): this {
82
98
  super.delete();
83
99
  if (this.buffer) {
84
100
  this.buffer.delete();
@@ -86,19 +102,10 @@ export default class VertexArrayObject extends Resource {
86
102
  return this;
87
103
  }
88
104
 
89
- get MAX_ATTRIBUTES() {
105
+ get MAX_ATTRIBUTES(): number {
90
106
  return VertexArrayObject.getMaxAttributes(this.gl);
91
107
  }
92
108
 
93
- initialize(props = {}) {
94
- return this.setProps(props);
95
- }
96
-
97
- setProps(props) {
98
- // TODO: decide which props should be supported
99
- return this;
100
- }
101
-
102
109
  // Set (bind) an elements buffer, for indexed rendering.
103
110
  // Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported
104
111
  setElementBuffer(elementBuffer = null, opts = {}) {
@@ -112,8 +119,8 @@ export default class VertexArrayObject extends Resource {
112
119
  return this;
113
120
  }
114
121
 
115
- // Set a location in vertex attributes array to a bufferk, enables the location, sets divisor
116
- setBuffer(location, buffer, accessor) {
122
+ /** Set a location in vertex attributes array to a buffer, enables the location, sets divisor */
123
+ setBuffer(location, buffer, accessor): this {
117
124
  // Check target
118
125
  if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {
119
126
  return this.setElementBuffer(buffer, accessor);
@@ -145,11 +152,13 @@ export default class VertexArrayObject extends Resource {
145
152
  return this;
146
153
  }
147
154
 
148
- // Enabling an attribute location makes it reference the currently bound buffer
149
- // Disabling an attribute location makes it reference the global constant value
150
- // TODO - handle single values for size 1 attributes?
151
- // TODO - convert classic arrays based on known type?
152
- enable(location, enable = true) {
155
+ /**
156
+ * Enabling an attribute location makes it reference the currently bound buffer
157
+ * Disabling an attribute location makes it reference the global constant value
158
+ * TODO - handle single values for size 1 attributes?
159
+ * TODO - convert classic arrays based on known type?
160
+ */
161
+ enable(location, enable = true): this {
153
162
  // Attribute 0 cannot be disabled in most desktop OpenGL based browsers
154
163
  const disablingAttributeZero =
155
164
  !enable &&
@@ -158,21 +167,22 @@ export default class VertexArrayObject extends Resource {
158
167
 
159
168
  if (!disablingAttributeZero) {
160
169
  location = Number(location);
161
- this.bind(
162
- () =>
163
- enable
164
- ? this.gl.enableVertexAttribArray(location)
165
- : this.gl.disableVertexAttribArray(location)
170
+ this.bind(() =>
171
+ enable
172
+ ? this.gl.enableVertexAttribArray(location)
173
+ : this.gl.disableVertexAttribArray(location)
166
174
  );
167
175
  }
168
176
  return this;
169
177
  }
170
178
 
171
- // Provide a means to create a buffer that is equivalent to a constant.
172
- // NOTE: Desktop OpenGL cannot disable attribute 0.
173
- // https://stackoverflow.com/questions/20305231/webgl-warning-attribute-0-is-disabled-
174
- // this-has-significant-performance-penalt
175
- getConstantBuffer(elementCount, value) {
179
+ /**
180
+ * Provide a means to create a buffer that is equivalent to a constant.
181
+ * NOTE: Desktop OpenGL cannot disable attribute 0.
182
+ * https://stackoverflow.com/questions/20305231/webgl-warning-attribute-0-is-disabled-
183
+ * this-has-significant-performance-penalty
184
+ */
185
+ getConstantBuffer(elementCount: number, value): Buffer {
176
186
  // Create buffer only when needed, and reuse it (avoids inflating buffer creation statistics)
177
187
 
178
188
  const constantValue = this._normalizeConstantArrayValue(value);
@@ -200,6 +210,19 @@ export default class VertexArrayObject extends Resource {
200
210
  return this.buffer;
201
211
  }
202
212
 
213
+ // DEPRECATED
214
+
215
+ /** @deprecated this function has no effect */
216
+ initialize(props?: VertexArrayObjectProps): this {
217
+ return this.setProps(props);
218
+ }
219
+
220
+ /** @deprecated this function is not implemented */
221
+ setProps(props: VertexArrayObjectProps): this {
222
+ // TODO: decide which props should be supported
223
+ return this;
224
+ }
225
+
203
226
  // PRIVATE
204
227
 
205
228
  // TODO - convert Arrays based on known type? (read type from accessor, don't assume Float32Array)
@@ -211,7 +234,7 @@ export default class VertexArrayObject extends Resource {
211
234
  return arrayValue;
212
235
  }
213
236
 
214
- _compareConstantArrayValues(v1, v2) {
237
+ _compareConstantArrayValues(v1, v2): boolean {
215
238
  if (!v1 || !v2 || v1.length !== v2.length || v1.constructor !== v2.constructor) {
216
239
  return false;
217
240
  }
@@ -223,7 +246,7 @@ export default class VertexArrayObject extends Resource {
223
246
  return true;
224
247
  }
225
248
 
226
- static _setConstantFloatArray(gl, location, array) {
249
+ static _setConstantFloatArray(gl: WebGLRenderingContext, location, array): void {
227
250
  switch (array.length) {
228
251
  case 1:
229
252
  gl.vertexAttrib1fv(location, array);
@@ -242,68 +265,66 @@ export default class VertexArrayObject extends Resource {
242
265
  }
243
266
  }
244
267
 
245
- static _setConstantIntArray(gl, location, array) {
268
+ static _setConstantIntArray(gl: WebGL2RenderingContext, location, array) {
246
269
  assert(isWebGL2(gl));
247
- switch (array.length) {
248
- case 1:
249
- gl.vertexAttribI1iv(location, array);
250
- break;
251
- case 2:
252
- gl.vertexAttribI2iv(location, array);
253
- break;
254
- case 3:
255
- gl.vertexAttribI3iv(location, array);
256
- break;
257
- case 4:
258
- gl.vertexAttribI4iv(location, array);
259
- break;
260
- default:
261
- assert(false);
262
- }
270
+ gl.vertexAttribI4iv(location, array);
271
+ // switch (array.length) {
272
+ // case 1:
273
+ // gl.vertexAttribI1iv(location, array);
274
+ // break;
275
+ // case 2:
276
+ // gl.vertexAttribI2iv(location, array);
277
+ // break;
278
+ // case 3:
279
+ // gl.vertexAttribI3iv(location, array);
280
+ // break;
281
+ // case 4:
282
+ // break;
283
+ // default:
284
+ // assert(false);
285
+ // }
263
286
  }
264
287
 
265
- static _setConstantUintArray(gl, location, array) {
288
+ static _setConstantUintArray(gl: WebGL2RenderingContext, location, array) {
266
289
  assert(isWebGL2(gl));
267
- switch (array.length) {
268
- case 1:
269
- gl.vertexAttribI1uiv(location, array);
270
- break;
271
- case 2:
272
- gl.vertexAttribI2uiv(location, array);
273
- break;
274
- case 3:
275
- gl.vertexAttribI3uiv(location, array);
276
- break;
277
- case 4:
278
- gl.vertexAttribI4uiv(location, array);
279
- break;
280
- default:
281
- assert(false);
282
- }
290
+ gl.vertexAttribI4uiv(location, array);
291
+ // switch (array.length) {
292
+ // case 1:
293
+ // gl.vertexAttribI1uiv(location, array);
294
+ // break;
295
+ // case 2:
296
+ // gl.vertexAttribI2uiv(location, array);
297
+ // break;
298
+ // case 3:
299
+ // gl.vertexAttribI3uiv(location, array);
300
+ // break;
301
+ // case 4:
302
+ // gl.vertexAttribI4uiv(location, array);
303
+ // break;
304
+ // default:
305
+ // assert(false);
306
+ // }
283
307
  }
284
308
 
285
309
  // RESOURCE IMPLEMENTATION
286
310
 
287
311
  _createHandle() {
288
- /** @type {WebGL2RenderingContext} */
289
- // @ts-ignore
290
- const gl2 = this.gl;
291
- return gl2.createVertexArray();
312
+ return this.gl2.createVertexArray();
292
313
  }
293
314
 
294
- _deleteHandle(handle) {
295
- this.gl2.deleteVertexArray(handle);
296
- // @ts-ignore
315
+ _deleteHandle(): void {
316
+ this.gl2.deleteVertexArray(this.handle);
317
+ // @ts-expect-error
297
318
  return [this.elements];
298
319
  // return [this.elements, ...this.buffers];
299
320
  }
300
321
 
301
- _bindHandle(handle) {
322
+ _bindHandle(handle): void {
302
323
  this.gl2.bindVertexArray(handle);
303
324
  }
304
325
 
305
326
  // Generic getter for information about a vertex attribute at a given position
306
- _getParameter(pname, {location}) {
327
+ _getParameter(pname: number, {location}) {
307
328
  assert(Number.isFinite(location));
308
329
  return this.bind(() => {
309
330
  switch (pname) {