@luma.gl/webgl 8.5.7 → 8.6.0-alpha.1

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 (633) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +5 -0
  4. package/dist/bundle.js.map +1 -0
  5. package/dist/classes/accessor.d.ts +28 -0
  6. package/dist/classes/accessor.d.ts.map +1 -0
  7. package/dist/classes/accessor.js +112 -0
  8. package/dist/classes/accessor.js.map +1 -0
  9. package/dist/classes/accessor.ts.disabled +159 -0
  10. package/dist/classes/clear.d.ts +16 -0
  11. package/dist/classes/clear.d.ts.map +1 -0
  12. package/dist/classes/clear.js +102 -0
  13. package/dist/classes/clear.js.map +1 -0
  14. package/dist/classes/copy-and-blit.d.ts +69 -0
  15. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  16. package/dist/classes/copy-and-blit.js +333 -0
  17. package/dist/classes/copy-and-blit.js.map +1 -0
  18. package/dist/classes/framebuffer.d.ts +130 -0
  19. package/dist/classes/framebuffer.d.ts.map +1 -0
  20. package/dist/classes/framebuffer.js +656 -0
  21. package/dist/classes/framebuffer.js.map +1 -0
  22. package/dist/classes/program-configuration.d.ts +27 -0
  23. package/dist/classes/program-configuration.d.ts.map +1 -0
  24. package/dist/classes/program-configuration.js +160 -0
  25. package/dist/classes/program-configuration.js.map +1 -0
  26. package/dist/classes/program.d.ts +61 -0
  27. package/dist/classes/program.d.ts.map +1 -0
  28. package/dist/classes/program.js +368 -0
  29. package/dist/classes/program.js.map +1 -0
  30. package/dist/classes/query.d.ts +27 -0
  31. package/dist/classes/query.d.ts.map +1 -0
  32. package/dist/classes/query.js +144 -0
  33. package/dist/classes/query.js.map +1 -0
  34. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  35. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  36. package/dist/classes/renderbuffer-formats.js +185 -0
  37. package/dist/classes/renderbuffer-formats.js.map +1 -0
  38. package/dist/classes/renderbuffer.d.ts +60 -0
  39. package/dist/classes/renderbuffer.d.ts.map +1 -0
  40. package/dist/classes/renderbuffer.js +127 -0
  41. package/dist/classes/renderbuffer.js.map +1 -0
  42. package/dist/classes/texture-2d.d.ts +8 -0
  43. package/dist/classes/texture-2d.d.ts.map +1 -0
  44. package/dist/classes/texture-2d.js +39 -0
  45. package/dist/classes/texture-2d.js.map +1 -0
  46. package/dist/classes/texture-3d.d.ts +28 -0
  47. package/dist/classes/texture-3d.d.ts.map +1 -0
  48. package/dist/classes/texture-3d.js +67 -0
  49. package/dist/classes/texture-3d.js.map +1 -0
  50. package/dist/classes/texture-cube.d.ts +27 -0
  51. package/dist/classes/texture-cube.d.ts.map +1 -0
  52. package/dist/classes/texture-cube.js +131 -0
  53. package/dist/classes/texture-cube.js.map +1 -0
  54. package/dist/classes/texture-formats.d.ts +37 -0
  55. package/dist/classes/texture-formats.d.ts.map +1 -0
  56. package/dist/classes/texture-formats.js +98 -0
  57. package/dist/classes/texture-formats.js.map +1 -0
  58. package/dist/classes/texture.d.ts +118 -0
  59. package/dist/classes/texture.d.ts.map +1 -0
  60. package/dist/classes/texture.js +785 -0
  61. package/dist/classes/texture.js.map +1 -0
  62. package/dist/classes/transform-feedback.d.ts +33 -0
  63. package/dist/classes/transform-feedback.d.ts.map +1 -0
  64. package/dist/classes/transform-feedback.js +197 -0
  65. package/dist/classes/transform-feedback.js.map +1 -0
  66. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  67. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  68. package/dist/classes/uniform-buffer-layout.js +104 -0
  69. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  70. package/dist/classes/uniforms.d.ts +38 -0
  71. package/dist/classes/uniforms.d.ts.map +1 -0
  72. package/dist/classes/uniforms.js +251 -0
  73. package/dist/classes/uniforms.js.map +1 -0
  74. package/dist/classes/vertex-array-object.d.ts +75 -0
  75. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  76. package/dist/classes/vertex-array-object.js +262 -0
  77. package/dist/classes/vertex-array-object.js.map +1 -0
  78. package/dist/classes/vertex-array.d.ts +75 -0
  79. package/dist/classes/vertex-array.d.ts.map +1 -0
  80. package/dist/classes/vertex-array.js +409 -0
  81. package/dist/classes/vertex-array.js.map +1 -0
  82. package/dist/classes/webgl-buffer.d.ts +98 -0
  83. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  84. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +97 -73
  85. package/dist/classes/webgl-buffer.js.map +1 -0
  86. package/dist/classes/webgl-resource.d.ts +54 -0
  87. package/dist/classes/webgl-resource.d.ts.map +1 -0
  88. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +31 -52
  89. package/dist/classes/webgl-resource.js.map +1 -0
  90. package/dist/classes/webgl-shader.d.ts +51 -0
  91. package/dist/classes/webgl-shader.d.ts.map +1 -0
  92. package/dist/classes/webgl-shader.js +190 -0
  93. package/dist/classes/webgl-shader.js.map +1 -0
  94. package/dist/context/gl-context.d.ts +15 -0
  95. package/dist/context/gl-context.d.ts.map +1 -0
  96. package/dist/context/gl-context.js +32 -0
  97. package/dist/context/gl-context.js.map +1 -0
  98. package/dist/context/luma-context-data.d.ts +31 -0
  99. package/dist/context/luma-context-data.d.ts.map +1 -0
  100. package/dist/context/luma-context-data.js +5 -0
  101. package/dist/context/luma-context-data.js.map +1 -0
  102. package/dist/debug/debug-program-configuration.d.ts +2 -0
  103. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  104. package/dist/debug/debug-program-configuration.js +40 -0
  105. package/dist/debug/debug-program-configuration.js.map +1 -0
  106. package/dist/debug/debug-uniforms.d.ts +12 -0
  107. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  108. package/dist/debug/debug-uniforms.js +108 -0
  109. package/dist/debug/debug-uniforms.js.map +1 -0
  110. package/dist/debug/debug-vertex-array.d.ts +5 -0
  111. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  112. package/dist/debug/debug-vertex-array.js +118 -0
  113. package/dist/debug/debug-vertex-array.js.map +1 -0
  114. package/dist/es5/bundle.js +3 -5
  115. package/dist/es5/bundle.js.map +1 -1
  116. package/dist/es5/classes/accessor.js +76 -108
  117. package/dist/es5/classes/accessor.js.map +1 -1
  118. package/dist/es5/classes/accessor.ts.disabled +159 -0
  119. package/dist/es5/classes/clear.js +33 -48
  120. package/dist/es5/classes/clear.js.map +1 -1
  121. package/dist/es5/classes/copy-and-blit.js +177 -192
  122. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  123. package/dist/es5/classes/framebuffer.js +538 -655
  124. package/dist/es5/classes/framebuffer.js.map +1 -1
  125. package/dist/es5/classes/program-configuration.js +127 -141
  126. package/dist/es5/classes/program-configuration.js.map +1 -1
  127. package/dist/es5/classes/program.js +294 -358
  128. package/dist/es5/classes/program.js.map +1 -1
  129. package/dist/es5/classes/query.js +115 -181
  130. package/dist/es5/classes/query.js.map +1 -1
  131. package/dist/es5/classes/renderbuffer-formats.js +186 -121
  132. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  133. package/dist/es5/classes/renderbuffer.js +104 -128
  134. package/dist/es5/classes/renderbuffer.js.map +1 -1
  135. package/dist/es5/classes/texture-2d.js +16 -39
  136. package/dist/es5/classes/texture-2d.js.map +1 -1
  137. package/dist/es5/classes/texture-3d.js +50 -89
  138. package/dist/es5/classes/texture-3d.js.map +1 -1
  139. package/dist/es5/classes/texture-cube.js +112 -162
  140. package/dist/es5/classes/texture-cube.js.map +1 -1
  141. package/dist/es5/classes/texture-formats.js +73 -42
  142. package/dist/es5/classes/texture-formats.js.map +1 -1
  143. package/dist/es5/classes/texture.js +670 -673
  144. package/dist/es5/classes/texture.js.map +1 -1
  145. package/dist/es5/classes/transform-feedback.js +150 -203
  146. package/dist/es5/classes/transform-feedback.js.map +1 -1
  147. package/dist/es5/classes/uniform-buffer-layout.js +89 -103
  148. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  149. package/dist/es5/classes/uniforms.js +134 -93
  150. package/dist/es5/classes/uniforms.js.map +1 -1
  151. package/dist/es5/classes/vertex-array-object.js +204 -306
  152. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  153. package/dist/es5/classes/vertex-array.js +317 -353
  154. package/dist/es5/classes/vertex-array.js.map +1 -1
  155. package/dist/es5/classes/webgl-buffer.js +391 -0
  156. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  157. package/dist/es5/classes/webgl-resource.js +217 -0
  158. package/dist/es5/classes/webgl-resource.js.map +1 -0
  159. package/dist/es5/classes/webgl-shader.js +213 -0
  160. package/dist/es5/classes/webgl-shader.js.map +1 -0
  161. package/dist/es5/context/gl-context.js +46 -0
  162. package/dist/es5/context/gl-context.js.map +1 -0
  163. package/dist/es5/context/luma-context-data.js +12 -0
  164. package/dist/es5/context/luma-context-data.js.map +1 -0
  165. package/dist/es5/debug/debug-program-configuration.js +20 -48
  166. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  167. package/dist/es5/debug/debug-uniforms.js +72 -114
  168. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  169. package/dist/es5/debug/debug-vertex-array.js +56 -51
  170. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  171. package/dist/es5/features/check-glsl-extension.js +9 -10
  172. package/dist/es5/features/check-glsl-extension.js.map +1 -1
  173. package/dist/es5/features/check-old-ie.js +5 -6
  174. package/dist/es5/features/check-old-ie.js.map +1 -1
  175. package/dist/es5/features/features.js +23 -37
  176. package/dist/es5/features/features.js.map +1 -1
  177. package/dist/es5/features/index.js +8 -8
  178. package/dist/es5/features/index.js.map +1 -1
  179. package/dist/es5/features/limits.js +36 -28
  180. package/dist/es5/features/limits.js.map +1 -1
  181. package/dist/es5/features/webgl-features-table.js +35 -15
  182. package/dist/es5/features/webgl-features-table.js.map +1 -1
  183. package/dist/es5/features/webgl-limits-table.js +160 -120
  184. package/dist/es5/features/webgl-limits-table.js.map +1 -1
  185. package/dist/es5/index.js +144 -90
  186. package/dist/es5/index.js.map +1 -1
  187. package/dist/es5/init.js +12 -36
  188. package/dist/es5/init.js.map +1 -1
  189. package/dist/es5/types.js +2 -0
  190. package/dist/es5/types.js.map +1 -0
  191. package/dist/es5/utils/array-utils-flat.js +13 -14
  192. package/dist/es5/utils/array-utils-flat.js.map +1 -1
  193. package/dist/es5/utils/assert.js +1 -1
  194. package/dist/es5/utils/assert.js.map +1 -1
  195. package/dist/es5/utils/check-props.js +20 -21
  196. package/dist/es5/utils/check-props.js.map +1 -1
  197. package/dist/es5/utils/format-value.js +14 -14
  198. package/dist/es5/utils/format-value.js.map +1 -1
  199. package/dist/es5/utils/index.js +68 -0
  200. package/dist/es5/utils/index.js.map +1 -0
  201. package/dist/es5/utils/is-old-ie.js +2 -3
  202. package/dist/es5/utils/is-old-ie.js.map +1 -1
  203. package/dist/es5/utils/load-file.js +11 -18
  204. package/dist/es5/utils/load-file.js.map +1 -1
  205. package/dist/es5/utils/stub-methods.js +4 -4
  206. package/dist/es5/utils/stub-methods.js.map +1 -1
  207. package/dist/es5/utils/utils.js +5 -10
  208. package/dist/es5/utils/utils.js.map +1 -1
  209. package/dist/es5/webgl-utils/attribute-utils.js +87 -74
  210. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  211. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  212. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  213. package/dist/es5/webgl-utils/format-utils.js +21 -17
  214. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  215. package/dist/es5/webgl-utils/get-error.js +18 -18
  216. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  217. package/dist/es5/webgl-utils/index.js +74 -0
  218. package/dist/es5/webgl-utils/index.js.map +1 -0
  219. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +44 -0
  220. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  221. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  222. package/dist/es5/webgl-utils/texture-utils.js +35 -29
  223. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  224. package/dist/es5/webgl-utils/typed-array-utils.js +51 -47
  225. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  226. package/dist/esm/bundle.js +2 -4
  227. package/dist/esm/bundle.js.map +1 -1
  228. package/dist/esm/classes/accessor.js +7 -7
  229. package/dist/esm/classes/accessor.js.map +1 -1
  230. package/dist/esm/classes/accessor.ts.disabled +159 -0
  231. package/dist/esm/classes/clear.js +15 -13
  232. package/dist/esm/classes/clear.js.map +1 -1
  233. package/dist/esm/classes/copy-and-blit.js +41 -43
  234. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  235. package/dist/esm/classes/framebuffer.js +336 -308
  236. package/dist/esm/classes/framebuffer.js.map +1 -1
  237. package/dist/esm/classes/program-configuration.js +17 -9
  238. package/dist/esm/classes/program-configuration.js.map +1 -1
  239. package/dist/esm/classes/program.js +69 -44
  240. package/dist/esm/classes/program.js.map +1 -1
  241. package/dist/esm/classes/query.js +17 -14
  242. package/dist/esm/classes/query.js.map +1 -1
  243. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  244. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  245. package/dist/esm/classes/renderbuffer.js +84 -72
  246. package/dist/esm/classes/renderbuffer.js.map +1 -1
  247. package/dist/esm/classes/texture-2d.js +10 -3
  248. package/dist/esm/classes/texture-2d.js.map +1 -1
  249. package/dist/esm/classes/texture-3d.js +14 -11
  250. package/dist/esm/classes/texture-3d.js.map +1 -1
  251. package/dist/esm/classes/texture-cube.js +43 -28
  252. package/dist/esm/classes/texture-cube.js.map +1 -1
  253. package/dist/esm/classes/texture-formats.js +51 -50
  254. package/dist/esm/classes/texture-formats.js.map +1 -1
  255. package/dist/esm/classes/texture.js +164 -49
  256. package/dist/esm/classes/texture.js.map +1 -1
  257. package/dist/esm/classes/transform-feedback.js +24 -13
  258. package/dist/esm/classes/transform-feedback.js.map +1 -1
  259. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  260. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  261. package/dist/esm/classes/uniforms.js +111 -112
  262. package/dist/esm/classes/uniforms.js.map +1 -1
  263. package/dist/esm/classes/vertex-array-object.js +52 -88
  264. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  265. package/dist/esm/classes/vertex-array.js +50 -28
  266. package/dist/esm/classes/vertex-array.js.map +1 -1
  267. package/dist/esm/classes/webgl-buffer.js +379 -0
  268. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  269. package/dist/esm/classes/webgl-resource.js +208 -0
  270. package/dist/esm/classes/webgl-resource.js.map +1 -0
  271. package/dist/esm/classes/webgl-shader.js +190 -0
  272. package/dist/esm/classes/webgl-shader.js.map +1 -0
  273. package/dist/esm/context/gl-context.js +32 -0
  274. package/dist/esm/context/gl-context.js.map +1 -0
  275. package/dist/esm/context/luma-context-data.js +5 -0
  276. package/dist/esm/context/luma-context-data.js.map +1 -0
  277. package/dist/esm/debug/debug-program-configuration.js +4 -4
  278. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  279. package/dist/esm/debug/debug-uniforms.js +9 -9
  280. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  281. package/dist/esm/debug/debug-vertex-array.js +19 -17
  282. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  283. package/dist/esm/features/check-glsl-extension.js +4 -4
  284. package/dist/esm/features/check-glsl-extension.js.map +1 -1
  285. package/dist/esm/features/check-old-ie.js.map +1 -1
  286. package/dist/esm/features/features.js +14 -13
  287. package/dist/esm/features/features.js.map +1 -1
  288. package/dist/esm/features/index.js.map +1 -1
  289. package/dist/esm/features/limits.js +25 -22
  290. package/dist/esm/features/limits.js.map +1 -1
  291. package/dist/esm/features/webgl-features-table.js +6 -6
  292. package/dist/esm/features/webgl-features-table.js.map +1 -1
  293. package/dist/esm/features/webgl-limits-table.js +43 -42
  294. package/dist/esm/features/webgl-limits-table.js.map +1 -1
  295. package/dist/esm/index.js +13 -15
  296. package/dist/esm/index.js.map +1 -1
  297. package/dist/esm/init.js +4 -23
  298. package/dist/esm/init.js.map +1 -1
  299. package/dist/esm/types.js +2 -0
  300. package/dist/esm/types.js.map +1 -0
  301. package/dist/esm/utils/array-utils-flat.js.map +1 -1
  302. package/dist/esm/utils/assert.js +1 -1
  303. package/dist/esm/utils/assert.js.map +1 -1
  304. package/dist/esm/utils/check-props.js +4 -4
  305. package/dist/esm/utils/check-props.js.map +1 -1
  306. package/dist/esm/utils/format-value.js +4 -4
  307. package/dist/esm/utils/format-value.js.map +1 -1
  308. package/dist/esm/utils/index.js +7 -0
  309. package/dist/esm/utils/index.js.map +1 -0
  310. package/dist/esm/utils/is-old-ie.js +1 -1
  311. package/dist/esm/utils/is-old-ie.js.map +1 -1
  312. package/dist/esm/utils/load-file.js +2 -2
  313. package/dist/esm/utils/load-file.js.map +1 -1
  314. package/dist/esm/utils/stub-methods.js +2 -3
  315. package/dist/esm/utils/stub-methods.js.map +1 -1
  316. package/dist/esm/utils/utils.js +1 -3
  317. package/dist/esm/utils/utils.js.map +1 -1
  318. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  319. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  320. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  321. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  322. package/dist/esm/webgl-utils/format-utils.js +16 -15
  323. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  324. package/dist/esm/webgl-utils/get-error.js +1 -1
  325. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  326. package/dist/esm/webgl-utils/index.js +5 -0
  327. package/dist/esm/webgl-utils/index.js.map +1 -0
  328. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  329. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  330. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  331. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  332. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  333. package/dist/esm/webgl-utils/typed-array-utils.js +19 -18
  334. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  335. package/dist/features/check-glsl-extension.d.ts +2 -0
  336. package/dist/features/check-glsl-extension.d.ts.map +1 -0
  337. package/dist/features/check-glsl-extension.js +27 -0
  338. package/dist/features/check-glsl-extension.js.map +1 -0
  339. package/dist/features/check-old-ie.d.ts +2 -0
  340. package/dist/features/check-old-ie.d.ts.map +1 -0
  341. package/dist/features/check-old-ie.js +8 -0
  342. package/dist/features/check-old-ie.js.map +1 -0
  343. package/dist/features/features.d.ts +6 -0
  344. package/dist/features/features.d.ts.map +1 -0
  345. package/dist/features/features.js +67 -0
  346. package/dist/features/features.js.map +1 -0
  347. package/dist/features/index.d.ts +5 -0
  348. package/dist/features/index.d.ts.map +1 -0
  349. package/dist/features/index.js +5 -0
  350. package/dist/features/index.js.map +1 -0
  351. package/dist/features/limits.d.ts +28 -0
  352. package/dist/features/limits.d.ts.map +1 -0
  353. package/dist/features/limits.js +55 -0
  354. package/dist/features/limits.js.map +1 -0
  355. package/dist/features/webgl-features-table.d.ts +30 -0
  356. package/dist/features/webgl-features-table.d.ts.map +1 -0
  357. package/dist/features/webgl-features-table.js +71 -0
  358. package/dist/features/webgl-features-table.js.map +1 -0
  359. package/dist/features/webgl-limits-table.d.ts +161 -0
  360. package/dist/features/webgl-limits-table.d.ts.map +1 -0
  361. package/dist/features/webgl-limits-table.js +161 -0
  362. package/dist/features/webgl-limits-table.js.map +1 -0
  363. package/dist/index.d.ts +33 -0
  364. package/dist/index.d.ts.map +1 -0
  365. package/dist/index.js +33 -0
  366. package/dist/index.js.map +1 -0
  367. package/dist/init.d.ts +5 -0
  368. package/dist/init.d.ts.map +1 -0
  369. package/dist/init.js +30 -0
  370. package/dist/init.js.map +1 -0
  371. package/dist/types.d.ts +9 -0
  372. package/dist/types.d.ts.map +1 -0
  373. package/dist/types.js +2 -0
  374. package/dist/types.js.map +1 -0
  375. package/dist/utils/array-utils-flat.d.ts +9 -0
  376. package/dist/utils/array-utils-flat.d.ts.map +1 -0
  377. package/dist/utils/array-utils-flat.js +39 -0
  378. package/dist/utils/array-utils-flat.js.map +1 -0
  379. package/dist/utils/assert.d.ts +2 -0
  380. package/dist/utils/assert.d.ts.map +1 -0
  381. package/dist/utils/assert.js +6 -0
  382. package/dist/utils/assert.js.map +1 -0
  383. package/dist/utils/check-props.d.ts +2 -0
  384. package/dist/utils/check-props.d.ts.map +1 -0
  385. package/dist/utils/check-props.js +38 -0
  386. package/dist/utils/check-props.js.map +1 -0
  387. package/dist/utils/format-value.d.ts +5 -0
  388. package/dist/utils/format-value.d.ts.map +1 -0
  389. package/dist/utils/format-value.js +50 -0
  390. package/dist/utils/format-value.js.map +1 -0
  391. package/dist/utils/index.d.ts +7 -0
  392. package/dist/utils/index.d.ts.map +1 -0
  393. package/dist/utils/index.js +7 -0
  394. package/dist/utils/index.js.map +1 -0
  395. package/dist/utils/is-old-ie.d.ts +4 -0
  396. package/dist/utils/is-old-ie.d.ts.map +1 -0
  397. package/dist/utils/is-old-ie.js +5 -0
  398. package/dist/utils/is-old-ie.js.map +1 -0
  399. package/dist/utils/load-file.d.ts +4 -0
  400. package/dist/utils/load-file.d.ts.map +1 -0
  401. package/dist/utils/load-file.js +30 -0
  402. package/dist/utils/load-file.js.map +1 -0
  403. package/dist/utils/stub-methods.d.ts +2 -0
  404. package/dist/utils/stub-methods.d.ts.map +1 -0
  405. package/dist/utils/stub-methods.js +16 -0
  406. package/dist/utils/stub-methods.js.map +1 -0
  407. package/dist/utils/utils.d.ts +15 -0
  408. package/dist/utils/utils.d.ts.map +1 -0
  409. package/dist/utils/utils.js +20 -0
  410. package/dist/utils/utils.js.map +1 -0
  411. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  412. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  413. package/dist/webgl-utils/attribute-utils.js +182 -0
  414. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  415. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  416. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  417. package/dist/webgl-utils/constants-to-keys.js +41 -0
  418. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  419. package/dist/webgl-utils/format-utils.d.ts +3 -0
  420. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  421. package/dist/webgl-utils/format-utils.js +45 -0
  422. package/dist/webgl-utils/format-utils.js.map +1 -0
  423. package/dist/webgl-utils/get-error.d.ts +3 -0
  424. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  425. package/dist/webgl-utils/get-error.js +41 -0
  426. package/dist/webgl-utils/get-error.js.map +1 -0
  427. package/dist/webgl-utils/index.d.ts +5 -0
  428. package/dist/webgl-utils/index.d.ts.map +1 -0
  429. package/dist/webgl-utils/index.js +5 -0
  430. package/dist/webgl-utils/index.js.map +1 -0
  431. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  432. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  433. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  434. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  435. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  436. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  437. package/dist/webgl-utils/request-animation-frame.js +7 -0
  438. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  439. package/dist/webgl-utils/texture-utils.d.ts +11 -0
  440. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  441. package/dist/webgl-utils/texture-utils.js +48 -0
  442. package/dist/webgl-utils/texture-utils.js.map +1 -0
  443. package/dist/webgl-utils/typed-array-utils.d.ts +36 -0
  444. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  445. package/dist/webgl-utils/typed-array-utils.js +108 -0
  446. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  447. package/package.json +9 -8
  448. package/src/bundle.ts +4 -0
  449. package/src/classes/accessor.js +3 -4
  450. package/src/classes/accessor.ts.disabled +159 -0
  451. package/src/classes/{clear.js → clear.ts} +13 -9
  452. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +113 -22
  453. package/src/classes/{framebuffer.js → framebuffer.ts} +355 -298
  454. package/src/classes/{program-configuration.js → program-configuration.ts} +18 -11
  455. package/src/classes/{program.js → program.ts} +56 -36
  456. package/src/classes/{query.js → query.ts} +28 -22
  457. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  458. package/src/classes/renderbuffer.ts +153 -0
  459. package/src/classes/{texture-2d.js → texture-2d.ts} +15 -5
  460. package/src/classes/{texture-3d.js → texture-3d.ts} +35 -10
  461. package/src/classes/{texture-cube.js → texture-cube.ts} +46 -28
  462. package/src/classes/{texture-formats.js → texture-formats.ts} +9 -1
  463. package/src/classes/{texture.js → texture.ts} +204 -37
  464. package/src/classes/{transform-feedback.js → transform-feedback.ts} +22 -14
  465. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  466. package/src/classes/{uniforms.js → uniforms.ts} +122 -70
  467. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +132 -107
  468. package/src/classes/{vertex-array.js → vertex-array.ts} +74 -54
  469. package/src/classes/{buffer.js → webgl-buffer.ts} +125 -51
  470. package/src/classes/{resource.js → webgl-resource.ts} +43 -36
  471. package/src/classes/webgl-shader.ts +200 -0
  472. package/src/context/gl-context.ts +31 -0
  473. package/src/context/luma-context-data.ts +27 -0
  474. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  475. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  476. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +7 -4
  477. package/src/features/{check-glsl-extension.js → check-glsl-extension.ts} +1 -1
  478. package/src/features/{check-old-ie.js → check-old-ie.ts} +0 -0
  479. package/src/features/{features.js → features.ts} +14 -13
  480. package/src/features/{index.js → index.ts} +0 -0
  481. package/src/features/{limits.js → limits.ts} +18 -17
  482. package/src/features/{webgl-features-table.js → webgl-features-table.ts} +0 -0
  483. package/src/features/{webgl-limits-table.js → webgl-limits-table.ts} +0 -0
  484. package/{dist/es5/index.d.ts → src/index.ts} +18 -16
  485. package/src/{init.js → init.ts} +1 -18
  486. package/{dist/es5/types.d.ts → src/types.ts} +0 -0
  487. package/src/utils/{array-utils-flat.js → array-utils-flat.ts} +0 -0
  488. package/src/utils/{assert.js → assert.ts} +1 -1
  489. package/src/utils/{check-props.js → check-props.ts} +0 -0
  490. package/src/utils/{format-value.js → format-value.ts} +2 -2
  491. package/src/utils/index.ts +6 -0
  492. package/src/utils/{is-old-ie.js → is-old-ie.ts} +1 -1
  493. package/src/utils/{load-file.js → load-file.ts} +3 -2
  494. package/src/utils/{stub-methods.js → stub-methods.ts} +1 -1
  495. package/src/utils/utils.ts +35 -0
  496. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  497. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  498. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  499. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  500. package/src/webgl-utils/index.ts +12 -0
  501. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  502. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  503. package/src/webgl-utils/texture-utils.js +2 -1
  504. package/dist/dist.js +0 -13555
  505. package/dist/dist.min.js +0 -1
  506. package/dist/es5/classes/buffer.d.ts +0 -84
  507. package/dist/es5/classes/buffer.js +0 -453
  508. package/dist/es5/classes/buffer.js.map +0 -1
  509. package/dist/es5/classes/clear.d.ts +0 -11
  510. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  511. package/dist/es5/classes/framebuffer.d.ts +0 -96
  512. package/dist/es5/classes/program-configuration.d.ts +0 -15
  513. package/dist/es5/classes/program.d.ts +0 -44
  514. package/dist/es5/classes/query.d.ts +0 -21
  515. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  516. package/dist/es5/classes/resource.d.ts +0 -47
  517. package/dist/es5/classes/resource.js +0 -308
  518. package/dist/es5/classes/resource.js.map +0 -1
  519. package/dist/es5/classes/shader.d.ts +0 -29
  520. package/dist/es5/classes/shader.js +0 -221
  521. package/dist/es5/classes/shader.js.map +0 -1
  522. package/dist/es5/classes/texture-2d.d.ts +0 -11
  523. package/dist/es5/classes/texture-3d.d.ts +0 -29
  524. package/dist/es5/classes/texture-cube.d.ts +0 -23
  525. package/dist/es5/classes/texture.d.ts +0 -80
  526. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  527. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  528. package/dist/es5/classes/uniforms.d.ts +0 -63
  529. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  530. package/dist/es5/classes/vertex-array.d.ts +0 -37
  531. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  532. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  533. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  534. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  535. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  536. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  537. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  538. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  539. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  540. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  541. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  542. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  543. package/dist/es5/glsl-utils/index.js +0 -48
  544. package/dist/es5/glsl-utils/index.js.map +0 -1
  545. package/dist/es5/init.d.ts +0 -12
  546. package/dist/es5/utils/assert.d.ts +0 -1
  547. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  548. package/dist/es5/utils/utils.d.ts +0 -13
  549. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  550. package/dist/esm/classes/buffer.d.ts +0 -84
  551. package/dist/esm/classes/buffer.js.map +0 -1
  552. package/dist/esm/classes/clear.d.ts +0 -11
  553. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  554. package/dist/esm/classes/framebuffer.d.ts +0 -96
  555. package/dist/esm/classes/program-configuration.d.ts +0 -15
  556. package/dist/esm/classes/program.d.ts +0 -44
  557. package/dist/esm/classes/query.d.ts +0 -21
  558. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  559. package/dist/esm/classes/resource.d.ts +0 -47
  560. package/dist/esm/classes/resource.js.map +0 -1
  561. package/dist/esm/classes/shader.d.ts +0 -29
  562. package/dist/esm/classes/shader.js +0 -138
  563. package/dist/esm/classes/shader.js.map +0 -1
  564. package/dist/esm/classes/texture-2d.d.ts +0 -11
  565. package/dist/esm/classes/texture-3d.d.ts +0 -29
  566. package/dist/esm/classes/texture-cube.d.ts +0 -23
  567. package/dist/esm/classes/texture.d.ts +0 -80
  568. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  569. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  570. package/dist/esm/classes/uniforms.d.ts +0 -63
  571. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  572. package/dist/esm/classes/vertex-array.d.ts +0 -37
  573. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  574. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  575. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  576. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  577. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  578. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  579. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  580. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  581. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  582. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  583. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  584. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  585. package/dist/esm/glsl-utils/index.js +0 -5
  586. package/dist/esm/glsl-utils/index.js.map +0 -1
  587. package/dist/esm/index.d.ts +0 -71
  588. package/dist/esm/init.d.ts +0 -12
  589. package/dist/esm/types.d.ts +0 -8
  590. package/dist/esm/utils/assert.d.ts +0 -1
  591. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  592. package/dist/esm/utils/utils.d.ts +0 -13
  593. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  594. package/src/bundle.js +0 -8
  595. package/src/classes/buffer.d.ts +0 -84
  596. package/src/classes/clear.d.ts +0 -11
  597. package/src/classes/copy-and-blit.d.ts +0 -101
  598. package/src/classes/framebuffer.d.ts +0 -96
  599. package/src/classes/program-configuration.d.ts +0 -15
  600. package/src/classes/program.d.ts +0 -44
  601. package/src/classes/query.d.ts +0 -21
  602. package/src/classes/renderbuffer.d.ts +0 -34
  603. package/src/classes/renderbuffer.js +0 -105
  604. package/src/classes/resource.d.ts +0 -47
  605. package/src/classes/shader.d.ts +0 -29
  606. package/src/classes/shader.js +0 -147
  607. package/src/classes/texture-2d.d.ts +0 -11
  608. package/src/classes/texture-3d.d.ts +0 -29
  609. package/src/classes/texture-cube.d.ts +0 -23
  610. package/src/classes/texture.d.ts +0 -80
  611. package/src/classes/transform-feedback.d.ts +0 -16
  612. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  613. package/src/classes/uniforms.d.ts +0 -63
  614. package/src/classes/vertex-array-object.d.ts +0 -25
  615. package/src/classes/vertex-array.d.ts +0 -37
  616. package/src/debug/debug-program-configuration.d.ts +0 -1
  617. package/src/debug/debug-uniforms.d.ts +0 -11
  618. package/src/debug/debug-vertex-array.d.ts +0 -1
  619. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  620. package/src/glsl-utils/format-glsl-error.js +0 -107
  621. package/src/glsl-utils/get-shader-name.js +0 -7
  622. package/src/glsl-utils/get-shader-type-name.js +0 -13
  623. package/src/glsl-utils/get-shader-version.js +0 -12
  624. package/src/glsl-utils/index.js +0 -8
  625. package/src/index.d.ts +0 -71
  626. package/src/index.js +0 -70
  627. package/src/init.d.ts +0 -12
  628. package/src/types.d.ts +0 -8
  629. package/src/utils/assert.d.ts +0 -1
  630. package/src/utils/is-old-ie.d.ts +0 -1
  631. package/src/utils/utils.d.ts +0 -13
  632. package/src/utils/utils.js +0 -36
  633. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/vertex-array-object.js"],"names":["ERR_ELEMENTS","VertexArrayObject","gl","options","constantAttributeZero","luma","defaultVertexArray","handle","isDefaultArray","MAX_ATTRIBUTES","getParameter","location","array","constructor","Float32Array","_setConstantFloatArray","Int32Array","_setConstantIntArray","Uint32Array","_setConstantUintArray","opts","id","program","Object","assign","buffer","bufferValue","gl2","initialize","seal","delete","props","setProps","elementBuffer","target","bind","bindBuffer","accessor","setElementBuffer","size","type","stride","offset","normalized","integer","divisor","Number","vertexAttribIPointer","vertexAttribPointer","enableVertexAttribArray","vertexAttribDivisor","enable","disablingAttributeZero","isSupported","disableVertexAttribArray","elementCount","value","constantValue","_normalizeConstantArrayValue","byteLength","length","updateNeeded","Buffer","reallocate","_compareConstantArrayValues","typedArray","source","start","count","subData","arrayValue","Array","isArray","v1","v2","i","createVertexArray","deleteVertexArray","elements","bindVertexArray","pname","isFinite","getVertexAttribOffset","getVertexAttrib","getMaxAttributes","vertexAttrib1fv","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttribI1iv","vertexAttribI2iv","vertexAttribI3iv","vertexAttribI4iv","vertexAttribI1uiv","vertexAttribI2uiv","vertexAttribI3uiv","vertexAttribI4uiv","Resource"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport Resource from './resource';\nimport Buffer from './buffer';\nimport {isWebGL2} from '@luma.gl/gltools';\nimport {getScratchArray, fillArray} from '../utils/array-utils-flat';\nimport {assert} from '../utils/assert';\nimport {getBrowser} from 'probe.gl';\n\nconst ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';\n\nexport default class VertexArrayObject extends Resource {\n static isSupported(gl, options = {}) {\n // Attribute 0 can not be disable on most desktop OpenGL based browsers\n // and on iOS Safari browser.\n if (options.constantAttributeZero) {\n return isWebGL2(gl) || getBrowser() === 'Chrome';\n }\n\n // Whether additional objects can be created\n return true;\n }\n\n // Returns the global (null) vertex array object. Exists even when no extension available\n // TODO(Tarek): VAOs are now polyfilled. Deprecate this in 9.0\n static getDefaultArray(gl) {\n gl.luma = gl.luma || {};\n if (!gl.luma.defaultVertexArray) {\n gl.luma.defaultVertexArray = new VertexArrayObject(gl, {handle: null, isDefaultArray: true});\n }\n return gl.luma.defaultVertexArray;\n }\n\n static getMaxAttributes(gl) {\n // TODO - should be cached per context\n // @ts-ignore\n VertexArrayObject.MAX_ATTRIBUTES =\n // @ts-ignore\n VertexArrayObject.MAX_ATTRIBUTES || gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n // @ts-ignore\n return VertexArrayObject.MAX_ATTRIBUTES;\n }\n\n // Note: Constants are stored globally on the WebGL context, not the VAO\n // So they need to be updated before every render\n // TODO - use known type (in configuration or passed in) to allow non-typed arrays?\n // TODO - remember/cache values to avoid setting them unnecessarily?\n static setConstant(gl, location, array) {\n switch (array.constructor) {\n case Float32Array:\n VertexArrayObject._setConstantFloatArray(gl, location, array);\n break;\n case Int32Array:\n VertexArrayObject._setConstantIntArray(gl, location, array);\n break;\n case Uint32Array:\n VertexArrayObject._setConstantUintArray(gl, location, array);\n break;\n default:\n assert(false);\n }\n }\n\n // Create a VertexArray\n constructor(gl, opts = {}) {\n // Use program's id if program but no id is supplied\n const id = opts.id || (opts.program && opts.program.id);\n super(gl, Object.assign({}, opts, {id}));\n\n this.buffer = null;\n this.bufferValue = null;\n this.isDefaultArray = opts.isDefaultArray || false;\n\n /** @type {WebGL2RenderingContext} */\n this.gl2 = gl;\n\n this.initialize(opts);\n\n Object.seal(this);\n }\n\n delete() {\n super.delete();\n if (this.buffer) {\n this.buffer.delete();\n }\n return this;\n }\n\n get MAX_ATTRIBUTES() {\n return VertexArrayObject.getMaxAttributes(this.gl);\n }\n\n initialize(props = {}) {\n return this.setProps(props);\n }\n\n setProps(props) {\n // TODO: decide which props should be supported\n return this;\n }\n\n // Set (bind) an elements buffer, for indexed rendering.\n // Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported\n setElementBuffer(elementBuffer = null, opts = {}) {\n assert(!elementBuffer || elementBuffer.target === GL.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);\n\n // The GL.ELEMENT_ARRAY_BUFFER_BINDING is stored on the VertexArrayObject...\n this.bind(() => {\n this.gl.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, elementBuffer ? elementBuffer.handle : null);\n });\n\n return this;\n }\n\n // Set a location in vertex attributes array to a bufferk, enables the location, sets divisor\n setBuffer(location, buffer, accessor) {\n // Check target\n if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {\n return this.setElementBuffer(buffer, accessor);\n }\n\n const {size, type, stride, offset, normalized, integer, divisor} = accessor;\n\n const {gl, gl2} = this;\n location = Number(location);\n\n this.bind(() => {\n // A non-zero buffer object must be bound to the GL_ARRAY_BUFFER target\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer.handle);\n\n // WebGL2 supports *integer* data formats, i.e. GPU will see integer values\n if (integer) {\n assert(isWebGL2(gl));\n gl2.vertexAttribIPointer(location, size, type, stride, offset);\n } else {\n // Attaches ARRAY_BUFFER with specified buffer format to location\n gl.vertexAttribPointer(location, size, type, normalized, stride, offset);\n }\n gl.enableVertexAttribArray(location);\n gl2.vertexAttribDivisor(location, divisor || 0);\n\n // NOTE We don't unbind buffer here, typically another buffer will be bound just after\n });\n\n return this;\n }\n\n // Enabling an attribute location makes it reference the currently bound buffer\n // Disabling an attribute location makes it reference the global constant value\n // TODO - handle single values for size 1 attributes?\n // TODO - convert classic arrays based on known type?\n enable(location, enable = true) {\n // Attribute 0 cannot be disabled in most desktop OpenGL based browsers\n const disablingAttributeZero =\n !enable &&\n location === 0 &&\n !VertexArrayObject.isSupported(this.gl, {constantAttributeZero: true});\n\n if (!disablingAttributeZero) {\n location = Number(location);\n this.bind(\n () =>\n enable\n ? this.gl.enableVertexAttribArray(location)\n : this.gl.disableVertexAttribArray(location)\n );\n }\n return this;\n }\n\n // Provide a means to create a buffer that is equivalent to a constant.\n // NOTE: Desktop OpenGL cannot disable attribute 0.\n // https://stackoverflow.com/questions/20305231/webgl-warning-attribute-0-is-disabled-\n // this-has-significant-performance-penalt\n getConstantBuffer(elementCount, value) {\n // Create buffer only when needed, and reuse it (avoids inflating buffer creation statistics)\n\n const constantValue = this._normalizeConstantArrayValue(value);\n\n const byteLength = constantValue.byteLength * elementCount;\n const length = constantValue.length * elementCount;\n\n let updateNeeded = !this.buffer;\n\n this.buffer = this.buffer || new Buffer(this.gl, byteLength);\n updateNeeded = updateNeeded || this.buffer.reallocate(byteLength);\n\n // Reallocate and update contents if needed\n updateNeeded =\n updateNeeded || !this._compareConstantArrayValues(constantValue, this.bufferValue);\n\n if (updateNeeded) {\n // Create a typed array that is big enough, and fill it with the required data\n const typedArray = getScratchArray(value.constructor, length);\n fillArray({target: typedArray, source: constantValue, start: 0, count: length});\n this.buffer.subData(typedArray);\n this.bufferValue = value;\n }\n\n return this.buffer;\n }\n\n // PRIVATE\n\n // TODO - convert Arrays based on known type? (read type from accessor, don't assume Float32Array)\n // TODO - handle single values for size 1 attributes?\n _normalizeConstantArrayValue(arrayValue) {\n if (Array.isArray(arrayValue)) {\n return new Float32Array(arrayValue);\n }\n return arrayValue;\n }\n\n _compareConstantArrayValues(v1, v2) {\n if (!v1 || !v2 || v1.length !== v2.length || v1.constructor !== v2.constructor) {\n return false;\n }\n for (let i = 0; i < v1.length; ++i) {\n if (v1[i] !== v2[i]) {\n return false;\n }\n }\n return true;\n }\n\n static _setConstantFloatArray(gl, location, array) {\n switch (array.length) {\n case 1:\n gl.vertexAttrib1fv(location, array);\n break;\n case 2:\n gl.vertexAttrib2fv(location, array);\n break;\n case 3:\n gl.vertexAttrib3fv(location, array);\n break;\n case 4:\n gl.vertexAttrib4fv(location, array);\n break;\n default:\n assert(false);\n }\n }\n\n static _setConstantIntArray(gl, location, array) {\n assert(isWebGL2(gl));\n switch (array.length) {\n case 1:\n gl.vertexAttribI1iv(location, array);\n break;\n case 2:\n gl.vertexAttribI2iv(location, array);\n break;\n case 3:\n gl.vertexAttribI3iv(location, array);\n break;\n case 4:\n gl.vertexAttribI4iv(location, array);\n break;\n default:\n assert(false);\n }\n }\n\n static _setConstantUintArray(gl, location, array) {\n assert(isWebGL2(gl));\n switch (array.length) {\n case 1:\n gl.vertexAttribI1uiv(location, array);\n break;\n case 2:\n gl.vertexAttribI2uiv(location, array);\n break;\n case 3:\n gl.vertexAttribI3uiv(location, array);\n break;\n case 4:\n gl.vertexAttribI4uiv(location, array);\n break;\n default:\n assert(false);\n }\n }\n\n // RESOURCE IMPLEMENTATION\n\n _createHandle() {\n /** @type {WebGL2RenderingContext} */\n // @ts-ignore\n const gl2 = this.gl;\n return gl2.createVertexArray();\n }\n\n _deleteHandle(handle) {\n this.gl2.deleteVertexArray(handle);\n // @ts-ignore\n return [this.elements];\n // return [this.elements, ...this.buffers];\n }\n\n _bindHandle(handle) {\n this.gl2.bindVertexArray(handle);\n }\n\n // Generic getter for information about a vertex attribute at a given position\n _getParameter(pname, {location}) {\n assert(Number.isFinite(location));\n return this.bind(() => {\n switch (pname) {\n case GL.VERTEX_ATTRIB_ARRAY_POINTER:\n return this.gl.getVertexAttribOffset(location, pname);\n default:\n return this.gl.getVertexAttrib(location, pname);\n }\n });\n }\n}\n"],"file":"vertex-array-object.js"}
