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

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 (701) 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 +76 -0
  5. package/dist/_deprecated/context-api.js.map +1 -0
  6. package/dist/{features/webgl-features-table.d.ts → _deprecated/features.d.ts} +4 -7
  7. package/dist/_deprecated/features.d.ts.map +1 -0
  8. package/dist/_deprecated/features.js +111 -0
  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 +110 -0
  35. package/dist/adapter/webgl-device.d.ts.map +1 -0
  36. package/dist/adapter/webgl-device.js +207 -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/classes/accessor.js +2 -2
  43. package/dist/classes/accessor.js.map +1 -1
  44. package/dist/classes/accessor.ts.disabled +1 -1
  45. package/dist/classes/clear.d.ts +3 -2
  46. package/dist/classes/clear.d.ts.map +1 -1
  47. package/dist/classes/clear.js +7 -4
  48. package/dist/classes/clear.js.map +1 -1
  49. package/dist/classes/copy-and-blit.d.ts +18 -1
  50. package/dist/classes/copy-and-blit.d.ts.map +1 -1
  51. package/dist/classes/copy-and-blit.js +30 -25
  52. package/dist/classes/copy-and-blit.js.map +1 -1
  53. package/dist/classes/framebuffer.d.ts +10 -1
  54. package/dist/classes/framebuffer.d.ts.map +1 -1
  55. package/dist/classes/framebuffer.js +15 -15
  56. package/dist/classes/framebuffer.js.map +1 -1
  57. package/dist/classes/program-configuration.d.ts +14 -17
  58. package/dist/classes/program-configuration.d.ts.map +1 -1
  59. package/dist/classes/program-configuration.js +10 -97
  60. package/dist/classes/program-configuration.js.map +1 -1
  61. package/dist/classes/program.d.ts +25 -20
  62. package/dist/classes/program.d.ts.map +1 -1
  63. package/dist/classes/program.js +39 -28
  64. package/dist/classes/program.js.map +1 -1
  65. package/dist/classes/query.d.ts.map +1 -1
  66. package/dist/classes/query.js +6 -5
  67. package/dist/classes/query.js.map +1 -1
  68. package/dist/classes/renderbuffer-formats.js +1 -1
  69. package/dist/classes/renderbuffer-formats.js.map +1 -1
  70. package/dist/classes/renderbuffer.d.ts.map +1 -1
  71. package/dist/classes/renderbuffer.js +4 -3
  72. package/dist/classes/renderbuffer.js.map +1 -1
  73. package/dist/classes/{webgl-shader.d.ts → shader.d.ts} +4 -13
  74. package/dist/classes/shader.d.ts.map +1 -0
  75. package/dist/classes/{webgl-shader.js → shader.js} +7 -79
  76. package/dist/classes/shader.js.map +1 -0
  77. package/dist/classes/texture-2d.d.ts +4 -3
  78. package/dist/classes/texture-2d.d.ts.map +1 -1
  79. package/dist/classes/texture-2d.js +5 -8
  80. package/dist/classes/texture-2d.js.map +1 -1
  81. package/dist/classes/texture-3d.d.ts +3 -2
  82. package/dist/classes/texture-3d.d.ts.map +1 -1
  83. package/dist/classes/texture-3d.js +15 -6
  84. package/dist/classes/texture-3d.js.map +1 -1
  85. package/dist/classes/texture-cube.d.ts +2 -1
  86. package/dist/classes/texture-cube.d.ts.map +1 -1
  87. package/dist/classes/texture-cube.js +3 -4
  88. package/dist/classes/texture-cube.js.map +1 -1
  89. package/dist/classes/texture-formats.js +1 -1
  90. package/dist/classes/texture-formats.js.map +1 -1
  91. package/dist/classes/texture.d.ts +14 -9
  92. package/dist/classes/texture.d.ts.map +1 -1
  93. package/dist/classes/texture.js +19 -18
  94. package/dist/classes/texture.js.map +1 -1
  95. package/dist/classes/transform-feedback.d.ts.map +1 -1
  96. package/dist/classes/transform-feedback.js +5 -4
  97. package/dist/classes/transform-feedback.js.map +1 -1
  98. package/dist/classes/uniform-buffer-layout.js +1 -1
  99. package/dist/classes/uniform-buffer-layout.js.map +1 -1
  100. package/dist/classes/uniforms.d.ts +0 -1
  101. package/dist/classes/uniforms.d.ts.map +1 -1
  102. package/dist/classes/uniforms.js +1 -2
  103. package/dist/classes/uniforms.js.map +1 -1
  104. package/dist/classes/vertex-array-object.d.ts +7 -6
  105. package/dist/classes/vertex-array-object.d.ts.map +1 -1
  106. package/dist/classes/vertex-array-object.js +11 -12
  107. package/dist/classes/vertex-array-object.js.map +1 -1
  108. package/dist/classes/vertex-array.d.ts +14 -14
  109. package/dist/classes/vertex-array.d.ts.map +1 -1
  110. package/dist/classes/vertex-array.js +3 -4
  111. package/dist/classes/vertex-array.js.map +1 -1
  112. package/dist/classes/webgl-buffer.d.ts +2 -0
  113. package/dist/classes/webgl-buffer.d.ts.map +1 -1
  114. package/dist/classes/webgl-buffer.js +8 -5
  115. package/dist/classes/webgl-buffer.js.map +1 -1
  116. package/dist/classes/webgl-resource.d.ts +6 -4
  117. package/dist/classes/webgl-resource.d.ts.map +1 -1
  118. package/dist/classes/webgl-resource.js +12 -8
  119. package/dist/classes/webgl-resource.js.map +1 -1
  120. package/dist/context/context/context-state.d.ts +18 -0
  121. package/dist/context/context/context-state.d.ts.map +1 -0
  122. package/dist/context/context/context-state.js +26 -0
  123. package/dist/context/context/context-state.js.map +1 -0
  124. package/dist/context/context/create-context.d.ts +40 -0
  125. package/dist/context/context/create-context.d.ts.map +1 -0
  126. package/dist/context/context/create-context.js +37 -0
  127. package/dist/context/context/create-context.js.map +1 -0
  128. package/dist/context/context/device-pixels.d.ts +25 -0
  129. package/dist/context/context/device-pixels.d.ts.map +1 -0
  130. package/dist/context/context/device-pixels.js +98 -0
  131. package/dist/context/context/device-pixels.js.map +1 -0
  132. package/dist/context/context/get-canvas.d.ts +13 -0
  133. package/dist/context/context/get-canvas.d.ts.map +1 -0
  134. package/dist/context/context/get-canvas.js +31 -0
  135. package/dist/context/context/get-canvas.js.map +1 -0
  136. package/dist/context/context/resize-context.d.ts +20 -0
  137. package/dist/context/context/resize-context.d.ts.map +1 -0
  138. package/dist/context/context/resize-context.js +15 -0
  139. package/dist/context/context/resize-context.js.map +1 -0
  140. package/dist/context/context/webgl-checks.d.ts +13 -0
  141. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  142. package/dist/context/context/webgl-checks.js +34 -0
  143. package/dist/context/context/webgl-checks.js.map +1 -0
  144. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  145. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  146. package/dist/context/parameters/unified-parameter-api.js +65 -0
  147. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  148. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  149. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  150. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  151. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  152. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  153. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  154. package/dist/context/parameters/webgl-parameters.js +2 -0
  155. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  156. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  157. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  158. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  159. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  160. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  161. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  162. package/dist/context/polyfill/polyfill-context.js +91 -0
  163. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  164. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  165. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  166. package/dist/context/polyfill/polyfill-table.js +160 -0
  167. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  168. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  169. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  170. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  171. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  172. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  173. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  174. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  175. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  176. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  177. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  178. package/dist/context/state-tracker/track-context-state.js +169 -0
  179. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  180. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  181. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  182. package/dist/context/state-tracker/with-parameters.js +36 -0
  183. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  184. package/dist/debug/debug-uniforms.js +1 -1
  185. package/dist/debug/debug-uniforms.js.map +1 -1
  186. package/dist/debug/debug-vertex-array.js +2 -2
  187. package/dist/debug/debug-vertex-array.js.map +1 -1
  188. package/dist/es5/_deprecated/context-api.js +116 -0
  189. package/dist/es5/_deprecated/context-api.js.map +1 -0
  190. package/dist/es5/_deprecated/features.js +118 -0
  191. package/dist/es5/_deprecated/features.js.map +1 -0
  192. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  193. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  194. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  195. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  196. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  197. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  198. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  199. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  200. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  201. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  202. package/dist/es5/adapter/device-helpers/is-old-ie.js +16 -0
  203. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  204. package/dist/es5/adapter/webgl-device.js +279 -0
  205. package/dist/es5/adapter/webgl-device.js.map +1 -0
  206. package/dist/es5/adapter/webgl-shader.js +155 -0
  207. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  208. package/dist/es5/bundle.js +1 -1
  209. package/dist/es5/bundle.js.map +1 -1
  210. package/dist/es5/classes/accessor.js +104 -74
  211. package/dist/es5/classes/accessor.js.map +1 -1
  212. package/dist/es5/classes/accessor.ts.disabled +1 -1
  213. package/dist/es5/classes/clear.js +55 -34
  214. package/dist/es5/classes/clear.js.map +1 -1
  215. package/dist/es5/classes/copy-and-blit.js +175 -156
  216. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  217. package/dist/es5/classes/framebuffer.js +647 -518
  218. package/dist/es5/classes/framebuffer.js.map +1 -1
  219. package/dist/es5/classes/program-configuration.js +78 -128
  220. package/dist/es5/classes/program-configuration.js.map +1 -1
  221. package/dist/es5/classes/program.js +379 -292
  222. package/dist/es5/classes/program.js.map +1 -1
  223. package/dist/es5/classes/query.js +172 -107
  224. package/dist/es5/classes/query.js.map +1 -1
  225. package/dist/es5/classes/renderbuffer-formats.js +126 -164
  226. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  227. package/dist/es5/classes/renderbuffer.js +151 -98
  228. package/dist/es5/classes/renderbuffer.js.map +1 -1
  229. package/dist/es5/classes/shader.js +195 -0
  230. package/dist/es5/classes/shader.js.map +1 -0
  231. package/dist/es5/classes/texture-2d.js +44 -17
  232. package/dist/es5/classes/texture-2d.js.map +1 -1
  233. package/dist/es5/classes/texture-3d.js +107 -48
  234. package/dist/es5/classes/texture-3d.js.map +1 -1
  235. package/dist/es5/classes/texture-cube.js +169 -110
  236. package/dist/es5/classes/texture-cube.js.map +1 -1
  237. package/dist/es5/classes/texture-formats.js +42 -71
  238. package/dist/es5/classes/texture-formats.js.map +1 -1
  239. package/dist/es5/classes/texture.js +780 -665
  240. package/dist/es5/classes/texture.js.map +1 -1
  241. package/dist/es5/classes/transform-feedback.js +206 -150
  242. package/dist/es5/classes/transform-feedback.js.map +1 -1
  243. package/dist/es5/classes/uniform-buffer-layout.js +103 -89
  244. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  245. package/dist/es5/classes/uniforms.js +39 -80
  246. package/dist/es5/classes/uniforms.js.map +1 -1
  247. package/dist/es5/classes/vertex-array-object.js +268 -209
  248. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  249. package/dist/es5/classes/vertex-array.js +348 -303
  250. package/dist/es5/classes/vertex-array.js.map +1 -1
  251. package/dist/es5/classes/webgl-buffer.js +374 -303
  252. package/dist/es5/classes/webgl-buffer.js.map +1 -1
  253. package/dist/es5/classes/webgl-resource.js +231 -161
  254. package/dist/es5/classes/webgl-resource.js.map +1 -1
  255. package/dist/es5/context/context/context-state.js +31 -0
  256. package/dist/es5/context/context/context-state.js.map +1 -0
  257. package/dist/es5/context/context/create-context.js +57 -0
  258. package/dist/es5/context/context/create-context.js.map +1 -0
  259. package/dist/es5/context/context/device-pixels.js +115 -0
  260. package/dist/es5/context/context/device-pixels.js.map +1 -0
  261. package/dist/es5/context/context/get-canvas.js +40 -0
  262. package/dist/es5/context/context/get-canvas.js.map +1 -0
  263. package/dist/es5/context/context/resize-context.js +23 -0
  264. package/dist/es5/context/context/resize-context.js.map +1 -0
  265. package/dist/es5/context/context/webgl-checks.js +54 -0
  266. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  267. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  268. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  269. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  270. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  271. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  272. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  273. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  274. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  275. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  276. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  277. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  278. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  279. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  280. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  281. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  282. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  283. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  284. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  285. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  286. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  287. package/dist/es5/debug/debug-program-configuration.js +48 -20
  288. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  289. package/dist/es5/debug/debug-uniforms.js +110 -70
  290. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  291. package/dist/es5/debug/debug-vertex-array.js +49 -54
  292. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  293. package/dist/es5/helpers/get-program-bindings.js +274 -0
  294. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  295. package/dist/es5/helpers/program-bindings.js +2 -0
  296. package/dist/es5/helpers/program-bindings.js.map +1 -0
  297. package/dist/es5/index.js +268 -192
  298. package/dist/es5/index.js.map +1 -1
  299. package/dist/es5/init.js +18 -14
  300. package/dist/es5/init.js.map +1 -1
  301. package/dist/es5/types/accessor.d.ts +29 -0
  302. package/dist/es5/webgl-utils/attribute-utils.js +74 -87
  303. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  304. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  305. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  306. package/dist/es5/webgl-utils/format-utils.js +4 -4
  307. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  308. package/dist/es5/webgl-utils/get-error.js +18 -18
  309. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  310. package/dist/es5/webgl-utils/index.js +10 -10
  311. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +53 -25
  312. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -1
  313. package/dist/es5/webgl-utils/texture-utils.js +32 -36
  314. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  315. package/dist/es5/webgl-utils/typed-array-utils.js +33 -32
  316. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  317. package/dist/esm/_deprecated/context-api.js +76 -0
  318. package/dist/esm/_deprecated/context-api.js.map +1 -0
  319. package/dist/esm/_deprecated/features.js +111 -0
  320. package/dist/esm/_deprecated/features.js.map +1 -0
  321. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  322. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  323. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  324. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  325. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  326. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  327. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  328. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  329. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  330. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  331. package/dist/{features/check-old-ie.js → esm/adapter/device-helpers/is-old-ie.js} +3 -3
  332. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  333. package/dist/esm/adapter/webgl-device.js +207 -0
  334. package/dist/esm/adapter/webgl-device.js.map +1 -0
  335. package/dist/esm/adapter/webgl-shader.js +82 -0
  336. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  337. package/dist/esm/classes/accessor.js +2 -2
  338. package/dist/esm/classes/accessor.js.map +1 -1
  339. package/dist/esm/classes/accessor.ts.disabled +1 -1
  340. package/dist/esm/classes/clear.js +7 -4
  341. package/dist/esm/classes/clear.js.map +1 -1
  342. package/dist/esm/classes/copy-and-blit.js +30 -25
  343. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  344. package/dist/esm/classes/framebuffer.js +15 -15
  345. package/dist/esm/classes/framebuffer.js.map +1 -1
  346. package/dist/esm/classes/program-configuration.js +10 -97
  347. package/dist/esm/classes/program-configuration.js.map +1 -1
  348. package/dist/esm/classes/program.js +39 -28
  349. package/dist/esm/classes/program.js.map +1 -1
  350. package/dist/esm/classes/query.js +6 -5
  351. package/dist/esm/classes/query.js.map +1 -1
  352. package/dist/esm/classes/renderbuffer-formats.js +1 -1
  353. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  354. package/dist/esm/classes/renderbuffer.js +4 -3
  355. package/dist/esm/classes/renderbuffer.js.map +1 -1
  356. package/dist/esm/classes/{webgl-shader.js → shader.js} +7 -79
  357. package/dist/esm/classes/shader.js.map +1 -0
  358. package/dist/esm/classes/texture-2d.js +5 -8
  359. package/dist/esm/classes/texture-2d.js.map +1 -1
  360. package/dist/esm/classes/texture-3d.js +15 -6
  361. package/dist/esm/classes/texture-3d.js.map +1 -1
  362. package/dist/esm/classes/texture-cube.js +3 -4
  363. package/dist/esm/classes/texture-cube.js.map +1 -1
  364. package/dist/esm/classes/texture-formats.js +1 -1
  365. package/dist/esm/classes/texture-formats.js.map +1 -1
  366. package/dist/esm/classes/texture.js +19 -18
  367. package/dist/esm/classes/texture.js.map +1 -1
  368. package/dist/esm/classes/transform-feedback.js +5 -4
  369. package/dist/esm/classes/transform-feedback.js.map +1 -1
  370. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  371. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  372. package/dist/esm/classes/uniforms.js +1 -2
  373. package/dist/esm/classes/uniforms.js.map +1 -1
  374. package/dist/esm/classes/vertex-array-object.js +11 -12
  375. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  376. package/dist/esm/classes/vertex-array.js +3 -4
  377. package/dist/esm/classes/vertex-array.js.map +1 -1
  378. package/dist/esm/classes/webgl-buffer.js +8 -5
  379. package/dist/esm/classes/webgl-buffer.js.map +1 -1
  380. package/dist/esm/classes/webgl-resource.js +12 -8
  381. package/dist/esm/classes/webgl-resource.js.map +1 -1
  382. package/dist/esm/context/context/context-state.js +26 -0
  383. package/dist/esm/context/context/context-state.js.map +1 -0
  384. package/dist/esm/context/context/create-context.js +37 -0
  385. package/dist/esm/context/context/create-context.js.map +1 -0
  386. package/dist/esm/context/context/device-pixels.js +98 -0
  387. package/dist/esm/context/context/device-pixels.js.map +1 -0
  388. package/dist/esm/context/context/get-canvas.js +31 -0
  389. package/dist/esm/context/context/get-canvas.js.map +1 -0
  390. package/dist/esm/context/context/resize-context.js +15 -0
  391. package/dist/esm/context/context/resize-context.js.map +1 -0
  392. package/dist/esm/context/context/webgl-checks.js +34 -0
  393. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  394. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  395. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  396. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  397. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  398. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  399. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  400. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  401. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  402. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  403. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  404. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  405. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  406. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  407. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  408. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  409. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  410. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  411. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  412. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  413. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  414. package/dist/esm/debug/debug-uniforms.js +1 -1
  415. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  416. package/dist/esm/debug/debug-vertex-array.js +2 -2
  417. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  418. package/dist/esm/helpers/get-program-bindings.js +228 -0
  419. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  420. package/dist/esm/helpers/program-bindings.js +2 -0
  421. package/dist/esm/helpers/program-bindings.js.map +1 -0
  422. package/dist/esm/index.js +26 -20
  423. package/dist/esm/index.js.map +1 -1
  424. package/dist/esm/init.js +11 -8
  425. package/dist/esm/init.js.map +1 -1
  426. package/dist/esm/types/accessor.d.ts +29 -0
  427. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  428. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  429. package/dist/esm/webgl-utils/constants-to-keys.js +1 -1
  430. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  431. package/dist/esm/webgl-utils/format-utils.js +1 -1
  432. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  433. package/dist/esm/webgl-utils/texture-utils.js +2 -2
  434. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  435. package/dist/esm/webgl-utils/typed-array-utils.js +22 -18
  436. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  437. package/dist/helpers/get-program-bindings.d.ts +8 -0
  438. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  439. package/dist/helpers/get-program-bindings.js +228 -0
  440. package/dist/helpers/get-program-bindings.js.map +1 -0
  441. package/dist/helpers/program-bindings.d.ts +41 -0
  442. package/dist/helpers/program-bindings.d.ts.map +1 -0
  443. package/dist/helpers/program-bindings.js +2 -0
  444. package/dist/helpers/program-bindings.js.map +1 -0
  445. package/dist/index.d.ts +41 -20
  446. package/dist/index.d.ts.map +1 -1
  447. package/dist/index.js +26 -20
  448. package/dist/index.js.map +1 -1
  449. package/dist/init.d.ts.map +1 -1
  450. package/dist/init.js +11 -8
  451. package/dist/init.js.map +1 -1
  452. package/dist/types/accessor.d.ts +29 -0
  453. package/dist/webgl-utils/attribute-utils.d.ts +1 -1
  454. package/dist/webgl-utils/attribute-utils.js +1 -1
  455. package/dist/webgl-utils/attribute-utils.js.map +1 -1
  456. package/dist/webgl-utils/constants-to-keys.js +1 -1
  457. package/dist/webgl-utils/constants-to-keys.js.map +1 -1
  458. package/dist/webgl-utils/format-utils.d.ts +2 -2
  459. package/dist/webgl-utils/format-utils.js +1 -1
  460. package/dist/webgl-utils/format-utils.js.map +1 -1
  461. package/dist/webgl-utils/texture-utils.d.ts +12 -8
  462. package/dist/webgl-utils/texture-utils.d.ts.map +1 -1
  463. package/dist/webgl-utils/texture-utils.js +2 -2
  464. package/dist/webgl-utils/texture-utils.js.map +1 -1
  465. package/dist/webgl-utils/typed-array-utils.d.ts +39 -32
  466. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -1
  467. package/dist/webgl-utils/typed-array-utils.js +22 -18
  468. package/dist/webgl-utils/typed-array-utils.js.map +1 -1
  469. package/package.json +5 -6
  470. package/src/.DS_Store +0 -0
  471. package/src/_deprecated/context-api.ts +146 -0
  472. package/src/_deprecated/features.ts +159 -0
  473. package/src/adapter/converters/set-device-parameters.ts +182 -0
  474. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  475. package/src/adapter/device-helpers/device-features.ts +227 -0
  476. package/src/adapter/device-helpers/device-limits.ts +150 -0
  477. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  478. package/src/{features/check-old-ie.ts → adapter/device-helpers/is-old-ie.ts} +3 -3
  479. package/src/adapter/webgl-device.ts +399 -0
  480. package/src/adapter/webgl-shader.ts +84 -0
  481. package/src/classes/accessor.js +2 -2
  482. package/src/classes/accessor.ts.disabled +1 -1
  483. package/src/classes/clear.ts +9 -4
  484. package/src/classes/copy-and-blit.ts +49 -52
  485. package/src/classes/framebuffer.ts +38 -35
  486. package/src/classes/program-configuration.ts +28 -81
  487. package/src/classes/program.ts +89 -75
  488. package/src/classes/query.ts +6 -6
  489. package/src/classes/renderbuffer-formats.ts +1 -1
  490. package/src/classes/renderbuffer.ts +5 -4
  491. package/src/classes/{webgl-shader.ts → shader.ts} +7 -78
  492. package/src/classes/texture-2d.ts +6 -11
  493. package/src/classes/texture-3d.ts +16 -11
  494. package/src/classes/texture-cube.ts +7 -7
  495. package/src/classes/texture-formats.ts +1 -1
  496. package/src/classes/texture.ts +39 -40
  497. package/src/classes/transform-feedback.ts +14 -13
  498. package/src/classes/uniform-buffer-layout.ts +1 -1
  499. package/src/classes/uniforms.ts +4 -10
  500. package/src/classes/vertex-array-object.ts +17 -20
  501. package/src/classes/vertex-array.ts +16 -11
  502. package/src/classes/webgl-buffer.ts +7 -5
  503. package/src/classes/webgl-resource.ts +20 -18
  504. package/src/context/context/context-state.ts +39 -0
  505. package/src/context/context/create-context.ts +83 -0
  506. package/src/context/context/device-pixels.ts +147 -0
  507. package/src/context/context/get-canvas.ts +37 -0
  508. package/src/context/context/resize-context.ts +37 -0
  509. package/src/context/context/webgl-checks.ts +49 -0
  510. package/src/context/parameters/unified-parameter-api.ts +128 -0
  511. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  512. package/src/context/parameters/webgl-parameters.ts +197 -0
  513. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  514. package/src/context/polyfill/polyfill-context.ts +98 -0
  515. package/src/context/polyfill/polyfill-table.ts +162 -0
  516. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  517. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  518. package/src/context/state-tracker/track-context-state.ts +250 -0
  519. package/src/context/state-tracker/with-parameters.ts +50 -0
  520. package/src/debug/debug-uniforms.ts +1 -1
  521. package/src/debug/debug-vertex-array.ts +2 -4
  522. package/src/helpers/get-program-bindings.ts +244 -0
  523. package/src/helpers/program-bindings.ts +46 -0
  524. package/src/index.ts +94 -23
  525. package/src/init.ts +12 -9
  526. package/src/types/accessor.d.ts +29 -0
  527. package/src/types.ts +1 -1
  528. package/src/webgl-utils/attribute-utils.ts +1 -1
  529. package/src/webgl-utils/constants-to-keys.ts +1 -1
  530. package/src/webgl-utils/format-utils.ts +1 -1
  531. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +13 -10
  532. package/src/webgl-utils/{typed-array-utils.js → typed-array-utils.ts} +59 -16
  533. package/dist/classes/webgl-shader.d.ts.map +0 -1
  534. package/dist/classes/webgl-shader.js.map +0 -1
  535. package/dist/context/gl-context.d.ts +0 -15
  536. package/dist/context/gl-context.d.ts.map +0 -1
  537. package/dist/context/gl-context.js +0 -32
  538. package/dist/context/gl-context.js.map +0 -1
  539. package/dist/context/luma-context-data.d.ts +0 -31
  540. package/dist/context/luma-context-data.d.ts.map +0 -1
  541. package/dist/context/luma-context-data.js +0 -5
  542. package/dist/context/luma-context-data.js.map +0 -1
  543. package/dist/es5/classes/webgl-shader.js +0 -213
  544. package/dist/es5/classes/webgl-shader.js.map +0 -1
  545. package/dist/es5/context/gl-context.js +0 -46
  546. package/dist/es5/context/gl-context.js.map +0 -1
  547. package/dist/es5/context/luma-context-data.js +0 -12
  548. package/dist/es5/context/luma-context-data.js.map +0 -1
  549. package/dist/es5/features/check-glsl-extension.js +0 -40
  550. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  551. package/dist/es5/features/check-old-ie.js +0 -15
  552. package/dist/es5/features/check-old-ie.js.map +0 -1
  553. package/dist/es5/features/features.js +0 -85
  554. package/dist/es5/features/features.js.map +0 -1
  555. package/dist/es5/features/index.js +0 -64
  556. package/dist/es5/features/index.js.map +0 -1
  557. package/dist/es5/features/limits.js +0 -72
  558. package/dist/es5/features/limits.js.map +0 -1
  559. package/dist/es5/features/webgl-features-table.js +0 -84
  560. package/dist/es5/features/webgl-features-table.js.map +0 -1
  561. package/dist/es5/features/webgl-limits-table.js +0 -172
  562. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  563. package/dist/es5/utils/array-utils-flat.js +0 -50
  564. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  565. package/dist/es5/utils/assert.js +0 -13
  566. package/dist/es5/utils/assert.js.map +0 -1
  567. package/dist/es5/utils/check-props.js +0 -50
  568. package/dist/es5/utils/check-props.js.map +0 -1
  569. package/dist/es5/utils/format-value.js +0 -57
  570. package/dist/es5/utils/format-value.js.map +0 -1
  571. package/dist/es5/utils/index.js +0 -68
  572. package/dist/es5/utils/index.js.map +0 -1
  573. package/dist/es5/utils/is-old-ie.js +0 -13
  574. package/dist/es5/utils/is-old-ie.js.map +0 -1
  575. package/dist/es5/utils/load-file.js +0 -43
  576. package/dist/es5/utils/load-file.js.map +0 -1
  577. package/dist/es5/utils/stub-methods.js +0 -25
  578. package/dist/es5/utils/stub-methods.js.map +0 -1
  579. package/dist/es5/utils/utils.js +0 -31
  580. package/dist/es5/utils/utils.js.map +0 -1
  581. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  582. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  583. package/dist/esm/classes/webgl-shader.js.map +0 -1
  584. package/dist/esm/context/gl-context.js +0 -32
  585. package/dist/esm/context/gl-context.js.map +0 -1
  586. package/dist/esm/context/luma-context-data.js +0 -5
  587. package/dist/esm/context/luma-context-data.js.map +0 -1
  588. package/dist/esm/features/check-glsl-extension.js +0 -27
  589. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  590. package/dist/esm/features/check-old-ie.js.map +0 -1
  591. package/dist/esm/features/features.js +0 -67
  592. package/dist/esm/features/features.js.map +0 -1
  593. package/dist/esm/features/index.js +0 -5
  594. package/dist/esm/features/index.js.map +0 -1
  595. package/dist/esm/features/limits.js +0 -55
  596. package/dist/esm/features/limits.js.map +0 -1
  597. package/dist/esm/features/webgl-features-table.js +0 -71
  598. package/dist/esm/features/webgl-features-table.js.map +0 -1
  599. package/dist/esm/features/webgl-limits-table.js +0 -161
  600. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  601. package/dist/esm/utils/array-utils-flat.js +0 -39
  602. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  603. package/dist/esm/utils/assert.js +0 -6
  604. package/dist/esm/utils/assert.js.map +0 -1
  605. package/dist/esm/utils/check-props.js +0 -38
  606. package/dist/esm/utils/check-props.js.map +0 -1
  607. package/dist/esm/utils/format-value.js +0 -50
  608. package/dist/esm/utils/format-value.js.map +0 -1
  609. package/dist/esm/utils/index.js +0 -7
  610. package/dist/esm/utils/index.js.map +0 -1
  611. package/dist/esm/utils/is-old-ie.js +0 -5
  612. package/dist/esm/utils/is-old-ie.js.map +0 -1
  613. package/dist/esm/utils/load-file.js +0 -30
  614. package/dist/esm/utils/load-file.js.map +0 -1
  615. package/dist/esm/utils/stub-methods.js +0 -16
  616. package/dist/esm/utils/stub-methods.js.map +0 -1
  617. package/dist/esm/utils/utils.js +0 -20
  618. package/dist/esm/utils/utils.js.map +0 -1
  619. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  620. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  621. package/dist/features/check-glsl-extension.d.ts +0 -2
  622. package/dist/features/check-glsl-extension.d.ts.map +0 -1
  623. package/dist/features/check-glsl-extension.js +0 -27
  624. package/dist/features/check-glsl-extension.js.map +0 -1
  625. package/dist/features/check-old-ie.d.ts +0 -2
  626. package/dist/features/check-old-ie.d.ts.map +0 -1
  627. package/dist/features/check-old-ie.js.map +0 -1
  628. package/dist/features/features.d.ts +0 -6
  629. package/dist/features/features.d.ts.map +0 -1
  630. package/dist/features/features.js +0 -67
  631. package/dist/features/features.js.map +0 -1
  632. package/dist/features/index.d.ts +0 -5
  633. package/dist/features/index.d.ts.map +0 -1
  634. package/dist/features/index.js +0 -5
  635. package/dist/features/index.js.map +0 -1
  636. package/dist/features/limits.d.ts +0 -28
  637. package/dist/features/limits.d.ts.map +0 -1
  638. package/dist/features/limits.js +0 -55
  639. package/dist/features/limits.js.map +0 -1
  640. package/dist/features/webgl-features-table.d.ts.map +0 -1
  641. package/dist/features/webgl-features-table.js +0 -71
  642. package/dist/features/webgl-features-table.js.map +0 -1
  643. package/dist/features/webgl-limits-table.d.ts +0 -161
  644. package/dist/features/webgl-limits-table.d.ts.map +0 -1
  645. package/dist/features/webgl-limits-table.js +0 -161
  646. package/dist/features/webgl-limits-table.js.map +0 -1
  647. package/dist/utils/array-utils-flat.d.ts +0 -9
  648. package/dist/utils/array-utils-flat.d.ts.map +0 -1
  649. package/dist/utils/array-utils-flat.js +0 -39
  650. package/dist/utils/array-utils-flat.js.map +0 -1
  651. package/dist/utils/assert.d.ts +0 -2
  652. package/dist/utils/assert.d.ts.map +0 -1
  653. package/dist/utils/assert.js +0 -6
  654. package/dist/utils/assert.js.map +0 -1
  655. package/dist/utils/check-props.d.ts +0 -2
  656. package/dist/utils/check-props.d.ts.map +0 -1
  657. package/dist/utils/check-props.js +0 -38
  658. package/dist/utils/check-props.js.map +0 -1
  659. package/dist/utils/format-value.d.ts +0 -5
  660. package/dist/utils/format-value.d.ts.map +0 -1
  661. package/dist/utils/format-value.js +0 -50
  662. package/dist/utils/format-value.js.map +0 -1
  663. package/dist/utils/index.d.ts +0 -7
  664. package/dist/utils/index.d.ts.map +0 -1
  665. package/dist/utils/index.js +0 -7
  666. package/dist/utils/index.js.map +0 -1
  667. package/dist/utils/is-old-ie.d.ts +0 -4
  668. package/dist/utils/is-old-ie.d.ts.map +0 -1
  669. package/dist/utils/is-old-ie.js +0 -5
  670. package/dist/utils/is-old-ie.js.map +0 -1
  671. package/dist/utils/load-file.d.ts +0 -4
  672. package/dist/utils/load-file.d.ts.map +0 -1
  673. package/dist/utils/load-file.js +0 -30
  674. package/dist/utils/load-file.js.map +0 -1
  675. package/dist/utils/stub-methods.d.ts +0 -2
  676. package/dist/utils/stub-methods.d.ts.map +0 -1
  677. package/dist/utils/stub-methods.js +0 -16
  678. package/dist/utils/stub-methods.js.map +0 -1
  679. package/dist/utils/utils.d.ts +0 -15
  680. package/dist/utils/utils.d.ts.map +0 -1
  681. package/dist/utils/utils.js +0 -20
  682. package/dist/utils/utils.js.map +0 -1
  683. package/src/context/gl-context.ts +0 -31
  684. package/src/context/luma-context-data.ts +0 -27
  685. package/src/features/check-glsl-extension.ts +0 -34
  686. package/src/features/features.ts +0 -80
  687. package/src/features/index.ts +0 -5
  688. package/src/features/limits.ts +0 -66
  689. package/src/features/webgl-features-table.ts +0 -104
  690. package/src/features/webgl-limits-table.ts +0 -51
  691. package/src/utils/array-utils-flat.ts +0 -56
  692. package/src/utils/assert.ts +0 -7
  693. package/src/utils/check-props.ts +0 -68
  694. package/src/utils/format-value.ts +0 -37
  695. package/src/utils/index.ts +0 -6
  696. package/src/utils/is-old-ie.ts +0 -6
  697. package/src/utils/load-file.ts +0 -40
  698. package/src/utils/stub-methods.ts +0 -20
  699. package/src/utils/utils.ts +0 -35
  700. package/src/webgl-utils/texture-utils.d.ts +0 -11
  701. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -7,25 +7,32 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
