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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +5 -0
  4. package/dist/bundle.js.map +1 -0
  5. package/dist/classes/accessor.d.ts +28 -0
  6. package/dist/classes/accessor.d.ts.map +1 -0
  7. package/dist/classes/accessor.js +112 -0
  8. package/dist/classes/accessor.js.map +1 -0
  9. package/dist/classes/accessor.ts.disabled +159 -0
  10. package/dist/classes/clear.d.ts +16 -0
  11. package/dist/classes/clear.d.ts.map +1 -0
  12. package/dist/classes/clear.js +102 -0
  13. package/dist/classes/clear.js.map +1 -0
  14. package/dist/classes/copy-and-blit.d.ts +69 -0
  15. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  16. package/dist/classes/copy-and-blit.js +333 -0
  17. package/dist/classes/copy-and-blit.js.map +1 -0
  18. package/dist/classes/framebuffer.d.ts +130 -0
  19. package/dist/classes/framebuffer.d.ts.map +1 -0
  20. package/dist/classes/framebuffer.js +656 -0
  21. package/dist/classes/framebuffer.js.map +1 -0
  22. package/dist/classes/program-configuration.d.ts +27 -0
  23. package/dist/classes/program-configuration.d.ts.map +1 -0
  24. package/dist/classes/program-configuration.js +160 -0
  25. package/dist/classes/program-configuration.js.map +1 -0
  26. package/dist/classes/program.d.ts +61 -0
  27. package/dist/classes/program.d.ts.map +1 -0
  28. package/dist/classes/program.js +368 -0
  29. package/dist/classes/program.js.map +1 -0
  30. package/dist/classes/query.d.ts +27 -0
  31. package/dist/classes/query.d.ts.map +1 -0
  32. package/dist/classes/query.js +144 -0
  33. package/dist/classes/query.js.map +1 -0
  34. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  35. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  36. package/dist/classes/renderbuffer-formats.js +185 -0
  37. package/dist/classes/renderbuffer-formats.js.map +1 -0
  38. package/dist/classes/renderbuffer.d.ts +60 -0
  39. package/dist/classes/renderbuffer.d.ts.map +1 -0
  40. package/dist/classes/renderbuffer.js +127 -0
  41. package/dist/classes/renderbuffer.js.map +1 -0
  42. package/dist/classes/texture-2d.d.ts +8 -0
  43. package/dist/classes/texture-2d.d.ts.map +1 -0
  44. package/dist/classes/texture-2d.js +39 -0
  45. package/dist/classes/texture-2d.js.map +1 -0
  46. package/dist/classes/texture-3d.d.ts +28 -0
  47. package/dist/classes/texture-3d.d.ts.map +1 -0
  48. package/dist/classes/texture-3d.js +67 -0
  49. package/dist/classes/texture-3d.js.map +1 -0
  50. package/dist/classes/texture-cube.d.ts +27 -0
  51. package/dist/classes/texture-cube.d.ts.map +1 -0
  52. package/dist/classes/texture-cube.js +131 -0
  53. package/dist/classes/texture-cube.js.map +1 -0
  54. package/dist/classes/texture-formats.d.ts +37 -0
  55. package/dist/classes/texture-formats.d.ts.map +1 -0
  56. package/dist/classes/texture-formats.js +98 -0
  57. package/dist/classes/texture-formats.js.map +1 -0
  58. package/dist/classes/texture.d.ts +118 -0
  59. package/dist/classes/texture.d.ts.map +1 -0
  60. package/dist/classes/texture.js +785 -0
  61. package/dist/classes/texture.js.map +1 -0
  62. package/dist/classes/transform-feedback.d.ts +33 -0
  63. package/dist/classes/transform-feedback.d.ts.map +1 -0
  64. package/dist/classes/transform-feedback.js +197 -0
  65. package/dist/classes/transform-feedback.js.map +1 -0
  66. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  67. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  68. package/dist/classes/uniform-buffer-layout.js +104 -0
  69. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  70. package/dist/classes/uniforms.d.ts +38 -0
  71. package/dist/classes/uniforms.d.ts.map +1 -0
  72. package/dist/classes/uniforms.js +251 -0
  73. package/dist/classes/uniforms.js.map +1 -0
  74. package/dist/classes/vertex-array-object.d.ts +75 -0
  75. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  76. package/dist/classes/vertex-array-object.js +262 -0
  77. package/dist/classes/vertex-array-object.js.map +1 -0
  78. package/dist/classes/vertex-array.d.ts +75 -0
  79. package/dist/classes/vertex-array.d.ts.map +1 -0
  80. package/dist/classes/vertex-array.js +409 -0
  81. package/dist/classes/vertex-array.js.map +1 -0
  82. package/dist/classes/webgl-buffer.d.ts +98 -0
  83. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  84. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +97 -73
  85. package/dist/classes/webgl-buffer.js.map +1 -0
  86. package/dist/classes/webgl-resource.d.ts +54 -0
  87. package/dist/classes/webgl-resource.d.ts.map +1 -0
  88. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +31 -52
  89. package/dist/classes/webgl-resource.js.map +1 -0
  90. package/dist/classes/webgl-shader.d.ts +51 -0
  91. package/dist/classes/webgl-shader.d.ts.map +1 -0
  92. package/dist/classes/webgl-shader.js +190 -0
  93. package/dist/classes/webgl-shader.js.map +1 -0
  94. package/dist/context/gl-context.d.ts +15 -0
  95. package/dist/context/gl-context.d.ts.map +1 -0
  96. package/dist/context/gl-context.js +32 -0
  97. package/dist/context/gl-context.js.map +1 -0
  98. package/dist/context/luma-context-data.d.ts +31 -0
  99. package/dist/context/luma-context-data.d.ts.map +1 -0
  100. package/dist/context/luma-context-data.js +5 -0
  101. package/dist/context/luma-context-data.js.map +1 -0
  102. package/dist/debug/debug-program-configuration.d.ts +2 -0
  103. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  104. package/dist/debug/debug-program-configuration.js +40 -0
  105. package/dist/debug/debug-program-configuration.js.map +1 -0
  106. package/dist/debug/debug-uniforms.d.ts +12 -0
  107. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  108. package/dist/debug/debug-uniforms.js +108 -0
  109. package/dist/debug/debug-uniforms.js.map +1 -0
  110. package/dist/debug/debug-vertex-array.d.ts +5 -0
  111. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  112. package/dist/debug/debug-vertex-array.js +118 -0
  113. package/dist/debug/debug-vertex-array.js.map +1 -0
  114. package/dist/es5/bundle.js +3 -5
  115. package/dist/es5/bundle.js.map +1 -1
  116. package/dist/es5/classes/accessor.js +76 -108
  117. package/dist/es5/classes/accessor.js.map +1 -1
  118. package/dist/es5/classes/accessor.ts.disabled +159 -0
  119. package/dist/es5/classes/clear.js +33 -48
  120. package/dist/es5/classes/clear.js.map +1 -1
  121. package/dist/es5/classes/copy-and-blit.js +177 -192
  122. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  123. package/dist/es5/classes/framebuffer.js +538 -655
  124. package/dist/es5/classes/framebuffer.js.map +1 -1
  125. package/dist/es5/classes/program-configuration.js +127 -141
  126. package/dist/es5/classes/program-configuration.js.map +1 -1
  127. package/dist/es5/classes/program.js +294 -358
  128. package/dist/es5/classes/program.js.map +1 -1
  129. package/dist/es5/classes/query.js +115 -181
  130. package/dist/es5/classes/query.js.map +1 -1
  131. package/dist/es5/classes/renderbuffer-formats.js +186 -121
  132. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  133. package/dist/es5/classes/renderbuffer.js +104 -128
  134. package/dist/es5/classes/renderbuffer.js.map +1 -1
  135. package/dist/es5/classes/texture-2d.js +16 -39
  136. package/dist/es5/classes/texture-2d.js.map +1 -1
  137. package/dist/es5/classes/texture-3d.js +50 -89
  138. package/dist/es5/classes/texture-3d.js.map +1 -1
  139. package/dist/es5/classes/texture-cube.js +112 -162
  140. package/dist/es5/classes/texture-cube.js.map +1 -1
  141. package/dist/es5/classes/texture-formats.js +73 -42
  142. package/dist/es5/classes/texture-formats.js.map +1 -1
  143. package/dist/es5/classes/texture.js +670 -673
  144. package/dist/es5/classes/texture.js.map +1 -1
  145. package/dist/es5/classes/transform-feedback.js +150 -203
  146. package/dist/es5/classes/transform-feedback.js.map +1 -1
  147. package/dist/es5/classes/uniform-buffer-layout.js +89 -103
  148. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  149. package/dist/es5/classes/uniforms.js +134 -93
  150. package/dist/es5/classes/uniforms.js.map +1 -1
  151. package/dist/es5/classes/vertex-array-object.js +204 -306
  152. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  153. package/dist/es5/classes/vertex-array.js +317 -353
  154. package/dist/es5/classes/vertex-array.js.map +1 -1
  155. package/dist/es5/classes/webgl-buffer.js +391 -0
  156. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  157. package/dist/es5/classes/webgl-resource.js +217 -0
  158. package/dist/es5/classes/webgl-resource.js.map +1 -0
  159. package/dist/es5/classes/webgl-shader.js +213 -0
  160. package/dist/es5/classes/webgl-shader.js.map +1 -0
  161. package/dist/es5/context/gl-context.js +46 -0
  162. package/dist/es5/context/gl-context.js.map +1 -0
  163. package/dist/es5/context/luma-context-data.js +12 -0
  164. package/dist/es5/context/luma-context-data.js.map +1 -0
  165. package/dist/es5/debug/debug-program-configuration.js +20 -48
  166. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  167. package/dist/es5/debug/debug-uniforms.js +72 -114
  168. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  169. package/dist/es5/debug/debug-vertex-array.js +56 -51
  170. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  171. package/dist/es5/features/check-glsl-extension.js +9 -10
  172. package/dist/es5/features/check-glsl-extension.js.map +1 -1
  173. package/dist/es5/features/check-old-ie.js +5 -6
  174. package/dist/es5/features/check-old-ie.js.map +1 -1
  175. package/dist/es5/features/features.js +23 -37
  176. package/dist/es5/features/features.js.map +1 -1
  177. package/dist/es5/features/index.js +8 -8
  178. package/dist/es5/features/index.js.map +1 -1
  179. package/dist/es5/features/limits.js +36 -28
  180. package/dist/es5/features/limits.js.map +1 -1
  181. package/dist/es5/features/webgl-features-table.js +35 -15
  182. package/dist/es5/features/webgl-features-table.js.map +1 -1
  183. package/dist/es5/features/webgl-limits-table.js +160 -120
  184. package/dist/es5/features/webgl-limits-table.js.map +1 -1
  185. package/dist/es5/index.js +144 -90
  186. package/dist/es5/index.js.map +1 -1
  187. package/dist/es5/init.js +12 -36
  188. package/dist/es5/init.js.map +1 -1
  189. package/dist/es5/types.js +2 -0
  190. package/dist/es5/types.js.map +1 -0
  191. package/dist/es5/utils/array-utils-flat.js +13 -14
  192. package/dist/es5/utils/array-utils-flat.js.map +1 -1
  193. package/dist/es5/utils/assert.js +1 -1
  194. package/dist/es5/utils/assert.js.map +1 -1
  195. package/dist/es5/utils/check-props.js +20 -21
  196. package/dist/es5/utils/check-props.js.map +1 -1
  197. package/dist/es5/utils/format-value.js +14 -14
  198. package/dist/es5/utils/format-value.js.map +1 -1
  199. package/dist/es5/utils/index.js +68 -0
  200. package/dist/es5/utils/index.js.map +1 -0
  201. package/dist/es5/utils/is-old-ie.js +2 -3
  202. package/dist/es5/utils/is-old-ie.js.map +1 -1
  203. package/dist/es5/utils/load-file.js +11 -18
  204. package/dist/es5/utils/load-file.js.map +1 -1
  205. package/dist/es5/utils/stub-methods.js +4 -4
  206. package/dist/es5/utils/stub-methods.js.map +1 -1
  207. package/dist/es5/utils/utils.js +5 -10
  208. package/dist/es5/utils/utils.js.map +1 -1
  209. package/dist/es5/webgl-utils/attribute-utils.js +87 -74
  210. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  211. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  212. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  213. package/dist/es5/webgl-utils/format-utils.js +21 -17
  214. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  215. package/dist/es5/webgl-utils/get-error.js +18 -18
  216. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  217. package/dist/es5/webgl-utils/index.js +74 -0
  218. package/dist/es5/webgl-utils/index.js.map +1 -0
  219. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +44 -0
  220. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  221. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  222. package/dist/es5/webgl-utils/texture-utils.js +35 -29
  223. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  224. package/dist/es5/webgl-utils/typed-array-utils.js +51 -47
  225. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  226. package/dist/esm/bundle.js +2 -4
  227. package/dist/esm/bundle.js.map +1 -1
  228. package/dist/esm/classes/accessor.js +7 -7
  229. package/dist/esm/classes/accessor.js.map +1 -1
  230. package/dist/esm/classes/accessor.ts.disabled +159 -0
  231. package/dist/esm/classes/clear.js +15 -13
  232. package/dist/esm/classes/clear.js.map +1 -1
  233. package/dist/esm/classes/copy-and-blit.js +41 -43
  234. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  235. package/dist/esm/classes/framebuffer.js +336 -308
  236. package/dist/esm/classes/framebuffer.js.map +1 -1
  237. package/dist/esm/classes/program-configuration.js +17 -9
  238. package/dist/esm/classes/program-configuration.js.map +1 -1
  239. package/dist/esm/classes/program.js +69 -44
  240. package/dist/esm/classes/program.js.map +1 -1
  241. package/dist/esm/classes/query.js +17 -14
  242. package/dist/esm/classes/query.js.map +1 -1
  243. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  244. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  245. package/dist/esm/classes/renderbuffer.js +84 -72
  246. package/dist/esm/classes/renderbuffer.js.map +1 -1
  247. package/dist/esm/classes/texture-2d.js +10 -3
  248. package/dist/esm/classes/texture-2d.js.map +1 -1
  249. package/dist/esm/classes/texture-3d.js +14 -11
  250. package/dist/esm/classes/texture-3d.js.map +1 -1
  251. package/dist/esm/classes/texture-cube.js +43 -28
  252. package/dist/esm/classes/texture-cube.js.map +1 -1
  253. package/dist/esm/classes/texture-formats.js +51 -50
  254. package/dist/esm/classes/texture-formats.js.map +1 -1
  255. package/dist/esm/classes/texture.js +164 -49
  256. package/dist/esm/classes/texture.js.map +1 -1
  257. package/dist/esm/classes/transform-feedback.js +24 -13
  258. package/dist/esm/classes/transform-feedback.js.map +1 -1
  259. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  260. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  261. package/dist/esm/classes/uniforms.js +111 -112
  262. package/dist/esm/classes/uniforms.js.map +1 -1
  263. package/dist/esm/classes/vertex-array-object.js +52 -88
  264. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  265. package/dist/esm/classes/vertex-array.js +50 -28
  266. package/dist/esm/classes/vertex-array.js.map +1 -1
  267. package/dist/esm/classes/webgl-buffer.js +379 -0
  268. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  269. package/dist/esm/classes/webgl-resource.js +208 -0
  270. package/dist/esm/classes/webgl-resource.js.map +1 -0
  271. package/dist/esm/classes/webgl-shader.js +190 -0
  272. package/dist/esm/classes/webgl-shader.js.map +1 -0
  273. package/dist/esm/context/gl-context.js +32 -0
  274. package/dist/esm/context/gl-context.js.map +1 -0
  275. package/dist/esm/context/luma-context-data.js +5 -0
  276. package/dist/esm/context/luma-context-data.js.map +1 -0
  277. package/dist/esm/debug/debug-program-configuration.js +4 -4
  278. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  279. package/dist/esm/debug/debug-uniforms.js +9 -9
  280. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  281. package/dist/esm/debug/debug-vertex-array.js +19 -17
  282. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  283. package/dist/esm/features/check-glsl-extension.js +4 -4
  284. package/dist/esm/features/check-glsl-extension.js.map +1 -1
  285. package/dist/esm/features/check-old-ie.js.map +1 -1
  286. package/dist/esm/features/features.js +14 -13
  287. package/dist/esm/features/features.js.map +1 -1
  288. package/dist/esm/features/index.js.map +1 -1
  289. package/dist/esm/features/limits.js +25 -22
  290. package/dist/esm/features/limits.js.map +1 -1
  291. package/dist/esm/features/webgl-features-table.js +6 -6
  292. package/dist/esm/features/webgl-features-table.js.map +1 -1
  293. package/dist/esm/features/webgl-limits-table.js +43 -42
  294. package/dist/esm/features/webgl-limits-table.js.map +1 -1
  295. package/dist/esm/index.js +13 -15
  296. package/dist/esm/index.js.map +1 -1
  297. package/dist/esm/init.js +4 -23
  298. package/dist/esm/init.js.map +1 -1
  299. package/dist/esm/types.js +2 -0
  300. package/dist/esm/types.js.map +1 -0
  301. package/dist/esm/utils/array-utils-flat.js.map +1 -1
  302. package/dist/esm/utils/assert.js +1 -1
  303. package/dist/esm/utils/assert.js.map +1 -1
  304. package/dist/esm/utils/check-props.js +4 -4
  305. package/dist/esm/utils/check-props.js.map +1 -1
  306. package/dist/esm/utils/format-value.js +4 -4
  307. package/dist/esm/utils/format-value.js.map +1 -1
  308. package/dist/esm/utils/index.js +7 -0
  309. package/dist/esm/utils/index.js.map +1 -0
  310. package/dist/esm/utils/is-old-ie.js +1 -1
  311. package/dist/esm/utils/is-old-ie.js.map +1 -1
  312. package/dist/esm/utils/load-file.js +2 -2
  313. package/dist/esm/utils/load-file.js.map +1 -1
  314. package/dist/esm/utils/stub-methods.js +2 -3
  315. package/dist/esm/utils/stub-methods.js.map +1 -1
  316. package/dist/esm/utils/utils.js +1 -3
  317. package/dist/esm/utils/utils.js.map +1 -1
  318. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  319. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  320. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  321. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  322. package/dist/esm/webgl-utils/format-utils.js +16 -15
  323. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  324. package/dist/esm/webgl-utils/get-error.js +1 -1
  325. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  326. package/dist/esm/webgl-utils/index.js +5 -0
  327. package/dist/esm/webgl-utils/index.js.map +1 -0
  328. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  329. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  330. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  331. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  332. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  333. package/dist/esm/webgl-utils/typed-array-utils.js +19 -18
  334. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  335. package/dist/features/check-glsl-extension.d.ts +2 -0
  336. package/dist/features/check-glsl-extension.d.ts.map +1 -0
  337. package/dist/features/check-glsl-extension.js +27 -0
  338. package/dist/features/check-glsl-extension.js.map +1 -0
  339. package/dist/features/check-old-ie.d.ts +2 -0
  340. package/dist/features/check-old-ie.d.ts.map +1 -0
  341. package/dist/features/check-old-ie.js +8 -0
  342. package/dist/features/check-old-ie.js.map +1 -0
  343. package/dist/features/features.d.ts +6 -0
  344. package/dist/features/features.d.ts.map +1 -0
  345. package/dist/features/features.js +67 -0
  346. package/dist/features/features.js.map +1 -0
  347. package/dist/features/index.d.ts +5 -0
  348. package/dist/features/index.d.ts.map +1 -0
  349. package/dist/features/index.js +5 -0
  350. package/dist/features/index.js.map +1 -0
  351. package/dist/features/limits.d.ts +28 -0
  352. package/dist/features/limits.d.ts.map +1 -0
  353. package/dist/features/limits.js +55 -0
  354. package/dist/features/limits.js.map +1 -0
  355. package/dist/features/webgl-features-table.d.ts +30 -0
  356. package/dist/features/webgl-features-table.d.ts.map +1 -0
  357. package/dist/features/webgl-features-table.js +71 -0
  358. package/dist/features/webgl-features-table.js.map +1 -0
  359. package/dist/features/webgl-limits-table.d.ts +161 -0
  360. package/dist/features/webgl-limits-table.d.ts.map +1 -0
  361. package/dist/features/webgl-limits-table.js +161 -0
  362. package/dist/features/webgl-limits-table.js.map +1 -0
  363. package/dist/index.d.ts +33 -0
  364. package/dist/index.d.ts.map +1 -0
  365. package/dist/index.js +33 -0
  366. package/dist/index.js.map +1 -0
  367. package/dist/init.d.ts +5 -0
  368. package/dist/init.d.ts.map +1 -0
  369. package/dist/init.js +30 -0
  370. package/dist/init.js.map +1 -0
  371. package/dist/types.d.ts +9 -0
  372. package/dist/types.d.ts.map +1 -0
  373. package/dist/types.js +2 -0
  374. package/dist/types.js.map +1 -0
  375. package/dist/utils/array-utils-flat.d.ts +9 -0
  376. package/dist/utils/array-utils-flat.d.ts.map +1 -0
  377. package/dist/utils/array-utils-flat.js +39 -0
  378. package/dist/utils/array-utils-flat.js.map +1 -0
  379. package/dist/utils/assert.d.ts +2 -0
  380. package/dist/utils/assert.d.ts.map +1 -0
  381. package/dist/utils/assert.js +6 -0
  382. package/dist/utils/assert.js.map +1 -0
  383. package/dist/utils/check-props.d.ts +2 -0
  384. package/dist/utils/check-props.d.ts.map +1 -0
  385. package/dist/utils/check-props.js +38 -0
  386. package/dist/utils/check-props.js.map +1 -0
  387. package/dist/utils/format-value.d.ts +5 -0
  388. package/dist/utils/format-value.d.ts.map +1 -0
  389. package/dist/utils/format-value.js +50 -0
  390. package/dist/utils/format-value.js.map +1 -0
  391. package/dist/utils/index.d.ts +7 -0
  392. package/dist/utils/index.d.ts.map +1 -0
  393. package/dist/utils/index.js +7 -0
  394. package/dist/utils/index.js.map +1 -0
  395. package/dist/utils/is-old-ie.d.ts +4 -0
  396. package/dist/utils/is-old-ie.d.ts.map +1 -0
  397. package/dist/utils/is-old-ie.js +5 -0
  398. package/dist/utils/is-old-ie.js.map +1 -0
  399. package/dist/utils/load-file.d.ts +4 -0
  400. package/dist/utils/load-file.d.ts.map +1 -0
  401. package/dist/utils/load-file.js +30 -0
  402. package/dist/utils/load-file.js.map +1 -0
  403. package/dist/utils/stub-methods.d.ts +2 -0
  404. package/dist/utils/stub-methods.d.ts.map +1 -0
  405. package/dist/utils/stub-methods.js +16 -0
  406. package/dist/utils/stub-methods.js.map +1 -0
  407. package/dist/utils/utils.d.ts +15 -0
  408. package/dist/utils/utils.d.ts.map +1 -0
  409. package/dist/utils/utils.js +20 -0
  410. package/dist/utils/utils.js.map +1 -0
  411. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  412. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  413. package/dist/webgl-utils/attribute-utils.js +182 -0
  414. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  415. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  416. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  417. package/dist/webgl-utils/constants-to-keys.js +41 -0
  418. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  419. package/dist/webgl-utils/format-utils.d.ts +3 -0
  420. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  421. package/dist/webgl-utils/format-utils.js +45 -0
  422. package/dist/webgl-utils/format-utils.js.map +1 -0
  423. package/dist/webgl-utils/get-error.d.ts +3 -0
  424. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  425. package/dist/webgl-utils/get-error.js +41 -0
  426. package/dist/webgl-utils/get-error.js.map +1 -0
  427. package/dist/webgl-utils/index.d.ts +5 -0
  428. package/dist/webgl-utils/index.d.ts.map +1 -0
  429. package/dist/webgl-utils/index.js +5 -0
  430. package/dist/webgl-utils/index.js.map +1 -0
  431. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  432. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  433. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  434. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  435. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  436. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  437. package/dist/webgl-utils/request-animation-frame.js +7 -0
  438. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  439. package/dist/webgl-utils/texture-utils.d.ts +11 -0
  440. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  441. package/dist/webgl-utils/texture-utils.js +48 -0
  442. package/dist/webgl-utils/texture-utils.js.map +1 -0
  443. package/dist/webgl-utils/typed-array-utils.d.ts +36 -0
  444. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  445. package/dist/webgl-utils/typed-array-utils.js +108 -0
  446. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  447. package/package.json +9 -8
  448. package/src/bundle.ts +4 -0
  449. package/src/classes/accessor.js +3 -4
  450. package/src/classes/accessor.ts.disabled +159 -0
  451. package/src/classes/{clear.js → clear.ts} +13 -9
  452. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +113 -22
  453. package/src/classes/{framebuffer.js → framebuffer.ts} +355 -298
  454. package/src/classes/{program-configuration.js → program-configuration.ts} +18 -11
  455. package/src/classes/{program.js → program.ts} +56 -36
  456. package/src/classes/{query.js → query.ts} +28 -22
  457. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  458. package/src/classes/renderbuffer.ts +153 -0
  459. package/src/classes/{texture-2d.js → texture-2d.ts} +15 -5
  460. package/src/classes/{texture-3d.js → texture-3d.ts} +35 -10
  461. package/src/classes/{texture-cube.js → texture-cube.ts} +46 -28
  462. package/src/classes/{texture-formats.js → texture-formats.ts} +9 -1
  463. package/src/classes/{texture.js → texture.ts} +204 -37
  464. package/src/classes/{transform-feedback.js → transform-feedback.ts} +22 -14
  465. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  466. package/src/classes/{uniforms.js → uniforms.ts} +122 -70
  467. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +132 -107
  468. package/src/classes/{vertex-array.js → vertex-array.ts} +74 -54
  469. package/src/classes/{buffer.js → webgl-buffer.ts} +125 -51
  470. package/src/classes/{resource.js → webgl-resource.ts} +43 -36
  471. package/src/classes/webgl-shader.ts +200 -0
  472. package/src/context/gl-context.ts +31 -0
  473. package/src/context/luma-context-data.ts +27 -0
  474. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  475. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  476. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +7 -4
  477. package/src/features/{check-glsl-extension.js → check-glsl-extension.ts} +1 -1
  478. package/src/features/{check-old-ie.js → check-old-ie.ts} +0 -0
  479. package/src/features/{features.js → features.ts} +14 -13
  480. package/src/features/{index.js → index.ts} +0 -0
  481. package/src/features/{limits.js → limits.ts} +18 -17
  482. package/src/features/{webgl-features-table.js → webgl-features-table.ts} +0 -0
  483. package/src/features/{webgl-limits-table.js → webgl-limits-table.ts} +0 -0
  484. package/{dist/es5/index.d.ts → src/index.ts} +18 -16
  485. package/src/{init.js → init.ts} +1 -18
  486. package/{dist/es5/types.d.ts → src/types.ts} +0 -0
  487. package/src/utils/{array-utils-flat.js → array-utils-flat.ts} +0 -0
  488. package/src/utils/{assert.js → assert.ts} +1 -1
  489. package/src/utils/{check-props.js → check-props.ts} +0 -0
  490. package/src/utils/{format-value.js → format-value.ts} +2 -2
  491. package/src/utils/index.ts +6 -0
  492. package/src/utils/{is-old-ie.js → is-old-ie.ts} +1 -1
  493. package/src/utils/{load-file.js → load-file.ts} +3 -2
  494. package/src/utils/{stub-methods.js → stub-methods.ts} +1 -1
  495. package/src/utils/utils.ts +35 -0
  496. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  497. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  498. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  499. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  500. package/src/webgl-utils/index.ts +12 -0
  501. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  502. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  503. package/src/webgl-utils/texture-utils.js +2 -1
  504. package/dist/dist.js +0 -13555
  505. package/dist/dist.min.js +0 -1
  506. package/dist/es5/classes/buffer.d.ts +0 -84
  507. package/dist/es5/classes/buffer.js +0 -453
  508. package/dist/es5/classes/buffer.js.map +0 -1
  509. package/dist/es5/classes/clear.d.ts +0 -11
  510. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  511. package/dist/es5/classes/framebuffer.d.ts +0 -96
  512. package/dist/es5/classes/program-configuration.d.ts +0 -15
  513. package/dist/es5/classes/program.d.ts +0 -44
  514. package/dist/es5/classes/query.d.ts +0 -21
  515. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  516. package/dist/es5/classes/resource.d.ts +0 -47
  517. package/dist/es5/classes/resource.js +0 -308
  518. package/dist/es5/classes/resource.js.map +0 -1
  519. package/dist/es5/classes/shader.d.ts +0 -29
  520. package/dist/es5/classes/shader.js +0 -221
  521. package/dist/es5/classes/shader.js.map +0 -1
  522. package/dist/es5/classes/texture-2d.d.ts +0 -11
  523. package/dist/es5/classes/texture-3d.d.ts +0 -29
  524. package/dist/es5/classes/texture-cube.d.ts +0 -23
  525. package/dist/es5/classes/texture.d.ts +0 -80
  526. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  527. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  528. package/dist/es5/classes/uniforms.d.ts +0 -63
  529. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  530. package/dist/es5/classes/vertex-array.d.ts +0 -37
  531. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  532. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  533. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  534. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  535. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  536. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  537. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  538. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  539. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  540. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  541. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  542. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  543. package/dist/es5/glsl-utils/index.js +0 -48
  544. package/dist/es5/glsl-utils/index.js.map +0 -1
  545. package/dist/es5/init.d.ts +0 -12
  546. package/dist/es5/utils/assert.d.ts +0 -1
  547. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  548. package/dist/es5/utils/utils.d.ts +0 -13
  549. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  550. package/dist/esm/classes/buffer.d.ts +0 -84
  551. package/dist/esm/classes/buffer.js.map +0 -1
  552. package/dist/esm/classes/clear.d.ts +0 -11
  553. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  554. package/dist/esm/classes/framebuffer.d.ts +0 -96
  555. package/dist/esm/classes/program-configuration.d.ts +0 -15
  556. package/dist/esm/classes/program.d.ts +0 -44
  557. package/dist/esm/classes/query.d.ts +0 -21
  558. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  559. package/dist/esm/classes/resource.d.ts +0 -47
  560. package/dist/esm/classes/resource.js.map +0 -1
  561. package/dist/esm/classes/shader.d.ts +0 -29
  562. package/dist/esm/classes/shader.js +0 -138
  563. package/dist/esm/classes/shader.js.map +0 -1
  564. package/dist/esm/classes/texture-2d.d.ts +0 -11
  565. package/dist/esm/classes/texture-3d.d.ts +0 -29
  566. package/dist/esm/classes/texture-cube.d.ts +0 -23
  567. package/dist/esm/classes/texture.d.ts +0 -80
  568. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  569. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  570. package/dist/esm/classes/uniforms.d.ts +0 -63
  571. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  572. package/dist/esm/classes/vertex-array.d.ts +0 -37
  573. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  574. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  575. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  576. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  577. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  578. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  579. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  580. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  581. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  582. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  583. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  584. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  585. package/dist/esm/glsl-utils/index.js +0 -5
  586. package/dist/esm/glsl-utils/index.js.map +0 -1
  587. package/dist/esm/index.d.ts +0 -71
  588. package/dist/esm/init.d.ts +0 -12
  589. package/dist/esm/types.d.ts +0 -8
  590. package/dist/esm/utils/assert.d.ts +0 -1
  591. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  592. package/dist/esm/utils/utils.d.ts +0 -13
  593. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  594. package/src/bundle.js +0 -8
  595. package/src/classes/buffer.d.ts +0 -84
  596. package/src/classes/clear.d.ts +0 -11
  597. package/src/classes/copy-and-blit.d.ts +0 -101
  598. package/src/classes/framebuffer.d.ts +0 -96
  599. package/src/classes/program-configuration.d.ts +0 -15
  600. package/src/classes/program.d.ts +0 -44
  601. package/src/classes/query.d.ts +0 -21
  602. package/src/classes/renderbuffer.d.ts +0 -34
  603. package/src/classes/renderbuffer.js +0 -105
  604. package/src/classes/resource.d.ts +0 -47
  605. package/src/classes/shader.d.ts +0 -29
  606. package/src/classes/shader.js +0 -147
  607. package/src/classes/texture-2d.d.ts +0 -11
  608. package/src/classes/texture-3d.d.ts +0 -29
  609. package/src/classes/texture-cube.d.ts +0 -23
  610. package/src/classes/texture.d.ts +0 -80
  611. package/src/classes/transform-feedback.d.ts +0 -16
  612. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  613. package/src/classes/uniforms.d.ts +0 -63
  614. package/src/classes/vertex-array-object.d.ts +0 -25
  615. package/src/classes/vertex-array.d.ts +0 -37
  616. package/src/debug/debug-program-configuration.d.ts +0 -1
  617. package/src/debug/debug-uniforms.d.ts +0 -11
  618. package/src/debug/debug-vertex-array.d.ts +0 -1
  619. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  620. package/src/glsl-utils/format-glsl-error.js +0 -107
  621. package/src/glsl-utils/get-shader-name.js +0 -7
  622. package/src/glsl-utils/get-shader-type-name.js +0 -13
  623. package/src/glsl-utils/get-shader-version.js +0 -12
  624. package/src/glsl-utils/index.js +0 -8
  625. package/src/index.d.ts +0 -71
  626. package/src/index.js +0 -70
  627. package/src/init.d.ts +0 -12
  628. package/src/types.d.ts +0 -8
  629. package/src/utils/assert.d.ts +0 -1
  630. package/src/utils/is-old-ie.d.ts +0 -1
  631. package/src/utils/utils.d.ts +0 -13
  632. package/src/utils/utils.js +0 -36
  633. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