1
+ {"version":3,"sources":["../../../src/classes/vertex-array-object.ts"],"names":["ERR_ELEMENTS","VertexArrayObject","WebGLResource","isSupported","gl","options","constantAttributeZero","getDefaultArray","lumaContextData","defaultVertexArray","handle","isDefaultArray","getMaxAttributes","MAX_ATTRIBUTES","getParameter","MAX_VERTEX_ATTRIBS","setConstant","location","array","constructor","Float32Array","_setConstantFloatArray","Int32Array","_setConstantIntArray","Uint32Array","_setConstantUintArray","opts","id","program","buffer","bufferValue","Object","seal","delete","setElementBuffer","elementBuffer","target","GL","ELEMENT_ARRAY_BUFFER","bind","bindBuffer","setBuffer","accessor","size","type","stride","offset","normalized","integer","divisor","gl2","Number","ARRAY_BUFFER","vertexAttribIPointer","vertexAttribPointer","enableVertexAttribArray","vertexAttribDivisor","enable","disablingAttributeZero","disableVertexAttribArray","getConstantBuffer","elementCount","value","constantValue","_normalizeConstantArrayValue","byteLength","length","updateNeeded","Buffer","reallocate","_compareConstantArrayValues","typedArray","source","start","count","subData","initialize","props","setProps","arrayValue","Array","isArray","v1","v2","i","vertexAttrib1fv","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttribI4iv","vertexAttribI4uiv","_createHandle","createVertexArray","_deleteHandle","deleteVertexArray","elements","_bindHandle","bindVertexArray","_getParameter","pname","isFinite","VERTEX_ATTRIB_ARRAY_POINTER","getVertexAttribOffset","getVertexAttrib"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {assertWebGL2Context, isWebGL2} from '@luma.gl/gltools';\nimport {getBrowser} from 'probe.gl';\nimport Program from './program';\nimport WebGLResource, {ResourceProps} from './webgl-resource';\nimport Buffer from './webgl-buffer';\nimport {getScratchArray, fillArray} from '../utils/array-utils-flat';\nimport {assert} from '../utils';\nimport {getLumaContextData} from '../context/luma-context-data';\n\nconst ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';\n\n/**\n * VertexArrayObject properties\n * @param constantAttributeZero Attribute 0 can not be disable on most desktop OpenGL based browsers\n * and on iOS Safari browser.\n */\nexport type VertexArrayObjectProps = ResourceProps & {\n constantAttributeZero?: boolean;\n program?: Program;\n isDefaultArray?: boolean;\n};\n\nexport default class VertexArrayObject extends WebGLResource<VertexArrayObjectProps> {\n private static MAX_ATTRIBUTES: number;\n\n static isSupported(gl: WebGLRenderingContext, options?: VertexArrayObjectProps): boolean {\n if (options?.constantAttributeZero) {\n return isWebGL2(gl) || getBrowser() === 'Chrome';\n }\n\n // Whether additional objects can be created\n return true;\n }\n\n /**\n * Returns the global (null) vertex array object. Exists even when no extension available.\n * @todo (Tarek): VAOs are now polyfilled. Deprecate this in 9.0\n */\n static getDefaultArray(gl: WebGLRenderingContext): VertexArrayObject {\n const lumaContextData = getLumaContextData(gl);\n lumaContextData.defaultVertexArray = lumaContextData.defaultVertexArray || \n new VertexArrayObject(gl, {handle: null, isDefaultArray: true});\n return lumaContextData.defaultVertexArray;\n }\n\n /** Get maximum number of attributes in a vertex array */\n static getMaxAttributes(gl: WebGLRenderingContext): number {\n // TODO - should be cached per context\n // @ts-ignore\n VertexArrayObject.MAX_ATTRIBUTES =\n // @ts-ignore\n VertexArrayObject.MAX_ATTRIBUTES || gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n // @ts-ignore\n return VertexArrayObject.MAX_ATTRIBUTES;\n }\n\n /**\n * Set an attribute to a constant value\n * @param gl \n * @param location \n * @param array \n * \n * @note Constants are stored globally on the WebGL context, not the VAO\n * so they need to be updated before every render\n * @todo - use known type (in configuration or passed in) to allow non-typed arrays?\n * @todo - remember/cache values to avoid setting them unnecessarily?\n */\n static setConstant(gl: WebGLRenderingContext, location: any, array: any): void {\n switch (array.constructor) {\n case Float32Array:\n VertexArrayObject._setConstantFloatArray(gl, location, array);\n break;\n case Int32Array:\n VertexArrayObject._setConstantIntArray(assertWebGL2Context(gl), location, array);\n break;\n case Uint32Array:\n VertexArrayObject._setConstantUintArray(assertWebGL2Context(gl), location, array);\n break;\n default:\n assert(false);\n }\n }\n\n private buffer: Buffer | null = null;\n private bufferValue = null;\n private isDefaultArray: boolean = false;\n\n // Create a VertexArray\n constructor(gl: WebGLRenderingContext, opts?: VertexArrayObjectProps) {\n // Use program's id if program but no id is supplied\n super(gl, {...opts, id: opts?.id || (opts?.program && opts?.program.id)}, {} as any);\n\n this.buffer = null;\n this.bufferValue = null;\n this.isDefaultArray = opts?.isDefaultArray || false;\n\n Object.seal(this);\n }\n\n delete(): this {\n super.delete();\n if (this.buffer) {\n this.buffer.delete();\n }\n return this;\n }\n\n get MAX_ATTRIBUTES(): number {\n return VertexArrayObject.getMaxAttributes(this.gl);\n }\n\n // Set (bind) an elements buffer, for indexed rendering.\n // Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported\n setElementBuffer(elementBuffer = null, opts = {}) {\n assert(!elementBuffer || elementBuffer.target === GL.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);\n\n // The GL.ELEMENT_ARRAY_BUFFER_BINDING is stored on the VertexArrayObject...\n this.bind(() => {\n this.gl.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, elementBuffer ? elementBuffer.handle : null);\n });\n\n return this;\n }\n\n /** Set a location in vertex attributes array to a buffer, enables the location, sets divisor */\n setBuffer(location, buffer, accessor): this {\n // Check target\n if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {\n return this.setElementBuffer(buffer, accessor);\n }\n\n const {size, type, stride, offset, normalized, integer, divisor} = accessor;\n\n const {gl, gl2} = this;\n location = Number(location);\n\n this.bind(() => {\n // A non-zero buffer object must be bound to the GL_ARRAY_BUFFER target\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer.handle);\n\n // WebGL2 supports *integer* data formats, i.e. GPU will see integer values\n if (integer) {\n assert(isWebGL2(gl));\n gl2.vertexAttribIPointer(location, size, type, stride, offset);\n } else {\n // Attaches ARRAY_BUFFER with specified buffer format to location\n gl.vertexAttribPointer(location, size, type, normalized, stride, offset);\n }\n gl.enableVertexAttribArray(location);\n gl2.vertexAttribDivisor(location, divisor || 0);\n\n // NOTE We don't unbind buffer here, typically another buffer will be bound just after\n });\n\n return this;\n }\n\n /**\n * Enabling an attribute location makes it reference the currently bound buffer\n * Disabling an attribute location makes it reference the global constant value\n * TODO - handle single values for size 1 attributes?\n * TODO - convert classic arrays based on known type?\n */ \n enable(location, enable = true): this {\n // Attribute 0 cannot be disabled in most desktop OpenGL based browsers\n const disablingAttributeZero =\n !enable &&\n location === 0 &&\n !VertexArrayObject.isSupported(this.gl, {constantAttributeZero: true});\n\n if (!disablingAttributeZero) {\n location = Number(location);\n this.bind(() =>\n enable\n ? this.gl.enableVertexAttribArray(location)\n : this.gl.disableVertexAttribArray(location)\n );\n }\n return this;\n }\n\n /**\n * Provide a means to create a buffer that is equivalent to a constant.\n * NOTE: Desktop OpenGL cannot disable attribute 0.\n * https://stackoverflow.com/questions/20305231/webgl-warning-attribute-0-is-disabled-\n * this-has-significant-performance-penalty\n */ \n getConstantBuffer(elementCount: number, value): Buffer {\n // Create buffer only when needed, and reuse it (avoids inflating buffer creation statistics)\n\n const constantValue = this._normalizeConstantArrayValue(value);\n\n const byteLength = constantValue.byteLength * elementCount;\n const length = constantValue.length * elementCount;\n\n let updateNeeded = !this.buffer;\n\n this.buffer = this.buffer || new Buffer(this.gl, byteLength);\n updateNeeded = updateNeeded || this.buffer.reallocate(byteLength);\n\n // Reallocate and update contents if needed\n updateNeeded =\n updateNeeded || !this._compareConstantArrayValues(constantValue, this.bufferValue);\n\n if (updateNeeded) {\n // Create a typed array that is big enough, and fill it with the required data\n const typedArray = getScratchArray(value.constructor, length);\n fillArray({target: typedArray, source: constantValue, start: 0, count: length});\n this.buffer.subData(typedArray);\n this.bufferValue = value;\n }\n\n return this.buffer;\n }\n\n // DEPRECATED\n\n /** @deprecated this function has no effect */\n initialize(props?: VertexArrayObjectProps): this {\n return this.setProps(props);\n }\n\n /** @deprecated this function is not implemented */\n setProps(props: VertexArrayObjectProps): this {\n // TODO: decide which props should be supported\n return this;\n } \n\n // PRIVATE\n\n // TODO - convert Arrays based on known type? (read type from accessor, don't assume Float32Array)\n // TODO - handle single values for size 1 attributes?\n _normalizeConstantArrayValue(arrayValue) {\n if (Array.isArray(arrayValue)) {\n return new Float32Array(arrayValue);\n }\n return arrayValue;\n }\n\n _compareConstantArrayValues(v1, v2): boolean {\n if (!v1 || !v2 || v1.length !== v2.length || v1.constructor !== v2.constructor) {\n return false;\n }\n for (let i = 0; i < v1.length; ++i) {\n if (v1[i] !== v2[i]) {\n return false;\n }\n }\n return true;\n }\n\n static _setConstantFloatArray(gl: WebGLRenderingContext, location, array): void {\n switch (array.length) {\n case 1:\n gl.vertexAttrib1fv(location, array);\n break;\n case 2:\n gl.vertexAttrib2fv(location, array);\n break;\n case 3:\n gl.vertexAttrib3fv(location, array);\n break;\n case 4:\n gl.vertexAttrib4fv(location, array);\n break;\n default:\n assert(false);\n }\n }\n\n static _setConstantIntArray(gl: WebGL2RenderingContext, location, array) {\n assert(isWebGL2(gl));\n gl.vertexAttribI4iv(location, array);\n // switch (array.length) {\n // case 1:\n // gl.vertexAttribI1iv(location, array);\n // break;\n // case 2:\n // gl.vertexAttribI2iv(location, array);\n // break;\n // case 3:\n // gl.vertexAttribI3iv(location, array);\n // break;\n // case 4:\n // break;\n // default:\n // assert(false);\n // }\n }\n\n static _setConstantUintArray(gl: WebGL2RenderingContext, location, array) {\n assert(isWebGL2(gl));\n gl.vertexAttribI4uiv(location, array);\n // switch (array.length) {\n // case 1:\n // gl.vertexAttribI1uiv(location, array);\n // break;\n // case 2:\n // gl.vertexAttribI2uiv(location, array);\n // break;\n // case 3:\n // gl.vertexAttribI3uiv(location, array);\n // break;\n // case 4:\n // gl.vertexAttribI4uiv(location, array);\n // break;\n // default:\n // assert(false);\n // }\n }\n\n // RESOURCE IMPLEMENTATION\n\n _createHandle() {\n return this.gl2.createVertexArray();\n }\n\n _deleteHandle(): void {\n this.gl2.deleteVertexArray(this.handle);\n // @ts-ignore\n return [this.elements];\n // return [this.elements, ...this.buffers];\n }\n\n _bindHandle(handle): void {\n this.gl2.bindVertexArray(handle);\n }\n\n // Generic getter for information about a vertex attribute at a given position\n _getParameter(pname: number, {location}) {\n assert(Number.isFinite(location));\n return this.bind(() => {\n switch (pname) {\n case GL.VERTEX_ATTRIB_ARRAY_POINTER:\n return this.gl.getVertexAttribOffset(location, pname);\n default:\n return this.gl.getVertexAttrib(location, pname);\n }\n });\n }\n}\n"],"file":"vertex-array-object.js"}