10
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
15
 
12
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
16
+ var _api = require("@luma.gl/api");
13
17
 
14
- var _gltools = require("@luma.gl/gltools");
18
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
15
19
 
16
- var _accessor = _interopRequireDefault(require("./accessor"));
20
+ var _accessor2 = _interopRequireDefault(require("./accessor"));
17
21
 
18
22
  var _webglBuffer = _interopRequireDefault(require("./webgl-buffer"));
19
23
 
20
24
  var _vertexArrayObject = _interopRequireDefault(require("./vertex-array-object"));
21
25
 
22
- var _utils = require("../utils");
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
23
27
 
24
- const ERR_ATTRIBUTE_TYPE = 'VertexArray: attributes must be Buffers or constants (i.e. typed array)';
25
- const MULTI_LOCATION_ATTRIBUTE_REGEXP = /^(.+)__LOCATION_([0-9]+)$/;
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26
29
 
27
- class VertexArray {
28
- constructor(gl, props) {
30
+ var ERR_ATTRIBUTE_TYPE = 'VertexArray: attributes must be Buffers or constants (i.e. typed array)';
31
+ var MULTI_LOCATION_ATTRIBUTE_REGEXP = /^(.+)__LOCATION_([0-9]+)$/;
32
+
33
+ var VertexArray = function () {
34
+ function VertexArray(gl, props) {
35
+ (0, _classCallCheck2.default)(this, VertexArray);
29
36
  (0, _defineProperty2.default)(this, "id", void 0);
30
37
  (0, _defineProperty2.default)(this, "gl", void 0);
31
38
  (0, _defineProperty2.default)(this, "attributes", {});
@@ -39,7 +46,7 @@ class VertexArray {
39
46
  (0, _defineProperty2.default)(this, "drawParams", null);
40
47
  (0, _defineProperty2.default)(this, "buffer", null);
41
48
  (0, _defineProperty2.default)(this, "bindOnUse", false);
42
- const id = (props === null || props === void 0 ? void 0 : props.id) || (props === null || props === void 0 ? void 0 : props.program) && (props === null || props === void 0 ? void 0 : props.program.id);
49
+ var id = (props === null || props === void 0 ? void 0 : props.id) || (props === null || props === void 0 ? void 0 : props.program) && (props === null || props === void 0 ? void 0 : props.program.id);
43
50
  this.vertexArrayObject = new _vertexArrayObject.default(gl);
44
51
  this.id = id;
45
52
  this.gl = gl;
@@ -48,373 +55,411 @@ class VertexArray {
48
55
  Object.seal(this);
49
56
  }
50
57
 
51
- delete() {
52
- if (this.buffer) {
53
- this.buffer.delete();
54
- }
55
-
56
- this.vertexArrayObject.delete();
57
- }
58
-
59
- initialize(props) {
60
- this.reset();
61
- this.configuration = null;
62
- this.bindOnUse = false;
63
- return this.setProps(props || {});
64
- }
65
-
66
- reset() {
67
- this.elements = null;
68
- this.elementsAccessor = null;
69
- const {
70
- MAX_ATTRIBUTES
71
- } = this.vertexArrayObject;
72
- this.values = new Array(MAX_ATTRIBUTES).fill(null);
73
- this.accessors = new Array(MAX_ATTRIBUTES).fill(null);
74
- this.unused = {};
75
- this.drawParams = null;
76
- return this;
77
- }
78
-
79
- setProps(props) {
80
- if ('program' in props) {
81
- this.configuration = props.program && props.program.configuration;
82
- }
83
-
84
- if ('configuration' in props) {
85
- this.configuration = props.configuration;
86
- }
58
+ (0, _createClass2.default)(VertexArray, [{
59
+ key: "delete",
60
+ value: function _delete() {
61
+ if (this.buffer) {
62
+ this.buffer.delete();
63
+ }
87
64
 
88
- if ('attributes' in props) {
89
- this.setAttributes(props.attributes);
65
+ this.vertexArrayObject.delete();
90
66
  }
91
-
92
- if ('elements' in props) {
93
- this.setElementBuffer(props.elements);
67
+ }, {
68
+ key: "initialize",
69
+ value: function initialize(props) {
70
+ this.reset();
71
+ this.configuration = null;
72
+ this.bindOnUse = false;
73
+ return this.setProps(props || {});
94
74
  }
95
-
96
- if ('bindOnUse' in props) {
97
- props = props.bindOnUse;
75
+ }, {
76
+ key: "reset",
77
+ value: function reset() {
78
+ this.elements = null;
79
+ this.elementsAccessor = null;
80
+ var MAX_ATTRIBUTES = this.vertexArrayObject.MAX_ATTRIBUTES;
81
+ this.values = new Array(MAX_ATTRIBUTES).fill(null);
82
+ this.accessors = new Array(MAX_ATTRIBUTES).fill(null);
83
+ this.unused = {};
84
+ this.drawParams = null;
85
+ return this;
98
86
  }
87
+ }, {
88
+ key: "setProps",
89
+ value: function setProps(props) {
90
+ if ('program' in props) {
91
+ this.configuration = props.program && props.program.configuration;
92
+ }
99
93
 
100
- return this;
101
- }
102
-
103
- clearDrawParams() {
104
- this.drawParams = null;
105
- }
106
-
107
- getDrawParams() {
108
- this.drawParams = this.drawParams || this._updateDrawParams();
109
- return this.drawParams;
110
- }
111
-
112
- setAttributes(attributes) {
113
- Object.assign(this.attributes, attributes);
114
- this.vertexArrayObject.bind(() => {
115
- for (const locationOrName in attributes) {
116
- const value = attributes[locationOrName];
94
+ if ('configuration' in props) {
95
+ this.configuration = props.configuration;
96
+ }
117
97
 
118
- this._setAttribute(locationOrName, value);
98
+ if ('attributes' in props) {
99
+ this.setAttributes(props.attributes);
119
100
  }
120
101
 
121
- this.gl.bindBuffer(_constants.default.ARRAY_BUFFER, null);
122
- });
123
- return this;
124
- }
102
+ if ('elements' in props) {
103
+ this.setElementBuffer(props.elements);
104
+ }
125
105
 
126
- setElementBuffer(elementBuffer = null, accessor = {}) {
127
- this.elements = elementBuffer;
128
- this.elementsAccessor = accessor;
129
- this.clearDrawParams();
130
- this.vertexArrayObject.setElementBuffer(elementBuffer, accessor);
131
- return this;
132
- }
106
+ if ('bindOnUse' in props) {
107
+ props = props.bindOnUse;
108
+ }
133
109
 
134
- setBuffer(locationOrName, buffer, appAccessor = {}) {
135
- if (buffer.target === _constants.default.ELEMENT_ARRAY_BUFFER) {
136
- this.setElementBuffer(buffer, appAccessor);
137
110
  return this;
138
111
  }
139
-
140
- const {
141
- location,
142
- accessor
143
- } = this._resolveLocationAndAccessor(locationOrName, buffer, buffer.accessor, appAccessor);
144
-
145
- if (location >= 0) {
146
- this.values[location] = buffer;
147
- this.accessors[location] = accessor;
148
- this.clearDrawParams();
149
- this.vertexArrayObject.setBuffer(location, buffer, accessor);
112
+ }, {
113
+ key: "clearDrawParams",
114
+ value: function clearDrawParams() {
115
+ this.drawParams = null;
116
+ }
117
+ }, {
118
+ key: "getDrawParams",
119
+ value: function getDrawParams() {
120
+ this.drawParams = this.drawParams || this._updateDrawParams();
121
+ return this.drawParams;
150
122
  }
123
+ }, {
124
+ key: "setAttributes",
125
+ value: function setAttributes(attributes) {
126
+ var _this = this;
151
127
 
152
- return this;
153
- }
128
+ Object.assign(this.attributes, attributes);
129
+ this.vertexArrayObject.bind(function () {
130
+ for (var _locationOrName in attributes) {
131
+ var _value = attributes[_locationOrName];
154
132
 
155
- setConstant(locationOrName, arrayValue, appAccessor = {}) {
156
- const {
157
- location,
158
- accessor
159
- } = this._resolveLocationAndAccessor(locationOrName, arrayValue, {
160
- size: arrayValue.length,
161
- ...appAccessor
162
- });
163
-
164
- if (location >= 0) {
165
- arrayValue = this.vertexArrayObject._normalizeConstantArrayValue(arrayValue);
166
- this.values[location] = arrayValue;
167
- this.accessors[location] = accessor;
133
+ _this._setAttribute(_locationOrName, _value);
134
+ }
135
+
136
+ _this.gl.bindBuffer(_constants.default.ARRAY_BUFFER, null);
137
+ });
138
+ return this;
139
+ }
140
+ }, {
141
+ key: "setElementBuffer",
142
+ value: function setElementBuffer() {
143
+ var elementBuffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
144
+ var accessor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
145
+ this.elements = elementBuffer;
146
+ this.elementsAccessor = accessor;
168
147
  this.clearDrawParams();
169
- this.vertexArrayObject.enable(location, false);
148
+ this.vertexArrayObject.setElementBuffer(elementBuffer, accessor);
149
+ return this;
170
150
  }
171
-
172
- return this;
173
- }
174
-
175
- unbindBuffers() {
176
- this.vertexArrayObject.bind(() => {
177
- if (this.elements) {
178
- this.vertexArrayObject.setElementBuffer(null);
151
+ }, {
152
+ key: "setBuffer",
153
+ value: function setBuffer(locationOrName, buffer) {
154
+ var appAccessor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
155
+
156
+ if (buffer.target === _constants.default.ELEMENT_ARRAY_BUFFER) {
157
+ this.setElementBuffer(buffer, appAccessor);
158
+ return this;
179
159
  }
180
160
 
181
- this.buffer = this.buffer || new _webglBuffer.default(this.gl, {
182
- accessor: {
183
- size: 4
184
- }
185
- });
161
+ var _this$_resolveLocatio = this._resolveLocationAndAccessor(locationOrName, buffer, buffer.accessor, appAccessor),
162
+ location = _this$_resolveLocatio.location,
163
+ accessor = _this$_resolveLocatio.accessor;
186
164
 
187
- for (let location = 0; location < this.vertexArrayObject.MAX_ATTRIBUTES; location++) {
188
- if (this.values[location] instanceof _webglBuffer.default) {
189
- this.gl.disableVertexAttribArray(location);
190
- this.gl.bindBuffer(_constants.default.ARRAY_BUFFER, this.buffer.handle);
191
- this.gl.vertexAttribPointer(location, 1, _constants.default.FLOAT, false, 0, 0);
192
- }
165
+ if (location >= 0) {
166
+ this.values[location] = buffer;
167
+ this.accessors[location] = accessor;
168
+ this.clearDrawParams();
169
+ this.vertexArrayObject.setBuffer(location, buffer, accessor);
193
170
  }
194
- });
195
- return this;
196
- }
197
171
 
198
- bindBuffers() {
199
- this.vertexArrayObject.bind(() => {
200
- if (this.elements) {
201
- this.setElementBuffer(this.elements);
172
+ return this;
173
+ }
174
+ }, {
175
+ key: "setConstant",
176
+ value: function setConstant(locationOrName, arrayValue) {
177
+ var appAccessor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
178
+
179
+ var _this$_resolveLocatio2 = this._resolveLocationAndAccessor(locationOrName, arrayValue, _objectSpread({
180
+ size: arrayValue.length
181
+ }, appAccessor)),
182
+ location = _this$_resolveLocatio2.location,
183
+ accessor = _this$_resolveLocatio2.accessor;
184
+
185
+ if (location >= 0) {
186
+ arrayValue = this.vertexArrayObject._normalizeConstantArrayValue(arrayValue);
187
+ this.values[location] = arrayValue;
188
+ this.accessors[location] = accessor;
189
+ this.clearDrawParams();
190
+ this.vertexArrayObject.enable(location, false);
202
191
  }
203
192
 
204
- for (let location = 0; location < this.vertexArrayObject.MAX_ATTRIBUTES; location++) {
205
- const buffer = this.values[location];
206
-
207
- if (buffer instanceof _webglBuffer.default) {
208
- this.setBuffer(location, buffer);
193
+ return this;
194
+ }
195
+ }, {
196
+ key: "unbindBuffers",
197
+ value: function unbindBuffers() {
198
+ var _this2 = this;
199
+
200
+ this.vertexArrayObject.bind(function () {
201
+ if (_this2.elements) {
202
+ _this2.vertexArrayObject.setElementBuffer(null);
209
203
  }
210
- }
211
- });
212
- return this;
213
- }
214
204
 
215
- bindForDraw(vertexCount, instanceCount, func) {
216
- let value;
217
- this.vertexArrayObject.bind(() => {
218
- this._setConstantAttributes(vertexCount, instanceCount);
205
+ _this2.buffer = _this2.buffer || new _webglBuffer.default(_this2.gl, {
206
+ accessor: {
207
+ size: 4
208
+ }
209
+ });
219
210
 
220
- value = func();
221
- });
222
- return value;
223
- }
211
+ for (var location = 0; location < _this2.vertexArrayObject.MAX_ATTRIBUTES; location++) {
212
+ if (_this2.values[location] instanceof _webglBuffer.default) {
213
+ _this2.gl.disableVertexAttribArray(location);
224
214
 
225
- _resolveLocationAndAccessor(locationOrName, value, valueAccessor, appAccessor) {
226
- const INVALID_RESULT = {
227
- location: -1,
228
- accessor: null
229
- };
215
+ _this2.gl.bindBuffer(_constants.default.ARRAY_BUFFER, _this2.buffer.handle);
230
216
 
231
- const {
232
- location,
233
- name
234
- } = this._getAttributeIndex(locationOrName);
235
-
236
- if (!Number.isFinite(location) || location < 0) {
237
- this.unused[locationOrName] = value;
217
+ _this2.gl.vertexAttribPointer(location, 1, _constants.default.FLOAT, false, 0, 0);
218
+ }
219
+ }
220
+ });
221
+ return this;
222
+ }
223
+ }, {
224
+ key: "bindBuffers",
225
+ value: function bindBuffers() {
226
+ var _this3 = this;
227
+
228
+ this.vertexArrayObject.bind(function () {
229
+ if (_this3.elements) {
230
+ _this3.setElementBuffer(_this3.elements);
231
+ }
238
232
 
239
- _gltools.log.once(3, () => "unused value ".concat(locationOrName, " in ").concat(this.id))();
233
+ for (var location = 0; location < _this3.vertexArrayObject.MAX_ATTRIBUTES; location++) {
234
+ var buffer = _this3.values[location];
240
235
 
241
- return INVALID_RESULT;
236
+ if (buffer instanceof _webglBuffer.default) {
237
+ _this3.setBuffer(location, buffer);
238
+ }
239
+ }
240
+ });
241
+ return this;
242
242
  }
243
+ }, {
244
+ key: "bindForDraw",
245
+ value: function bindForDraw(vertexCount, instanceCount, func) {
246
+ var _this4 = this;
243
247
 
244
- const accessInfo = this._getAttributeInfo(name || location);
248
+ var value;
249
+ this.vertexArrayObject.bind(function () {
250
+ _this4._setConstantAttributes(vertexCount, instanceCount);
245
251
 
246
- if (!accessInfo) {
247
- return INVALID_RESULT;
252
+ value = func();
253
+ });
254
+ return value;
248
255
  }
256
+ }, {
257
+ key: "_resolveLocationAndAccessor",
258
+ value: function _resolveLocationAndAccessor(locationOrName, value, valueAccessor, appAccessor) {
259
+ var _this5 = this;
260
+
261
+ var INVALID_RESULT = {
262
+ location: -1,
263
+ accessor: null
264
+ };
249
265
 
250
- const currentAccessor = this.accessors[location] || {};
266
+ var _this$_getAttributeIn = this._getAttributeIndex(locationOrName),
267
+ location = _this$_getAttributeIn.location,
268
+ name = _this$_getAttributeIn.name;
251
269
 
252
- const accessor = _accessor.default.resolve(accessInfo.accessor, currentAccessor, valueAccessor, appAccessor);
270
+ if (!Number.isFinite(location) || location < 0) {
271
+ this.unused[locationOrName] = value;
253
272
 
254
- const {
255
- size,
256
- type
257
- } = accessor;
258
- (0, _utils.assert)(Number.isFinite(size) && Number.isFinite(type));
259
- return {
260
- location,
261
- accessor
262
- };
263
- }
273
+ _api.log.once(3, function () {
274
+ return "unused value ".concat(locationOrName, " in ").concat(_this5.id);
275
+ })();
264
276
 
265
- _getAttributeInfo(attributeName) {
266
- return this.configuration && this.configuration.getAttributeInfo(attributeName);
267
- }
277
+ return INVALID_RESULT;
278
+ }
268
279
 
269
- _getAttributeIndex(locationOrName) {
270
- const location = Number(locationOrName);
280
+ var accessInfo = this._getAttributeInfo(name || location);
271
281
 
272
- if (Number.isFinite(location)) {
273
- return {
274
- location
275
- };
276
- }
282
+ if (!accessInfo) {
283
+ return INVALID_RESULT;
284
+ }
285
+
286
+ var currentAccessor = this.accessors[location] || {};
277
287
 
278
- const multiLocation = MULTI_LOCATION_ATTRIBUTE_REGEXP.exec(locationOrName);
279
- const name = multiLocation ? multiLocation[1] : locationOrName;
280
- const locationOffset = multiLocation ? Number(multiLocation[2]) : 0;
288
+ var accessor = _accessor2.default.resolve(accessInfo.accessor, currentAccessor, valueAccessor, appAccessor);
281
289
 
282
- if (this.configuration) {
290
+ var size = accessor.size,
291
+ type = accessor.type;
292
+ (0, _api.assert)(Number.isFinite(size) && Number.isFinite(type));
283
293
  return {
284
- location: this.configuration.getAttributeLocation(name) + locationOffset,
285
- name
294
+ location: location,
295
+ accessor: accessor
286
296
  };
287
297
  }
288
-
289
- return {
290
- location: -1
291
- };
292
- }
293
-
294
- _setAttribute(locationOrName, value) {
295
- if (value instanceof _webglBuffer.default) {
296
- this.setBuffer(locationOrName, value);
297
- } else if (Array.isArray(value) && value.length && value[0] instanceof _webglBuffer.default) {
298
- const buffer = value[0];
299
- const accessor = value[1];
300
- this.setBuffer(locationOrName, buffer, accessor);
301
- } else if (ArrayBuffer.isView(value) || Array.isArray(value)) {
302
- const constant = value;
303
- this.setConstant(locationOrName, constant);
304
- } else if (value.buffer instanceof _webglBuffer.default) {
305
- const accessor = value;
306
- this.setBuffer(locationOrName, accessor.buffer, accessor);
307
- } else {
308
- throw new Error(ERR_ATTRIBUTE_TYPE);
298
+ }, {
299
+ key: "_getAttributeInfo",
300
+ value: function _getAttributeInfo(attributeName) {
301
+ return this.configuration && this.configuration.getAttributeInfo(attributeName);
309
302
  }
310
- }
303
+ }, {
304
+ key: "_getAttributeIndex",
305
+ value: function _getAttributeIndex(locationOrName) {
306
+ var location = Number(locationOrName);
307
+
308
+ if (Number.isFinite(location)) {
309
+ return {
310
+ location: location
311
+ };
312
+ }
311
313
 
312
- _setConstantAttributes(vertexCount, instanceCount) {
313
- const elementCount = Math.max(vertexCount | 0, instanceCount | 0);
314
- let constant = this.values[0];
314
+ var multiLocation = MULTI_LOCATION_ATTRIBUTE_REGEXP.exec(String(locationOrName));
315
+ var name = multiLocation ? multiLocation[1] : String(locationOrName);
316
+ var locationOffset = multiLocation ? Number(multiLocation[2]) : 0;
315
317
 
316
- if (ArrayBuffer.isView(constant)) {
317
- this._setConstantAttributeZero(constant, elementCount);
318
- }
318
+ if (this.configuration) {
319
+ return {
320
+ location: this.configuration.getAttributeLocation(name) + locationOffset,
321
+ name: name
322
+ };
323
+ }
319
324
 
320
- for (let location = 1; location < this.vertexArrayObject.MAX_ATTRIBUTES; location++) {
321
- constant = this.values[location];
325
+ return {
326
+ location: -1
327
+ };
328
+ }
329
+ }, {
330
+ key: "_setAttribute",
331
+ value: function _setAttribute(locationOrName, value) {
332
+ if (value instanceof _webglBuffer.default) {
333
+ this.setBuffer(locationOrName, value);
334
+ } else if (Array.isArray(value) && value.length && value[0] instanceof _webglBuffer.default) {
335
+ var buffer = value[0];
336
+ var accessor = value[1];
337
+ this.setBuffer(locationOrName, buffer, accessor);
338
+ } else if (ArrayBuffer.isView(value) || Array.isArray(value)) {
339
+ var constant = value;
340
+ this.setConstant(locationOrName, constant);
341
+ } else if (value.buffer instanceof _webglBuffer.default) {
342
+ var _accessor = value;
343
+ this.setBuffer(locationOrName, _accessor.buffer, _accessor);
344
+ } else {
345
+ throw new Error(ERR_ATTRIBUTE_TYPE);
346
+ }
347
+ }
348
+ }, {
349
+ key: "_setConstantAttributes",
350
+ value: function _setConstantAttributes(vertexCount, instanceCount) {
351
+ var elementCount = Math.max(vertexCount | 0, instanceCount | 0);
352
+ var constant = this.values[0];
322
353
 
323
354
  if (ArrayBuffer.isView(constant)) {
324
- this._setConstantAttribute(location, constant);
355
+ this._setConstantAttributeZero(constant, elementCount);
325
356
  }
326
- }
327
- }
328
357
 
329
- _setConstantAttributeZero(constant, elementCount) {
330
- if (_vertexArrayObject.default.isSupported(this.gl, {
331
- constantAttributeZero: true
332
- })) {
333
- this._setConstantAttribute(0, constant);
358
+ for (var location = 1; location < this.vertexArrayObject.MAX_ATTRIBUTES; location++) {
359
+ constant = this.values[location];
334
360
 
335
- return;
361
+ if (ArrayBuffer.isView(constant)) {
362
+ this._setConstantAttribute(location, constant);
363
+ }
364
+ }
336
365
  }
366
+ }, {
367
+ key: "_setConstantAttributeZero",
368
+ value: function _setConstantAttributeZero(constant, elementCount) {
369
+ if (_vertexArrayObject.default.isSupported(this.gl, {
370
+ constantAttributeZero: true
371
+ })) {
372
+ this._setConstantAttribute(0, constant);
373
+
374
+ return;
375
+ }
337
376
 
338
- const buffer = this.vertexArrayObject.getConstantBuffer(elementCount, constant);
339
- this.vertexArrayObject.setBuffer(0, buffer, this.accessors[0]);
340
- }
341
-
342
- _setConstantAttribute(location, constant) {
343
- _vertexArrayObject.default.setConstant(this.gl, location, constant);
344
- }
345
-
346
- _updateDrawParams() {
347
- const drawParams = {
348
- elementCount: 0,
349
- indexType: Uint16Array,
350
- indexOffset: 0,
351
- isIndexed: false,
352
- isInstanced: false,
353
- indexCount: Infinity,
354
- vertexCount: Infinity,
355
- instanceCount: Infinity
356
- };
357
-
358
- for (let location = 0; location < this.vertexArrayObject.MAX_ATTRIBUTES; location++) {
359
- this._updateDrawParamsForLocation(drawParams, location);
377
+ var buffer = this.vertexArrayObject.getConstantBuffer(elementCount, constant);
378
+ this.vertexArrayObject.setBuffer(0, buffer, this.accessors[0]);
360
379
  }
361
-
362
- if (this.elements) {
363
- drawParams.elementCount = this.elements.getElementCount(this.elements.accessor);
364
- drawParams.isIndexed = true;
365
- drawParams.indexType = this.elementsAccessor.type || this.elements.accessor.type;
366
- drawParams.indexOffset = this.elementsAccessor.offset || 0;
380
+ }, {
381
+ key: "_setConstantAttribute",
382
+ value: function _setConstantAttribute(location, constant) {
383
+ _vertexArrayObject.default.setConstant(this.gl, location, constant);
367
384
  }
385
+ }, {
386
+ key: "_updateDrawParams",
387
+ value: function _updateDrawParams() {
388
+ var drawParams = {
389
+ elementCount: 0,
390
+ indexType: Uint16Array,
391
+ indexOffset: 0,
392
+ isIndexed: false,
393
+ isInstanced: false,
394
+ indexCount: Infinity,
395
+ vertexCount: Infinity,
396
+ instanceCount: Infinity
397
+ };
368
398
 
369
- if (drawParams.indexCount === Infinity) {
370
- drawParams.indexCount = 0;
371
- }
399
+ for (var location = 0; location < this.vertexArrayObject.MAX_ATTRIBUTES; location++) {
400
+ this._updateDrawParamsForLocation(drawParams, location);
401
+ }
372
402
 
373
- if (drawParams.vertexCount === Infinity) {
374
- drawParams.vertexCount = 0;
375
- }
403
+ if (this.elements) {
404
+ drawParams.elementCount = this.elements.getElementCount(this.elements.accessor);
405
+ drawParams.isIndexed = true;
406
+ drawParams.indexType = this.elementsAccessor.type || this.elements.accessor.type;
407
+ drawParams.indexOffset = this.elementsAccessor.offset || 0;
408
+ }
376
409
 
377
- if (drawParams.instanceCount === Infinity) {
378
- drawParams.instanceCount = 0;
379
- }
410
+ if (drawParams.indexCount === Infinity) {
411
+ drawParams.indexCount = 0;
412
+ }
380
413
 
381
- return drawParams;
382
- }
414
+ if (drawParams.vertexCount === Infinity) {
415
+ drawParams.vertexCount = 0;
416
+ }
383
417
 
384
- _updateDrawParamsForLocation(drawParams, location) {
385
- const value = this.values[location];
386
- const accessor = this.accessors[location];
418
+ if (drawParams.instanceCount === Infinity) {
419
+ drawParams.instanceCount = 0;
420
+ }
387
421
 
388
- if (!value) {
389
- return;
422
+ return drawParams;
390
423
  }
424
+ }, {
425
+ key: "_updateDrawParamsForLocation",
426
+ value: function _updateDrawParamsForLocation(drawParams, location) {
427
+ var value = this.values[location];
428
+ var accessor = this.accessors[location];
429
+
430
+ if (!value) {
431
+ return;
432
+ }
391
433
 
392
- const {
393
- divisor
394
- } = accessor;
395
- const isInstanced = divisor > 0;
396
- drawParams.isInstanced = drawParams.isInstanced || isInstanced;
434
+ var divisor = accessor.divisor;
435
+ var isInstanced = divisor > 0;
436
+ drawParams.isInstanced = drawParams.isInstanced || isInstanced;
397
437
 
398
- if (value instanceof _webglBuffer.default) {
399
- const buffer = value;
438
+ if (value instanceof _webglBuffer.default) {
439
+ var buffer = value;
400
440
 
401
- if (isInstanced) {
402
- const instanceCount = buffer.getVertexCount(accessor);
403
- drawParams.instanceCount = Math.min(drawParams.instanceCount, instanceCount);
404
- } else {
405
- const vertexCount = buffer.getVertexCount(accessor);
406
- drawParams.vertexCount = Math.min(drawParams.vertexCount, vertexCount);
441
+ if (isInstanced) {
442
+ var instanceCount = buffer.getVertexCount(accessor);
443
+ drawParams.instanceCount = Math.min(drawParams.instanceCount, instanceCount);
444
+ } else {
445
+ var vertexCount = buffer.getVertexCount(accessor);
446
+ drawParams.vertexCount = Math.min(drawParams.vertexCount, vertexCount);
447
+ }
407
448
  }
408
449
  }
409
- }
450
+ }, {
451
+ key: "setElements",
452
+ value: function setElements() {
453
+ var elementBuffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
454
+ var accessor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
410
455
 
411
- setElements(elementBuffer = null, accessor = {}) {
412
- _gltools.log.deprecated('setElements', 'setElementBuffer')();
456
+ _api.log.deprecated('setElements', 'setElementBuffer')();
413
457
 
414
- return this.setElementBuffer(elementBuffer, accessor);
415
- }
416
-
417
- }
458
+ return this.setElementBuffer(elementBuffer, accessor);
459
+ }
460
+ }]);
461
+ return VertexArray;
462
+ }();
418
463
 
419
464
  exports.default = VertexArray;
420
465
  //# sourceMappingURL=vertex-array.js.map