@@ -1,31 +1,32 @@
1
+ import GL from '@luma.gl/constants';
1
2
  const ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';
2
3
  export function getGLTypeFromTypedArray(arrayOrType) {
3
4
  const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
4
5
 
5
6
  switch (type) {
6
7
  case Float32Array:
7
- return 5126;
8
+ return GL.FLOAT;
8
9
 
9
10
  case Uint16Array:
10
- return 5123;
11
+ return GL.UNSIGNED_SHORT;
11
12
 
12
13
  case Uint32Array:
13
- return 5125;
14
+ return GL.UNSIGNED_INT;
14
15
 
15
16
  case Uint8Array:
16
- return 5121;
17
+ return GL.UNSIGNED_BYTE;
17
18
 
18
19
  case Uint8ClampedArray:
19
- return 5121;
20
+ return GL.UNSIGNED_BYTE;
20
21
 
21
22
  case Int8Array:
22
- return 5120;
23
+ return GL.BYTE;
23
24
 
24
25
  case Int16Array:
25
- return 5122;
26
+ return GL.SHORT;
26
27
 
27
28
  case Int32Array:
28
- return 5124;
29
+ return GL.INT;
29
30
 
30
31
  default:
31
32
  throw new Error(ERR_TYPE_DEDUCTION);
@@ -35,28 +36,28 @@ export function getTypedArrayFromGLType(glType, {
35
36
  clamped = true
36
37
  } = {}) {
37
38
  switch (glType) {
38
- case 5126:
39
+ case GL.FLOAT:
39
40
  return Float32Array;
40
41
 
41
- case 5123:
42
- case 33635:
43
- case 32819:
44
- case 32820:
42
+ case GL.UNSIGNED_SHORT:
43
+ case GL.UNSIGNED_SHORT_5_6_5:
44
+ case GL.UNSIGNED_SHORT_4_4_4_4:
45
+ case GL.UNSIGNED_SHORT_5_5_5_1:
45
46
  return Uint16Array;
46
47
 
47
- case 5125:
48
+ case GL.UNSIGNED_INT:
48
49
  return Uint32Array;
49
50
 
50
- case 5121:
51
+ case GL.UNSIGNED_BYTE:
51
52
  return clamped ? Uint8ClampedArray : Uint8Array;
52
53
 
53
- case 5120:
54
+ case GL.BYTE:
54
55
  return Int8Array;
55
56
 
56
- case 5122:
57
+ case GL.SHORT:
57
58
  return Int16Array;
58
59
 
59
- case 5124:
60
+ case GL.INT:
60
61
  return Int32Array;
61
62
 
62
63
  default:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/typed-array-utils.js"],"names":["ERR_TYPE_DEDUCTION","getGLTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","Int8Array","Int16Array","Int32Array","Error","getTypedArrayFromGLType","glType","clamped","flipRows","data","width","height","bytesPerPixel","temp","bytesPerRow","y","topOffset","bottomOffset","set","subarray","copyWithin","scalePixels","newWidth","Math","round","newHeight","newData","x","c"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\n\nconst ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';\n\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport function getGLTypeFromTypedArray(arrayOrType) {\n // If typed array, look up constructor\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return GL.FLOAT;\n case Uint16Array:\n return GL.UNSIGNED_SHORT;\n case Uint32Array:\n return GL.UNSIGNED_INT;\n case Uint8Array:\n return GL.UNSIGNED_BYTE;\n case Uint8ClampedArray:\n return GL.UNSIGNED_BYTE;\n case Int8Array:\n return GL.BYTE;\n case Int16Array:\n return GL.SHORT;\n case Int32Array:\n return GL.INT;\n default:\n throw new Error(ERR_TYPE_DEDUCTION);\n }\n}\n\n// Converts GL constant to corresponding TYPED ARRAY\n// Used to auto deduce gl parameter types\n\n/* eslint-disable complexity */\nexport function getTypedArrayFromGLType(glType, {clamped = true} = {}) {\n // Sorted in some order of likelihood to reduce amount of comparisons\n switch (glType) {\n case GL.FLOAT:\n return Float32Array;\n case GL.UNSIGNED_SHORT:\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return Uint16Array;\n case GL.UNSIGNED_INT:\n return Uint32Array;\n case GL.UNSIGNED_BYTE:\n return clamped ? Uint8ClampedArray : Uint8Array;\n case GL.BYTE:\n return Int8Array;\n case GL.SHORT:\n return Int16Array;\n case GL.INT:\n return Int32Array;\n default:\n throw new Error('Failed to deduce typed array type from GL constant');\n }\n}\n/* eslint-enable complexity */\n\n// Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)\n// https://stackoverflow.com/questions/41969562/\n// how-can-i-flip-the-result-of-webglrenderingcontext-readpixels\nexport function flipRows({data, width, height, bytesPerPixel = 4, temp}) {\n const bytesPerRow = width * bytesPerPixel;\n\n // make a temp buffer to hold one row\n temp = temp || new Uint8Array(bytesPerRow);\n for (let y = 0; y < height / 2; ++y) {\n const topOffset = y * bytesPerRow;\n const bottomOffset = (height - y - 1) * bytesPerRow;\n // make copy of a row on the top half\n temp.set(data.subarray(topOffset, topOffset + bytesPerRow));\n // copy a row from the bottom half to the top\n data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);\n // copy the copy of the top half row to the bottom half\n data.set(temp, bottomOffset);\n }\n}\n\nexport function scalePixels({data, width, height}) {\n const newWidth = Math.round(width / 2);\n const newHeight = Math.round(height / 2);\n const newData = new Uint8Array(newWidth * newHeight * 4);\n for (let y = 0; y < newHeight; y++) {\n for (let x = 0; x < newWidth; x++) {\n for (let c = 0; c < 4; c++) {\n newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];\n }\n }\n }\n return {data: newData, width: newWidth, height: newHeight};\n}\n"],"file":"typed-array-utils.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/typed-array-utils.js"],"names":["GL","ERR_TYPE_DEDUCTION","getGLTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","FLOAT","Uint16Array","UNSIGNED_SHORT","Uint32Array","UNSIGNED_INT","Uint8Array","UNSIGNED_BYTE","Uint8ClampedArray","Int8Array","BYTE","Int16Array","SHORT","Int32Array","INT","Error","getTypedArrayFromGLType","glType","clamped","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","flipRows","data","width","height","bytesPerPixel","temp","bytesPerRow","y","topOffset","bottomOffset","set","subarray","copyWithin","scalePixels","newWidth","Math","round","newHeight","newData","x","c"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\n\nconst ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';\n\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport function getGLTypeFromTypedArray(arrayOrType) {\n // If typed array, look up constructor\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return GL.FLOAT;\n case Uint16Array:\n return GL.UNSIGNED_SHORT;\n case Uint32Array:\n return GL.UNSIGNED_INT;\n case Uint8Array:\n return GL.UNSIGNED_BYTE;\n case Uint8ClampedArray:\n return GL.UNSIGNED_BYTE;\n case Int8Array:\n return GL.BYTE;\n case Int16Array:\n return GL.SHORT;\n case Int32Array:\n return GL.INT;\n default:\n throw new Error(ERR_TYPE_DEDUCTION);\n }\n}\n\n// Converts GL constant to corresponding TYPED ARRAY\n// Used to auto deduce gl parameter types\n\n/* eslint-disable complexity */\nexport function getTypedArrayFromGLType(glType, {clamped = true} = {}) {\n // Sorted in some order of likelihood to reduce amount of comparisons\n switch (glType) {\n case GL.FLOAT:\n return Float32Array;\n case GL.UNSIGNED_SHORT:\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return Uint16Array;\n case GL.UNSIGNED_INT:\n return Uint32Array;\n case GL.UNSIGNED_BYTE:\n return clamped ? Uint8ClampedArray : Uint8Array;\n case GL.BYTE:\n return Int8Array;\n case GL.SHORT:\n return Int16Array;\n case GL.INT:\n return Int32Array;\n default:\n throw new Error('Failed to deduce typed array type from GL constant');\n }\n}\n/* eslint-enable complexity */\n\n// Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)\n// https://stackoverflow.com/questions/41969562/\n// how-can-i-flip-the-result-of-webglrenderingcontext-readpixels\nexport function flipRows({data, width, height, bytesPerPixel = 4, temp}) {\n const bytesPerRow = width * bytesPerPixel;\n\n // make a temp buffer to hold one row\n temp = temp || new Uint8Array(bytesPerRow);\n for (let y = 0; y < height / 2; ++y) {\n const topOffset = y * bytesPerRow;\n const bottomOffset = (height - y - 1) * bytesPerRow;\n // make copy of a row on the top half\n temp.set(data.subarray(topOffset, topOffset + bytesPerRow));\n // copy a row from the bottom half to the top\n data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);\n // copy the copy of the top half row to the bottom half\n data.set(temp, bottomOffset);\n }\n}\n\nexport function scalePixels({data, width, height}) {\n const newWidth = Math.round(width / 2);\n const newHeight = Math.round(height / 2);\n const newData = new Uint8Array(newWidth * newHeight * 4);\n for (let y = 0; y < newHeight; y++) {\n for (let x = 0; x < newWidth; x++) {\n for (let c = 0; c < 4; c++) {\n newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];\n }\n }\n }\n return {data: newData, width: newWidth, height: newHeight};\n}\n"],"file":"typed-array-utils.js"}
@@ -0,0 +1,2 @@
1
+ export default function canCompileGLGSExtension(gl: any, cap: any, options?: {}): any;
2
+ //# sourceMappingURL=check-glsl-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-glsl-extension.d.ts","sourceRoot":"","sources":["../../src/features/check-glsl-extension.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,KAAA,EAAE,GAAG,KAAA,EAAE,OAAO,KAAK,OAsBpE"}
@@ -0,0 +1,27 @@
1
+ import isOldIE from './check-old-ie';
2
+ import WEBGL_FEATURES from './webgl-features-table';
3
+ import { assert } from '../utils';
4
+ const compiledGlslExtensions = {};
5
+ export default function canCompileGLGSExtension(gl, cap, options = {}) {
6
+ const feature = WEBGL_FEATURES[cap];
7
+ assert(feature, cap);
8
+
9
+ if (!isOldIE(options)) {
10
+ return true;
11
+ }
12
+
13
+ if (cap in compiledGlslExtensions) {
14
+ return compiledGlslExtensions[cap];
15
+ }
16
+
17
+ const extensionName = feature[0];
18
+ const source = "#extension GL_".concat(extensionName, " : enable\nvoid main(void) {}");
19
+ const shader = gl.createShader(gl.VERTEX_SHADER);
20
+ gl.shaderSource(shader, source);
21
+ gl.compileShader(shader);
22
+ const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
23
+ gl.deleteShader(shader);
24
+ compiledGlslExtensions[cap] = canCompile;
25
+ return canCompile;
26
+ }
27
+ //# sourceMappingURL=check-glsl-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/features/check-glsl-extension.ts"],"names":["isOldIE","WEBGL_FEATURES","assert","compiledGlslExtensions","canCompileGLGSExtension","gl","cap","options","feature","extensionName","source","shader","createShader","VERTEX_SHADER","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,gBAApB;AACA,OAAOC,cAAP,MAA2B,wBAA3B;AACA,SAAQC,MAAR,QAAqB,UAArB;AAMA,MAAMC,sBAAsB,GAAG,EAA/B;AAGA,eAAe,SAASC,uBAAT,CAAiCC,EAAjC,EAAqCC,GAArC,EAA0CC,OAAO,GAAG,EAApD,EAAwD;AACrE,QAAMC,OAAO,GAAGP,cAAc,CAACK,GAAD,CAA9B;AACAJ,EAAAA,MAAM,CAACM,OAAD,EAAUF,GAAV,CAAN;;AAEA,MAAI,CAACN,OAAO,CAACO,OAAD,CAAZ,EAAuB;AACrB,WAAO,IAAP;AACD;;AAED,MAAID,GAAG,IAAIH,sBAAX,EAAmC;AACjC,WAAOA,sBAAsB,CAACG,GAAD,CAA7B;AACD;;AAED,QAAMG,aAAa,GAAGD,OAAO,CAAC,CAAD,CAA7B;AACA,QAAME,MAAM,2BAAoBD,aAApB,kCAAZ;AAEA,QAAME,MAAM,GAAGN,EAAE,CAACO,YAAH,CAAgBP,EAAE,CAACQ,aAAnB,CAAf;AACAR,EAAAA,EAAE,CAACS,YAAH,CAAgBH,MAAhB,EAAwBD,MAAxB;AACAL,EAAAA,EAAE,CAACU,aAAH,CAAiBJ,MAAjB;AACA,QAAMK,UAAU,GAAGX,EAAE,CAACY,kBAAH,CAAsBN,MAAtB,EAA8BN,EAAE,CAACa,cAAjC,CAAnB;AACAb,EAAAA,EAAE,CAACc,YAAH,CAAgBR,MAAhB;AACAR,EAAAA,sBAAsB,CAACG,GAAD,CAAtB,GAA8BU,UAA9B;AACA,SAAOA,UAAP;AACD","sourcesContent":["import isOldIE from './check-old-ie';\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {assert} from '../utils';\n\n// Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n// but fail to compile when the extension is enabled in the shader. Specifically,\n// the OES_standard_derivatives extension fails to compile in IE11 even though its included\n// in the list of supported extensions.\nconst compiledGlslExtensions = {};\n\n// options allows user agent to be overridden for testing\nexport default function canCompileGLGSExtension(gl, cap, options = {}) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n if (!isOldIE(options)) {\n return true;\n }\n\n if (cap in compiledGlslExtensions) {\n return compiledGlslExtensions[cap];\n }\n\n const extensionName = feature[0];\n const source = `#extension GL_${extensionName} : enable\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGlslExtensions[cap] = canCompile;\n return canCompile;\n}\n"],"file":"check-glsl-extension.js"}
@@ -0,0 +1,2 @@
1
+ export default function isOldIE(opts?: {}): boolean;
2
+ //# sourceMappingURL=check-old-ie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-old-ie.d.ts","sourceRoot":"","sources":["../../src/features/check-old-ie.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,IAAI,KAAK,WASxC"}
@@ -0,0 +1,8 @@
1
+ export default function isOldIE(opts = {}) {
2
+ const navigator = typeof window !== 'undefined' && window.navigator || {};
3
+ const userAgent = opts.userAgent || navigator.userAgent || '';
4
+ const isMSIE = userAgent.indexOf('MSIE ') !== -1;
5
+ const isTrident = userAgent.indexOf('Trident/') !== -1;
6
+ return isMSIE || isTrident;
7
+ }
8
+ //# sourceMappingURL=check-old-ie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/features/check-old-ie.ts"],"names":["isOldIE","opts","navigator","window","userAgent","isMSIE","indexOf","isTrident"],"mappings":"AACA,eAAe,SAASA,OAAT,CAAiBC,IAAI,GAAG,EAAxB,EAA4B;AACzC,QAAMC,SAAS,GAAI,OAAOC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACD,SAAzC,IAAuD,EAAzE;AAEA,QAAME,SAAS,GAAGH,IAAI,CAACG,SAAL,IAAkBF,SAAS,CAACE,SAA5B,IAAyC,EAA3D;AAGA,QAAMC,MAAM,GAAGD,SAAS,CAACE,OAAV,CAAkB,OAAlB,MAA+B,CAAC,CAA/C;AACA,QAAMC,SAAS,GAAGH,SAAS,CAACE,OAAV,CAAkB,UAAlB,MAAkC,CAAC,CAArD;AACA,SAAOD,MAAM,IAAIE,SAAjB;AACD","sourcesContent":["// opts allows user agent to be overridden for testing\nexport default function isOldIE(opts = {}) {\n const navigator = (typeof window !== 'undefined' && window.navigator) || {};\n // @ts-ignore\n const userAgent = opts.userAgent || navigator.userAgent || '';\n // We only care about older versions of IE (IE 11 and below). Newer versions of IE (Edge)\n // have much better web standards support.\n const isMSIE = userAgent.indexOf('MSIE ') !== -1;\n const isTrident = userAgent.indexOf('Trident/') !== -1;\n return isMSIE || isTrident;\n}\n"],"file":"check-old-ie.js"}
@@ -0,0 +1,6 @@
1
+ export declare function hasFeature(gl: any, feature: any): any;
2
+ export declare function hasFeatures(gl: any, features: any): any;
3
+ export declare function getFeatures(gl: any): {
4
+ [key: string]: any;
5
+ };
6
+ //# sourceMappingURL=features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/features/features.ts"],"names":[],"mappings":"AAaA,wBAAgB,UAAU,CAAC,EAAE,KAAA,EAAE,OAAO,KAAA,OAErC;AAGD,wBAAgB,WAAW,CAAC,EAAE,KAAA,EAAE,QAAQ,KAAA,OAKvC;AAGD,wBAAgB,WAAW,CAAC,EAAE,KAAA;;EAS7B"}
@@ -0,0 +1,67 @@
1
+ import WEBGL_FEATURES from './webgl-features-table';
2
+ import { isWebGL2, log } from '@luma.gl/gltools';
3
+ import { assert } from '../utils';
4
+ import { getLumaContextData } from '../context/luma-context-data';
5
+ const LOG_UNSUPPORTED_FEATURE = 2;
6
+ export function hasFeature(gl, feature) {
7
+ return hasFeatures(gl, feature);
8
+ }
9
+ export function hasFeatures(gl, features) {
10
+ features = Array.isArray(features) ? features : [features];
11
+ return features.every(feature => {
12
+ return isFeatureSupported(gl, feature);
13
+ });
14
+ }
15
+ export function getFeatures(gl) {
16
+ const lumaContextData = getLumaContextData(gl);
17
+ lumaContextData.caps = lumaContextData.caps || {};
18
+
19
+ for (const cap in WEBGL_FEATURES) {
20
+ if (lumaContextData.caps[cap] === undefined) {
21
+ lumaContextData.caps[cap] = isFeatureSupported(gl, cap);
22
+ }
23
+ }
24
+
25
+ return lumaContextData.caps;
26
+ }
27
+
28
+ function isFeatureSupported(gl, cap) {
29
+ const lumaContextData = getLumaContextData(gl);
30
+ lumaContextData.caps = lumaContextData.caps || {};
31
+
32
+ if (lumaContextData.caps[cap] === undefined) {
33
+ lumaContextData.caps[cap] = queryFeature(gl, cap);
34
+ }
35
+
36
+ if (!lumaContextData.caps[cap]) {
37
+ log.log(LOG_UNSUPPORTED_FEATURE, "Feature: ".concat(cap, " not supported"))();
38
+ }
39
+
40
+ return lumaContextData.caps[cap];
41
+ }
42
+
43
+ function queryFeature(gl, cap) {
44
+ const feature = WEBGL_FEATURES[cap];
45
+ assert(feature, cap);
46
+ let isSupported;
47
+ const featureDefinition = isWebGL2(gl) ? feature[1] || feature[0] : feature[0];
48
+
49
+ if (typeof featureDefinition === 'function') {
50
+ isSupported = featureDefinition(gl);
51
+ } else if (Array.isArray(featureDefinition)) {
52
+ isSupported = true;
53
+
54
+ for (const extension of featureDefinition) {
55
+ isSupported = isSupported && Boolean(gl.getExtension(extension));
56
+ }
57
+ } else if (typeof featureDefinition === 'string') {
58
+ isSupported = Boolean(gl.getExtension(featureDefinition));
59
+ } else if (typeof featureDefinition === 'boolean') {
60
+ isSupported = featureDefinition;
61
+ } else {
62
+ assert(false);
63
+ }
64
+
65
+ return isSupported;
66
+ }
67
+ //# sourceMappingURL=features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/features/features.ts"],"names":["WEBGL_FEATURES","isWebGL2","log","assert","getLumaContextData","LOG_UNSUPPORTED_FEATURE","hasFeature","gl","feature","hasFeatures","features","Array","isArray","every","isFeatureSupported","getFeatures","lumaContextData","caps","cap","undefined","queryFeature","isSupported","featureDefinition","extension","Boolean","getExtension"],"mappings":"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","sourcesContent":["// Feature detection for WebGL\n//\n// Provides a function that enables simple checking of which WebGL features are\n// available in an WebGL1 or WebGL2 environment.\n\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {isWebGL2, log} from '@luma.gl/gltools';\nimport {assert} from '../utils';\nimport {getLumaContextData} from '../context/luma-context-data';\n\nconst LOG_UNSUPPORTED_FEATURE = 2;\n\n// Check one feature\nexport function hasFeature(gl, feature) {\n return hasFeatures(gl, feature);\n}\n\n// Check one or more features\nexport function hasFeatures(gl, features) {\n features = Array.isArray(features) ? features : [features];\n return features.every((feature) => {\n return isFeatureSupported(gl, feature);\n });\n}\n\n// Return a list of supported features\nexport function getFeatures(gl) {\n const lumaContextData = getLumaContextData(gl);\n lumaContextData.caps = lumaContextData.caps || {};\n for (const cap in WEBGL_FEATURES) {\n if (lumaContextData.caps[cap] === undefined) {\n lumaContextData.caps[cap] = isFeatureSupported(gl, cap);\n }\n }\n return lumaContextData.caps;\n}\n\n// TODO - cache the value\nfunction isFeatureSupported(gl, cap) {\n const lumaContextData = getLumaContextData(gl);\n lumaContextData.caps = lumaContextData.caps || {};\n\n if (lumaContextData.caps[cap] === undefined) {\n lumaContextData.caps[cap] = queryFeature(gl, cap);\n }\n\n if (!lumaContextData.caps[cap]) {\n log.log(LOG_UNSUPPORTED_FEATURE, `Feature: ${cap} not supported`)();\n }\n\n return lumaContextData.caps[cap];\n}\n\nfunction queryFeature(gl, cap) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n let isSupported;\n\n // Get extension name from table\n const featureDefinition = isWebGL2(gl) ? feature[1] || feature[0] : feature[0];\n\n // Check if the value is dependent on checking one or more extensions\n if (typeof featureDefinition === 'function') {\n isSupported = featureDefinition(gl);\n } else if (Array.isArray(featureDefinition)) {\n isSupported = true;\n for (const extension of featureDefinition) {\n isSupported = isSupported && Boolean(gl.getExtension(extension));\n }\n } else if (typeof featureDefinition === 'string') {\n isSupported = Boolean(gl.getExtension(featureDefinition));\n } else if (typeof featureDefinition === 'boolean') {\n isSupported = featureDefinition;\n } else {\n assert(false);\n }\n\n return isSupported;\n}\n"],"file":"features.js"}
@@ -0,0 +1,5 @@
1
+ export { getContextInfo, getGLContextInfo, getContextLimits } from './limits';
2
+ export { FEATURES } from './webgl-features-table';
3
+ export { hasFeature, hasFeatures, getFeatures } from './features';
4
+ export { default as canCompileGLGSExtension } from './check-glsl-extension';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAC,OAAO,IAAI,uBAAuB,EAAC,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { getContextInfo, getGLContextInfo, getContextLimits } from './limits';
2
+ export { FEATURES } from './webgl-features-table';
3
+ export { hasFeature, hasFeatures, getFeatures } from './features';
4
+ export { default as canCompileGLGSExtension } from './check-glsl-extension';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/features/index.ts"],"names":["getContextInfo","getGLContextInfo","getContextLimits","FEATURES","hasFeature","hasFeatures","getFeatures","default","canCompileGLGSExtension"],"mappings":"AAAA,SAAQA,cAAR,EAAwBC,gBAAxB,EAA0CC,gBAA1C,QAAiE,UAAjE;AACA,SAAQC,QAAR,QAAuB,wBAAvB;AACA,SAAQC,UAAR,EAAoBC,WAApB,EAAiCC,WAAjC,QAAmD,YAAnD;AAEA,SAAQC,OAAO,IAAIC,uBAAnB,QAAiD,wBAAjD","sourcesContent":["export {getContextInfo, getGLContextInfo, getContextLimits} from './limits';\nexport {FEATURES} from './webgl-features-table';\nexport {hasFeature, hasFeatures, getFeatures} from './features';\n\nexport {default as canCompileGLGSExtension} from './check-glsl-extension';\n"],"file":"index.js"}
@@ -0,0 +1,28 @@
1
+ export declare function getContextLimits(gl: any): {
2
+ [key: string]: any;
3
+ };
4
+ export declare function getGLContextInfo(gl: any): {
5
+ [key: string]: any;
6
+ };
7
+ export declare function getContextInfo(gl: any): {
8
+ vendor: string;
9
+ renderer: string;
10
+ vendorMasked: string;
11
+ rendererMasked: string;
12
+ version: string;
13
+ shadingLanguageVersion: string;
14
+ } & {
15
+ limits: {
16
+ [key: string]: any;
17
+ };
18
+ info: {
19
+ [key: string]: any;
20
+ };
21
+ webgl1MinLimits: {
22
+ [key: string]: any;
23
+ };
24
+ webgl2MinLimits: {
25
+ [key: string]: any;
26
+ };
27
+ };
28
+ //# sourceMappingURL=limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/features/limits.ts"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,CAAC,EAAE,KAAA;;EAgClC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAA;;EAgBlC;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAA;;;;;;;;;;;;;;;;;;;;EAQhC"}
@@ -0,0 +1,55 @@
1
+ import GL from '@luma.gl/constants';
2
+ import { isWebGL2, getContextDebugInfo } from '@luma.gl/gltools';
3
+ import WEBGL_LIMITS from './webgl-limits-table';
4
+ import { getLumaContextData } from '../context/luma-context-data';
5
+ export function getContextLimits(gl) {
6
+ const lumaContextData = getLumaContextData(gl);
7
+
8
+ if (!lumaContextData.limits) {
9
+ lumaContextData.limits = {};
10
+ lumaContextData.webgl1MinLimits = {};
11
+ lumaContextData.webgl2MinLimits = {};
12
+ const isWebgl2 = isWebGL2(gl);
13
+
14
+ for (const parameter in WEBGL_LIMITS) {
15
+ const limit = WEBGL_LIMITS[parameter];
16
+ const webgl1MinLimit = limit.gl1;
17
+ const webgl2MinLimit = 'gl2' in limit ? limit.gl2 : limit.gl1;
18
+ const minLimit = isWebgl2 ? webgl2MinLimit : webgl1MinLimit;
19
+ const limitNotAvailable = 'gl2' in limit && !isWebgl2 || 'extension' in limit && !gl.getExtension(limit.extension);
20
+ const value = limitNotAvailable ? minLimit : gl.getParameter(parameter);
21
+ lumaContextData.limits[parameter] = value;
22
+ lumaContextData.webgl1MinLimits[parameter] = webgl1MinLimit;
23
+ lumaContextData.webgl2MinLimits[parameter] = webgl2MinLimit;
24
+ }
25
+ }
26
+
27
+ return lumaContextData.limits;
28
+ }
29
+ export function getGLContextInfo(gl) {
30
+ const lumaContextData = getLumaContextData(gl);
31
+ const info = getContextDebugInfo(gl);
32
+
33
+ if (!lumaContextData.info) {
34
+ lumaContextData.info = {
35
+ [GL.UNMASKED_VENDOR_WEBGL]: info.vendor,
36
+ [GL.UNMASKED_RENDERER_WEBGL]: info.renderer,
37
+ [GL.VENDOR]: info.vendorMasked,
38
+ [GL.RENDERER]: info.rendererMasked,
39
+ [GL.VERSION]: info.version,
40
+ [GL.SHADING_LANGUAGE_VERSION]: info.shadingLanguageVersion
41
+ };
42
+ }
43
+
44
+ return lumaContextData.info;
45
+ }
46
+ export function getContextInfo(gl) {
47
+ const lumaContextData = getLumaContextData(gl);
48
+ return Object.assign(getContextDebugInfo(gl), {
49
+ limits: getContextLimits(gl),
50
+ info: getGLContextInfo(gl),
51
+ webgl1MinLimits: lumaContextData.webgl1MinLimits,
52
+ webgl2MinLimits: lumaContextData.webgl2MinLimits
53
+ });
54
+ }
55
+ //# sourceMappingURL=limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/features/limits.ts"],"names":["GL","isWebGL2","getContextDebugInfo","WEBGL_LIMITS","getLumaContextData","getContextLimits","gl","lumaContextData","limits","webgl1MinLimits","webgl2MinLimits","isWebgl2","parameter","limit","webgl1MinLimit","gl1","webgl2MinLimit","gl2","minLimit","limitNotAvailable","getExtension","extension","value","getParameter","getGLContextInfo","info","UNMASKED_VENDOR_WEBGL","vendor","UNMASKED_RENDERER_WEBGL","renderer","VENDOR","vendorMasked","RENDERER","rendererMasked","VERSION","version","SHADING_LANGUAGE_VERSION","shadingLanguageVersion","getContextInfo","Object","assign"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, getContextDebugInfo} from '@luma.gl/gltools';\nimport WEBGL_LIMITS from './webgl-limits-table';\nimport {getLumaContextData} from '../context/luma-context-data';\n\nexport function getContextLimits(gl) {\n const lumaContextData = getLumaContextData(gl);\n\n if (!lumaContextData.limits) {\n lumaContextData.limits = {};\n lumaContextData.webgl1MinLimits = {};\n lumaContextData.webgl2MinLimits = {};\n\n const isWebgl2 = isWebGL2(gl);\n\n // WEBGL limits\n for (const parameter in WEBGL_LIMITS) {\n const limit = WEBGL_LIMITS[parameter];\n\n const webgl1MinLimit = limit.gl1;\n const webgl2MinLimit = 'gl2' in limit ? limit.gl2 : limit.gl1;\n const minLimit = isWebgl2 ? webgl2MinLimit : webgl1MinLimit;\n\n // Check if we can query for this limit\n const limitNotAvailable =\n ('gl2' in limit && !isWebgl2) ||\n // @ts-ignore\n ('extension' in limit && !gl.getExtension(limit.extension));\n\n const value = limitNotAvailable ? minLimit : gl.getParameter(parameter);\n lumaContextData.limits[parameter] = value;\n lumaContextData.webgl1MinLimits[parameter] = webgl1MinLimit;\n lumaContextData.webgl2MinLimits[parameter] = webgl2MinLimit;\n }\n }\n\n return lumaContextData.limits;\n}\n\nexport function getGLContextInfo(gl) {\n const lumaContextData = getLumaContextData(gl);\n\n const info = getContextDebugInfo(gl);\n if (!lumaContextData.info) {\n lumaContextData.info = {\n [GL.UNMASKED_VENDOR_WEBGL]: info.vendor,\n [GL.UNMASKED_RENDERER_WEBGL]: info.renderer,\n [GL.VENDOR]: info.vendorMasked,\n [GL.RENDERER]: info.rendererMasked,\n [GL.VERSION]: info.version,\n [GL.SHADING_LANGUAGE_VERSION]: info.shadingLanguageVersion\n };\n }\n\n return lumaContextData.info;\n}\n\nexport function getContextInfo(gl) {\n const lumaContextData = getLumaContextData(gl);\n return Object.assign(getContextDebugInfo(gl), {\n limits: getContextLimits(gl),\n info: getGLContextInfo(gl),\n webgl1MinLimits: lumaContextData.webgl1MinLimits,\n webgl2MinLimits: lumaContextData.webgl2MinLimits\n });\n}\n"],"file":"limits.js"}
@@ -0,0 +1,30 @@
1
+ export declare const FEATURES: {
2
+ WEBGL2: string;
3
+ VERTEX_ARRAY_OBJECT: string;
4
+ TIMER_QUERY: string;
5
+ INSTANCED_RENDERING: string;
6
+ MULTIPLE_RENDER_TARGETS: string;
7
+ ELEMENT_INDEX_UINT32: string;
8
+ BLEND_EQUATION_MINMAX: string;
9
+ FLOAT_BLEND: string;
10
+ COLOR_ENCODING_SRGB: string;
11
+ TEXTURE_DEPTH: string;
12
+ TEXTURE_FLOAT: string;
13
+ TEXTURE_HALF_FLOAT: string;
14
+ TEXTURE_FILTER_LINEAR_FLOAT: string;
15
+ TEXTURE_FILTER_LINEAR_HALF_FLOAT: string;
16
+ TEXTURE_FILTER_ANISOTROPIC: string;
17
+ COLOR_ATTACHMENT_RGBA32F: string;
18
+ COLOR_ATTACHMENT_FLOAT: string;
19
+ COLOR_ATTACHMENT_HALF_FLOAT: string;
20
+ GLSL_FRAG_DATA: string;
21
+ GLSL_FRAG_DEPTH: string;
22
+ GLSL_DERIVATIVES: string;
23
+ GLSL_TEXTURE_LOD: string;
24
+ };
25
+ declare function checkFloat32ColorAttachment(gl: any): boolean;
26
+ declare const _default: {
27
+ [x: string]: (string | boolean)[] | (string | typeof checkFloat32ColorAttachment)[];
28
+ };
29
+ export default _default;
30
+ //# sourceMappingURL=webgl-features-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-features-table.d.ts","sourceRoot":"","sources":["../../src/features/webgl-features-table.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;CAsCpB,CAAC;AAGF,iBAAS,2BAA2B,CAAC,EAAE,KAAA,WAiBtC;;;;AAID,wBAsCE"}
@@ -0,0 +1,71 @@
1
+ import Framebuffer from '../classes/framebuffer';
2
+ import Texture2D from '../classes/texture-2d';
3
+ export const FEATURES = {
4
+ WEBGL2: 'WEBGL2',
5
+ VERTEX_ARRAY_OBJECT: 'VERTEX_ARRAY_OBJECT',
6
+ TIMER_QUERY: 'TIMER_QUERY',
7
+ INSTANCED_RENDERING: 'INSTANCED_RENDERING',
8
+ MULTIPLE_RENDER_TARGETS: 'MULTIPLE_RENDER_TARGETS',
9
+ ELEMENT_INDEX_UINT32: 'ELEMENT_INDEX_UINT32',
10
+ BLEND_EQUATION_MINMAX: 'BLEND_EQUATION_MINMAX',
11
+ FLOAT_BLEND: 'FLOAT_BLEND',
12
+ COLOR_ENCODING_SRGB: 'COLOR_ENCODING_SRGB',
13
+ TEXTURE_DEPTH: 'TEXTURE_DEPTH',
14
+ TEXTURE_FLOAT: 'TEXTURE_FLOAT',
15
+ TEXTURE_HALF_FLOAT: 'TEXTURE_HALF_FLOAT',
16
+ TEXTURE_FILTER_LINEAR_FLOAT: 'TEXTURE_FILTER_LINEAR_FLOAT',
17
+ TEXTURE_FILTER_LINEAR_HALF_FLOAT: 'TEXTURE_FILTER_LINEAR_HALF_FLOAT',
18
+ TEXTURE_FILTER_ANISOTROPIC: 'TEXTURE_FILTER_ANISOTROPIC',
19
+ COLOR_ATTACHMENT_RGBA32F: 'COLOR_ATTACHMENT_RGBA32F',
20
+ COLOR_ATTACHMENT_FLOAT: 'COLOR_ATTACHMENT_FLOAT',
21
+ COLOR_ATTACHMENT_HALF_FLOAT: 'COLOR_ATTACHMENT_HALF_FLOAT',
22
+ GLSL_FRAG_DATA: 'GLSL_FRAG_DATA',
23
+ GLSL_FRAG_DEPTH: 'GLSL_FRAG_DEPTH',
24
+ GLSL_DERIVATIVES: 'GLSL_DERIVATIVES',
25
+ GLSL_TEXTURE_LOD: 'GLSL_TEXTURE_LOD'
26
+ };
27
+
28
+ function checkFloat32ColorAttachment(gl) {
29
+ const testTexture = new Texture2D(gl, {
30
+ format: gl.RGBA,
31
+ type: gl.FLOAT,
32
+ dataFormat: gl.RGBA
33
+ });
34
+ const testFb = new Framebuffer(gl, {
35
+ id: "test-framebuffer",
36
+ check: false,
37
+ attachments: {
38
+ [gl.COLOR_ATTACHMENT0]: testTexture
39
+ }
40
+ });
41
+ const status = testFb.getStatus();
42
+ testTexture.delete();
43
+ testFb.delete();
44
+ return status === gl.FRAMEBUFFER_COMPLETE;
45
+ }
46
+
47
+ export default {
48
+ [FEATURES.WEBGL2]: [false, true],
49
+ [FEATURES.VERTEX_ARRAY_OBJECT]: ['OES_vertex_array_object', true],
50
+ [FEATURES.TIMER_QUERY]: ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],
51
+ [FEATURES.INSTANCED_RENDERING]: ['ANGLE_instanced_arrays', true],
52
+ [FEATURES.MULTIPLE_RENDER_TARGETS]: ['WEBGL_draw_buffers', true],
53
+ [FEATURES.ELEMENT_INDEX_UINT32]: ['OES_element_index_uint', true],
54
+ [FEATURES.BLEND_EQUATION_MINMAX]: ['EXT_blend_minmax', true],
55
+ [FEATURES.FLOAT_BLEND]: ['EXT_float_blend'],
56
+ [FEATURES.COLOR_ENCODING_SRGB]: ['EXT_sRGB', true],
57
+ [FEATURES.TEXTURE_DEPTH]: ['WEBGL_depth_texture', true],
58
+ [FEATURES.TEXTURE_FLOAT]: ['OES_texture_float', true],
59
+ [FEATURES.TEXTURE_HALF_FLOAT]: ['OES_texture_half_float', true],
60
+ [FEATURES.TEXTURE_FILTER_LINEAR_FLOAT]: ['OES_texture_float_linear'],
61
+ [FEATURES.TEXTURE_FILTER_LINEAR_HALF_FLOAT]: ['OES_texture_half_float_linear'],
62
+ [FEATURES.TEXTURE_FILTER_ANISOTROPIC]: ['EXT_texture_filter_anisotropic'],
63
+ [FEATURES.COLOR_ATTACHMENT_RGBA32F]: [checkFloat32ColorAttachment, 'EXT_color_buffer_float'],
64
+ [FEATURES.COLOR_ATTACHMENT_FLOAT]: [false, 'EXT_color_buffer_float'],
65
+ [FEATURES.COLOR_ATTACHMENT_HALF_FLOAT]: ['EXT_color_buffer_half_float'],
66
+ [FEATURES.GLSL_FRAG_DATA]: ['WEBGL_draw_buffers', true],
67
+ [FEATURES.GLSL_FRAG_DEPTH]: ['EXT_frag_depth', true],
68
+ [FEATURES.GLSL_DERIVATIVES]: ['OES_standard_derivatives', true],
69
+ [FEATURES.GLSL_TEXTURE_LOD]: ['EXT_shader_texture_lod', true]
70
+ };
71
+ //# sourceMappingURL=webgl-features-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/features/webgl-features-table.ts"],"names":["Framebuffer","Texture2D","FEATURES","WEBGL2","VERTEX_ARRAY_OBJECT","TIMER_QUERY","INSTANCED_RENDERING","MULTIPLE_RENDER_TARGETS","ELEMENT_INDEX_UINT32","BLEND_EQUATION_MINMAX","FLOAT_BLEND","COLOR_ENCODING_SRGB","TEXTURE_DEPTH","TEXTURE_FLOAT","TEXTURE_HALF_FLOAT","TEXTURE_FILTER_LINEAR_FLOAT","TEXTURE_FILTER_LINEAR_HALF_FLOAT","TEXTURE_FILTER_ANISOTROPIC","COLOR_ATTACHMENT_RGBA32F","COLOR_ATTACHMENT_FLOAT","COLOR_ATTACHMENT_HALF_FLOAT","GLSL_FRAG_DATA","GLSL_FRAG_DEPTH","GLSL_DERIVATIVES","GLSL_TEXTURE_LOD","checkFloat32ColorAttachment","gl","testTexture","format","RGBA","type","FLOAT","dataFormat","testFb","id","check","attachments","COLOR_ATTACHMENT0","status","getStatus","delete","FRAMEBUFFER_COMPLETE"],"mappings":"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","sourcesContent":["import Framebuffer from '../classes/framebuffer';\nimport Texture2D from '../classes/texture-2d';\n// TODO - this should be the default export, test cases need updating\nexport const FEATURES = {\n WEBGL2: 'WEBGL2',\n\n // API SUPPORT\n VERTEX_ARRAY_OBJECT: 'VERTEX_ARRAY_OBJECT',\n TIMER_QUERY: 'TIMER_QUERY',\n INSTANCED_RENDERING: 'INSTANCED_RENDERING',\n MULTIPLE_RENDER_TARGETS: 'MULTIPLE_RENDER_TARGETS',\n\n // FEATURES\n ELEMENT_INDEX_UINT32: 'ELEMENT_INDEX_UINT32',\n\n // BLENDING\n BLEND_EQUATION_MINMAX: 'BLEND_EQUATION_MINMAX',\n FLOAT_BLEND: 'FLOAT_BLEND',\n\n // TEXTURES: '// TEXTURES', RENDERBUFFERS\n COLOR_ENCODING_SRGB: 'COLOR_ENCODING_SRGB',\n\n // TEXTURES\n TEXTURE_DEPTH: 'TEXTURE_DEPTH',\n TEXTURE_FLOAT: 'TEXTURE_FLOAT',\n TEXTURE_HALF_FLOAT: 'TEXTURE_HALF_FLOAT',\n\n TEXTURE_FILTER_LINEAR_FLOAT: 'TEXTURE_FILTER_LINEAR_FLOAT',\n TEXTURE_FILTER_LINEAR_HALF_FLOAT: 'TEXTURE_FILTER_LINEAR_HALF_FLOAT',\n TEXTURE_FILTER_ANISOTROPIC: 'TEXTURE_FILTER_ANISOTROPIC',\n\n // FRAMEBUFFERS: '// FRAMEBUFFERS', TEXTURES AND RENDERBUFFERS\n COLOR_ATTACHMENT_RGBA32F: 'COLOR_ATTACHMENT_RGBA32F',\n COLOR_ATTACHMENT_FLOAT: 'COLOR_ATTACHMENT_FLOAT',\n COLOR_ATTACHMENT_HALF_FLOAT: 'COLOR_ATTACHMENT_HALF_FLOAT',\n\n // GLSL extensions\n GLSL_FRAG_DATA: 'GLSL_FRAG_DATA',\n GLSL_FRAG_DEPTH: 'GLSL_FRAG_DEPTH',\n GLSL_DERIVATIVES: 'GLSL_DERIVATIVES',\n GLSL_TEXTURE_LOD: 'GLSL_TEXTURE_LOD'\n};\n\n// function to test if Float 32 bit format texture can be bound as color attachment\nfunction checkFloat32ColorAttachment(gl) {\n const testTexture = new Texture2D(gl, {\n format: gl.RGBA,\n type: gl.FLOAT,\n dataFormat: gl.RGBA\n });\n const testFb = new Framebuffer(gl, {\n id: `test-framebuffer`,\n check: false,\n attachments: {\n [gl.COLOR_ATTACHMENT0]: testTexture\n }\n });\n const status = testFb.getStatus();\n testTexture.delete();\n testFb.delete();\n return status === gl.FRAMEBUFFER_COMPLETE;\n}\n\n// Defines luma.gl \"feature\" names and semantics\n// Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension\nexport default {\n [FEATURES.WEBGL2]: [false, true],\n\n // API SUPPORT\n [FEATURES.VERTEX_ARRAY_OBJECT]: ['OES_vertex_array_object', true],\n [FEATURES.TIMER_QUERY]: ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n [FEATURES.INSTANCED_RENDERING]: ['ANGLE_instanced_arrays', true],\n [FEATURES.MULTIPLE_RENDER_TARGETS]: ['WEBGL_draw_buffers', true],\n\n // FEATURES\n [FEATURES.ELEMENT_INDEX_UINT32]: ['OES_element_index_uint', true],\n\n // BLENDING\n [FEATURES.BLEND_EQUATION_MINMAX]: ['EXT_blend_minmax', true],\n [FEATURES.FLOAT_BLEND]: ['EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n [FEATURES.COLOR_ENCODING_SRGB]: ['EXT_sRGB', true],\n\n // TEXTURES\n [FEATURES.TEXTURE_DEPTH]: ['WEBGL_depth_texture', true],\n [FEATURES.TEXTURE_FLOAT]: ['OES_texture_float', true],\n [FEATURES.TEXTURE_HALF_FLOAT]: ['OES_texture_half_float', true],\n\n [FEATURES.TEXTURE_FILTER_LINEAR_FLOAT]: ['OES_texture_float_linear'],\n [FEATURES.TEXTURE_FILTER_LINEAR_HALF_FLOAT]: ['OES_texture_half_float_linear'],\n [FEATURES.TEXTURE_FILTER_ANISOTROPIC]: ['EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n [FEATURES.COLOR_ATTACHMENT_RGBA32F]: [checkFloat32ColorAttachment, 'EXT_color_buffer_float'],\n [FEATURES.COLOR_ATTACHMENT_FLOAT]: [false, 'EXT_color_buffer_float'],\n [FEATURES.COLOR_ATTACHMENT_HALF_FLOAT]: ['EXT_color_buffer_half_float'],\n\n // GLSL extensions\n [FEATURES.GLSL_FRAG_DATA]: ['WEBGL_draw_buffers', true],\n [FEATURES.GLSL_FRAG_DEPTH]: ['EXT_frag_depth', true],\n [FEATURES.GLSL_DERIVATIVES]: ['OES_standard_derivatives', true],\n [FEATURES.GLSL_TEXTURE_LOD]: ['EXT_shader_texture_lod', true]\n};\n"],"file":"webgl-features-table.js"}