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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (804) hide show
  1. package/LICENSE +8 -1
  2. package/dist/_deprecated/context-api.d.ts +85 -0
  3. package/dist/_deprecated/context-api.d.ts.map +1 -0
  4. package/dist/_deprecated/context-api.js +70 -0
  5. package/dist/_deprecated/context-api.js.map +1 -0
  6. package/dist/_deprecated/features.d.ts +27 -0
  7. package/dist/_deprecated/features.d.ts.map +1 -0
  8. package/{src/features/webgl-features-table.js → dist/_deprecated/features.js} +66 -59
  9. package/dist/_deprecated/features.js.map +1 -0
  10. package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
  11. package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/set-device-parameters.js +124 -0
  13. package/dist/adapter/converters/set-device-parameters.js.map +1 -0
  14. package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
  15. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
  17. package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
  18. package/dist/adapter/device-helpers/device-features.d.ts +12 -0
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
  20. package/dist/adapter/device-helpers/device-features.js +123 -0
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/device-limits.js +90 -0
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
  28. package/dist/adapter/device-helpers/get-device-info.js +44 -0
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  30. package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
  31. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
  32. package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  33. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  34. package/dist/adapter/webgl-device.d.ts +111 -0
  35. package/dist/adapter/webgl-device.d.ts.map +1 -0
  36. package/dist/adapter/webgl-device.js +208 -0
  37. package/dist/adapter/webgl-device.js.map +1 -0
  38. package/dist/adapter/webgl-shader.d.ts +18 -0
  39. package/dist/adapter/webgl-shader.d.ts.map +1 -0
  40. package/dist/adapter/webgl-shader.js +82 -0
  41. package/dist/adapter/webgl-shader.js.map +1 -0
  42. package/dist/bundle.d.ts +2 -0
  43. package/dist/bundle.d.ts.map +1 -0
  44. package/dist/bundle.js +5 -0
  45. package/dist/bundle.js.map +1 -0
  46. package/dist/classes/accessor.d.ts +28 -0
  47. package/dist/classes/accessor.d.ts.map +1 -0
  48. package/dist/classes/accessor.js +112 -0
  49. package/dist/classes/accessor.js.map +1 -0
  50. package/dist/classes/accessor.ts.disabled +159 -0
  51. package/dist/classes/clear.d.ts +17 -0
  52. package/dist/classes/clear.d.ts.map +1 -0
  53. package/{src → dist}/classes/clear.js +29 -23
  54. package/dist/classes/clear.js.map +1 -0
  55. package/dist/classes/copy-and-blit.d.ts +86 -0
  56. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  57. package/dist/classes/copy-and-blit.js +338 -0
  58. package/dist/classes/copy-and-blit.js.map +1 -0
  59. package/dist/classes/framebuffer.d.ts +139 -0
  60. package/dist/classes/framebuffer.d.ts.map +1 -0
  61. package/dist/classes/framebuffer.js +656 -0
  62. package/dist/classes/framebuffer.js.map +1 -0
  63. package/dist/classes/program-configuration.d.ts +24 -0
  64. package/dist/classes/program-configuration.d.ts.map +1 -0
  65. package/dist/classes/program-configuration.js +73 -0
  66. package/dist/classes/program-configuration.js.map +1 -0
  67. package/dist/classes/program.d.ts +66 -0
  68. package/dist/classes/program.d.ts.map +1 -0
  69. package/dist/classes/program.js +379 -0
  70. package/dist/classes/program.js.map +1 -0
  71. package/dist/classes/query.d.ts +27 -0
  72. package/dist/classes/query.d.ts.map +1 -0
  73. package/dist/classes/query.js +145 -0
  74. package/dist/classes/query.js.map +1 -0
  75. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  76. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  77. package/dist/classes/renderbuffer-formats.js +185 -0
  78. package/dist/classes/renderbuffer-formats.js.map +1 -0
  79. package/dist/classes/renderbuffer.d.ts +60 -0
  80. package/dist/classes/renderbuffer.d.ts.map +1 -0
  81. package/dist/classes/renderbuffer.js +128 -0
  82. package/dist/classes/renderbuffer.js.map +1 -0
  83. package/dist/classes/shader.d.ts +42 -0
  84. package/dist/classes/shader.d.ts.map +1 -0
  85. package/dist/classes/shader.js +118 -0
  86. package/dist/classes/shader.js.map +1 -0
  87. package/dist/classes/texture-2d.d.ts +9 -0
  88. package/dist/classes/texture-2d.d.ts.map +1 -0
  89. package/dist/classes/texture-2d.js +36 -0
  90. package/dist/classes/texture-2d.js.map +1 -0
  91. package/dist/classes/texture-3d.d.ts +29 -0
  92. package/dist/classes/texture-3d.d.ts.map +1 -0
  93. package/dist/classes/texture-3d.js +76 -0
  94. package/dist/classes/texture-3d.js.map +1 -0
  95. package/dist/classes/texture-cube.d.ts +28 -0
  96. package/dist/classes/texture-cube.d.ts.map +1 -0
  97. package/dist/classes/texture-cube.js +130 -0
  98. package/dist/classes/texture-cube.js.map +1 -0
  99. package/dist/classes/texture-formats.d.ts +37 -0
  100. package/dist/classes/texture-formats.d.ts.map +1 -0
  101. package/dist/classes/texture-formats.js +98 -0
  102. package/dist/classes/texture-formats.js.map +1 -0
  103. package/dist/classes/texture.d.ts +123 -0
  104. package/dist/classes/texture.d.ts.map +1 -0
  105. package/dist/classes/texture.js +786 -0
  106. package/dist/classes/texture.js.map +1 -0
  107. package/dist/classes/transform-feedback.d.ts +33 -0
  108. package/dist/classes/transform-feedback.d.ts.map +1 -0
  109. package/dist/classes/transform-feedback.js +198 -0
  110. package/dist/classes/transform-feedback.js.map +1 -0
  111. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  112. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  113. package/dist/classes/uniform-buffer-layout.js +104 -0
  114. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  115. package/dist/classes/uniforms.d.ts +37 -0
  116. package/dist/classes/uniforms.d.ts.map +1 -0
  117. package/dist/classes/uniforms.js +250 -0
  118. package/dist/classes/uniforms.js.map +1 -0
  119. package/dist/classes/vertex-array-object.d.ts +76 -0
  120. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  121. package/dist/classes/vertex-array-object.js +261 -0
  122. package/dist/classes/vertex-array-object.js.map +1 -0
  123. package/dist/classes/vertex-array.d.ts +75 -0
  124. package/dist/classes/vertex-array.d.ts.map +1 -0
  125. package/dist/classes/vertex-array.js +408 -0
  126. package/dist/classes/vertex-array.js.map +1 -0
  127. package/dist/classes/webgl-buffer.d.ts +100 -0
  128. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  129. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
  130. package/dist/classes/webgl-buffer.js.map +1 -0
  131. package/dist/classes/webgl-resource.d.ts +56 -0
  132. package/dist/classes/webgl-resource.d.ts.map +1 -0
  133. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
  134. package/dist/classes/webgl-resource.js.map +1 -0
  135. package/dist/context/context/context-state.d.ts +18 -0
  136. package/dist/context/context/context-state.d.ts.map +1 -0
  137. package/dist/context/context/context-state.js +26 -0
  138. package/dist/context/context/context-state.js.map +1 -0
  139. package/dist/context/context/create-context.d.ts +40 -0
  140. package/dist/context/context/create-context.d.ts.map +1 -0
  141. package/dist/context/context/create-context.js +37 -0
  142. package/dist/context/context/create-context.js.map +1 -0
  143. package/dist/context/context/device-pixels.d.ts +25 -0
  144. package/dist/context/context/device-pixels.d.ts.map +1 -0
  145. package/dist/context/context/device-pixels.js +98 -0
  146. package/dist/context/context/device-pixels.js.map +1 -0
  147. package/dist/context/context/get-canvas.d.ts +13 -0
  148. package/dist/context/context/get-canvas.d.ts.map +1 -0
  149. package/dist/context/context/get-canvas.js +31 -0
  150. package/dist/context/context/get-canvas.js.map +1 -0
  151. package/dist/context/context/resize-context.d.ts +20 -0
  152. package/dist/context/context/resize-context.d.ts.map +1 -0
  153. package/dist/context/context/resize-context.js +15 -0
  154. package/dist/context/context/resize-context.js.map +1 -0
  155. package/dist/context/context/webgl-checks.d.ts +13 -0
  156. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  157. package/dist/context/context/webgl-checks.js +34 -0
  158. package/dist/context/context/webgl-checks.js.map +1 -0
  159. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  160. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  161. package/dist/context/parameters/unified-parameter-api.js +65 -0
  162. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  163. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  164. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  165. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  166. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  167. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  168. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  169. package/dist/context/parameters/webgl-parameters.js +2 -0
  170. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  171. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  172. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  174. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  175. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  176. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  177. package/dist/context/polyfill/polyfill-context.js +91 -0
  178. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  179. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  180. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  181. package/dist/context/polyfill/polyfill-table.js +160 -0
  182. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  183. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  187. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  188. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  189. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  190. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  191. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  192. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  193. package/dist/context/state-tracker/track-context-state.js +169 -0
  194. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  195. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  196. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  197. package/dist/context/state-tracker/with-parameters.js +36 -0
  198. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  199. package/dist/debug/debug-program-configuration.d.ts +2 -0
  200. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  201. package/dist/debug/debug-program-configuration.js +40 -0
  202. package/dist/debug/debug-program-configuration.js.map +1 -0
  203. package/dist/debug/debug-uniforms.d.ts +12 -0
  204. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  205. package/dist/debug/debug-uniforms.js +108 -0
  206. package/dist/debug/debug-uniforms.js.map +1 -0
  207. package/dist/debug/debug-vertex-array.d.ts +5 -0
  208. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  209. package/dist/debug/debug-vertex-array.js +118 -0
  210. package/dist/debug/debug-vertex-array.js.map +1 -0
  211. package/dist/es5/_deprecated/context-api.js +110 -0
  212. package/dist/es5/_deprecated/context-api.js.map +1 -0
  213. package/dist/es5/_deprecated/features.js +118 -0
  214. package/dist/es5/_deprecated/features.js.map +1 -0
  215. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  216. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  217. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  218. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  219. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  220. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  221. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  222. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  223. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  224. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  225. package/dist/es5/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  226. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  227. package/dist/es5/adapter/webgl-device.js +279 -0
  228. package/dist/es5/adapter/webgl-device.js.map +1 -0
  229. package/dist/es5/adapter/webgl-shader.js +155 -0
  230. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  231. package/dist/es5/bundle.js +2 -4
  232. package/dist/es5/bundle.js.map +1 -1
  233. package/dist/es5/classes/accessor.js +36 -38
  234. package/dist/es5/classes/accessor.js.map +1 -1
  235. package/dist/es5/classes/accessor.ts.disabled +159 -0
  236. package/dist/es5/classes/clear.js +17 -11
  237. package/dist/es5/classes/clear.js.map +1 -1
  238. package/dist/es5/classes/copy-and-blit.js +121 -117
  239. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  240. package/dist/es5/classes/framebuffer.js +435 -423
  241. package/dist/es5/classes/framebuffer.js.map +1 -1
  242. package/dist/es5/classes/program-configuration.js +44 -108
  243. package/dist/es5/classes/program-configuration.js.map +1 -1
  244. package/dist/es5/classes/program.js +108 -85
  245. package/dist/es5/classes/program.js.map +1 -1
  246. package/dist/es5/classes/query.js +58 -59
  247. package/dist/es5/classes/query.js.map +1 -1
  248. package/dist/es5/classes/renderbuffer-formats.js +79 -52
  249. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  250. package/dist/es5/classes/renderbuffer.js +129 -100
  251. package/dist/es5/classes/renderbuffer.js.map +1 -1
  252. package/dist/es5/classes/shader.js +70 -96
  253. package/dist/es5/classes/shader.js.map +1 -1
  254. package/dist/es5/classes/texture-2d.js +25 -21
  255. package/dist/es5/classes/texture-2d.js.map +1 -1
  256. package/dist/es5/classes/texture-3d.js +49 -29
  257. package/dist/es5/classes/texture-3d.js.map +1 -1
  258. package/dist/es5/classes/texture-cube.js +45 -36
  259. package/dist/es5/classes/texture-cube.js.map +1 -1
  260. package/dist/es5/classes/texture-formats.js +35 -33
  261. package/dist/es5/classes/texture-formats.js.map +1 -1
  262. package/dist/es5/classes/texture.js +213 -101
  263. package/dist/es5/classes/texture.js.map +1 -1
  264. package/dist/es5/classes/transform-feedback.js +37 -34
  265. package/dist/es5/classes/transform-feedback.js.map +1 -1
  266. package/dist/es5/classes/uniform-buffer-layout.js +4 -4
  267. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  268. package/dist/es5/classes/uniforms.js +73 -73
  269. package/dist/es5/classes/uniforms.js.map +1 -1
  270. package/dist/es5/classes/vertex-array-object.js +106 -149
  271. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  272. package/dist/es5/classes/vertex-array.js +52 -43
  273. package/dist/es5/classes/vertex-array.js.map +1 -1
  274. package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
  275. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  276. package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
  277. package/dist/es5/classes/webgl-resource.js.map +1 -0
  278. package/dist/es5/context/context/context-state.js +31 -0
  279. package/dist/es5/context/context/context-state.js.map +1 -0
  280. package/dist/es5/context/context/create-context.js +57 -0
  281. package/dist/es5/context/context/create-context.js.map +1 -0
  282. package/dist/es5/context/context/device-pixels.js +115 -0
  283. package/dist/es5/context/context/device-pixels.js.map +1 -0
  284. package/dist/es5/context/context/get-canvas.js +40 -0
  285. package/dist/es5/context/context/get-canvas.js.map +1 -0
  286. package/dist/es5/context/context/resize-context.js +23 -0
  287. package/dist/es5/context/context/resize-context.js.map +1 -0
  288. package/dist/es5/context/context/webgl-checks.js +54 -0
  289. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  290. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  291. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  292. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  293. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  294. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  295. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  296. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  297. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  298. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  299. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  300. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  301. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  302. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  303. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  304. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  305. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  306. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  307. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  308. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  309. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  310. package/dist/es5/debug/debug-program-configuration.js +1 -1
  311. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  312. package/dist/es5/debug/debug-uniforms.js +18 -20
  313. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  314. package/dist/es5/debug/debug-vertex-array.js +16 -16
  315. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  316. package/dist/es5/helpers/get-program-bindings.js +274 -0
  317. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  318. package/dist/es5/helpers/program-bindings.js +2 -0
  319. package/dist/es5/helpers/program-bindings.js.map +1 -0
  320. package/dist/es5/index.js +229 -99
  321. package/dist/es5/index.js.map +1 -1
  322. package/dist/es5/init.js +21 -41
  323. package/dist/es5/init.js.map +1 -1
  324. package/dist/es5/types/accessor.d.ts +29 -0
  325. package/dist/es5/types.js +2 -0
  326. package/dist/es5/types.js.map +1 -0
  327. package/dist/es5/webgl-utils/attribute-utils.js +4 -4
  328. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  329. package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
  330. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  331. package/dist/es5/webgl-utils/format-utils.js +21 -17
  332. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  333. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  334. package/dist/es5/webgl-utils/index.js +74 -0
  335. package/dist/es5/webgl-utils/index.js.map +1 -0
  336. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
  337. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  338. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  339. package/dist/es5/webgl-utils/texture-utils.js +6 -4
  340. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  341. package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
  342. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  343. package/dist/esm/_deprecated/context-api.js +70 -0
  344. package/dist/esm/_deprecated/context-api.js.map +1 -0
  345. package/dist/esm/{features/webgl-features-table.js → _deprecated/features.js} +66 -26
  346. package/dist/esm/_deprecated/features.js.map +1 -0
  347. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  348. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  349. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  350. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  351. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  352. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  353. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  354. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  355. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  356. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  357. package/dist/esm/adapter/device-helpers/is-old-ie.js +8 -0
  358. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  359. package/dist/esm/adapter/webgl-device.js +208 -0
  360. package/dist/esm/adapter/webgl-device.js.map +1 -0
  361. package/dist/esm/adapter/webgl-shader.js +82 -0
  362. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  363. package/dist/esm/bundle.js +2 -4
  364. package/dist/esm/bundle.js.map +1 -1
  365. package/dist/esm/classes/accessor.js +6 -6
  366. package/dist/esm/classes/accessor.js.map +1 -1
  367. package/dist/esm/classes/accessor.ts.disabled +159 -0
  368. package/dist/esm/classes/clear.js +19 -14
  369. package/dist/esm/classes/clear.js.map +1 -1
  370. package/dist/esm/classes/copy-and-blit.js +67 -64
  371. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  372. package/dist/esm/classes/framebuffer.js +341 -313
  373. package/dist/esm/classes/framebuffer.js.map +1 -1
  374. package/dist/esm/classes/program-configuration.js +25 -104
  375. package/dist/esm/classes/program-configuration.js.map +1 -1
  376. package/dist/esm/classes/program.js +98 -62
  377. package/dist/esm/classes/program.js.map +1 -1
  378. package/dist/esm/classes/query.js +20 -16
  379. package/dist/esm/classes/query.js.map +1 -1
  380. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  381. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  382. package/dist/esm/classes/renderbuffer.js +86 -73
  383. package/dist/esm/classes/renderbuffer.js.map +1 -1
  384. package/dist/esm/classes/shader.js +47 -67
  385. package/dist/esm/classes/shader.js.map +1 -1
  386. package/dist/esm/classes/texture-2d.js +13 -9
  387. package/dist/esm/classes/texture-2d.js.map +1 -1
  388. package/dist/esm/classes/texture-3d.js +28 -16
  389. package/dist/esm/classes/texture-3d.js.map +1 -1
  390. package/dist/esm/classes/texture-cube.js +45 -31
  391. package/dist/esm/classes/texture-cube.js.map +1 -1
  392. package/dist/esm/classes/texture-formats.js +52 -51
  393. package/dist/esm/classes/texture-formats.js.map +1 -1
  394. package/dist/esm/classes/texture.js +174 -58
  395. package/dist/esm/classes/texture.js.map +1 -1
  396. package/dist/esm/classes/transform-feedback.js +26 -14
  397. package/dist/esm/classes/transform-feedback.js.map +1 -1
  398. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  399. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  400. package/dist/esm/classes/uniforms.js +111 -113
  401. package/dist/esm/classes/uniforms.js.map +1 -1
  402. package/dist/esm/classes/vertex-array-object.js +52 -89
  403. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  404. package/dist/esm/classes/vertex-array.js +52 -31
  405. package/dist/esm/classes/vertex-array.js.map +1 -1
  406. package/dist/esm/classes/webgl-buffer.js +382 -0
  407. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  408. package/dist/esm/classes/webgl-resource.js +212 -0
  409. package/dist/esm/classes/webgl-resource.js.map +1 -0
  410. package/dist/esm/context/context/context-state.js +26 -0
  411. package/dist/esm/context/context/context-state.js.map +1 -0
  412. package/dist/esm/context/context/create-context.js +37 -0
  413. package/dist/esm/context/context/create-context.js.map +1 -0
  414. package/dist/esm/context/context/device-pixels.js +98 -0
  415. package/dist/esm/context/context/device-pixels.js.map +1 -0
  416. package/dist/esm/context/context/get-canvas.js +31 -0
  417. package/dist/esm/context/context/get-canvas.js.map +1 -0
  418. package/dist/esm/context/context/resize-context.js +15 -0
  419. package/dist/esm/context/context/resize-context.js.map +1 -0
  420. package/dist/esm/context/context/webgl-checks.js +34 -0
  421. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  422. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  423. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  424. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  425. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  426. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  427. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  428. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  429. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  430. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  431. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  432. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  433. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  434. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  435. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  436. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  437. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  438. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  439. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  440. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  441. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  442. package/dist/esm/debug/debug-program-configuration.js +4 -4
  443. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  444. package/dist/esm/debug/debug-uniforms.js +9 -9
  445. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  446. package/dist/esm/debug/debug-vertex-array.js +18 -16
  447. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  448. package/dist/esm/helpers/get-program-bindings.js +228 -0
  449. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  450. package/dist/esm/helpers/program-bindings.js +2 -0
  451. package/dist/esm/helpers/program-bindings.js.map +1 -0
  452. package/dist/esm/index.js +19 -15
  453. package/dist/esm/index.js.map +1 -1
  454. package/dist/esm/init.js +12 -28
  455. package/dist/esm/init.js.map +1 -1
  456. package/dist/esm/types/accessor.d.ts +29 -0
  457. package/dist/esm/types.js +2 -0
  458. package/dist/esm/types.js.map +1 -0
  459. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  460. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  461. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  462. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  463. package/dist/esm/webgl-utils/format-utils.js +16 -15
  464. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  465. package/dist/esm/webgl-utils/get-error.js +1 -1
  466. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  467. package/dist/esm/webgl-utils/index.js +5 -0
  468. package/dist/esm/webgl-utils/index.js.map +1 -0
  469. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  470. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  471. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  472. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  473. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  474. package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
  475. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  476. package/dist/helpers/get-program-bindings.d.ts +8 -0
  477. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  478. package/dist/helpers/get-program-bindings.js +228 -0
  479. package/dist/helpers/get-program-bindings.js.map +1 -0
  480. package/dist/helpers/program-bindings.d.ts +41 -0
  481. package/dist/helpers/program-bindings.d.ts.map +1 -0
  482. package/dist/helpers/program-bindings.js +2 -0
  483. package/dist/helpers/program-bindings.js.map +1 -0
  484. package/dist/index.d.ts +54 -0
  485. package/dist/index.d.ts.map +1 -0
  486. package/dist/index.js +39 -0
  487. package/dist/index.js.map +1 -0
  488. package/dist/init.d.ts +5 -0
  489. package/dist/init.d.ts.map +1 -0
  490. package/dist/init.js +33 -0
  491. package/dist/init.js.map +1 -0
  492. package/dist/types/accessor.d.ts +29 -0
  493. package/dist/types.d.ts +9 -0
  494. package/dist/types.d.ts.map +1 -0
  495. package/dist/types.js +2 -0
  496. package/dist/types.js.map +1 -0
  497. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  498. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  499. package/dist/webgl-utils/attribute-utils.js +182 -0
  500. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  501. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  502. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  503. package/dist/webgl-utils/constants-to-keys.js +41 -0
  504. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  505. package/dist/webgl-utils/format-utils.d.ts +3 -0
  506. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  507. package/dist/webgl-utils/format-utils.js +45 -0
  508. package/dist/webgl-utils/format-utils.js.map +1 -0
  509. package/dist/webgl-utils/get-error.d.ts +3 -0
  510. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  511. package/dist/webgl-utils/get-error.js +41 -0
  512. package/dist/webgl-utils/get-error.js.map +1 -0
  513. package/dist/webgl-utils/index.d.ts +5 -0
  514. package/dist/webgl-utils/index.d.ts.map +1 -0
  515. package/dist/webgl-utils/index.js +5 -0
  516. package/dist/webgl-utils/index.js.map +1 -0
  517. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  518. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  519. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  520. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  521. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  522. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  523. package/dist/webgl-utils/request-animation-frame.js +7 -0
  524. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  525. package/dist/webgl-utils/texture-utils.d.ts +15 -0
  526. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  527. package/dist/webgl-utils/texture-utils.js +48 -0
  528. package/dist/webgl-utils/texture-utils.js.map +1 -0
  529. package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
  530. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  531. package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
  532. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  533. package/package.json +9 -9
  534. package/src/.DS_Store +0 -0
  535. package/src/_deprecated/context-api.ts +140 -0
  536. package/src/_deprecated/features.ts +159 -0
  537. package/src/adapter/converters/set-device-parameters.ts +182 -0
  538. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  539. package/src/adapter/device-helpers/device-features.ts +227 -0
  540. package/src/adapter/device-helpers/device-limits.ts +150 -0
  541. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  542. package/src/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.ts} +3 -3
  543. package/src/adapter/webgl-device.ts +406 -0
  544. package/src/adapter/webgl-shader.ts +84 -0
  545. package/src/bundle.ts +4 -0
  546. package/src/classes/accessor.js +2 -3
  547. package/src/classes/accessor.ts.disabled +159 -0
  548. package/src/classes/clear.ts +108 -0
  549. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
  550. package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
  551. package/src/classes/program-configuration.ts +77 -0
  552. package/src/classes/{program.js → program.ts} +111 -77
  553. package/src/classes/{query.js → query.ts} +31 -25
  554. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  555. package/src/classes/renderbuffer.ts +154 -0
  556. package/src/classes/shader.ts +129 -0
  557. package/src/classes/texture-2d.ts +35 -0
  558. package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
  559. package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
  560. package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
  561. package/src/classes/{texture.js → texture.ts} +223 -57
  562. package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
  563. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  564. package/src/classes/{uniforms.js → uniforms.ts} +123 -77
  565. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +136 -114
  566. package/src/classes/{vertex-array.js → vertex-array.ts} +84 -59
  567. package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
  568. package/src/classes/{resource.js → webgl-resource.ts} +55 -46
  569. package/src/context/context/context-state.ts +39 -0
  570. package/src/context/context/create-context.ts +83 -0
  571. package/src/context/context/device-pixels.ts +147 -0
  572. package/src/context/context/get-canvas.ts +37 -0
  573. package/src/context/context/resize-context.ts +37 -0
  574. package/src/context/context/webgl-checks.ts +49 -0
  575. package/src/context/parameters/unified-parameter-api.ts +128 -0
  576. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  577. package/src/context/parameters/webgl-parameters.ts +197 -0
  578. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  579. package/src/context/polyfill/polyfill-context.ts +98 -0
  580. package/src/context/polyfill/polyfill-table.ts +162 -0
  581. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  582. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  583. package/src/context/state-tracker/track-context-state.ts +250 -0
  584. package/src/context/state-tracker/with-parameters.ts +50 -0
  585. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  586. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  587. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
  588. package/src/helpers/get-program-bindings.ts +244 -0
  589. package/src/helpers/program-bindings.ts +46 -0
  590. package/src/index.ts +144 -0
  591. package/src/{init.js → init.ts} +11 -25
  592. package/src/types/accessor.d.ts +29 -0
  593. package/src/{types.d.ts → types.ts} +1 -1
  594. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  595. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  596. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  597. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  598. package/src/webgl-utils/index.ts +12 -0
  599. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  600. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  601. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
  602. package/src/webgl-utils/typed-array-utils.ts +137 -0
  603. package/dist/dist.js +0 -13555
  604. package/dist/dist.min.js +0 -1
  605. package/dist/es5/classes/buffer.d.ts +0 -84
  606. package/dist/es5/classes/buffer.js.map +0 -1
  607. package/dist/es5/classes/clear.d.ts +0 -11
  608. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  609. package/dist/es5/classes/framebuffer.d.ts +0 -96
  610. package/dist/es5/classes/program-configuration.d.ts +0 -15
  611. package/dist/es5/classes/program.d.ts +0 -44
  612. package/dist/es5/classes/query.d.ts +0 -21
  613. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  614. package/dist/es5/classes/resource.d.ts +0 -47
  615. package/dist/es5/classes/resource.js.map +0 -1
  616. package/dist/es5/classes/shader.d.ts +0 -29
  617. package/dist/es5/classes/texture-2d.d.ts +0 -11
  618. package/dist/es5/classes/texture-3d.d.ts +0 -29
  619. package/dist/es5/classes/texture-cube.d.ts +0 -23
  620. package/dist/es5/classes/texture.d.ts +0 -80
  621. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  622. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  623. package/dist/es5/classes/uniforms.d.ts +0 -63
  624. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  625. package/dist/es5/classes/vertex-array.d.ts +0 -37
  626. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  627. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  628. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  629. package/dist/es5/features/check-glsl-extension.js +0 -41
  630. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  631. package/dist/es5/features/check-old-ie.js.map +0 -1
  632. package/dist/es5/features/features.js +0 -99
  633. package/dist/es5/features/features.js.map +0 -1
  634. package/dist/es5/features/index.js +0 -64
  635. package/dist/es5/features/index.js.map +0 -1
  636. package/dist/es5/features/limits.js +0 -64
  637. package/dist/es5/features/limits.js.map +0 -1
  638. package/dist/es5/features/webgl-features-table.js +0 -64
  639. package/dist/es5/features/webgl-features-table.js.map +0 -1
  640. package/dist/es5/features/webgl-limits-table.js +0 -132
  641. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  642. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  643. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  644. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  645. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  646. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  647. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  648. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  649. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  650. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  651. package/dist/es5/glsl-utils/index.js +0 -48
  652. package/dist/es5/glsl-utils/index.js.map +0 -1
  653. package/dist/es5/index.d.ts +0 -71
  654. package/dist/es5/init.d.ts +0 -12
  655. package/dist/es5/types.d.ts +0 -8
  656. package/dist/es5/utils/array-utils-flat.js +0 -51
  657. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  658. package/dist/es5/utils/assert.d.ts +0 -1
  659. package/dist/es5/utils/assert.js +0 -13
  660. package/dist/es5/utils/assert.js.map +0 -1
  661. package/dist/es5/utils/check-props.js +0 -51
  662. package/dist/es5/utils/check-props.js.map +0 -1
  663. package/dist/es5/utils/format-value.js +0 -57
  664. package/dist/es5/utils/format-value.js.map +0 -1
  665. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  666. package/dist/es5/utils/is-old-ie.js +0 -14
  667. package/dist/es5/utils/is-old-ie.js.map +0 -1
  668. package/dist/es5/utils/load-file.js +0 -50
  669. package/dist/es5/utils/load-file.js.map +0 -1
  670. package/dist/es5/utils/stub-methods.js +0 -25
  671. package/dist/es5/utils/stub-methods.js.map +0 -1
  672. package/dist/es5/utils/utils.d.ts +0 -13
  673. package/dist/es5/utils/utils.js +0 -36
  674. package/dist/es5/utils/utils.js.map +0 -1
  675. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  676. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  677. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  678. package/dist/esm/classes/buffer.d.ts +0 -84
  679. package/dist/esm/classes/buffer.js.map +0 -1
  680. package/dist/esm/classes/clear.d.ts +0 -11
  681. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  682. package/dist/esm/classes/framebuffer.d.ts +0 -96
  683. package/dist/esm/classes/program-configuration.d.ts +0 -15
  684. package/dist/esm/classes/program.d.ts +0 -44
  685. package/dist/esm/classes/query.d.ts +0 -21
  686. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  687. package/dist/esm/classes/resource.d.ts +0 -47
  688. package/dist/esm/classes/resource.js.map +0 -1
  689. package/dist/esm/classes/shader.d.ts +0 -29
  690. package/dist/esm/classes/texture-2d.d.ts +0 -11
  691. package/dist/esm/classes/texture-3d.d.ts +0 -29
  692. package/dist/esm/classes/texture-cube.d.ts +0 -23
  693. package/dist/esm/classes/texture.d.ts +0 -80
  694. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  695. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  696. package/dist/esm/classes/uniforms.d.ts +0 -63
  697. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  698. package/dist/esm/classes/vertex-array.d.ts +0 -37
  699. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  700. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  701. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  702. package/dist/esm/features/check-glsl-extension.js +0 -27
  703. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  704. package/dist/esm/features/check-old-ie.js.map +0 -1
  705. package/dist/esm/features/features.js +0 -66
  706. package/dist/esm/features/features.js.map +0 -1
  707. package/dist/esm/features/index.js +0 -5
  708. package/dist/esm/features/index.js.map +0 -1
  709. package/dist/esm/features/limits.js +0 -52
  710. package/dist/esm/features/limits.js.map +0 -1
  711. package/dist/esm/features/webgl-features-table.js.map +0 -1
  712. package/dist/esm/features/webgl-limits-table.js +0 -160
  713. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  714. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  715. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  716. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  717. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  718. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  719. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  720. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  721. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  722. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  723. package/dist/esm/glsl-utils/index.js +0 -5
  724. package/dist/esm/glsl-utils/index.js.map +0 -1
  725. package/dist/esm/index.d.ts +0 -71
  726. package/dist/esm/init.d.ts +0 -12
  727. package/dist/esm/types.d.ts +0 -8
  728. package/dist/esm/utils/array-utils-flat.js +0 -39
  729. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  730. package/dist/esm/utils/assert.d.ts +0 -1
  731. package/dist/esm/utils/assert.js +0 -6
  732. package/dist/esm/utils/assert.js.map +0 -1
  733. package/dist/esm/utils/check-props.js +0 -38
  734. package/dist/esm/utils/check-props.js.map +0 -1
  735. package/dist/esm/utils/format-value.js +0 -50
  736. package/dist/esm/utils/format-value.js.map +0 -1
  737. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  738. package/dist/esm/utils/is-old-ie.js +0 -5
  739. package/dist/esm/utils/is-old-ie.js.map +0 -1
  740. package/dist/esm/utils/load-file.js +0 -30
  741. package/dist/esm/utils/load-file.js.map +0 -1
  742. package/dist/esm/utils/stub-methods.js +0 -17
  743. package/dist/esm/utils/stub-methods.js.map +0 -1
  744. package/dist/esm/utils/utils.d.ts +0 -13
  745. package/dist/esm/utils/utils.js +0 -22
  746. package/dist/esm/utils/utils.js.map +0 -1
  747. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  748. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  749. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  750. package/src/bundle.js +0 -8
  751. package/src/classes/buffer.d.ts +0 -84
  752. package/src/classes/clear.d.ts +0 -11
  753. package/src/classes/copy-and-blit.d.ts +0 -101
  754. package/src/classes/framebuffer.d.ts +0 -96
  755. package/src/classes/program-configuration.d.ts +0 -15
  756. package/src/classes/program-configuration.js +0 -123
  757. package/src/classes/program.d.ts +0 -44
  758. package/src/classes/query.d.ts +0 -21
  759. package/src/classes/renderbuffer.d.ts +0 -34
  760. package/src/classes/renderbuffer.js +0 -105
  761. package/src/classes/resource.d.ts +0 -47
  762. package/src/classes/shader.d.ts +0 -29
  763. package/src/classes/shader.js +0 -147
  764. package/src/classes/texture-2d.d.ts +0 -11
  765. package/src/classes/texture-2d.js +0 -30
  766. package/src/classes/texture-3d.d.ts +0 -29
  767. package/src/classes/texture-cube.d.ts +0 -23
  768. package/src/classes/texture.d.ts +0 -80
  769. package/src/classes/transform-feedback.d.ts +0 -16
  770. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  771. package/src/classes/uniforms.d.ts +0 -63
  772. package/src/classes/vertex-array-object.d.ts +0 -25
  773. package/src/classes/vertex-array.d.ts +0 -37
  774. package/src/debug/debug-program-configuration.d.ts +0 -1
  775. package/src/debug/debug-uniforms.d.ts +0 -11
  776. package/src/debug/debug-vertex-array.d.ts +0 -1
  777. package/src/features/check-glsl-extension.js +0 -34
  778. package/src/features/features.js +0 -79
  779. package/src/features/index.js +0 -5
  780. package/src/features/limits.js +0 -65
  781. package/src/features/webgl-limits-table.js +0 -51
  782. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  783. package/src/glsl-utils/format-glsl-error.js +0 -107
  784. package/src/glsl-utils/get-shader-name.js +0 -7
  785. package/src/glsl-utils/get-shader-type-name.js +0 -13
  786. package/src/glsl-utils/get-shader-version.js +0 -12
  787. package/src/glsl-utils/index.js +0 -8
  788. package/src/index.d.ts +0 -71
  789. package/src/index.js +0 -70
  790. package/src/init.d.ts +0 -12
  791. package/src/utils/array-utils-flat.js +0 -56
  792. package/src/utils/assert.d.ts +0 -1
  793. package/src/utils/assert.js +0 -7
  794. package/src/utils/check-props.js +0 -68
  795. package/src/utils/format-value.js +0 -37
  796. package/src/utils/is-old-ie.d.ts +0 -1
  797. package/src/utils/is-old-ie.js +0 -6
  798. package/src/utils/load-file.js +0 -39
  799. package/src/utils/stub-methods.js +0 -20
  800. package/src/utils/utils.d.ts +0 -13
  801. package/src/utils/utils.js +0 -36
  802. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
  803. package/src/webgl-utils/texture-utils.d.ts +0 -11
  804. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -0,0 +1,208 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { Device, log } from '@luma.gl/api';
