@luma.gl/webgl 8.5.10 → 8.6.0-alpha.4

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 (804) hide show
  1. package/LICENSE +8 -1
  2. package/dist/_deprecated/context-api.d.ts +85 -0
  3. package/dist/_deprecated/context-api.d.ts.map +1 -0
  4. package/dist/_deprecated/context-api.js +70 -0
  5. package/dist/_deprecated/context-api.js.map +1 -0
  6. package/dist/_deprecated/features.d.ts +27 -0
  7. package/dist/_deprecated/features.d.ts.map +1 -0
  8. package/{src/features/webgl-features-table.js → dist/_deprecated/features.js} +66 -59
  9. package/dist/_deprecated/features.js.map +1 -0
  10. package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
  11. package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/set-device-parameters.js +124 -0
  13. package/dist/adapter/converters/set-device-parameters.js.map +1 -0
  14. package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
  15. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
  17. package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
  18. package/dist/adapter/device-helpers/device-features.d.ts +12 -0
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
  20. package/dist/adapter/device-helpers/device-features.js +123 -0
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/device-limits.js +90 -0
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
  28. package/dist/adapter/device-helpers/get-device-info.js +44 -0
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  30. package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
  31. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
  32. package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  33. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  34. package/dist/adapter/webgl-device.d.ts +111 -0
  35. package/dist/adapter/webgl-device.d.ts.map +1 -0
  36. package/dist/adapter/webgl-device.js +208 -0
  37. package/dist/adapter/webgl-device.js.map +1 -0
  38. package/dist/adapter/webgl-shader.d.ts +18 -0
  39. package/dist/adapter/webgl-shader.d.ts.map +1 -0
  40. package/dist/adapter/webgl-shader.js +82 -0
  41. package/dist/adapter/webgl-shader.js.map +1 -0
  42. package/dist/bundle.d.ts +2 -0
  43. package/dist/bundle.d.ts.map +1 -0
  44. package/dist/bundle.js +5 -0
  45. package/dist/bundle.js.map +1 -0
  46. package/dist/classes/accessor.d.ts +28 -0
  47. package/dist/classes/accessor.d.ts.map +1 -0
  48. package/dist/classes/accessor.js +112 -0
  49. package/dist/classes/accessor.js.map +1 -0
  50. package/dist/classes/accessor.ts.disabled +159 -0
  51. package/dist/classes/clear.d.ts +17 -0
  52. package/dist/classes/clear.d.ts.map +1 -0
  53. package/{src → dist}/classes/clear.js +29 -23
  54. package/dist/classes/clear.js.map +1 -0
  55. package/dist/classes/copy-and-blit.d.ts +86 -0
  56. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  57. package/dist/classes/copy-and-blit.js +338 -0
  58. package/dist/classes/copy-and-blit.js.map +1 -0
  59. package/dist/classes/framebuffer.d.ts +139 -0
  60. package/dist/classes/framebuffer.d.ts.map +1 -0
  61. package/dist/classes/framebuffer.js +656 -0
  62. package/dist/classes/framebuffer.js.map +1 -0
  63. package/dist/classes/program-configuration.d.ts +24 -0
  64. package/dist/classes/program-configuration.d.ts.map +1 -0
  65. package/dist/classes/program-configuration.js +73 -0
  66. package/dist/classes/program-configuration.js.map +1 -0
  67. package/dist/classes/program.d.ts +66 -0
  68. package/dist/classes/program.d.ts.map +1 -0
  69. package/dist/classes/program.js +379 -0
  70. package/dist/classes/program.js.map +1 -0
  71. package/dist/classes/query.d.ts +27 -0
  72. package/dist/classes/query.d.ts.map +1 -0
  73. package/dist/classes/query.js +145 -0
  74. package/dist/classes/query.js.map +1 -0
  75. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  76. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  77. package/dist/classes/renderbuffer-formats.js +185 -0
  78. package/dist/classes/renderbuffer-formats.js.map +1 -0
  79. package/dist/classes/renderbuffer.d.ts +60 -0
  80. package/dist/classes/renderbuffer.d.ts.map +1 -0
  81. package/dist/classes/renderbuffer.js +128 -0
  82. package/dist/classes/renderbuffer.js.map +1 -0
  83. package/dist/classes/shader.d.ts +42 -0
  84. package/dist/classes/shader.d.ts.map +1 -0
  85. package/dist/classes/shader.js +118 -0
  86. package/dist/classes/shader.js.map +1 -0
  87. package/dist/classes/texture-2d.d.ts +9 -0
  88. package/dist/classes/texture-2d.d.ts.map +1 -0
  89. package/dist/classes/texture-2d.js +36 -0
  90. package/dist/classes/texture-2d.js.map +1 -0
  91. package/dist/classes/texture-3d.d.ts +29 -0
  92. package/dist/classes/texture-3d.d.ts.map +1 -0
  93. package/dist/classes/texture-3d.js +76 -0
  94. package/dist/classes/texture-3d.js.map +1 -0
  95. package/dist/classes/texture-cube.d.ts +28 -0
  96. package/dist/classes/texture-cube.d.ts.map +1 -0
  97. package/dist/classes/texture-cube.js +130 -0
  98. package/dist/classes/texture-cube.js.map +1 -0
  99. package/dist/classes/texture-formats.d.ts +37 -0
  100. package/dist/classes/texture-formats.d.ts.map +1 -0
  101. package/dist/classes/texture-formats.js +98 -0
  102. package/dist/classes/texture-formats.js.map +1 -0
  103. package/dist/classes/texture.d.ts +123 -0
  104. package/dist/classes/texture.d.ts.map +1 -0
  105. package/dist/classes/texture.js +786 -0
  106. package/dist/classes/texture.js.map +1 -0
  107. package/dist/classes/transform-feedback.d.ts +33 -0
  108. package/dist/classes/transform-feedback.d.ts.map +1 -0
  109. package/dist/classes/transform-feedback.js +198 -0
  110. package/dist/classes/transform-feedback.js.map +1 -0
  111. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  112. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  113. package/dist/classes/uniform-buffer-layout.js +104 -0
  114. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  115. package/dist/classes/uniforms.d.ts +37 -0
  116. package/dist/classes/uniforms.d.ts.map +1 -0
  117. package/dist/classes/uniforms.js +250 -0
  118. package/dist/classes/uniforms.js.map +1 -0
  119. package/dist/classes/vertex-array-object.d.ts +76 -0
  120. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  121. package/dist/classes/vertex-array-object.js +261 -0
  122. package/dist/classes/vertex-array-object.js.map +1 -0
  123. package/dist/classes/vertex-array.d.ts +75 -0
  124. package/dist/classes/vertex-array.d.ts.map +1 -0
  125. package/dist/classes/vertex-array.js +408 -0
  126. package/dist/classes/vertex-array.js.map +1 -0
  127. package/dist/classes/webgl-buffer.d.ts +100 -0
  128. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  129. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
  130. package/dist/classes/webgl-buffer.js.map +1 -0
  131. package/dist/classes/webgl-resource.d.ts +56 -0
  132. package/dist/classes/webgl-resource.d.ts.map +1 -0
  133. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
  134. package/dist/classes/webgl-resource.js.map +1 -0
  135. package/dist/context/context/context-state.d.ts +18 -0
  136. package/dist/context/context/context-state.d.ts.map +1 -0
  137. package/dist/context/context/context-state.js +26 -0
  138. package/dist/context/context/context-state.js.map +1 -0
  139. package/dist/context/context/create-context.d.ts +40 -0
  140. package/dist/context/context/create-context.d.ts.map +1 -0
  141. package/dist/context/context/create-context.js +37 -0
  142. package/dist/context/context/create-context.js.map +1 -0
  143. package/dist/context/context/device-pixels.d.ts +25 -0
  144. package/dist/context/context/device-pixels.d.ts.map +1 -0
  145. package/dist/context/context/device-pixels.js +98 -0
  146. package/dist/context/context/device-pixels.js.map +1 -0
  147. package/dist/context/context/get-canvas.d.ts +13 -0
  148. package/dist/context/context/get-canvas.d.ts.map +1 -0
  149. package/dist/context/context/get-canvas.js +31 -0
  150. package/dist/context/context/get-canvas.js.map +1 -0
  151. package/dist/context/context/resize-context.d.ts +20 -0
  152. package/dist/context/context/resize-context.d.ts.map +1 -0
  153. package/dist/context/context/resize-context.js +15 -0
  154. package/dist/context/context/resize-context.js.map +1 -0
  155. package/dist/context/context/webgl-checks.d.ts +13 -0
  156. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  157. package/dist/context/context/webgl-checks.js +34 -0
  158. package/dist/context/context/webgl-checks.js.map +1 -0
  159. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  160. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  161. package/dist/context/parameters/unified-parameter-api.js +65 -0
  162. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  163. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  164. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  165. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  166. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  167. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  168. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  169. package/dist/context/parameters/webgl-parameters.js +2 -0
  170. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  171. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  172. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  174. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  175. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  176. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  177. package/dist/context/polyfill/polyfill-context.js +91 -0
  178. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  179. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  180. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  181. package/dist/context/polyfill/polyfill-table.js +160 -0
  182. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  183. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  187. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  188. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  189. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  190. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  191. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  192. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  193. package/dist/context/state-tracker/track-context-state.js +169 -0
  194. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  195. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  196. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  197. package/dist/context/state-tracker/with-parameters.js +36 -0
  198. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  199. package/dist/debug/debug-program-configuration.d.ts +2 -0
  200. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  201. package/dist/debug/debug-program-configuration.js +40 -0
  202. package/dist/debug/debug-program-configuration.js.map +1 -0
  203. package/dist/debug/debug-uniforms.d.ts +12 -0
  204. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  205. package/dist/debug/debug-uniforms.js +108 -0
  206. package/dist/debug/debug-uniforms.js.map +1 -0
  207. package/dist/debug/debug-vertex-array.d.ts +5 -0
  208. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  209. package/dist/debug/debug-vertex-array.js +118 -0
  210. package/dist/debug/debug-vertex-array.js.map +1 -0
  211. package/dist/es5/_deprecated/context-api.js +110 -0
  212. package/dist/es5/_deprecated/context-api.js.map +1 -0
  213. package/dist/es5/_deprecated/features.js +118 -0
  214. package/dist/es5/_deprecated/features.js.map +1 -0
  215. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  216. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  217. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  218. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  219. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  220. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  221. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  222. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  223. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  224. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  225. package/dist/es5/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  226. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  227. package/dist/es5/adapter/webgl-device.js +279 -0
  228. package/dist/es5/adapter/webgl-device.js.map +1 -0
  229. package/dist/es5/adapter/webgl-shader.js +155 -0
  230. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  231. package/dist/es5/bundle.js +2 -4
  232. package/dist/es5/bundle.js.map +1 -1
  233. package/dist/es5/classes/accessor.js +36 -38
  234. package/dist/es5/classes/accessor.js.map +1 -1
  235. package/dist/es5/classes/accessor.ts.disabled +159 -0
  236. package/dist/es5/classes/clear.js +17 -11
  237. package/dist/es5/classes/clear.js.map +1 -1
  238. package/dist/es5/classes/copy-and-blit.js +121 -117
  239. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  240. package/dist/es5/classes/framebuffer.js +435 -423
  241. package/dist/es5/classes/framebuffer.js.map +1 -1
  242. package/dist/es5/classes/program-configuration.js +44 -108
  243. package/dist/es5/classes/program-configuration.js.map +1 -1
  244. package/dist/es5/classes/program.js +108 -85
  245. package/dist/es5/classes/program.js.map +1 -1
  246. package/dist/es5/classes/query.js +58 -59
  247. package/dist/es5/classes/query.js.map +1 -1
  248. package/dist/es5/classes/renderbuffer-formats.js +79 -52
  249. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  250. package/dist/es5/classes/renderbuffer.js +129 -100
  251. package/dist/es5/classes/renderbuffer.js.map +1 -1
  252. package/dist/es5/classes/shader.js +70 -96
  253. package/dist/es5/classes/shader.js.map +1 -1
  254. package/dist/es5/classes/texture-2d.js +25 -21
  255. package/dist/es5/classes/texture-2d.js.map +1 -1
  256. package/dist/es5/classes/texture-3d.js +49 -29
  257. package/dist/es5/classes/texture-3d.js.map +1 -1
  258. package/dist/es5/classes/texture-cube.js +45 -36
  259. package/dist/es5/classes/texture-cube.js.map +1 -1
  260. package/dist/es5/classes/texture-formats.js +35 -33
  261. package/dist/es5/classes/texture-formats.js.map +1 -1
  262. package/dist/es5/classes/texture.js +213 -101
  263. package/dist/es5/classes/texture.js.map +1 -1
  264. package/dist/es5/classes/transform-feedback.js +37 -34
  265. package/dist/es5/classes/transform-feedback.js.map +1 -1
  266. package/dist/es5/classes/uniform-buffer-layout.js +4 -4
  267. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  268. package/dist/es5/classes/uniforms.js +73 -73
  269. package/dist/es5/classes/uniforms.js.map +1 -1
  270. package/dist/es5/classes/vertex-array-object.js +106 -149
  271. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  272. package/dist/es5/classes/vertex-array.js +52 -43
  273. package/dist/es5/classes/vertex-array.js.map +1 -1
  274. package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
  275. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  276. package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
  277. package/dist/es5/classes/webgl-resource.js.map +1 -0
  278. package/dist/es5/context/context/context-state.js +31 -0
  279. package/dist/es5/context/context/context-state.js.map +1 -0
  280. package/dist/es5/context/context/create-context.js +57 -0
  281. package/dist/es5/context/context/create-context.js.map +1 -0
  282. package/dist/es5/context/context/device-pixels.js +115 -0
  283. package/dist/es5/context/context/device-pixels.js.map +1 -0
  284. package/dist/es5/context/context/get-canvas.js +40 -0
  285. package/dist/es5/context/context/get-canvas.js.map +1 -0
  286. package/dist/es5/context/context/resize-context.js +23 -0
  287. package/dist/es5/context/context/resize-context.js.map +1 -0
  288. package/dist/es5/context/context/webgl-checks.js +54 -0
  289. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  290. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  291. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  292. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  293. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  294. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  295. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  296. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  297. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  298. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  299. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  300. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  301. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  302. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  303. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  304. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  305. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  306. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  307. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  308. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  309. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  310. package/dist/es5/debug/debug-program-configuration.js +1 -1
  311. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  312. package/dist/es5/debug/debug-uniforms.js +18 -20
  313. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  314. package/dist/es5/debug/debug-vertex-array.js +16 -16
  315. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  316. package/dist/es5/helpers/get-program-bindings.js +274 -0
  317. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  318. package/dist/es5/helpers/program-bindings.js +2 -0
  319. package/dist/es5/helpers/program-bindings.js.map +1 -0
  320. package/dist/es5/index.js +229 -99
  321. package/dist/es5/index.js.map +1 -1
  322. package/dist/es5/init.js +21 -41
  323. package/dist/es5/init.js.map +1 -1
  324. package/dist/es5/types/accessor.d.ts +29 -0
  325. package/dist/es5/types.js +2 -0
  326. package/dist/es5/types.js.map +1 -0
  327. package/dist/es5/webgl-utils/attribute-utils.js +4 -4
  328. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  329. package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
  330. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  331. package/dist/es5/webgl-utils/format-utils.js +21 -17
  332. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  333. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  334. package/dist/es5/webgl-utils/index.js +74 -0
  335. package/dist/es5/webgl-utils/index.js.map +1 -0
  336. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
  337. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  338. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  339. package/dist/es5/webgl-utils/texture-utils.js +6 -4
  340. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  341. package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
  342. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  343. package/dist/esm/_deprecated/context-api.js +70 -0
  344. package/dist/esm/_deprecated/context-api.js.map +1 -0
  345. package/dist/esm/{features/webgl-features-table.js → _deprecated/features.js} +66 -26
  346. package/dist/esm/_deprecated/features.js.map +1 -0
  347. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  348. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  349. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  350. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  351. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  352. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  353. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  354. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  355. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  356. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  357. package/dist/esm/adapter/device-helpers/is-old-ie.js +8 -0
  358. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  359. package/dist/esm/adapter/webgl-device.js +208 -0
  360. package/dist/esm/adapter/webgl-device.js.map +1 -0
  361. package/dist/esm/adapter/webgl-shader.js +82 -0
  362. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  363. package/dist/esm/bundle.js +2 -4
  364. package/dist/esm/bundle.js.map +1 -1
  365. package/dist/esm/classes/accessor.js +6 -6
  366. package/dist/esm/classes/accessor.js.map +1 -1
  367. package/dist/esm/classes/accessor.ts.disabled +159 -0
  368. package/dist/esm/classes/clear.js +19 -14
  369. package/dist/esm/classes/clear.js.map +1 -1
  370. package/dist/esm/classes/copy-and-blit.js +67 -64
  371. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  372. package/dist/esm/classes/framebuffer.js +341 -313
  373. package/dist/esm/classes/framebuffer.js.map +1 -1
  374. package/dist/esm/classes/program-configuration.js +25 -104
  375. package/dist/esm/classes/program-configuration.js.map +1 -1
  376. package/dist/esm/classes/program.js +98 -62
  377. package/dist/esm/classes/program.js.map +1 -1
  378. package/dist/esm/classes/query.js +20 -16
  379. package/dist/esm/classes/query.js.map +1 -1
  380. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  381. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  382. package/dist/esm/classes/renderbuffer.js +86 -73
  383. package/dist/esm/classes/renderbuffer.js.map +1 -1
  384. package/dist/esm/classes/shader.js +47 -67
  385. package/dist/esm/classes/shader.js.map +1 -1
  386. package/dist/esm/classes/texture-2d.js +13 -9
  387. package/dist/esm/classes/texture-2d.js.map +1 -1
  388. package/dist/esm/classes/texture-3d.js +28 -16
  389. package/dist/esm/classes/texture-3d.js.map +1 -1
  390. package/dist/esm/classes/texture-cube.js +45 -31
  391. package/dist/esm/classes/texture-cube.js.map +1 -1
  392. package/dist/esm/classes/texture-formats.js +52 -51
  393. package/dist/esm/classes/texture-formats.js.map +1 -1
  394. package/dist/esm/classes/texture.js +174 -58
  395. package/dist/esm/classes/texture.js.map +1 -1
  396. package/dist/esm/classes/transform-feedback.js +26 -14
  397. package/dist/esm/classes/transform-feedback.js.map +1 -1
  398. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  399. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  400. package/dist/esm/classes/uniforms.js +111 -113
  401. package/dist/esm/classes/uniforms.js.map +1 -1
  402. package/dist/esm/classes/vertex-array-object.js +52 -89
  403. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  404. package/dist/esm/classes/vertex-array.js +52 -31
  405. package/dist/esm/classes/vertex-array.js.map +1 -1
  406. package/dist/esm/classes/webgl-buffer.js +382 -0
  407. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  408. package/dist/esm/classes/webgl-resource.js +212 -0
  409. package/dist/esm/classes/webgl-resource.js.map +1 -0
  410. package/dist/esm/context/context/context-state.js +26 -0
  411. package/dist/esm/context/context/context-state.js.map +1 -0
  412. package/dist/esm/context/context/create-context.js +37 -0
  413. package/dist/esm/context/context/create-context.js.map +1 -0
  414. package/dist/esm/context/context/device-pixels.js +98 -0
  415. package/dist/esm/context/context/device-pixels.js.map +1 -0
  416. package/dist/esm/context/context/get-canvas.js +31 -0
  417. package/dist/esm/context/context/get-canvas.js.map +1 -0
  418. package/dist/esm/context/context/resize-context.js +15 -0
  419. package/dist/esm/context/context/resize-context.js.map +1 -0
  420. package/dist/esm/context/context/webgl-checks.js +34 -0
  421. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  422. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  423. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  424. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  425. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  426. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  427. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  428. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  429. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  430. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  431. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  432. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  433. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  434. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  435. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  436. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  437. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  438. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  439. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  440. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  441. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  442. package/dist/esm/debug/debug-program-configuration.js +4 -4
  443. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  444. package/dist/esm/debug/debug-uniforms.js +9 -9
  445. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  446. package/dist/esm/debug/debug-vertex-array.js +18 -16
  447. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  448. package/dist/esm/helpers/get-program-bindings.js +228 -0
  449. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  450. package/dist/esm/helpers/program-bindings.js +2 -0
  451. package/dist/esm/helpers/program-bindings.js.map +1 -0
  452. package/dist/esm/index.js +19 -15
  453. package/dist/esm/index.js.map +1 -1
  454. package/dist/esm/init.js +12 -28
  455. package/dist/esm/init.js.map +1 -1
  456. package/dist/esm/types/accessor.d.ts +29 -0
  457. package/dist/esm/types.js +2 -0
  458. package/dist/esm/types.js.map +1 -0
  459. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  460. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  461. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  462. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  463. package/dist/esm/webgl-utils/format-utils.js +16 -15
  464. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  465. package/dist/esm/webgl-utils/get-error.js +1 -1
  466. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  467. package/dist/esm/webgl-utils/index.js +5 -0
  468. package/dist/esm/webgl-utils/index.js.map +1 -0
  469. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  470. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  471. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  472. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  473. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  474. package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
  475. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  476. package/dist/helpers/get-program-bindings.d.ts +8 -0
  477. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  478. package/dist/helpers/get-program-bindings.js +228 -0
  479. package/dist/helpers/get-program-bindings.js.map +1 -0
  480. package/dist/helpers/program-bindings.d.ts +41 -0
  481. package/dist/helpers/program-bindings.d.ts.map +1 -0
  482. package/dist/helpers/program-bindings.js +2 -0
  483. package/dist/helpers/program-bindings.js.map +1 -0
  484. package/dist/index.d.ts +54 -0
  485. package/dist/index.d.ts.map +1 -0
  486. package/dist/index.js +39 -0
  487. package/dist/index.js.map +1 -0
  488. package/dist/init.d.ts +5 -0
  489. package/dist/init.d.ts.map +1 -0
  490. package/dist/init.js +33 -0
  491. package/dist/init.js.map +1 -0
  492. package/dist/types/accessor.d.ts +29 -0
  493. package/dist/types.d.ts +9 -0
  494. package/dist/types.d.ts.map +1 -0
  495. package/dist/types.js +2 -0
  496. package/dist/types.js.map +1 -0
  497. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  498. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  499. package/dist/webgl-utils/attribute-utils.js +182 -0
  500. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  501. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  502. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  503. package/dist/webgl-utils/constants-to-keys.js +41 -0
  504. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  505. package/dist/webgl-utils/format-utils.d.ts +3 -0
  506. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  507. package/dist/webgl-utils/format-utils.js +45 -0
  508. package/dist/webgl-utils/format-utils.js.map +1 -0
  509. package/dist/webgl-utils/get-error.d.ts +3 -0
  510. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  511. package/dist/webgl-utils/get-error.js +41 -0
  512. package/dist/webgl-utils/get-error.js.map +1 -0
  513. package/dist/webgl-utils/index.d.ts +5 -0
  514. package/dist/webgl-utils/index.d.ts.map +1 -0
  515. package/dist/webgl-utils/index.js +5 -0
  516. package/dist/webgl-utils/index.js.map +1 -0
  517. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  518. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  519. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  520. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  521. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  522. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  523. package/dist/webgl-utils/request-animation-frame.js +7 -0
  524. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  525. package/dist/webgl-utils/texture-utils.d.ts +15 -0
  526. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  527. package/dist/webgl-utils/texture-utils.js +48 -0
  528. package/dist/webgl-utils/texture-utils.js.map +1 -0
  529. package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
  530. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  531. package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
  532. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  533. package/package.json +9 -9
  534. package/src/.DS_Store +0 -0
  535. package/src/_deprecated/context-api.ts +140 -0
  536. package/src/_deprecated/features.ts +159 -0
  537. package/src/adapter/converters/set-device-parameters.ts +182 -0
  538. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  539. package/src/adapter/device-helpers/device-features.ts +227 -0
  540. package/src/adapter/device-helpers/device-limits.ts +150 -0
  541. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  542. package/src/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.ts} +3 -3
  543. package/src/adapter/webgl-device.ts +406 -0
  544. package/src/adapter/webgl-shader.ts +84 -0
  545. package/src/bundle.ts +4 -0
  546. package/src/classes/accessor.js +2 -3
  547. package/src/classes/accessor.ts.disabled +159 -0
  548. package/src/classes/clear.ts +108 -0
  549. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
  550. package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
  551. package/src/classes/program-configuration.ts +77 -0
  552. package/src/classes/{program.js → program.ts} +111 -77
  553. package/src/classes/{query.js → query.ts} +31 -25
  554. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  555. package/src/classes/renderbuffer.ts +154 -0
  556. package/src/classes/shader.ts +129 -0
  557. package/src/classes/texture-2d.ts +35 -0
  558. package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
  559. package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
  560. package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
  561. package/src/classes/{texture.js → texture.ts} +223 -57
  562. package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
  563. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  564. package/src/classes/{uniforms.js → uniforms.ts} +123 -77
  565. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +136 -114
  566. package/src/classes/{vertex-array.js → vertex-array.ts} +84 -59
  567. package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
  568. package/src/classes/{resource.js → webgl-resource.ts} +55 -46
  569. package/src/context/context/context-state.ts +39 -0
  570. package/src/context/context/create-context.ts +83 -0
  571. package/src/context/context/device-pixels.ts +147 -0
  572. package/src/context/context/get-canvas.ts +37 -0
  573. package/src/context/context/resize-context.ts +37 -0
  574. package/src/context/context/webgl-checks.ts +49 -0
  575. package/src/context/parameters/unified-parameter-api.ts +128 -0
  576. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  577. package/src/context/parameters/webgl-parameters.ts +197 -0
  578. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  579. package/src/context/polyfill/polyfill-context.ts +98 -0
  580. package/src/context/polyfill/polyfill-table.ts +162 -0
  581. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  582. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  583. package/src/context/state-tracker/track-context-state.ts +250 -0
  584. package/src/context/state-tracker/with-parameters.ts +50 -0
  585. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  586. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  587. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
  588. package/src/helpers/get-program-bindings.ts +244 -0
  589. package/src/helpers/program-bindings.ts +46 -0
  590. package/src/index.ts +144 -0
  591. package/src/{init.js → init.ts} +11 -25
  592. package/src/types/accessor.d.ts +29 -0
  593. package/src/{types.d.ts → types.ts} +1 -1
  594. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  595. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  596. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  597. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  598. package/src/webgl-utils/index.ts +12 -0
  599. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  600. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  601. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
  602. package/src/webgl-utils/typed-array-utils.ts +137 -0
  603. package/dist/dist.js +0 -13555
  604. package/dist/dist.min.js +0 -1
  605. package/dist/es5/classes/buffer.d.ts +0 -84
  606. package/dist/es5/classes/buffer.js.map +0 -1
  607. package/dist/es5/classes/clear.d.ts +0 -11
  608. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  609. package/dist/es5/classes/framebuffer.d.ts +0 -96
  610. package/dist/es5/classes/program-configuration.d.ts +0 -15
  611. package/dist/es5/classes/program.d.ts +0 -44
  612. package/dist/es5/classes/query.d.ts +0 -21
  613. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  614. package/dist/es5/classes/resource.d.ts +0 -47
  615. package/dist/es5/classes/resource.js.map +0 -1
  616. package/dist/es5/classes/shader.d.ts +0 -29
  617. package/dist/es5/classes/texture-2d.d.ts +0 -11
  618. package/dist/es5/classes/texture-3d.d.ts +0 -29
  619. package/dist/es5/classes/texture-cube.d.ts +0 -23
  620. package/dist/es5/classes/texture.d.ts +0 -80
  621. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  622. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  623. package/dist/es5/classes/uniforms.d.ts +0 -63
  624. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  625. package/dist/es5/classes/vertex-array.d.ts +0 -37
  626. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  627. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  628. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  629. package/dist/es5/features/check-glsl-extension.js +0 -41
  630. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  631. package/dist/es5/features/check-old-ie.js.map +0 -1
  632. package/dist/es5/features/features.js +0 -99
  633. package/dist/es5/features/features.js.map +0 -1
  634. package/dist/es5/features/index.js +0 -64
  635. package/dist/es5/features/index.js.map +0 -1
  636. package/dist/es5/features/limits.js +0 -64
  637. package/dist/es5/features/limits.js.map +0 -1
  638. package/dist/es5/features/webgl-features-table.js +0 -64
  639. package/dist/es5/features/webgl-features-table.js.map +0 -1
  640. package/dist/es5/features/webgl-limits-table.js +0 -132
  641. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  642. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  643. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  644. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  645. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  646. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  647. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  648. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  649. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  650. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  651. package/dist/es5/glsl-utils/index.js +0 -48
  652. package/dist/es5/glsl-utils/index.js.map +0 -1
  653. package/dist/es5/index.d.ts +0 -71
  654. package/dist/es5/init.d.ts +0 -12
  655. package/dist/es5/types.d.ts +0 -8
  656. package/dist/es5/utils/array-utils-flat.js +0 -51
  657. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  658. package/dist/es5/utils/assert.d.ts +0 -1
  659. package/dist/es5/utils/assert.js +0 -13
  660. package/dist/es5/utils/assert.js.map +0 -1
  661. package/dist/es5/utils/check-props.js +0 -51
  662. package/dist/es5/utils/check-props.js.map +0 -1
  663. package/dist/es5/utils/format-value.js +0 -57
  664. package/dist/es5/utils/format-value.js.map +0 -1
  665. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  666. package/dist/es5/utils/is-old-ie.js +0 -14
  667. package/dist/es5/utils/is-old-ie.js.map +0 -1
  668. package/dist/es5/utils/load-file.js +0 -50
  669. package/dist/es5/utils/load-file.js.map +0 -1
  670. package/dist/es5/utils/stub-methods.js +0 -25
  671. package/dist/es5/utils/stub-methods.js.map +0 -1
  672. package/dist/es5/utils/utils.d.ts +0 -13
  673. package/dist/es5/utils/utils.js +0 -36
  674. package/dist/es5/utils/utils.js.map +0 -1
  675. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  676. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  677. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  678. package/dist/esm/classes/buffer.d.ts +0 -84
  679. package/dist/esm/classes/buffer.js.map +0 -1
  680. package/dist/esm/classes/clear.d.ts +0 -11
  681. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  682. package/dist/esm/classes/framebuffer.d.ts +0 -96
  683. package/dist/esm/classes/program-configuration.d.ts +0 -15
  684. package/dist/esm/classes/program.d.ts +0 -44
  685. package/dist/esm/classes/query.d.ts +0 -21
  686. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  687. package/dist/esm/classes/resource.d.ts +0 -47
  688. package/dist/esm/classes/resource.js.map +0 -1
  689. package/dist/esm/classes/shader.d.ts +0 -29
  690. package/dist/esm/classes/texture-2d.d.ts +0 -11
  691. package/dist/esm/classes/texture-3d.d.ts +0 -29
  692. package/dist/esm/classes/texture-cube.d.ts +0 -23
  693. package/dist/esm/classes/texture.d.ts +0 -80
  694. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  695. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  696. package/dist/esm/classes/uniforms.d.ts +0 -63
  697. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  698. package/dist/esm/classes/vertex-array.d.ts +0 -37
  699. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  700. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  701. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  702. package/dist/esm/features/check-glsl-extension.js +0 -27
  703. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  704. package/dist/esm/features/check-old-ie.js.map +0 -1
  705. package/dist/esm/features/features.js +0 -66
  706. package/dist/esm/features/features.js.map +0 -1
  707. package/dist/esm/features/index.js +0 -5
  708. package/dist/esm/features/index.js.map +0 -1
  709. package/dist/esm/features/limits.js +0 -52
  710. package/dist/esm/features/limits.js.map +0 -1
  711. package/dist/esm/features/webgl-features-table.js.map +0 -1
  712. package/dist/esm/features/webgl-limits-table.js +0 -160
  713. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  714. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  715. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  716. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  717. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  718. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  719. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  720. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  721. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  722. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  723. package/dist/esm/glsl-utils/index.js +0 -5
  724. package/dist/esm/glsl-utils/index.js.map +0 -1
  725. package/dist/esm/index.d.ts +0 -71
  726. package/dist/esm/init.d.ts +0 -12
  727. package/dist/esm/types.d.ts +0 -8
  728. package/dist/esm/utils/array-utils-flat.js +0 -39
  729. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  730. package/dist/esm/utils/assert.d.ts +0 -1
  731. package/dist/esm/utils/assert.js +0 -6
  732. package/dist/esm/utils/assert.js.map +0 -1
  733. package/dist/esm/utils/check-props.js +0 -38
  734. package/dist/esm/utils/check-props.js.map +0 -1
  735. package/dist/esm/utils/format-value.js +0 -50
  736. package/dist/esm/utils/format-value.js.map +0 -1
  737. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  738. package/dist/esm/utils/is-old-ie.js +0 -5
  739. package/dist/esm/utils/is-old-ie.js.map +0 -1
  740. package/dist/esm/utils/load-file.js +0 -30
  741. package/dist/esm/utils/load-file.js.map +0 -1
  742. package/dist/esm/utils/stub-methods.js +0 -17
  743. package/dist/esm/utils/stub-methods.js.map +0 -1
  744. package/dist/esm/utils/utils.d.ts +0 -13
  745. package/dist/esm/utils/utils.js +0 -22
  746. package/dist/esm/utils/utils.js.map +0 -1
  747. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  748. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  749. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  750. package/src/bundle.js +0 -8
  751. package/src/classes/buffer.d.ts +0 -84
  752. package/src/classes/clear.d.ts +0 -11
  753. package/src/classes/copy-and-blit.d.ts +0 -101
  754. package/src/classes/framebuffer.d.ts +0 -96
  755. package/src/classes/program-configuration.d.ts +0 -15
  756. package/src/classes/program-configuration.js +0 -123
  757. package/src/classes/program.d.ts +0 -44
  758. package/src/classes/query.d.ts +0 -21
  759. package/src/classes/renderbuffer.d.ts +0 -34
  760. package/src/classes/renderbuffer.js +0 -105
  761. package/src/classes/resource.d.ts +0 -47
  762. package/src/classes/shader.d.ts +0 -29
  763. package/src/classes/shader.js +0 -147
  764. package/src/classes/texture-2d.d.ts +0 -11
  765. package/src/classes/texture-2d.js +0 -30
  766. package/src/classes/texture-3d.d.ts +0 -29
  767. package/src/classes/texture-cube.d.ts +0 -23
  768. package/src/classes/texture.d.ts +0 -80
  769. package/src/classes/transform-feedback.d.ts +0 -16
  770. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  771. package/src/classes/uniforms.d.ts +0 -63
  772. package/src/classes/vertex-array-object.d.ts +0 -25
  773. package/src/classes/vertex-array.d.ts +0 -37
  774. package/src/debug/debug-program-configuration.d.ts +0 -1
  775. package/src/debug/debug-uniforms.d.ts +0 -11
  776. package/src/debug/debug-vertex-array.d.ts +0 -1
  777. package/src/features/check-glsl-extension.js +0 -34
  778. package/src/features/features.js +0 -79
  779. package/src/features/index.js +0 -5
  780. package/src/features/limits.js +0 -65
  781. package/src/features/webgl-limits-table.js +0 -51
  782. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  783. package/src/glsl-utils/format-glsl-error.js +0 -107
  784. package/src/glsl-utils/get-shader-name.js +0 -7
  785. package/src/glsl-utils/get-shader-type-name.js +0 -13
  786. package/src/glsl-utils/get-shader-version.js +0 -12
  787. package/src/glsl-utils/index.js +0 -8
  788. package/src/index.d.ts +0 -71
  789. package/src/index.js +0 -70
  790. package/src/init.d.ts +0 -12
  791. package/src/utils/array-utils-flat.js +0 -56
  792. package/src/utils/assert.d.ts +0 -1
  793. package/src/utils/assert.js +0 -7
  794. package/src/utils/check-props.js +0 -68
  795. package/src/utils/format-value.js +0 -37
  796. package/src/utils/is-old-ie.d.ts +0 -1
  797. package/src/utils/is-old-ie.js +0 -6
  798. package/src/utils/load-file.js +0 -39
  799. package/src/utils/stub-methods.js +0 -20
  800. package/src/utils/utils.d.ts +0 -13
  801. package/src/utils/utils.js +0 -36
  802. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
  803. package/src/webgl-utils/texture-utils.d.ts +0 -11
  804. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -1,10 +1,11 @@