3
+ import { polyfillContext } from '../context/polyfill/polyfill-context';
4
+ import { trackContextState } from '../context/state-tracker/track-context-state';
5
+ import { getDevicePixelRatio, setDevicePixelRatio } from '../context/context/device-pixels';
6
+ import { createBrowserContext } from '../context/context/create-context';
7
+ import { getCanvas } from '../context/context/get-canvas';
8
+ import { isWebGL, isWebGL2 } from '../context/context/webgl-checks';
9
+ import { getDeviceInfo } from './device-helpers/get-device-info';
10
+ import { getDeviceFeatures } from './device-helpers/device-features';
11
+ import { getDeviceLimits, getWebGLLimits } from './device-helpers/device-limits';
12
+ import WEBGLBuffer from '../classes/webgl-buffer';
13
+ import { WEBGLShader } from '../adapter/webgl-shader';
14
+ import Texture2D from '../classes/texture-2d';
15
+ const DEFAULT_DEVICE_PROPS = {
16
+ canvas: undefined,
17
+ gl: undefined,
18
+ webgl2: true,
19
+ webgl1: true,
20
+ manageState: true,
21
+ width: 800,
22
+ height: 600,
23
+ debug: false,
24
+ break: undefined,
25
+ onContextLost: () => console.error('WebGL context lost'),
26
+ onContextRestored: () => console.info('WebGL context restored'),
27
+ alpha: undefined,
28
+ depth: undefined,
29
+ stencil: undefined,
30
+ antialias: undefined,
31
+ premultipliedAlpha: undefined,
32
+ preserveDrawingBuffer: undefined,
33
+ failIfMajorPerformanceCaveat: undefined
34
+ };
35
+ const glToContextMap = new WeakMap();
36
+ export function getWebGLDevice(gl) {
37
+ return glToContextMap.get(gl);
38
+ }
39
+ let counter = 0;
40
+ export default class WebGLDevice extends Device {
41
+ static fromContext(gl) {
42
+ return gl.device;
43
+ }
44
+
45
+ static attach(gl, props) {
46
+ if (gl instanceof WebGLDevice) {
47
+ return gl;
48
+ }
49
+
50
+ if (!isWebGL(gl)) {
51
+ throw new Error('Invalid WebGLRenderingContext');
52
+ }
53
+
54
+ return new WebGLDevice({ ...props,
55
+ gl: gl
56
+ });
57
+ }
58
+
59
+ constructor(props) {
60
+ var _this$props$gl;
61
+
62
+ super();
63
+
64
+ _defineProperty(this, "features", void 0);
65
+
66
+ _defineProperty(this, "limits", void 0);
67
+
68
+ _defineProperty(this, "info", void 0);
69
+
70
+ _defineProperty(this, "lost", void 0);
71
+
72
+ _defineProperty(this, "props", void 0);
73
+
74
+ _defineProperty(this, "userData", void 0);
75
+
76
+ _defineProperty(this, "isWebGL2", void 0);
77
+
78
+ _defineProperty(this, "gl", void 0);
79
+
80
+ _defineProperty(this, "gl2", void 0);
81
+
82
+ _defineProperty(this, "offScreen", false);
83
+
84
+ _defineProperty(this, "webglFeatures", void 0);
85
+
86
+ _defineProperty(this, "webglLimits", void 0);
87
+
88
+ _defineProperty(this, "defaultFramebuffer", void 0);
89
+
90
+ _defineProperty(this, "defaultVertexArray", void 0);
91
+
92
+ _defineProperty(this, "_state", 'uninitialized');
93
+
94
+ _defineProperty(this, "_canvasSizeInfo", {
95
+ clientWidth: 0,
96
+ clientHeight: 0,
97
+ devicePixelRatio: 1
98
+ });
99
+
100
+ _defineProperty(this, "_extensions", {});
101
+
102
+ _defineProperty(this, "_polyfilled", false);
103
+
104
+ this.props = { ...DEFAULT_DEVICE_PROPS,
105
+ ...props
106
+ };
107
+ const device = (_this$props$gl = this.props.gl) === null || _this$props$gl === void 0 ? void 0 : _this$props$gl.device;
108
+
109
+ if (device) {
110
+ if (device._state !== 'initialized') {
111
+ log.error('recursive context');
112
+ throw new Error('recursive context');
113
+ }
114
+
115
+ return device;
116
+ }
117
+
118
+ this.offScreen = typeof OffscreenCanvas !== 'undefined' && props.canvas instanceof OffscreenCanvas;
119
+ this.gl = this.props.gl || this._createContext(props);
120
+ this.gl2 = this.gl;
121
+ this.isWebGL2 = isWebGL2(this.gl);
122
+ this._state = 'initializing';
123
+
124
+ if (this.gl.device) {
125
+ log.error('device already created');
126
+ throw new Error('device already created');
127
+ }
128
+
129
+ this.gl.device = this;
130
+ this.gl._version = typeof WebGL2RenderingContext !== 'undefined' && this.gl instanceof WebGL2RenderingContext ? 2 : 1;
131
+ glToContextMap.set(this.gl, this);
132
+ this.info = getDeviceInfo(this.gl);
133
+ const debug = this.gl.debug ? ' debug' : '';
134
+ const webGL = isWebGL2(this.gl) ? 'WebGL2' : 'WebGL1';
135
+ log.group(0, "".concat(webGL).concat(debug, " context: ").concat(this.info.vendor, ", ").concat(this.info.renderer))();
136
+ polyfillContext(this.gl);
137
+ log.probe(0, 'polyfilled context')();
138
+ trackContextState(this.gl, {
139
+ copyState: false,
140
+ log: (...args) => log.log(1, ...args)()
141
+ });
142
+ log.probe(0, 'instrumented context')();
143
+ this.features = getDeviceFeatures(this.gl);
144
+ log.probe(0, "queried device features ".concat(counter))();
145
+ this.limits = getDeviceLimits(this.gl);
146
+ log.probe(0, 'queried device limits')();
147
+ this.webglLimits = getWebGLLimits(this.gl);
148
+ log.probe(0, 'queried webgl limits')();
149
+ log.groupEnd(0)();
150
+ this._state = 'initialized';
151
+ }
152
+
153
+ destroy() {
154
+ let ext = this.gl.getExtension('STACKGL_destroy_context');
155
+
156
+ if (ext) {
157
+ ext.destroy();
158
+ }
159
+ }
160
+
161
+ resize(options) {
162
+ if (this.gl.canvas) {
163
+ const devicePixelRatio = getDevicePixelRatio(options === null || options === void 0 ? void 0 : options.useDevicePixels);
164
+ setDevicePixelRatio(this.gl, devicePixelRatio, options);
165
+ return;
166
+ }
167
+
168
+ const ext = this.gl.getExtension('STACKGL_resize_drawingbuffer');
169
+
170
+ if (ext && options && "width" in options && "height" in options) {
171
+ ext.resize(options.width, options.height);
172
+ }
173
+ }
174
+
175
+ _createBuffer(props) {
176
+ return new WEBGLBuffer(this.gl, props);
177
+ }
178
+
179
+ createTexture(props) {
180
+ return new Texture2D(this, props);
181
+ }
182
+
183
+ createShader(props) {
184
+ return new WEBGLShader(this, props);
185
+ }
186
+
187
+ commit() {
188
+ if (this.offScreen && this.gl.commit) {
189
+ this.gl.commit();
190
+ }
191
+ }
192
+
193
+ _createContext(options) {
194
+ const {
195
+ width,
196
+ height,
197
+ canvas
198
+ } = this.props;
199
+ const targetCanvas = getCanvas({
200
+ canvas,
201
+ width,
202
+ height
203
+ });
204
+ return createBrowserContext(targetCanvas, options);
205
+ }
206
+
207
+ }
208
+ //# sourceMappingURL=webgl-device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/adapter/webgl-device.ts"],"names":["Device","log","polyfillContext","trackContextState","getDevicePixelRatio","setDevicePixelRatio","createBrowserContext","getCanvas","isWebGL","isWebGL2","getDeviceInfo","getDeviceFeatures","getDeviceLimits","getWebGLLimits","WEBGLBuffer","WEBGLShader","Texture2D","DEFAULT_DEVICE_PROPS","canvas","undefined","gl","webgl2","webgl1","manageState","width","height","debug","break","onContextLost","console","error","onContextRestored","info","alpha","depth","stencil","antialias","premultipliedAlpha","preserveDrawingBuffer","failIfMajorPerformanceCaveat","glToContextMap","WeakMap","getWebGLDevice","get","counter","WebGLDevice","fromContext","device","attach","props","Error","constructor","clientWidth","clientHeight","devicePixelRatio","_state","offScreen","OffscreenCanvas","_createContext","gl2","_version","WebGL2RenderingContext","set","webGL","group","vendor","renderer","probe","copyState","args","features","limits","webglLimits","groupEnd","destroy","ext","getExtension","resize","options","useDevicePixels","_createBuffer","createTexture","createShader","commit","targetCanvas"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {Device, DeviceInfo, DeviceLimits, log} from '@luma.gl/api';\nimport {polyfillContext} from '../context/polyfill/polyfill-context';\nimport {trackContextState} from '../context/state-tracker/track-context-state';\nimport { ContextState } from '../context/context/context-state';\nimport {getDevicePixelRatio, setDevicePixelRatio} from '../context/context/device-pixels';\nimport {createBrowserContext} from '../context/context/create-context';\nimport {getCanvas} from '../context/context/get-canvas';\nimport {isWebGL, isWebGL2} from '../context/context/webgl-checks';\nimport {getDeviceInfo} from './device-helpers/get-device-info';\nimport {getDeviceFeatures, Feature} from './device-helpers/device-features';\nimport {getDeviceLimits, getWebGLLimits, WebGLLimits} from './device-helpers/device-limits';\n\n// WebGL classes\nimport type {BufferProps, ShaderProps} from '@luma.gl/api';\nimport WEBGLBuffer from '../classes/webgl-buffer';\nimport {WEBGLShader} from '../adapter/webgl-shader';\nimport Texture2D, {Texture2DProps} from '../classes/texture-2d';\nimport type {default as Framebuffer} from '../classes/framebuffer';\nimport type {default as VertexArrayObject} from '../classes/vertex-array-object';\n\n/** WebGLDevice options */\nexport type WebGLDeviceProps = {\n canvas?: HTMLCanvasElement | OffscreenCanvas | string; // A canvas element or a canvas string id\n width?: number /** width is only used when creating a new canvas */;\n height?: number /** height is only used when creating a new canvas */;\n // Attach to existing context\n gl?: WebGLRenderingContext | WebGL2RenderingContext;\n // COMMON CONTEXT PARAMETERS\n webgl2?: boolean; // Set to false to not create a WebGL2 context (force webgl1)\n webgl1?: boolean; // set to false to not create a WebGL1 context (fails if webgl2 not available)\n manageState?: boolean; // Set to false to disable WebGL state management instrumentation\n debug?: boolean; // Instrument context (at the expense of performance)\n break?: Array<any>; // TODO: types\n onContextLost?: (event: Event) => void;\n onContextRestored?: (event: Event) => void;\n // BROWSER CONTEXT PARAMETERS\n alpha?: boolean; // Default render target has an alpha buffer.\n depth?: boolean; // Default render target has a depth buffer of at least 16 bits.\n stencil?: boolean; // Default render target has a stencil buffer of at least 8 bits.\n antialias?: boolean; // Boolean that indicates whether or not to perform anti-aliasing.\n premultipliedAlpha?: boolean; // Boolean that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.\n preserveDrawingBuffer?: boolean; // Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten\n failIfMajorPerformanceCaveat?: boolean; // Do not create if the system performance is low.\n};\n\nconst DEFAULT_DEVICE_PROPS: Required<WebGLDeviceProps> = {\n canvas: undefined, // A canvas element or a canvas string id\n gl: undefined,\n webgl2: true, // Attempt to create a WebGL2 context\n webgl1: true, // Attempt to create a WebGL1 context (false to fail if webgl2 not available)\n manageState: true,\n width: 800, // width are height are only used by headless gl\n height: 600,\n debug: false, // Instrument context (at the expense of performance)\n break: undefined,\n onContextLost: () => console.error('WebGL context lost'),\n onContextRestored: () => console.info('WebGL context restored'),\n\n alpha: undefined,\n depth: undefined,\n stencil: undefined,\n antialias: undefined,\n premultipliedAlpha: undefined,\n preserveDrawingBuffer: undefined,\n failIfMajorPerformanceCaveat: undefined\n};\n\n// TODO use weakmap instead of modifying context\nconst glToContextMap = new WeakMap<WebGLRenderingContext | WebGL2RenderingContext, WebGLDevice>();\n\nexport function getWebGLDevice(gl: WebGLRenderingContext | WebGL2RenderingContext): WebGLDevice | undefined {\n return glToContextMap.get(gl);\n}\n\nlet counter = 0;\n\n/** WebGPU style Device API for a WebGL context */\nexport default class WebGLDevice extends Device implements ContextState {\n // WebGPU style API\n\n /** A set like interface to test features */\n readonly features: Set<Feature>;\n readonly limits: DeviceLimits;\n readonly info: DeviceInfo;\n\n /** Promise that rejects when context is lost */\n readonly lost: Promise<string>;\n\n // Common API\n props: Required<WebGLDeviceProps>;\n userData: {[key: string]: any};\n\n // WebGL specific API\n readonly isWebGL2: boolean;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n /** Is this device attached to an offscreen context */\n readonly offScreen: boolean = false;\n\n readonly webglFeatures: Set<string>;\n readonly webglLimits: WebGLLimits;\n\n defaultFramebuffer?: Framebuffer;\n defaultVertexArray?: VertexArrayObject;\n\n // State used by luma.gl classes\n _state: 'uninitialized' | 'initializing' | 'initialized' = 'uninitialized';\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n readonly _extensions: Record<string, any> = {};\n _polyfilled: boolean = false;\n\n /**\n *\n */\n static fromContext(gl: WebGLRenderingContext): WebGLDevice {\n // @ts-expect-error\n return gl.device as WebGLDevice;\n }\n\n /**\n * Get a device instance from a GL context\n * Creates and instruments the device if not already created\n * @param gl\n * @returns\n */\n static attach(\n gl: Device | WebGLRenderingContext | WebGL2RenderingContext,\n props?: WebGLDeviceProps\n ): WebGLDevice {\n if (gl instanceof WebGLDevice) {\n return gl;\n }\n if (!isWebGL(gl)) {\n throw new Error('Invalid WebGLRenderingContext');\n }\n return new WebGLDevice({...props, gl: gl as WebGLRenderingContext});\n }\n\n\n constructor(props: WebGLDeviceProps) {\n super();\n\n this.props = {...DEFAULT_DEVICE_PROPS, ...props};\n\n // If attaching to an already attached context, return the attached device\n // @ts-expect-error device is attached to context\n const device: WebGLDevice | undefined = this.props.gl?.device;\n if (device) {\n if (device._state !== 'initialized') {\n log.error('recursive context');\n throw new Error('recursive context');\n }\n return device;\n }\n\n this.offScreen =\n typeof OffscreenCanvas !== 'undefined' &&\n props.canvas instanceof OffscreenCanvas;\n\n // Create an instrument context\n this.gl = (this.props.gl || this._createContext(props)) as WebGLRenderingContext;\n this.gl2 = this.gl as WebGL2RenderingContext;\n this.isWebGL2 = isWebGL2(this.gl);\n this._state = 'initializing';\n // Avoid multiple instrumentations\n // @ts-expect-error\n if (this.gl.device) {\n log.error('device already created');\n throw new Error('device already created'); // ASSERT this device;\n }\n // @ts-expect-error\n this.gl.device = this;\n // @ts-ignore\n this.gl._version = typeof WebGL2RenderingContext !== 'undefined' && this.gl instanceof WebGL2RenderingContext ? 2 : 1;\n // TODO - move to weak map indexing\n glToContextMap.set(this.gl, this);\n\n // Luma Device fields\n this.info = getDeviceInfo(this.gl);\n // Log some debug info about the newly created context\n // @ts-expect-error device is attached to context\n const debug = this.gl.debug ? ' debug' : '';\n const webGL = isWebGL2(this.gl) ? 'WebGL2' : 'WebGL1';\n log.group(0, `${webGL}${debug} context: ${this.info.vendor}, ${this.info.renderer}`)();\n\n polyfillContext(this.gl);\n log.probe(0, 'polyfilled context')();\n\n // Install context state tracking\n trackContextState(this.gl, {\n copyState: false,\n log: (...args) => log.log(1, ...args)()\n });\n log.probe(0, 'instrumented context')();\n\n // WebGPU Device fields\n this.features = getDeviceFeatures(this.gl);\n log.probe(0, `queried device features ${counter}`)();\n this.limits = getDeviceLimits(this.gl);\n log.probe(0, 'queried device limits')();\n\n // Add seer integration - TODO - currently removed\n\n // WEBGL specific fields\n this.webglLimits = getWebGLLimits(this.gl);\n log.probe(0, 'queried webgl limits')();\n\n // Add debug instrumentation to the context\n // if (isBrowser() && props.debug) {\n // // @ts-ignore\n // const {makeDebugContext} = global;\n // if (!makeDebugContext) {\n // log.warn('WebGL debug mode not activated. import \"@luma.gl/debug\" to enable.')();\n // } else {\n // // @ts-ignore\n // this.gl = global.makeDebugContext(this.gl, props);\n // this.gl2 = this.gl as WebGL2RenderingContext;\n // // Debug forces log level to at least 1\n // log.level = Math.max(log.level, 1);\n // }\n // }\n\n log.groupEnd(0)();\n this._state = 'initialized';\n }\n\n /**\n * Destroys the context\n * @note Has no effect for browser contexts, there is no browser API for destroying contexts\n */\n destroy() {\n let ext = this.gl.getExtension('STACKGL_destroy_context');\n if (ext) {\n ext.destroy();\n }\n // ext = this.gl.getExtension('WEBGL_lose_context');\n // if (ext) {\n // // TODO - disconnect context lost callbacks?\n // ext.loseContext();\n // }\n }\n\n // WEBGL SPECIFIC METHODS\n\n /**\n * Resize the canvas' drawing buffer.\n *\n * Can match the canvas CSS size, and optionally also consider devicePixelRatio\n * Can be called every frame\n *\n * Regardless of size, the drawing buffer will always be scaled to the viewport, but\n * for best visual results, usually set to either:\n * canvas CSS width x canvas CSS height\n * canvas CSS width * devicePixelRatio x canvas CSS height * devicePixelRatio\n * See http://webgl2fundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html\n */\n resize(options?: {width?: number; height?: number; useDevicePixels?: boolean | number}): void {\n // Resize browser context .\n if (this.gl.canvas) {\n const devicePixelRatio = getDevicePixelRatio(options?.useDevicePixels);\n setDevicePixelRatio(this.gl, devicePixelRatio, options);\n return;\n }\n\n // Resize headless gl context\n const ext = this.gl.getExtension('STACKGL_resize_drawingbuffer');\n if (ext && options && `width` in options && `height` in options) {\n ext.resize(options.width, options.height);\n }\n }\n\n _createBuffer(props: BufferProps): WEBGLBuffer {\n return new WEBGLBuffer(this.gl, props);\n }\n\n createTexture(props: Texture2DProps): Texture2D {\n return new Texture2D(this, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this, props);\n }\n\n /**\n * Offscreen Canvas Support: Commit the frame\n * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/commit\n * Chrome's offscreen canvas does not require gl.commit\n */\n commit(): void {\n // @ts-expect-error gl.commit is not officially part of WebGLRenderingContext\n if (this.offScreen && this.gl.commit) {\n // @ts-expect-error gl.commit is not officially part of WebGLRenderingContext\n this.gl.commit();\n }\n }\n\n // PRIVATE METHODS\n\n /**\n * Creates a context giving access to the WebGL API\n */\n _createContext(options?: WebGLDeviceProps): WebGLRenderingContext {\n const {width, height, canvas} = this.props;\n // Get or create a canvas\n const targetCanvas = getCanvas({canvas, width, height});\n // Create a WebGL context in the canvas\n return createBrowserContext(targetCanvas, options);\n }\n}\n\n/*\nimport {\n isWebGL, isWebGL2,\n createGLContext,\n instrumentGLContext,\n getContextDebugInfo,\n resizeGLContext\n} from '@luma.gl/gltools';\n\n// prettier-ignore\nimport {\n Device, DeviceInfo, DeviceLimits,\n Buffer, BufferProps\n} from '@luma.gl/api';\n\nimport {getWebGLDeviceInfo} from '../converters/webgl-device-info';\nimport {getWebGLLimits} from '../converters/webgl-limits';\nimport {getWebGLFeatures} from '../converters/webgl-features';\n\nexport default class WEBGLDevice implements Device {\n readonly handle: WebGLRenderingContext;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n readonly canvas: HTMLCanvasElement;\n\n static isSupported(options: {canvas?: HTMLCanvasElement}): boolean {\n const {canvas} = options;\n let gl;\n try {\n gl = canvas && canvas.getContext(\"webgl\");\n gl = gl && canvas && canvas.getContext(\"experimental-webgl\");\n } catch (x) {\n gl = null;\n }\n return Boolean(gl);\n }\n\n constructor(props = {}) {\n const {canvas, swapChainFormat = \"bgra8unorm\"} = props;\n\n const gl = createGLContext(props);\n this.handle =\n this.gl = gl;\n this.gl2 = gl instanceof WebGL2RenderingContext ? gl : null;\n this.canvas = canvas;\n }\n\n resize(width, height) {\n resizeGLContext(this.gl);\n }\n\n getInfo(): DeviceInfo {\n return getWebGLDeviceInfo(this.gl);\n }\n\n getLimits(): DeviceLimits {\n return getWebGLLimits(this.gl, this.gl2);\n }\n\n getFeatures(): string[] {\n return getWebGLFeatures(this.gl);\n }\n\n createBuffer(props: WebGPUBufferProps): WEBGLBuffer {\n return new WEBGLBuffer(this.gl2 || this.gl, props);\n }\n\n createTexture(props: WebGPUTextureProps): WEBGLTexture {\n return new WEBGLTexture(this, props);\n }\n\n createSampler(props: WebGPUSamplerProps): WEBGLSampler {\n return new WEBGLSampler(this, props);\n }\n\n createShader(props: WebGPUShaderProps): WEBGLShader {\n return new WEBGLShader(this, props);\n }\n\n createRenderPipeline(props: WebGPURenderPipelineProps): WEBGLPipeline {\n return new WEBGLRenderPipeline(this, props);\n }\n\n createComputePipeline(props: WebGPUComputePipelineProps): WebGPUPipeline {\n return new WebGPUComputePipeline(this, props);\n }\n\n\n // PRIVATE\n\n _startFrame() {}\n\n _endFrame() {}\n}\n*/\n"],"file":"webgl-device.js"}
@@ -0,0 +1,18 @@
1
+ import { Shader, ShaderProps } from '@luma.gl/api';
2
+ import { CompilerMessage } from '@luma.gl/shadertools';
3
+ import WebGLDevice from '../adapter/webgl-device';
4
+ /**
5
+ * An immutable compiled shader program that execute portions of the GPU Pipeline
6
+ */
7
+ export declare class WEBGLShader extends Shader {
8
+ readonly device: WebGLDevice;
9
+ readonly gl: WebGLRenderingContext;
10
+ readonly handle: WebGLShader;
11
+ readonly stage: 'vertex' | 'fragment';
12
+ readonly source: string;
13
+ constructor(device: WebGLDevice, props: ShaderProps);
14
+ destroy(): void;
15
+ compilationInfo(): Promise<readonly CompilerMessage[]>;
16
+ _compile(source: any): void;
17
+ }
18
+ //# sourceMappingURL=webgl-shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-shader.d.ts","sourceRoot":"","sources":["../../src/adapter/webgl-shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAgB,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AAEvF,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAElD;;GAEG;AACF,qBAAa,WAAY,SAAQ,MAAM;IACtC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW;IAmBnD,OAAO,IAAI,IAAI;IAST,eAAe,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAO5D,QAAQ,CAAC,MAAM,KAAA;CAqBhB"}
@@ -0,0 +1,82 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { log, uid, Shader } from '@luma.gl/api';
3
+ import GL from '@luma.gl/constants';
4
+ import { getShaderInfo, formatCompilerLog } from '@luma.gl/shadertools';
5
+ import { parseShaderCompilerLog } from '../webgl-utils/parse-shader-compiler-log';
6
+ export class WEBGLShader extends Shader {
7
+ constructor(device, props) {
8
+ super(device, {
9
+ id: getShaderIdFromProps(props),
10
+ ...props
11
+ });
12
+
13
+ _defineProperty(this, "device", void 0);
14
+
15
+ _defineProperty(this, "gl", void 0);
16
+
17
+ _defineProperty(this, "handle", void 0);
18
+
19
+ _defineProperty(this, "stage", void 0);
20
+
21
+ _defineProperty(this, "source", void 0);
22
+
23
+ this.device = device;
24
+ this.gl = device.gl;
25
+
26
+ switch (this.props.stage) {
27
+ case 'vertex':
28
+ this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);
29
+ break;
30
+
31
+ case 'fragment':
32
+ this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);
33
+ break;
34
+
35
+ default:
36
+ throw new Error(this.props.stage);
37
+ }
38
+
39
+ this.stage = this.props.stage;
40
+ this.source = this.props.source;
41
+
42
+ this._compile(this.source);
43
+ }
44
+
45
+ destroy() {
46
+ if (this.handle) {
47
+ this.removeStats();
48
+ this.gl.deleteShader(this.handle);
49
+ this.handle = null;
50
+ }
51
+ }
52
+
53
+ async compilationInfo() {
54
+ const log = this.gl.getShaderInfoLog(this.handle);
55
+ return parseShaderCompilerLog(log);
56
+ }
57
+
58
+ _compile(source) {
59
+ const addGLSLVersion = source => source.startsWith('#version ') ? source : "#version 100\n".concat(source);
60
+
61
+ source = addGLSLVersion(source);
62
+ this.gl.shaderSource(this.handle, source);
63
+ this.gl.compileShader(this.handle);
64
+ const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);
65
+
66
+ if (!compileStatus) {
67
+ const shaderLog = this.gl.getShaderInfoLog(this.handle);
68
+ const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');
69
+ const formattedLog = formatCompilerLog(messages, source);
70
+ const shaderName = getShaderInfo(source).name;
71
+ const shaderDescription = "".concat(this.stage, " shader ").concat(shaderName);
72
+ log.error("GLSL compilation errors in ".concat(shaderDescription, "\n").concat(formattedLog))();
73
+ throw new Error("GLSL compilation errors in ".concat(shaderName));
74
+ }
75
+ }
76
+
77
+ }
78
+
79
+ function getShaderIdFromProps(props) {
80
+ return getShaderInfo(props.source).name || props.id || uid("unnamed ".concat(props.stage, "-shader"));
81
+ }
82
+ //# sourceMappingURL=webgl-shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/adapter/webgl-shader.ts"],"names":["log","uid","Shader","GL","getShaderInfo","formatCompilerLog","parseShaderCompilerLog","WEBGLShader","constructor","device","props","id","getShaderIdFromProps","gl","stage","handle","createShader","VERTEX_SHADER","FRAGMENT_SHADER","Error","source","_compile","destroy","removeStats","deleteShader","compilationInfo","getShaderInfoLog","addGLSLVersion","startsWith","shaderSource","compileShader","compileStatus","getShaderParameter","COMPILE_STATUS","shaderLog","messages","filter","message","type","formattedLog","shaderName","name","shaderDescription","error"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {log, uid, Shader, ShaderProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getShaderInfo, CompilerMessage, formatCompilerLog} from '@luma.gl/shadertools';\nimport {parseShaderCompilerLog} from '../webgl-utils/parse-shader-compiler-log';\nimport WebGLDevice from '../adapter/webgl-device';\n\n/**\n * An immutable compiled shader program that execute portions of the GPU Pipeline\n */\n export class WEBGLShader extends Shader {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly handle: WebGLShader;\n\n readonly stage: 'vertex' | 'fragment';\n readonly source: string;\n\n constructor(device: WebGLDevice, props: ShaderProps) {\n super(device, {id: getShaderIdFromProps(props), ...props});\n this.device = device;\n this.gl = device.gl;\n switch (this.props.stage) {\n case 'vertex':\n this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);\n break;\n case 'fragment':\n this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);\n break;\n default:\n throw new Error(this.props.stage);\n }\n this.stage = this.props.stage;\n this.source = this.props.source;\n this._compile(this.source);\n }\n\n destroy(): void {\n if (this.handle) {\n this.removeStats();\n this.gl.deleteShader(this.handle);\n // @ts-expect-error\n this.handle = null;\n }\n }\n\n async compilationInfo(): Promise<readonly CompilerMessage[]> {\n const log = this.gl.getShaderInfoLog(this.handle);\n return parseShaderCompilerLog(log);\n }\n\n // PRIVATE METHODS\n\n _compile(source) {\n const addGLSLVersion = source => source.startsWith('#version ') ? source : `#version 100\\n${source}`;\n source = addGLSLVersion(source);\n\n this.gl.shaderSource(this.handle, source);\n this.gl.compileShader(this.handle);\n\n // TODO - For performance reasons, avoid checking shader compilation errors on production?\n // TODO - Load log even when no error reported, to catch warnings?\n // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings\n const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);\n if (!compileStatus) {\n const shaderLog = this.gl.getShaderInfoLog(this.handle);\n const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');\n const formattedLog = formatCompilerLog(messages, source);\n const shaderName: string = getShaderInfo(source).name;\n const shaderDescription = `${this.stage} shader ${shaderName}`;\n log.error(`GLSL compilation errors in ${shaderDescription}\\n${formattedLog}`)();\n throw new Error(`GLSL compilation errors in ${shaderName}`);\n }\n }\n}\n\n// HELPERS\n\n/** Deduce an id, from shader source, or supplied id, or shader type */\nfunction getShaderIdFromProps(props: ShaderProps): string {\n return getShaderInfo(props.source).name ||\n props.id ||\n uid(`unnamed ${props.stage}-shader`);\n}\n"],"file":"webgl-shader.js"}
@@ -0,0 +1,2 @@
1
+ declare const moduleExports: any;
2
+ //# sourceMappingURL=bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
package/dist/bundle.js ADDED
@@ -0,0 +1,5 @@
1
+ const moduleExports = require('./index');
2
+
3
+ globalThis.luma = globalThis.luma || {};
4
+ module.exports = Object.assign(globalThis.luma, moduleExports);
5
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/bundle.ts"],"names":["moduleExports","require","globalThis","luma","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,IAAX,GAAkBD,UAAU,CAACC,IAAX,IAAmB,EAArC;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,IAAzB,EAA+BH,aAA/B,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.luma = globalThis.luma || {};\nmodule.exports = Object.assign(globalThis.luma, moduleExports);\n"],"file":"bundle.js"}
@@ -0,0 +1,28 @@
1
+ interface AccessorObject {
2
+ buffer?: Buffer
3
+ offset?: number
4
+ stride?: number
5
+ type?: number
6
+ size?: number
7
+ divisor?: number
8
+ normalize?: boolean
9
+ integer?: boolean
10
+ }
11
+
12
+ export default class Accessor {
13
+ static getBytesPerElement(accessor: any): number;
14
+ static getBytesPerVertex(accessor: any): number;
15
+ static resolve(...accessors: any[]): Accessor;
16
+ constructor(...accessors: any[]);
17
+ toString(): string;
18
+ get BYTES_PER_ELEMENT(): number;
19
+ get BYTES_PER_VERTEX(): number;
20
+
21
+ readonly offset: number;
22
+ readonly stride: number;
23
+ readonly type: number;
24
+ readonly size: number;
25
+ readonly divisor: number;
26
+ readonly normalized: boolean;
27
+ readonly integer: boolean;
28
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessor.d.ts","sourceRoot":"","sources":["../../src/classes/accessor.js"],"names":[],"mappings":"AAqBA;IACE,iDAKC;IAED,gDAMC;IAMD,8CAEC;IAED,iCAGC;IAED,mBAEC;IAKD,gCAEC;IAED,+BAEC;IAKD,8BAwDC;IApDG,UAAsB;IAIpB,aAAmB;IAIrB,UAAsB;IAGtB,YAA0B;IAG1B,YAA0B;IAG1B,gBAAkC;IAQlC,aAA4B;IAK5B,YAA0B;IAOxB,WAAgC;CAgBvC"}
@@ -0,0 +1,112 @@
1
+ import { assert, checkProps } from '@luma.gl/api';
2
+ import GL from '@luma.gl/constants';
3
+ import { getTypedArrayFromGLType } from '../webgl-utils/typed-array-utils';
4
+ const DEFAULT_ACCESSOR_VALUES = {
5
+ offset: 0,
6
+ stride: 0,
7
+ type: GL.FLOAT,
8
+ size: 1,
9
+ divisor: 0,
10
+ normalized: false,
11
+ integer: false
12
+ };
13
+ const PROP_CHECKS = {
14
+ deprecatedProps: {
15
+ instanced: 'divisor',
16
+ isInstanced: 'divisor'
17
+ }
18
+ };
19
+ export default class Accessor {
20
+ static getBytesPerElement(accessor) {
21
+ const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
22
+ return ArrayType.BYTES_PER_ELEMENT;
23
+ }
24
+
25
+ static getBytesPerVertex(accessor) {
26
+ assert(accessor.size);
27
+ const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
28
+ return ArrayType.BYTES_PER_ELEMENT * accessor.size;
29
+ }
30
+
31
+ static resolve(...accessors) {
32
+ return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]);
33
+ }
34
+
35
+ constructor(...accessors) {
36
+ accessors.forEach(accessor => this._assign(accessor));
37
+ Object.freeze(this);
38
+ }
39
+
40
+ toString() {
41
+ return JSON.stringify(this);
42
+ }
43
+
44
+ get BYTES_PER_ELEMENT() {
45
+ return Accessor.getBytesPerElement(this);
46
+ }
47
+
48
+ get BYTES_PER_VERTEX() {
49
+ return Accessor.getBytesPerVertex(this);
50
+ }
51
+
52
+ _assign(props = {}) {
53
+ props = checkProps('Accessor', props, PROP_CHECKS);
54
+
55
+ if (props.type !== undefined) {
56
+ this.type = props.type;
57
+
58
+ if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
59
+ this.integer = true;
60
+ }
61
+ }
62
+
63
+ if (props.size !== undefined) {
64
+ this.size = props.size;
65
+ }
66
+
67
+ if (props.offset !== undefined) {
68
+ this.offset = props.offset;
69
+ }
70
+
71
+ if (props.stride !== undefined) {
72
+ this.stride = props.stride;
73
+ }
74
+
75
+ if (props.normalized !== undefined) {
76
+ this.normalized = props.normalized;
77
+ }
78
+
79
+ if (props.integer !== undefined) {
80
+ this.integer = props.integer;
81
+ }
82
+
83
+ if (props.divisor !== undefined) {
84
+ this.divisor = props.divisor;
85
+ }
86
+
87
+ if (props.buffer !== undefined) {
88
+ this.buffer = props.buffer;
89
+ }
90
+
91
+ if (props.index !== undefined) {
92
+ if (typeof props.index === 'boolean') {
93
+ this.index = props.index ? 1 : 0;
94
+ } else {
95
+ this.index = props.index;
96
+ }
97
+ }
98
+
99
+ if (props.instanced !== undefined) {
100
+ this.divisor = props.instanced ? 1 : 0;
101
+ }
102
+
103
+ if (props.isInstanced !== undefined) {
104
+ this.divisor = props.isInstanced ? 1 : 0;
105
+ }
106
+
107
+ return this;
108
+ }
109
+
110
+ }
111
+ export { DEFAULT_ACCESSOR_VALUES };
112
+ //# sourceMappingURL=accessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/accessor.js"],"names":["assert","checkProps","GL","getTypedArrayFromGLType","DEFAULT_ACCESSOR_VALUES","offset","stride","type","FLOAT","size","divisor","normalized","integer","PROP_CHECKS","deprecatedProps","instanced","isInstanced","Accessor","getBytesPerElement","accessor","ArrayType","BYTES_PER_ELEMENT","getBytesPerVertex","resolve","accessors","constructor","forEach","_assign","Object","freeze","toString","JSON","stringify","BYTES_PER_VERTEX","props","undefined","INT","UNSIGNED_INT","buffer","index"],"mappings":"AAAA,SAAQA,MAAR,EAAgBC,UAAhB,QAAiC,cAAjC;AACA,OAAOC,EAAP,MAAe,oBAAf;AACA,SAAQC,uBAAR,QAAsC,kCAAtC;AAEA,MAAMC,uBAAuB,GAAG;AAC9BC,EAAAA,MAAM,EAAE,CADsB;AAE9BC,EAAAA,MAAM,EAAE,CAFsB;AAG9BC,EAAAA,IAAI,EAAEL,EAAE,CAACM,KAHqB;AAI9BC,EAAAA,IAAI,EAAE,CAJwB;AAK9BC,EAAAA,OAAO,EAAE,CALqB;AAM9BC,EAAAA,UAAU,EAAE,KANkB;AAO9BC,EAAAA,OAAO,EAAE;AAPqB,CAAhC;AAUA,MAAMC,WAAW,GAAG;AAClBC,EAAAA,eAAe,EAAE;AACfC,IAAAA,SAAS,EAAE,SADI;AAEfC,IAAAA,WAAW,EAAE;AAFE;AADC,CAApB;AAOA,eAAe,MAAMC,QAAN,CAAe;AACH,SAAlBC,kBAAkB,CAACC,QAAD,EAAW;AAGlC,UAAMC,SAAS,GAAGjB,uBAAuB,CAACgB,QAAQ,CAACZ,IAAT,IAAiBL,EAAE,CAACM,KAArB,CAAzC;AACA,WAAOY,SAAS,CAACC,iBAAjB;AACD;;AAEuB,SAAjBC,iBAAiB,CAACH,QAAD,EAAW;AACjCnB,IAAAA,MAAM,CAACmB,QAAQ,CAACV,IAAV,CAAN;AAGA,UAAMW,SAAS,GAAGjB,uBAAuB,CAACgB,QAAQ,CAACZ,IAAT,IAAiBL,EAAE,CAACM,KAArB,CAAzC;AACA,WAAOY,SAAS,CAACC,iBAAV,GAA8BF,QAAQ,CAACV,IAA9C;AACD;;AAMa,SAAPc,OAAO,CAAC,GAAGC,SAAJ,EAAe;AAC3B,WAAO,IAAIP,QAAJ,CAAa,GAAG,CAACb,uBAAD,EAA0B,GAAGoB,SAA7B,CAAhB,CAAP;AACD;;AAEDC,EAAAA,WAAW,CAAC,GAAGD,SAAJ,EAAe;AACxBA,IAAAA,SAAS,CAACE,OAAV,CAAmBP,QAAD,IAAc,KAAKQ,OAAL,CAAaR,QAAb,CAAhC;AACAS,IAAAA,MAAM,CAACC,MAAP,CAAc,IAAd;AACD;;AAEDC,EAAAA,QAAQ,GAAG;AACT,WAAOC,IAAI,CAACC,SAAL,CAAe,IAAf,CAAP;AACD;;AAKoB,MAAjBX,iBAAiB,GAAG;AACtB,WAAOJ,QAAQ,CAACC,kBAAT,CAA4B,IAA5B,CAAP;AACD;;AAEmB,MAAhBe,gBAAgB,GAAG;AACrB,WAAOhB,QAAQ,CAACK,iBAAT,CAA2B,IAA3B,CAAP;AACD;;AAKDK,EAAAA,OAAO,CAACO,KAAK,GAAG,EAAT,EAAa;AAClBA,IAAAA,KAAK,GAAGjC,UAAU,CAAC,UAAD,EAAaiC,KAAb,EAAoBrB,WAApB,CAAlB;;AAEA,QAAIqB,KAAK,CAAC3B,IAAN,KAAe4B,SAAnB,EAA8B;AAC5B,WAAK5B,IAAL,GAAY2B,KAAK,CAAC3B,IAAlB;;AAGA,UAAI2B,KAAK,CAAC3B,IAAN,KAAeL,EAAE,CAACkC,GAAlB,IAAyBF,KAAK,CAAC3B,IAAN,KAAeL,EAAE,CAACmC,YAA/C,EAA6D;AAC3D,aAAKzB,OAAL,GAAe,IAAf;AACD;AACF;;AACD,QAAIsB,KAAK,CAACzB,IAAN,KAAe0B,SAAnB,EAA8B;AAC5B,WAAK1B,IAAL,GAAYyB,KAAK,CAACzB,IAAlB;AACD;;AACD,QAAIyB,KAAK,CAAC7B,MAAN,KAAiB8B,SAArB,EAAgC;AAC9B,WAAK9B,MAAL,GAAc6B,KAAK,CAAC7B,MAApB;AACD;;AACD,QAAI6B,KAAK,CAAC5B,MAAN,KAAiB6B,SAArB,EAAgC;AAC9B,WAAK7B,MAAL,GAAc4B,KAAK,CAAC5B,MAApB;AACD;;AACD,QAAI4B,KAAK,CAACvB,UAAN,KAAqBwB,SAAzB,EAAoC;AAClC,WAAKxB,UAAL,GAAkBuB,KAAK,CAACvB,UAAxB;AACD;;AACD,QAAIuB,KAAK,CAACtB,OAAN,KAAkBuB,SAAtB,EAAiC;AAC/B,WAAKvB,OAAL,GAAesB,KAAK,CAACtB,OAArB;AACD;;AAGD,QAAIsB,KAAK,CAACxB,OAAN,KAAkByB,SAAtB,EAAiC;AAC/B,WAAKzB,OAAL,GAAewB,KAAK,CAACxB,OAArB;AACD;;AAGD,QAAIwB,KAAK,CAACI,MAAN,KAAiBH,SAArB,EAAgC;AAC9B,WAAKG,MAAL,GAAcJ,KAAK,CAACI,MAApB;AACD;;AAID,QAAIJ,KAAK,CAACK,KAAN,KAAgBJ,SAApB,EAA+B;AAC7B,UAAI,OAAOD,KAAK,CAACK,KAAb,KAAuB,SAA3B,EAAsC;AACpC,aAAKA,KAAL,GAAaL,KAAK,CAACK,KAAN,GAAc,CAAd,GAAkB,CAA/B;AACD,OAFD,MAEO;AACL,aAAKA,KAAL,GAAaL,KAAK,CAACK,KAAnB;AACD;AACF;;AAGD,QAAIL,KAAK,CAACnB,SAAN,KAAoBoB,SAAxB,EAAmC;AACjC,WAAKzB,OAAL,GAAewB,KAAK,CAACnB,SAAN,GAAkB,CAAlB,GAAsB,CAArC;AACD;;AACD,QAAImB,KAAK,CAAClB,WAAN,KAAsBmB,SAA1B,EAAqC;AACnC,WAAKzB,OAAL,GAAewB,KAAK,CAAClB,WAAN,GAAoB,CAApB,GAAwB,CAAvC;AACD;;AAED,WAAO,IAAP;AACD;;AAvG2B;AA2G9B,SAAQZ,uBAAR","sourcesContent":["import {assert, checkProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getTypedArrayFromGLType} from '../webgl-utils/typed-array-utils';\n\nconst DEFAULT_ACCESSOR_VALUES = {\n offset: 0,\n stride: 0,\n type: GL.FLOAT,\n size: 1,\n divisor: 0,\n normalized: false,\n integer: false\n};\n\nconst PROP_CHECKS = {\n deprecatedProps: {\n instanced: 'divisor',\n isInstanced: 'divisor'\n }\n};\n\nexport default class Accessor {\n static getBytesPerElement(accessor) {\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n\n static getBytesPerVertex(accessor) {\n assert(accessor.size);\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT * accessor.size;\n }\n\n // Combines (merges) a list of accessors. On top of default values\n // Usually [programAccessor, bufferAccessor, appAccessor]\n // All props will be set in the returned object.\n // TODO check for conflicts between values in the supplied accessors\n static resolve(...accessors) {\n return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values\n }\n\n constructor(...accessors) {\n accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence\n Object.freeze(this);\n }\n\n toString() {\n return JSON.stringify(this);\n }\n\n // ACCESSORS\n\n // TODO - remove>\n get BYTES_PER_ELEMENT() {\n return Accessor.getBytesPerElement(this);\n }\n\n get BYTES_PER_VERTEX() {\n return Accessor.getBytesPerVertex(this);\n }\n\n // PRIVATE\n\n // eslint-disable-next-line complexity, max-statements\n _assign(props = {}) {\n props = checkProps('Accessor', props, PROP_CHECKS);\n\n if (props.type !== undefined) {\n this.type = props.type;\n\n // Auto-deduce integer type?\n if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {\n this.integer = true;\n }\n }\n if (props.size !== undefined) {\n this.size = props.size;\n }\n if (props.offset !== undefined) {\n this.offset = props.offset;\n }\n if (props.stride !== undefined) {\n this.stride = props.stride;\n }\n if (props.normalized !== undefined) {\n this.normalized = props.normalized;\n }\n if (props.integer !== undefined) {\n this.integer = props.integer;\n }\n\n // INSTANCE DIVISOR\n if (props.divisor !== undefined) {\n this.divisor = props.divisor;\n }\n\n // Buffer is optional\n if (props.buffer !== undefined) {\n this.buffer = props.buffer;\n }\n\n // The binding index (for binding e.g. Transform feedbacks and Uniform buffers)\n // TODO - should this be part of accessor?\n if (props.index !== undefined) {\n if (typeof props.index === 'boolean') {\n this.index = props.index ? 1 : 0;\n } else {\n this.index = props.index;\n }\n }\n\n // DEPRECATED\n if (props.instanced !== undefined) {\n this.divisor = props.instanced ? 1 : 0;\n }\n if (props.isInstanced !== undefined) {\n this.divisor = props.isInstanced ? 1 : 0;\n }\n\n return this;\n }\n}\n\n// TEST EXPORTS\nexport {DEFAULT_ACCESSOR_VALUES};\n"],"file":"accessor.js"}