1
+ import {log, assert} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
- import {log} from '@luma.gl/gltools';
3
3
  import Accessor from './accessor';
4
- import Buffer from './buffer';
5
- import VertexArrayObject from './vertex-array-object';
6
- import {assert} from '../utils/assert';
7
- import {stubRemovedMethods} from '../utils/stub-methods';
4
+ import Buffer from './webgl-buffer';
5
+ import Program from './program';
6
+ import type {AttributeBinding} from '../helpers/program-bindings'
7
+ import ProgramConfiguration from './program-configuration';
8
+ import VertexArrayObject, {VertexArrayObjectProps} from './vertex-array-object';
8
9
 
9
10
  const ERR_ATTRIBUTE_TYPE =
10
11
  'VertexArray: attributes must be Buffers or constants (i.e. typed array)';
@@ -14,48 +15,61 @@ const ERR_ATTRIBUTE_TYPE =
14
15
  // in vertex-array.md
15
16
  const MULTI_LOCATION_ATTRIBUTE_REGEXP = /^(.+)__LOCATION_([0-9]+)$/;
16
17
 
17
- const DEPRECATIONS_V6 = [
18
- 'setBuffers',
19
- 'setGeneric',
20
- 'clearBindings',
21
- 'setLocations',
22
- 'setGenericValues',
23
- 'setDivisor',
24
- 'enable',
25
- 'disable'
26
- ];
18
+ export type VertexArrayProps = {
19
+ id?: string;
20
+ program?: Program;
21
+ configuration?: ProgramConfiguration;
22
+ attributes?: Record<string, any>;
23
+ elements?: any;
24
+ bindOnUse?: boolean;
25
+ };
26
+
27
+ export type DrawParams = {
28
+ elementCount: number;
29
+ indexType: Uint16ArrayConstructor | Uint32ArrayConstructor;
30
+ indexOffset: number;
31
+ isIndexed: boolean;
32
+ isInstanced: boolean;
33
+ indexCount: number;
34
+ vertexCount: number;
35
+ instanceCount: number;
36
+ };
27
37
 
28
38
  export default class VertexArray {
29
- constructor(gl, opts = {}) {
39
+ id: string;
40
+ gl: WebGLRenderingContext;
41
+ readonly attributes: object = {};
42
+
43
+ vertexArrayObject: VertexArrayObject;
44
+ accessors: Accessor[] = [];
45
+ configuration: ProgramConfiguration | null = null;
46
+
47
+ // Extracted information
48
+ elements = null;
49
+ elementsAccessor = null;
50
+ values = null;
51
+ unused = null;
52
+ drawParams = null;
53
+ buffer = null; // For attribute 0 on desktops, and created when unbinding buffers
54
+
55
+ bindOnUse = false;
56
+
57
+ constructor(gl: WebGLRenderingContext, props?: VertexArrayProps) {
30
58
  // Use program's id if program is supplied but no id is supplied
31
- const id = opts.id || (opts.program && opts.program.id);
32
- // super(gl, Object.assign({}, opts, {id}));
59
+ const id = props?.id || (props?.program && props?.program.id);
60
+ // super(gl, Object.assign({}, props, {id}));
61
+
62
+ this.vertexArrayObject = new VertexArrayObject(gl);
33
63
 
34
64
  this.id = id;
35
65
  this.gl = gl;
36
66
  this.configuration = null;
37
67
 
38
- // Extracted information
39
- this.elements = null;
40
- this.elementsAccessor = null;
41
- this.values = null;
42
- this.accessors = null;
43
- this.unused = null;
44
- this.drawParams = null;
45
- this.buffer = null; // For attribute 0 on desktops, and created when unbinding buffers
46
-
47
- this.attributes = {};
48
-
49
- this.vertexArrayObject = new VertexArrayObject(gl);
50
-
51
- // Issue errors when using removed methods
52
- stubRemovedMethods(this, 'VertexArray', 'v6.0', DEPRECATIONS_V6);
53
-
54
- this.initialize(opts);
68
+ this.initialize(props);
55
69
  Object.seal(this);
56
70
  }
57
71
 
58
- delete() {
72
+ delete(): void {
59
73
  if (this.buffer) {
60
74
  this.buffer.delete();
61
75
  }
@@ -63,11 +77,11 @@ export default class VertexArray {
63
77
  this.vertexArrayObject.delete();
64
78
  }
65
79
 
66
- initialize(props = {}) {
80
+ initialize(props?: VertexArrayProps) {
67
81
  this.reset();
68
82
  this.configuration = null;
69
83
  this.bindOnUse = false;
70
- return this.setProps(props);
84
+ return this.setProps(props || {});
71
85
  }
72
86
 
73
87
  // Resets all attributes (to default valued constants)
@@ -87,7 +101,7 @@ export default class VertexArray {
87
101
  return this;
88
102
  }
89
103
 
90
- setProps(props) {
104
+ setProps(props: VertexArrayProps) {
91
105
  if ('program' in props) {
92
106
  this.configuration = props.program && props.program.configuration;
93
107
  }
@@ -101,17 +115,18 @@ export default class VertexArray {
101
115
  this.setElementBuffer(props.elements);
102
116
  }
103
117
  if ('bindOnUse' in props) {
118
+ // @ts-expect-error
104
119
  props = props.bindOnUse;
105
120
  }
106
121
  return this;
107
122
  }
108
123
 
109
124
  // Automatically called if buffers changed through VertexArray API
110
- clearDrawParams() {
125
+ clearDrawParams(): void {
111
126
  this.drawParams = null;
112
127
  }
113
128
 
114
- getDrawParams() {
129
+ getDrawParams(): DrawParams {
115
130
  // Auto deduced draw parameters
116
131
  this.drawParams = this.drawParams || this._updateDrawParams();
117
132
 
@@ -125,7 +140,7 @@ export default class VertexArray {
125
140
  // {attributeName: buffer}
126
141
  // {attributeName: [buffer, accessor]}
127
142
  // {attributeName: (typed) array} => constant
128
- setAttributes(attributes) {
143
+ setAttributes(attributes): this {
129
144
  Object.assign(this.attributes, attributes);
130
145
  this.vertexArrayObject.bind(() => {
131
146
  for (const locationOrName in attributes) {
@@ -141,7 +156,7 @@ export default class VertexArray {
141
156
 
142
157
  // Set (bind) an elements buffer, for indexed rendering.
143
158
  // Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported
144
- setElementBuffer(elementBuffer = null, accessor = {}) {
159
+ setElementBuffer(elementBuffer: Buffer | null = null, accessor = {}): this {
145
160
  this.elements = elementBuffer; // Save value for debugging
146
161
  this.elementsAccessor = accessor;
147
162
  this.clearDrawParams();
@@ -151,10 +166,11 @@ export default class VertexArray {
151
166
  }
152
167
 
153
168
  // Set a location in vertex attributes array to a buffer
154
- setBuffer(locationOrName, buffer, appAccessor = {}) {
169
+ setBuffer(locationOrName: number | string, buffer: Buffer, appAccessor = {}): this {
155
170
  // Check target
156
171
  if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {
157
- return this.setElementBuffer(buffer, appAccessor);
172
+ this.setElementBuffer(buffer, appAccessor);
173
+ return this;
158
174
  }
159
175
 
160
176
  const {location, accessor} = this._resolveLocationAndAccessor(
@@ -175,13 +191,14 @@ export default class VertexArray {
175
191
  }
176
192
 
177
193
  // Set attribute to constant value (small typed array corresponding to one vertex' worth of data)
178
- setConstant(locationOrName, arrayValue, appAccessor = {}) {
194
+ setConstant(locationOrName, arrayValue, appAccessor = {}): this {
195
+ // @ts-expect-error
179
196
  const {location, accessor} = this._resolveLocationAndAccessor(
180
197
  locationOrName,
181
198
  arrayValue,
182
199
  // Ensure that size isn't taken from program for multi-column
183
200
  // attributes
184
- Object.assign({size: arrayValue.length}, appAccessor)
201
+ {size: arrayValue.length, ...appAccessor}
185
202
  );
186
203
 
187
204
  if (location >= 0) {
@@ -203,7 +220,7 @@ export default class VertexArray {
203
220
 
204
221
  // Workaround for Chrome TransformFeedback binding issue
205
222
  // If required, unbind temporarily to avoid conflicting with TransformFeedback
206
- unbindBuffers() {
223
+ unbindBuffers(): this {
207
224
  this.vertexArrayObject.bind(() => {
208
225
  if (this.elements) {
209
226
  this.vertexArrayObject.setElementBuffer(null);
@@ -228,7 +245,7 @@ export default class VertexArray {
228
245
 
229
246
  // Workaround for Chrome TransformFeedback binding issue
230
247
  // If required, rebind rebind after temporary unbind
231
- bindBuffers() {
248
+ bindBuffers(): this {
232
249
  this.vertexArrayObject.bind(() => {
233
250
  if (this.elements) {
234
251
  this.setElementBuffer(this.elements);
@@ -301,18 +318,18 @@ export default class VertexArray {
301
318
  return {location, accessor};
302
319
  }
303
320
 
304
- _getAttributeInfo(attributeName) {
321
+ _getAttributeInfo(attributeName: string | number): AttributeBinding {
305
322
  return this.configuration && this.configuration.getAttributeInfo(attributeName);
306
323
  }
307
324
 
308
- _getAttributeIndex(locationOrName) {
325
+ _getAttributeIndex(locationOrName: number | string): {location: number, name?: string} {
309
326
  const location = Number(locationOrName);
310
327
  if (Number.isFinite(location)) {
311
328
  return {location};
312
329
  }
313
330
 
314
- const multiLocation = MULTI_LOCATION_ATTRIBUTE_REGEXP.exec(locationOrName);
315
- const name = multiLocation ? multiLocation[1] : locationOrName;
331
+ const multiLocation = MULTI_LOCATION_ATTRIBUTE_REGEXP.exec(String(locationOrName));
332
+ const name = multiLocation ? multiLocation[1] : String(locationOrName);
316
333
  const locationOffset = multiLocation ? Number(multiLocation[2]) : 0;
317
334
 
318
335
  if (this.configuration) {
@@ -325,7 +342,12 @@ export default class VertexArray {
325
342
  return {location: -1};
326
343
  }
327
344
 
328
- _setAttribute(locationOrName, value) {
345
+ _setAttribute(locationOrName: number | string, value: Buffer): void;
346
+ _setAttribute(locationOrName: number | string, value: [Buffer, any]): void;
347
+ _setAttribute(locationOrName: number | string, value: ArrayBuffer | any[]): void;
348
+ _setAttribute(locationOrName: number | string, value: {value: Buffer}): void;
349
+
350
+ _setAttribute(locationOrName: number | string, value): void {
329
351
  if (value instanceof Buffer) {
330
352
  // Signature: {attributeName: Buffer}
331
353
  this.setBuffer(locationOrName, value);
@@ -352,7 +374,7 @@ export default class VertexArray {
352
374
  // Updates all constant attribute values (constants are used when vertex attributes are disabled).
353
375
  // This needs to be done repeatedly since in contrast to buffer bindings,
354
376
  // constants are stored on the WebGL context, not the VAO
355
- _setConstantAttributes(vertexCount, instanceCount) {
377
+ _setConstantAttributes(vertexCount: number, instanceCount: number): void {
356
378
  // TODO - use accessor to determine what length to use
357
379
  const elementCount = Math.max(vertexCount | 0, instanceCount | 0);
358
380
  let constant = this.values[0];
@@ -368,7 +390,7 @@ export default class VertexArray {
368
390
  }
369
391
  }
370
392
 
371
- _setConstantAttributeZero(constant, elementCount) {
393
+ _setConstantAttributeZero(constant, elementCount: number): void {
372
394
  if (VertexArrayObject.isSupported(this.gl, {constantAttributeZero: true})) {
373
395
  this._setConstantAttribute(0, constant);
374
396
  return;
@@ -381,13 +403,16 @@ export default class VertexArray {
381
403
  this.vertexArrayObject.setBuffer(0, buffer, this.accessors[0]);
382
404
  }
383
405
 
384
- _setConstantAttribute(location, constant) {
406
+ _setConstantAttribute(location: number | string, constant): void {
385
407
  VertexArrayObject.setConstant(this.gl, location, constant);
386
408
  }
387
409
 
388
410
  // Walks the buffers and updates draw parameters
389
- _updateDrawParams() {
411
+ _updateDrawParams(): DrawParams {
390
412
  const drawParams = {
413
+ elementCount: 0,
414
+ indexType: Uint16Array,
415
+ indexOffset: 0,
391
416
  isIndexed: false,
392
417
  isInstanced: false,
393
418
  indexCount: Infinity,
@@ -422,7 +447,7 @@ export default class VertexArray {
422
447
  return drawParams;
423
448
  }
424
449
 
425
- _updateDrawParamsForLocation(drawParams, location) {
450
+ _updateDrawParamsForLocation(drawParams: DrawParams, location): void {
426
451
  const value = this.values[location];
427
452
  const accessor = this.accessors[location];
428
453
 
@@ -1,10 +1,11 @@
1
+ import {log, assert, checkProps} from '@luma.gl/api';
2
+ import {Buffer, BufferProps} from '@luma.gl/api';
1
3
  import GL from '@luma.gl/constants';
2
- import Resource from './resource';
4
+ import {getWebGL2Context, assertWebGL2Context} from '../context/context/webgl-checks';
5
+ import {AccessorObject} from '../types';
3
6
  import Accessor from './accessor';
4
7
  import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from '../webgl-utils/typed-array-utils';
5
- import {assertWebGL2Context, log} from '@luma.gl/gltools';
6
- import {assert} from '../utils/assert';
7
- import {checkProps} from '../utils/check-props';
8
+ import WebGLDevice from '../adapter/webgl-device';
8
9
 
9
10
  const DEBUG_DATA_LENGTH = 10;
10
11
 
@@ -37,16 +38,58 @@ const PROP_CHECKS_SET_PROPS = {
37
38
  removedProps: DEPRECATED_PROPS
38
39
  };
39
40
 
40
- export default class Buffer extends Resource {
41
- constructor(gl, props = {}) {
42
- super(gl, props);
41
+ /** WebGL Buffer interface */
42
+ export type WebGLBufferProps = BufferProps & {
43
+ handle?: WebGLBuffer;
44
+ data?: any; // ArrayBufferView;
45
+ byteLength?: number;
46
+ target?: number;
47
+ usage?: number;
48
+ accessor?: AccessorObject;
49
+
50
+ /** @deprecated */
51
+ index?: number;
52
+ /** @deprecated */
53
+ offset?: number;
54
+ /** @deprecated */
55
+ size?: number;
56
+ /** @deprecated */
57
+ type?: number
58
+ }
59
+
60
+ /** WebGL Buffer interface */
61
+ export default class WEBGLBuffer extends Buffer {
62
+ readonly device: WebGLDevice;
63
+ readonly gl: WebGLRenderingContext;
64
+ readonly gl2: WebGL2RenderingContext | null;
65
+ readonly handle: WebGLBuffer;
66
+
67
+ target: number;
68
+ usage: number;
69
+
70
+ byteLength: number;
71
+ bytesUsed: number;
72
+
73
+ accessor: Accessor;
43
74
 
44
- this.stubRemovedMethods('Buffer', 'v6.0', ['layout', 'setLayout', 'getIndexedParameter']);
45
- // this.stubRemovedMethods('Buffer', 'v7.0', ['updateAccessor']);
75
+ debugData;
76
+
77
+ constructor(gl: WebGLRenderingContext, props?: BufferProps);
78
+ constructor(gl: WebGLRenderingContext, data: ArrayBufferView | number[]);
79
+ constructor(gl: WebGLRenderingContext, byteLength: number);
80
+
81
+ constructor(gl: WebGLRenderingContext, props = {}) {
82
+ super(WebGLDevice.attach(gl), props);
83
+
84
+ this.gl = gl;
85
+ this.gl2 = getWebGL2Context(gl);
86
+ const handle = typeof props === 'object' ? (props as BufferProps).handle : undefined;
87
+ this.handle = handle || this.gl.createBuffer();
46
88
 
47
89
  // In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers
48
90
  // otherwise buffer type will lock to generic (non-element) buffer
49
91
  // In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here
92
+ // @ts-expect-error
50
93
  this.target = props.target || (this.gl.webgl2 ? GL.COPY_READ_BUFFER : GL.ARRAY_BUFFER);
51
94
 
52
95
  this.initialize(props);
@@ -54,13 +97,23 @@ export default class Buffer extends Resource {
54
97
  Object.seal(this);
55
98
  }
56
99
 
100
+ destroy(): void {
101
+ if (this.handle) {
102
+ this.removeStats();
103
+ this.trackDeallocatedMemory();
104
+ this.gl.deleteBuffer(this.handle);
105
+ // @ts-expect-error
106
+ this.handle = null;
107
+ }
108
+ }
109
+
57
110
  // returns number of elements in the buffer (assuming that the full buffer is used)
58
- getElementCount(accessor = this.accessor) {
111
+ getElementCount(accessor = this.accessor): number {
59
112
  return Math.round(this.byteLength / Accessor.getBytesPerElement(accessor));
60
113
  }
61
114
 
62
115
  // returns number of vertices in the buffer (assuming that the full buffer is used)
63
- getVertexCount(accessor = this.accessor) {
116
+ getVertexCount(accessor = this.accessor): number {
64
117
  return Math.round(this.byteLength / Accessor.getBytesPerVertex(accessor));
65
118
  }
66
119
 
@@ -68,7 +121,7 @@ export default class Buffer extends Resource {
68
121
  // Signature: `new Buffer(gl, {data: new Float32Array(...)})`
69
122
  // Signature: `new Buffer(gl, new Float32Array(...))`
70
123
  // Signature: `new Buffer(gl, 100)`
71
- initialize(props = {}) {
124
+ initialize(props: BufferProps = {}): this {
72
125
  // Signature `new Buffer(gl, new Float32Array(...)`
73
126
  if (ArrayBuffer.isView(props)) {
74
127
  props = {data: props};
@@ -76,6 +129,7 @@ export default class Buffer extends Resource {
76
129
 
77
130
  // Signature: `new Buffer(gl, 100)`
78
131
  if (Number.isFinite(props)) {
132
+ // @ts-expect-error
79
133
  props = {byteLength: props};
80
134
  }
81
135
 
@@ -98,7 +152,7 @@ export default class Buffer extends Resource {
98
152
  return this;
99
153
  }
100
154
 
101
- setProps(props) {
155
+ setProps(props: BufferProps): this {
102
156
  props = checkProps('Buffer', props, PROP_CHECKS_SET_PROPS);
103
157
 
104
158
  if ('accessor' in props) {
@@ -110,7 +164,7 @@ export default class Buffer extends Resource {
110
164
 
111
165
  // Optionally stores an accessor with the buffer, makes it easier to use it as an attribute later
112
166
  // {type, size = 1, offset = 0, stride = 0, normalized = false, integer = false, divisor = 0}
113
- setAccessor(accessor) {
167
+ setAccessor(accessor): this {
114
168
  // NOTE: From luma.gl v7.0, Accessors have an optional `buffer `field
115
169
  // (mainly to support "interleaving")
116
170
  // To avoid confusion, ensure `buffer.accessor` does not have a `buffer.accessor.buffer` field:
@@ -159,11 +213,13 @@ export default class Buffer extends Resource {
159
213
 
160
214
  // Create the buffer - binding it here for the first time locks the type
161
215
  // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
216
+ // @ts-expect-error
162
217
  const target = this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;
163
218
  this.gl.bindBuffer(target, this.handle);
164
219
  // WebGL2: subData supports additional srcOffset and length parameters
165
220
  if (srcOffset !== 0 || byteLength !== undefined) {
166
221
  assertWebGL2Context(this.gl);
222
+ // @ts-expect-error
167
223
  this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
168
224
  } else {
169
225
  this.gl.bufferSubData(target, offset, data);
@@ -178,15 +234,24 @@ export default class Buffer extends Resource {
178
234
  return this;
179
235
  }
180
236
 
181
- // WEBGL2 ONLY: Copies part of the data of another buffer into this buffer
182
- copyData({sourceBuffer, readOffset = 0, writeOffset = 0, size}) {
183
- const {gl} = this;
237
+ /**
238
+ * Copies part of the data of another buffer into this buffer
239
+ * @note WEBGL2 ONLY
240
+ */
241
+ copyData(options: {
242
+ sourceBuffer: any;
243
+ readOffset?: number;
244
+ writeOffset?: number;
245
+ size: any;
246
+ }): this {
247
+ const {sourceBuffer, readOffset = 0, writeOffset = 0, size} = options;
248
+ const {gl, gl2} = this;
184
249
  assertWebGL2Context(gl);
185
250
 
186
251
  // Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type
187
252
  gl.bindBuffer(GL.COPY_READ_BUFFER, sourceBuffer.handle);
188
253
  gl.bindBuffer(GL.COPY_WRITE_BUFFER, this.handle);
189
- gl.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
254
+ gl2.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
190
255
  gl.bindBuffer(GL.COPY_READ_BUFFER, null);
191
256
  gl.bindBuffer(GL.COPY_WRITE_BUFFER, null);
192
257
 
@@ -196,8 +261,18 @@ export default class Buffer extends Resource {
196
261
  return this;
197
262
  }
198
263
 
199
- // WEBGL2 ONLY: Reads data from buffer into an ArrayBufferView or SharedArrayBuffer.
200
- getData({dstData = null, srcByteOffset = 0, dstOffset = 0, length = 0} = {}) {
264
+ /**
265
+ * Reads data from buffer into an ArrayBufferView or SharedArrayBuffer.
266
+ * @note WEBGL2 ONLY
267
+ */
268
+ getData(options?: {
269
+ dstData?: any;
270
+ srcByteOffset?: number;
271
+ dstOffset?: number;
272
+ length?: number;
273
+ }): any {
274
+ let {dstData = null, length = 0} = options || {};
275
+ const {srcByteOffset = 0, dstOffset = 0} = options || {};
201
276
  assertWebGL2Context(this.gl);
202
277
 
203
278
  const ArrayType = getTypedArrayFromGLType(this.accessor.type || GL.FLOAT, {clamped: false});
@@ -226,7 +301,7 @@ export default class Buffer extends Resource {
226
301
 
227
302
  // Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type
228
303
  this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);
229
- this.gl.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
304
+ this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
230
305
  this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
231
306
 
232
307
  // TODO - update local `data` if offsets are 0
@@ -240,21 +315,23 @@ export default class Buffer extends Resource {
240
315
  * - GL.UNIFORM_BUFFER: `offset` must be aligned to GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT.
241
316
  * - GL.UNIFORM_BUFFER: `size` must be a minimum of GL.UNIFORM_BLOCK_SIZE_DATA.
242
317
  */
243
- bind({
244
- target = this.target, // target for the bind operation
245
- index = this.accessor && this.accessor.index, // index = index of target (indexed bind point)
246
- offset = 0,
247
- size
248
- } = {}) {
318
+ bind(options?: {target?: number; index?: any; offset?: number; size: any}): this {
319
+ const {
320
+ target = this.target, // target for the bind operation
321
+ // @ts-expect-error
322
+ index = this.accessor && this.accessor.index, // index = index of target (indexed bind point)
323
+ offset = 0,
324
+ size
325
+ } = options || {};
249
326
  // NOTE: While GL.TRANSFORM_FEEDBACK_BUFFER and GL.UNIFORM_BUFFER could
250
327
  // be used as direct binding points, they will not affect transform feedback or
251
328
  // uniform buffer state. Instead indexed bindings need to be made.
252
329
  if (target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER) {
253
330
  if (size !== undefined) {
254
- this.gl.bindBufferRange(target, index, this.handle, offset, size);
331
+ this.gl2.bindBufferRange(target, index, this.handle, offset, size);
255
332
  } else {
256
333
  assert(offset === 0); // Make sure offset wasn't supplied
257
- this.gl.bindBufferBase(target, index, this.handle);
334
+ this.gl2.bindBufferBase(target, index, this.handle);
258
335
  }
259
336
  } else {
260
337
  this.gl.bindBuffer(target, this.handle);
@@ -263,10 +340,12 @@ export default class Buffer extends Resource {
263
340
  return this;
264
341
  }
265
342
 
266
- unbind({target = this.target, index = this.accessor && this.accessor.index} = {}) {
343
+ unbind(options?: {target?: any; index?: any}): this {
344
+ // @ts-expect-error
345
+ const {target = this.target, index = this.accessor && this.accessor.index} = options || {};
267
346
  const isIndexedBuffer = target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER;
268
347
  if (isIndexedBuffer) {
269
- this.gl.bindBufferBase(target, index, null);
348
+ this.gl2.bindBufferBase(target, index, null);
270
349
  } else {
271
350
  this.gl.bindBuffer(target, null);
272
351
  }
@@ -276,7 +355,10 @@ export default class Buffer extends Resource {
276
355
  // PROTECTED METHODS (INTENDED FOR USE BY OTHER FRAMEWORK CODE ONLY)
277
356
 
278
357
  // Returns a short initial data array
279
- getDebugData() {
358
+ getDebugData(): {
359
+ data: any;
360
+ changed: boolean;
361
+ } {
280
362
  if (!this.debugData) {
281
363
  this.debugData = this.getData({length: Math.min(DEBUG_DATA_LENGTH, this.byteLength)});
282
364
  return {data: this.debugData, changed: true};
@@ -291,10 +373,10 @@ export default class Buffer extends Resource {
291
373
  // PRIVATE METHODS
292
374
 
293
375
  // Allocate a new buffer and initialize to contents of typed array
294
- _setData(data, offset = 0, byteLength = data.byteLength + offset) {
376
+ _setData(data, offset: number = 0, byteLength: number = data.byteLength + offset): this {
295
377
  assert(ArrayBuffer.isView(data));
296
378
 
297
- this._trackDeallocatedMemory();
379
+ this.trackDeallocatedMemory();
298
380
 
299
381
  const target = this._getTarget();
300
382
  this.gl.bindBuffer(target, this.handle);
@@ -304,8 +386,8 @@ export default class Buffer extends Resource {
304
386
 
305
387
  this.debugData = data.slice(0, DEBUG_DATA_LENGTH);
306
388
  this.bytesUsed = byteLength;
307
-
308
- this._trackAllocatedMemory(byteLength);
389
+ this.byteLength = byteLength;
390
+ this.trackAllocatedMemory(byteLength);
309
391
 
310
392
  // infer GL type from supplied typed array
311
393
  const type = getGLTypeFromTypedArray(data);
@@ -315,15 +397,16 @@ export default class Buffer extends Resource {
315
397
  }
316
398
 
317
399
  // Allocate a GPU buffer of specified size.
318
- _setByteLength(byteLength, usage = this.usage) {
400
+ _setByteLength(byteLength: number, usage = this.usage): this {
319
401
  assert(byteLength >= 0);
320
402
 
321
- this._trackDeallocatedMemory();
403
+ this.trackDeallocatedMemory();
322
404
 
323
405
  // Workaround needed for Safari (#291):
324
406
  // gl.bufferData with size equal to 0 crashes. Instead create zero sized array.
325
407
  let data = byteLength;
326
408
  if (byteLength === 0) {
409
+ // @ts-expect-error
327
410
  data = new Float32Array(0);
328
411
  }
329
412
 
@@ -335,8 +418,9 @@ export default class Buffer extends Resource {
335
418
  this.usage = usage;
336
419
  this.debugData = null;
337
420
  this.bytesUsed = byteLength;
421
+ this.byteLength = byteLength;
338
422
 
339
- this._trackAllocatedMemory(byteLength);
423
+ this.trackAllocatedMemory(byteLength);
340
424
 
341
425
  return this;
342
426
  }
@@ -344,6 +428,7 @@ export default class Buffer extends Resource {
344
428
  // Binding a buffer for the first time locks the type
345
429
  // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
346
430
  _getTarget() {
431
+ // @ts-expect-error
347
432
  return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;
348
433
  }
349
434
 
@@ -363,16 +448,7 @@ export default class Buffer extends Resource {
363
448
 
364
449
  // RESOURCE METHODS
365
450
 
366
- _createHandle() {
367
- return this.gl.createBuffer();
368
- }
369
-
370
- _deleteHandle() {
371
- this.gl.deleteBuffer(this.handle);
372
- this._trackDeallocatedMemory();
373
- }
374
-
375
- _getParameter(pname) {
451
+ getParameter(pname) {
376
452
  this.gl.bindBuffer(this.target, this.handle);
377
453
  const value = this.gl.getBufferParameter(this.target, pname);
378
454
  this.gl.bindBuffer(this.target, null);
@@ -380,8 +456,8 @@ export default class Buffer extends Resource {
380
456
  }
381
457
 
382
458
  // DEPRECATIONS - v7.0
459
+ /** @deprecated Use Buffer.accessor.type */
383
460
  get type() {
384
- log.deprecated('Buffer.type', 'Buffer.accessor.type')();
385
461
  return this.accessor.type;
386
462
  }
387
463