@luma.gl/webgl 8.5.8 → 8.6.0-alpha.2

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 (763) hide show
  1. package/dist/api/device2.d.ts +52 -0
  2. package/dist/api/device2.d.ts.map +1 -0
  3. package/dist/api/device2.js +23 -0
  4. package/dist/api/device2.js.map +1 -0
  5. package/dist/bundle.d.ts +2 -0
  6. package/dist/bundle.d.ts.map +1 -0
  7. package/dist/bundle.js +5 -0
  8. package/dist/bundle.js.map +1 -0
  9. package/dist/classes/accessor.d.ts +28 -0
  10. package/dist/classes/accessor.d.ts.map +1 -0
  11. package/dist/classes/accessor.js +112 -0
  12. package/dist/classes/accessor.js.map +1 -0
  13. package/dist/classes/accessor.ts.disabled +159 -0
  14. package/dist/classes/clear.d.ts +17 -0
  15. package/dist/classes/clear.d.ts.map +1 -0
  16. package/{src → dist}/classes/clear.js +29 -23
  17. package/dist/classes/clear.js.map +1 -0
  18. package/dist/classes/copy-and-blit.d.ts +86 -0
  19. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  20. package/dist/classes/copy-and-blit.js +338 -0
  21. package/dist/classes/copy-and-blit.js.map +1 -0
  22. package/dist/classes/framebuffer.d.ts +139 -0
  23. package/dist/classes/framebuffer.d.ts.map +1 -0
  24. package/dist/classes/framebuffer.js +656 -0
  25. package/dist/classes/framebuffer.js.map +1 -0
  26. package/dist/classes/program-configuration.d.ts +27 -0
  27. package/dist/classes/program-configuration.d.ts.map +1 -0
  28. package/dist/classes/program-configuration.js +160 -0
  29. package/dist/classes/program-configuration.js.map +1 -0
  30. package/dist/classes/program.d.ts +61 -0
  31. package/dist/classes/program.d.ts.map +1 -0
  32. package/dist/classes/program.js +370 -0
  33. package/dist/classes/program.js.map +1 -0
  34. package/dist/classes/query.d.ts +27 -0
  35. package/dist/classes/query.d.ts.map +1 -0
  36. package/dist/classes/query.js +145 -0
  37. package/dist/classes/query.js.map +1 -0
  38. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  39. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  40. package/dist/classes/renderbuffer-formats.js +185 -0
  41. package/dist/classes/renderbuffer-formats.js.map +1 -0
  42. package/dist/classes/renderbuffer.d.ts +60 -0
  43. package/dist/classes/renderbuffer.d.ts.map +1 -0
  44. package/dist/classes/renderbuffer.js +128 -0
  45. package/dist/classes/renderbuffer.js.map +1 -0
  46. package/dist/classes/texture-2d.d.ts +9 -0
  47. package/dist/classes/texture-2d.d.ts.map +1 -0
  48. package/dist/classes/texture-2d.js +36 -0
  49. package/dist/classes/texture-2d.js.map +1 -0
  50. package/dist/classes/texture-3d.d.ts +29 -0
  51. package/dist/classes/texture-3d.d.ts.map +1 -0
  52. package/dist/classes/texture-3d.js +76 -0
  53. package/dist/classes/texture-3d.js.map +1 -0
  54. package/dist/classes/texture-cube.d.ts +28 -0
  55. package/dist/classes/texture-cube.d.ts.map +1 -0
  56. package/dist/classes/texture-cube.js +130 -0
  57. package/dist/classes/texture-cube.js.map +1 -0
  58. package/dist/classes/texture-formats.d.ts +37 -0
  59. package/dist/classes/texture-formats.d.ts.map +1 -0
  60. package/dist/classes/texture-formats.js +98 -0
  61. package/dist/classes/texture-formats.js.map +1 -0
  62. package/dist/classes/texture.d.ts +123 -0
  63. package/dist/classes/texture.d.ts.map +1 -0
  64. package/dist/classes/texture.js +786 -0
  65. package/dist/classes/texture.js.map +1 -0
  66. package/dist/classes/transform-feedback.d.ts +33 -0
  67. package/dist/classes/transform-feedback.d.ts.map +1 -0
  68. package/dist/classes/transform-feedback.js +198 -0
  69. package/dist/classes/transform-feedback.js.map +1 -0
  70. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  71. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  72. package/dist/classes/uniform-buffer-layout.js +104 -0
  73. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  74. package/dist/classes/uniforms.d.ts +37 -0
  75. package/dist/classes/uniforms.d.ts.map +1 -0
  76. package/dist/classes/uniforms.js +250 -0
  77. package/dist/classes/uniforms.js.map +1 -0
  78. package/dist/classes/vertex-array-object.d.ts +75 -0
  79. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  80. package/dist/classes/vertex-array-object.js +261 -0
  81. package/dist/classes/vertex-array-object.js.map +1 -0
  82. package/dist/classes/vertex-array.d.ts +75 -0
  83. package/dist/classes/vertex-array.d.ts.map +1 -0
  84. package/dist/classes/vertex-array.js +408 -0
  85. package/dist/classes/vertex-array.js.map +1 -0
  86. package/dist/classes/webgl-buffer.d.ts +100 -0
  87. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  88. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
  89. package/dist/classes/webgl-buffer.js.map +1 -0
  90. package/dist/classes/webgl-resource.d.ts +56 -0
  91. package/dist/classes/webgl-resource.d.ts.map +1 -0
  92. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
  93. package/dist/classes/webgl-resource.js.map +1 -0
  94. package/dist/classes/webgl-shader.d.ts +53 -0
  95. package/dist/classes/webgl-shader.d.ts.map +1 -0
  96. package/dist/classes/webgl-shader.js +193 -0
  97. package/dist/classes/webgl-shader.js.map +1 -0
  98. package/dist/context/context/context-state.d.ts +18 -0
  99. package/dist/context/context/context-state.d.ts.map +1 -0
  100. package/dist/context/context/context-state.js +26 -0
  101. package/dist/context/context/context-state.js.map +1 -0
  102. package/dist/context/context/create-context.d.ts +40 -0
  103. package/dist/context/context/create-context.d.ts.map +1 -0
  104. package/dist/context/context/create-context.js +37 -0
  105. package/dist/context/context/create-context.js.map +1 -0
  106. package/dist/context/context/device-pixels.d.ts +25 -0
  107. package/dist/context/context/device-pixels.d.ts.map +1 -0
  108. package/dist/context/context/device-pixels.js +98 -0
  109. package/dist/context/context/device-pixels.js.map +1 -0
  110. package/dist/context/context/get-canvas.d.ts +13 -0
  111. package/dist/context/context/get-canvas.d.ts.map +1 -0
  112. package/dist/context/context/get-canvas.js +31 -0
  113. package/dist/context/context/get-canvas.js.map +1 -0
  114. package/dist/context/context/resize-context.d.ts +20 -0
  115. package/dist/context/context/resize-context.d.ts.map +1 -0
  116. package/dist/context/context/resize-context.js +15 -0
  117. package/dist/context/context/resize-context.js.map +1 -0
  118. package/dist/context/context/webgl-checks.d.ts +13 -0
  119. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  120. package/dist/context/context/webgl-checks.js +34 -0
  121. package/dist/context/context/webgl-checks.js.map +1 -0
  122. package/dist/context/parameters/unified-parameter-api.d.ts +30 -0
  123. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  124. package/dist/context/parameters/unified-parameter-api.js +65 -0
  125. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  126. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  127. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  128. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  129. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  130. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  131. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  132. package/dist/context/parameters/webgl-parameters.js +2 -0
  133. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  134. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  135. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  136. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  137. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  138. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  139. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  140. package/dist/context/polyfill/polyfill-context.js +91 -0
  141. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  142. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  143. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  144. package/dist/context/polyfill/polyfill-table.js +160 -0
  145. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  146. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  147. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  148. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  149. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  150. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  151. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  152. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  153. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  154. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  155. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  156. package/dist/context/state-tracker/track-context-state.js +169 -0
  157. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  158. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  159. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  160. package/dist/context/state-tracker/with-parameters.js +36 -0
  161. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  162. package/dist/debug/debug-program-configuration.d.ts +2 -0
  163. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  164. package/dist/debug/debug-program-configuration.js +40 -0
  165. package/dist/debug/debug-program-configuration.js.map +1 -0
  166. package/dist/debug/debug-uniforms.d.ts +12 -0
  167. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  168. package/dist/debug/debug-uniforms.js +108 -0
  169. package/dist/debug/debug-uniforms.js.map +1 -0
  170. package/dist/debug/debug-vertex-array.d.ts +5 -0
  171. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  172. package/dist/debug/debug-vertex-array.js +118 -0
  173. package/dist/debug/debug-vertex-array.js.map +1 -0
  174. package/dist/device/check-glsl-extension.d.ts +4 -0
  175. package/dist/device/check-glsl-extension.d.ts.map +1 -0
  176. package/dist/device/check-glsl-extension.js +22 -0
  177. package/dist/device/check-glsl-extension.js.map +1 -0
  178. package/dist/device/device-features.d.ts +12 -0
  179. package/dist/device/device-features.d.ts.map +1 -0
  180. package/dist/device/device-features.js +123 -0
  181. package/dist/device/device-features.js.map +1 -0
  182. package/dist/device/device-limits.d.ts +51 -0
  183. package/dist/device/device-limits.d.ts.map +1 -0
  184. package/dist/device/device-limits.js +90 -0
  185. package/dist/device/device-limits.js.map +1 -0
  186. package/dist/device/get-device-info.d.ts +4 -0
  187. package/dist/device/get-device-info.d.ts.map +1 -0
  188. package/dist/device/get-device-info.js +44 -0
  189. package/dist/device/get-device-info.js.map +1 -0
  190. package/dist/device/webgl-device.d.ts +111 -0
  191. package/dist/device/webgl-device.d.ts.map +1 -0
  192. package/dist/device/webgl-device.js +208 -0
  193. package/dist/device/webgl-device.js.map +1 -0
  194. package/dist/es5/api/device2.js +42 -0
  195. package/dist/es5/api/device2.js.map +1 -0
  196. package/dist/es5/bundle.js +2 -4
  197. package/dist/es5/bundle.js.map +1 -1
  198. package/dist/es5/classes/accessor.js +36 -38
  199. package/dist/es5/classes/accessor.js.map +1 -1
  200. package/dist/es5/classes/accessor.ts.disabled +159 -0
  201. package/dist/es5/classes/clear.js +17 -11
  202. package/dist/es5/classes/clear.js.map +1 -1
  203. package/dist/es5/classes/copy-and-blit.js +121 -117
  204. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  205. package/dist/es5/classes/framebuffer.js +435 -423
  206. package/dist/es5/classes/framebuffer.js.map +1 -1
  207. package/dist/es5/classes/program-configuration.js +14 -11
  208. package/dist/es5/classes/program-configuration.js.map +1 -1
  209. package/dist/es5/classes/program.js +79 -67
  210. package/dist/es5/classes/program.js.map +1 -1
  211. package/dist/es5/classes/query.js +58 -59
  212. package/dist/es5/classes/query.js.map +1 -1
  213. package/dist/es5/classes/renderbuffer-formats.js +79 -52
  214. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  215. package/dist/es5/classes/renderbuffer.js +129 -100
  216. package/dist/es5/classes/renderbuffer.js.map +1 -1
  217. package/dist/es5/classes/texture-2d.js +25 -21
  218. package/dist/es5/classes/texture-2d.js.map +1 -1
  219. package/dist/es5/classes/texture-3d.js +49 -29
  220. package/dist/es5/classes/texture-3d.js.map +1 -1
  221. package/dist/es5/classes/texture-cube.js +45 -36
  222. package/dist/es5/classes/texture-cube.js.map +1 -1
  223. package/dist/es5/classes/texture-formats.js +35 -33
  224. package/dist/es5/classes/texture-formats.js.map +1 -1
  225. package/dist/es5/classes/texture.js +213 -101
  226. package/dist/es5/classes/texture.js.map +1 -1
  227. package/dist/es5/classes/transform-feedback.js +37 -34
  228. package/dist/es5/classes/transform-feedback.js.map +1 -1
  229. package/dist/es5/classes/uniform-buffer-layout.js +4 -4
  230. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  231. package/dist/es5/classes/uniforms.js +73 -73
  232. package/dist/es5/classes/uniforms.js.map +1 -1
  233. package/dist/es5/classes/vertex-array-object.js +106 -149
  234. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  235. package/dist/es5/classes/vertex-array.js +47 -38
  236. package/dist/es5/classes/vertex-array.js.map +1 -1
  237. package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
  238. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  239. package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
  240. package/dist/es5/classes/webgl-resource.js.map +1 -0
  241. package/dist/es5/classes/webgl-shader.js +309 -0
  242. package/dist/es5/classes/webgl-shader.js.map +1 -0
  243. package/dist/es5/context/context/context-state.js +31 -0
  244. package/dist/es5/context/context/context-state.js.map +1 -0
  245. package/dist/es5/context/context/create-context.js +57 -0
  246. package/dist/es5/context/context/create-context.js.map +1 -0
  247. package/dist/es5/context/context/device-pixels.js +115 -0
  248. package/dist/es5/context/context/device-pixels.js.map +1 -0
  249. package/dist/es5/context/context/get-canvas.js +40 -0
  250. package/dist/es5/context/context/get-canvas.js.map +1 -0
  251. package/dist/es5/context/context/resize-context.js +23 -0
  252. package/dist/es5/context/context/resize-context.js.map +1 -0
  253. package/dist/es5/context/context/webgl-checks.js +54 -0
  254. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  255. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  256. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  257. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  258. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  259. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  260. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  261. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  262. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  263. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  264. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  265. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  266. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  267. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  268. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  269. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  270. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  271. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  272. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  273. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  274. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  275. package/dist/es5/debug/debug-program-configuration.js +1 -1
  276. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  277. package/dist/es5/debug/debug-uniforms.js +18 -20
  278. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  279. package/dist/es5/debug/debug-vertex-array.js +16 -16
  280. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  281. package/dist/es5/device/check-glsl-extension.js +33 -0
  282. package/dist/es5/device/check-glsl-extension.js.map +1 -0
  283. package/dist/es5/device/device-features.js +152 -0
  284. package/dist/es5/device/device-features.js.map +1 -0
  285. package/dist/es5/device/device-limits.js +64 -0
  286. package/dist/es5/device/device-limits.js.map +1 -0
  287. package/dist/es5/device/get-device-info.js +55 -0
  288. package/dist/es5/device/get-device-info.js.map +1 -0
  289. package/dist/es5/device/webgl-device.js +279 -0
  290. package/dist/es5/device/webgl-device.js.map +1 -0
  291. package/dist/es5/index.js +140 -96
  292. package/dist/es5/index.js.map +1 -1
  293. package/dist/es5/init.js +21 -41
  294. package/dist/es5/init.js.map +1 -1
  295. package/dist/es5/types.js +2 -0
  296. package/dist/es5/types.js.map +1 -0
  297. package/dist/es5/webgl-utils/attribute-utils.js +4 -4
  298. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  299. package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
  300. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  301. package/dist/es5/webgl-utils/format-utils.js +21 -17
  302. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  303. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  304. package/dist/es5/webgl-utils/index.js +74 -0
  305. package/dist/es5/webgl-utils/index.js.map +1 -0
  306. package/dist/es5/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
  307. package/dist/es5/webgl-utils/is-old-ie.js.map +1 -0
  308. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
  309. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  310. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  311. package/dist/es5/webgl-utils/texture-utils.js +6 -4
  312. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  313. package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
  314. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  315. package/dist/es5/webgl-utils/webgl-info.ts.disabled +135 -0
  316. package/dist/esm/api/device2.js +23 -0
  317. package/dist/esm/api/device2.js.map +1 -0
  318. package/dist/esm/bundle.js +2 -4
  319. package/dist/esm/bundle.js.map +1 -1
  320. package/dist/esm/classes/accessor.js +6 -6
  321. package/dist/esm/classes/accessor.js.map +1 -1
  322. package/dist/esm/classes/accessor.ts.disabled +159 -0
  323. package/dist/esm/classes/clear.js +19 -14
  324. package/dist/esm/classes/clear.js.map +1 -1
  325. package/dist/esm/classes/copy-and-blit.js +67 -64
  326. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  327. package/dist/esm/classes/framebuffer.js +341 -313
  328. package/dist/esm/classes/framebuffer.js.map +1 -1
  329. package/dist/esm/classes/program-configuration.js +18 -10
  330. package/dist/esm/classes/program-configuration.js.map +1 -1
  331. package/dist/esm/classes/program.js +71 -44
  332. package/dist/esm/classes/program.js.map +1 -1
  333. package/dist/esm/classes/query.js +20 -16
  334. package/dist/esm/classes/query.js.map +1 -1
  335. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  336. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  337. package/dist/esm/classes/renderbuffer.js +86 -73
  338. package/dist/esm/classes/renderbuffer.js.map +1 -1
  339. package/dist/esm/classes/texture-2d.js +13 -9
  340. package/dist/esm/classes/texture-2d.js.map +1 -1
  341. package/dist/esm/classes/texture-3d.js +28 -16
  342. package/dist/esm/classes/texture-3d.js.map +1 -1
  343. package/dist/esm/classes/texture-cube.js +45 -31
  344. package/dist/esm/classes/texture-cube.js.map +1 -1
  345. package/dist/esm/classes/texture-formats.js +52 -51
  346. package/dist/esm/classes/texture-formats.js.map +1 -1
  347. package/dist/esm/classes/texture.js +174 -58
  348. package/dist/esm/classes/texture.js.map +1 -1
  349. package/dist/esm/classes/transform-feedback.js +26 -14
  350. package/dist/esm/classes/transform-feedback.js.map +1 -1
  351. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  352. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  353. package/dist/esm/classes/uniforms.js +111 -113
  354. package/dist/esm/classes/uniforms.js.map +1 -1
  355. package/dist/esm/classes/vertex-array-object.js +52 -89
  356. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  357. package/dist/esm/classes/vertex-array.js +50 -29
  358. package/dist/esm/classes/vertex-array.js.map +1 -1
  359. package/dist/esm/classes/webgl-buffer.js +382 -0
  360. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  361. package/dist/esm/classes/webgl-resource.js +212 -0
  362. package/dist/esm/classes/webgl-resource.js.map +1 -0
  363. package/dist/esm/classes/webgl-shader.js +193 -0
  364. package/dist/esm/classes/webgl-shader.js.map +1 -0
  365. package/dist/esm/context/context/context-state.js +26 -0
  366. package/dist/esm/context/context/context-state.js.map +1 -0
  367. package/dist/esm/context/context/create-context.js +37 -0
  368. package/dist/esm/context/context/create-context.js.map +1 -0
  369. package/dist/esm/context/context/device-pixels.js +98 -0
  370. package/dist/esm/context/context/device-pixels.js.map +1 -0
  371. package/dist/esm/context/context/get-canvas.js +31 -0
  372. package/dist/esm/context/context/get-canvas.js.map +1 -0
  373. package/dist/esm/context/context/resize-context.js +15 -0
  374. package/dist/esm/context/context/resize-context.js.map +1 -0
  375. package/dist/esm/context/context/webgl-checks.js +34 -0
  376. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  377. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  378. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  379. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  380. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  381. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  382. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  383. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  384. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  385. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  386. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  387. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  388. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  389. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  390. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  391. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  392. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  393. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  394. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  395. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  396. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  397. package/dist/esm/debug/debug-program-configuration.js +4 -4
  398. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  399. package/dist/esm/debug/debug-uniforms.js +9 -9
  400. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  401. package/dist/esm/debug/debug-vertex-array.js +18 -16
  402. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  403. package/dist/esm/device/check-glsl-extension.js +22 -0
  404. package/dist/esm/device/check-glsl-extension.js.map +1 -0
  405. package/dist/esm/device/device-features.js +123 -0
  406. package/dist/esm/device/device-features.js.map +1 -0
  407. package/dist/esm/device/device-limits.js +90 -0
  408. package/dist/esm/device/device-limits.js.map +1 -0
  409. package/dist/esm/device/get-device-info.js +44 -0
  410. package/dist/esm/device/get-device-info.js.map +1 -0
  411. package/dist/esm/device/webgl-device.js +208 -0
  412. package/dist/esm/device/webgl-device.js.map +1 -0
  413. package/dist/esm/index.js +15 -15
  414. package/dist/esm/index.js.map +1 -1
  415. package/dist/esm/init.js +12 -28
  416. package/dist/esm/init.js.map +1 -1
  417. package/dist/esm/types.js +2 -0
  418. package/dist/esm/types.js.map +1 -0
  419. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  420. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  421. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  422. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  423. package/dist/esm/webgl-utils/format-utils.js +16 -15
  424. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  425. package/dist/esm/webgl-utils/get-error.js +1 -1
  426. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  427. package/dist/esm/webgl-utils/index.js +5 -0
  428. package/dist/esm/webgl-utils/index.js.map +1 -0
  429. package/dist/esm/{features/check-old-ie.js → webgl-utils/is-old-ie.js} +3 -3
  430. package/dist/esm/webgl-utils/is-old-ie.js.map +1 -0
  431. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  432. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  433. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  434. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  435. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  436. package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
  437. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  438. package/dist/esm/webgl-utils/webgl-info.ts.disabled +135 -0
  439. package/dist/index.d.ts +49 -0
  440. package/dist/index.d.ts.map +1 -0
  441. package/dist/index.js +35 -0
  442. package/dist/index.js.map +1 -0
  443. package/dist/init.d.ts +5 -0
  444. package/dist/init.d.ts.map +1 -0
  445. package/dist/init.js +33 -0
  446. package/dist/init.js.map +1 -0
  447. package/dist/types.d.ts +9 -0
  448. package/dist/types.d.ts.map +1 -0
  449. package/dist/types.js +2 -0
  450. package/dist/types.js.map +1 -0
  451. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  452. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  453. package/dist/webgl-utils/attribute-utils.js +182 -0
  454. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  455. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  456. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  457. package/dist/webgl-utils/constants-to-keys.js +41 -0
  458. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  459. package/dist/webgl-utils/format-utils.d.ts +3 -0
  460. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  461. package/dist/webgl-utils/format-utils.js +45 -0
  462. package/dist/webgl-utils/format-utils.js.map +1 -0
  463. package/dist/webgl-utils/get-error.d.ts +3 -0
  464. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  465. package/dist/webgl-utils/get-error.js +41 -0
  466. package/dist/webgl-utils/get-error.js.map +1 -0
  467. package/dist/webgl-utils/index.d.ts +5 -0
  468. package/dist/webgl-utils/index.d.ts.map +1 -0
  469. package/dist/webgl-utils/index.js +5 -0
  470. package/dist/webgl-utils/index.js.map +1 -0
  471. package/dist/webgl-utils/is-old-ie.d.ts +2 -0
  472. package/dist/webgl-utils/is-old-ie.d.ts.map +1 -0
  473. package/dist/webgl-utils/is-old-ie.js +8 -0
  474. package/dist/webgl-utils/is-old-ie.js.map +1 -0
  475. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  476. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  477. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  478. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  479. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  480. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  481. package/dist/webgl-utils/request-animation-frame.js +7 -0
  482. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  483. package/dist/webgl-utils/texture-utils.d.ts +15 -0
  484. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  485. package/dist/webgl-utils/texture-utils.js +48 -0
  486. package/dist/webgl-utils/texture-utils.js.map +1 -0
  487. package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
  488. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  489. package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
  490. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  491. package/dist/webgl-utils/webgl-info.ts.disabled +135 -0
  492. package/package.json +9 -9
  493. package/src/.DS_Store +0 -0
  494. package/src/api/device2.ts +71 -0
  495. package/src/bundle.ts +4 -0
  496. package/src/classes/accessor.js +2 -3
  497. package/src/classes/accessor.ts.disabled +159 -0
  498. package/src/classes/clear.ts +108 -0
  499. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
  500. package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
  501. package/src/classes/{program-configuration.js → program-configuration.ts} +19 -12
  502. package/src/classes/{program.js → program.ts} +66 -40
  503. package/src/classes/{query.js → query.ts} +31 -25
  504. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  505. package/src/classes/renderbuffer.ts +154 -0
  506. package/src/classes/texture-2d.ts +35 -0
  507. package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
  508. package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
  509. package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
  510. package/src/classes/{texture.js → texture.ts} +223 -57
  511. package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
  512. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  513. package/src/classes/{uniforms.js → uniforms.ts} +123 -77
  514. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +133 -112
  515. package/src/classes/{vertex-array.js → vertex-array.ts} +74 -55
  516. package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
  517. package/src/classes/{resource.js → webgl-resource.ts} +55 -46
  518. package/src/classes/webgl-shader.ts +202 -0
  519. package/src/context/context/context-state.ts +39 -0
  520. package/src/context/context/create-context.ts +83 -0
  521. package/src/context/context/device-pixels.ts +147 -0
  522. package/src/context/context/get-canvas.ts +37 -0
  523. package/src/context/context/resize-context.ts +37 -0
  524. package/src/context/context/webgl-checks.ts +49 -0
  525. package/src/context/parameters/unified-parameter-api.ts +127 -0
  526. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  527. package/src/context/parameters/webgl-parameters.ts +197 -0
  528. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  529. package/src/context/polyfill/polyfill-context.ts +98 -0
  530. package/src/context/polyfill/polyfill-table.ts +162 -0
  531. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  532. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  533. package/src/context/state-tracker/track-context-state.ts +250 -0
  534. package/src/context/state-tracker/with-parameters.ts +50 -0
  535. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  536. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  537. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
  538. package/src/device/check-glsl-extension.ts +44 -0
  539. package/src/device/device-features.ts +227 -0
  540. package/src/device/device-limits.ts +150 -0
  541. package/src/device/get-device-info.ts +49 -0
  542. package/src/device/webgl-device.ts +406 -0
  543. package/src/index.ts +127 -0
  544. package/src/{init.js → init.ts} +11 -25
  545. package/src/{types.d.ts → types.ts} +1 -1
  546. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  547. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  548. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  549. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  550. package/src/webgl-utils/index.ts +12 -0
  551. package/src/{features/check-old-ie.js → webgl-utils/is-old-ie.ts} +3 -3
  552. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  553. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  554. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
  555. package/src/webgl-utils/typed-array-utils.ts +137 -0
  556. package/src/webgl-utils/webgl-info.ts.disabled +135 -0
  557. package/dist/dist.js +0 -13710
  558. package/dist/dist.min.js +0 -1
  559. package/dist/es5/classes/buffer.d.ts +0 -84
  560. package/dist/es5/classes/buffer.js.map +0 -1
  561. package/dist/es5/classes/clear.d.ts +0 -11
  562. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  563. package/dist/es5/classes/framebuffer.d.ts +0 -96
  564. package/dist/es5/classes/program-configuration.d.ts +0 -15
  565. package/dist/es5/classes/program.d.ts +0 -44
  566. package/dist/es5/classes/query.d.ts +0 -21
  567. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  568. package/dist/es5/classes/resource.d.ts +0 -47
  569. package/dist/es5/classes/resource.js.map +0 -1
  570. package/dist/es5/classes/shader.d.ts +0 -29
  571. package/dist/es5/classes/shader.js +0 -221
  572. package/dist/es5/classes/shader.js.map +0 -1
  573. package/dist/es5/classes/texture-2d.d.ts +0 -11
  574. package/dist/es5/classes/texture-3d.d.ts +0 -29
  575. package/dist/es5/classes/texture-cube.d.ts +0 -23
  576. package/dist/es5/classes/texture.d.ts +0 -80
  577. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  578. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  579. package/dist/es5/classes/uniforms.d.ts +0 -63
  580. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  581. package/dist/es5/classes/vertex-array.d.ts +0 -37
  582. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  583. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  584. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  585. package/dist/es5/features/check-glsl-extension.js +0 -41
  586. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  587. package/dist/es5/features/check-old-ie.js.map +0 -1
  588. package/dist/es5/features/features.js +0 -99
  589. package/dist/es5/features/features.js.map +0 -1
  590. package/dist/es5/features/index.js +0 -64
  591. package/dist/es5/features/index.js.map +0 -1
  592. package/dist/es5/features/limits.js +0 -64
  593. package/dist/es5/features/limits.js.map +0 -1
  594. package/dist/es5/features/webgl-features-table.js +0 -64
  595. package/dist/es5/features/webgl-features-table.js.map +0 -1
  596. package/dist/es5/features/webgl-limits-table.js +0 -132
  597. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  598. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  599. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  600. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  601. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  602. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  603. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  604. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  605. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  606. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  607. package/dist/es5/glsl-utils/index.js +0 -48
  608. package/dist/es5/glsl-utils/index.js.map +0 -1
  609. package/dist/es5/index.d.ts +0 -71
  610. package/dist/es5/init.d.ts +0 -12
  611. package/dist/es5/types.d.ts +0 -8
  612. package/dist/es5/utils/array-utils-flat.js +0 -51
  613. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  614. package/dist/es5/utils/assert.d.ts +0 -1
  615. package/dist/es5/utils/assert.js +0 -13
  616. package/dist/es5/utils/assert.js.map +0 -1
  617. package/dist/es5/utils/check-props.js +0 -51
  618. package/dist/es5/utils/check-props.js.map +0 -1
  619. package/dist/es5/utils/format-value.js +0 -57
  620. package/dist/es5/utils/format-value.js.map +0 -1
  621. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  622. package/dist/es5/utils/is-old-ie.js +0 -14
  623. package/dist/es5/utils/is-old-ie.js.map +0 -1
  624. package/dist/es5/utils/load-file.js +0 -50
  625. package/dist/es5/utils/load-file.js.map +0 -1
  626. package/dist/es5/utils/stub-methods.js +0 -25
  627. package/dist/es5/utils/stub-methods.js.map +0 -1
  628. package/dist/es5/utils/utils.d.ts +0 -13
  629. package/dist/es5/utils/utils.js +0 -36
  630. package/dist/es5/utils/utils.js.map +0 -1
  631. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  632. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  633. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  634. package/dist/esm/classes/buffer.d.ts +0 -84
  635. package/dist/esm/classes/buffer.js.map +0 -1
  636. package/dist/esm/classes/clear.d.ts +0 -11
  637. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  638. package/dist/esm/classes/framebuffer.d.ts +0 -96
  639. package/dist/esm/classes/program-configuration.d.ts +0 -15
  640. package/dist/esm/classes/program.d.ts +0 -44
  641. package/dist/esm/classes/query.d.ts +0 -21
  642. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  643. package/dist/esm/classes/resource.d.ts +0 -47
  644. package/dist/esm/classes/resource.js.map +0 -1
  645. package/dist/esm/classes/shader.d.ts +0 -29
  646. package/dist/esm/classes/shader.js +0 -138
  647. package/dist/esm/classes/shader.js.map +0 -1
  648. package/dist/esm/classes/texture-2d.d.ts +0 -11
  649. package/dist/esm/classes/texture-3d.d.ts +0 -29
  650. package/dist/esm/classes/texture-cube.d.ts +0 -23
  651. package/dist/esm/classes/texture.d.ts +0 -80
  652. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  653. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  654. package/dist/esm/classes/uniforms.d.ts +0 -63
  655. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  656. package/dist/esm/classes/vertex-array.d.ts +0 -37
  657. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  658. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  659. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  660. package/dist/esm/features/check-glsl-extension.js +0 -27
  661. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  662. package/dist/esm/features/check-old-ie.js.map +0 -1
  663. package/dist/esm/features/features.js +0 -66
  664. package/dist/esm/features/features.js.map +0 -1
  665. package/dist/esm/features/index.js +0 -5
  666. package/dist/esm/features/index.js.map +0 -1
  667. package/dist/esm/features/limits.js +0 -52
  668. package/dist/esm/features/limits.js.map +0 -1
  669. package/dist/esm/features/webgl-features-table.js +0 -71
  670. package/dist/esm/features/webgl-features-table.js.map +0 -1
  671. package/dist/esm/features/webgl-limits-table.js +0 -160
  672. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  673. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  674. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  675. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  676. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  677. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  678. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  679. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  680. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  681. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  682. package/dist/esm/glsl-utils/index.js +0 -5
  683. package/dist/esm/glsl-utils/index.js.map +0 -1
  684. package/dist/esm/index.d.ts +0 -71
  685. package/dist/esm/init.d.ts +0 -12
  686. package/dist/esm/types.d.ts +0 -8
  687. package/dist/esm/utils/array-utils-flat.js +0 -39
  688. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  689. package/dist/esm/utils/assert.d.ts +0 -1
  690. package/dist/esm/utils/assert.js +0 -6
  691. package/dist/esm/utils/assert.js.map +0 -1
  692. package/dist/esm/utils/check-props.js +0 -38
  693. package/dist/esm/utils/check-props.js.map +0 -1
  694. package/dist/esm/utils/format-value.js +0 -50
  695. package/dist/esm/utils/format-value.js.map +0 -1
  696. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  697. package/dist/esm/utils/is-old-ie.js +0 -5
  698. package/dist/esm/utils/is-old-ie.js.map +0 -1
  699. package/dist/esm/utils/load-file.js +0 -30
  700. package/dist/esm/utils/load-file.js.map +0 -1
  701. package/dist/esm/utils/stub-methods.js +0 -17
  702. package/dist/esm/utils/stub-methods.js.map +0 -1
  703. package/dist/esm/utils/utils.d.ts +0 -13
  704. package/dist/esm/utils/utils.js +0 -22
  705. package/dist/esm/utils/utils.js.map +0 -1
  706. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  707. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  708. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  709. package/src/bundle.js +0 -8
  710. package/src/classes/buffer.d.ts +0 -84
  711. package/src/classes/clear.d.ts +0 -11
  712. package/src/classes/copy-and-blit.d.ts +0 -101
  713. package/src/classes/framebuffer.d.ts +0 -96
  714. package/src/classes/program-configuration.d.ts +0 -15
  715. package/src/classes/program.d.ts +0 -44
  716. package/src/classes/query.d.ts +0 -21
  717. package/src/classes/renderbuffer.d.ts +0 -34
  718. package/src/classes/renderbuffer.js +0 -105
  719. package/src/classes/resource.d.ts +0 -47
  720. package/src/classes/shader.d.ts +0 -29
  721. package/src/classes/shader.js +0 -147
  722. package/src/classes/texture-2d.d.ts +0 -11
  723. package/src/classes/texture-2d.js +0 -30
  724. package/src/classes/texture-3d.d.ts +0 -29
  725. package/src/classes/texture-cube.d.ts +0 -23
  726. package/src/classes/texture.d.ts +0 -80
  727. package/src/classes/transform-feedback.d.ts +0 -16
  728. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  729. package/src/classes/uniforms.d.ts +0 -63
  730. package/src/classes/vertex-array-object.d.ts +0 -25
  731. package/src/classes/vertex-array.d.ts +0 -37
  732. package/src/debug/debug-program-configuration.d.ts +0 -1
  733. package/src/debug/debug-uniforms.d.ts +0 -11
  734. package/src/debug/debug-vertex-array.d.ts +0 -1
  735. package/src/features/check-glsl-extension.js +0 -34
  736. package/src/features/features.js +0 -79
  737. package/src/features/index.js +0 -5
  738. package/src/features/limits.js +0 -65
  739. package/src/features/webgl-features-table.js +0 -104
  740. package/src/features/webgl-limits-table.js +0 -51
  741. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  742. package/src/glsl-utils/format-glsl-error.js +0 -107
  743. package/src/glsl-utils/get-shader-name.js +0 -7
  744. package/src/glsl-utils/get-shader-type-name.js +0 -13
  745. package/src/glsl-utils/get-shader-version.js +0 -12
  746. package/src/glsl-utils/index.js +0 -8
  747. package/src/index.d.ts +0 -71
  748. package/src/index.js +0 -70
  749. package/src/init.d.ts +0 -12
  750. package/src/utils/array-utils-flat.js +0 -56
  751. package/src/utils/assert.d.ts +0 -1
  752. package/src/utils/assert.js +0 -7
  753. package/src/utils/check-props.js +0 -68
  754. package/src/utils/format-value.js +0 -37
  755. package/src/utils/is-old-ie.d.ts +0 -1
  756. package/src/utils/is-old-ie.js +0 -6
  757. package/src/utils/load-file.js +0 -39
  758. package/src/utils/stub-methods.js +0 -20
  759. package/src/utils/utils.d.ts +0 -13
  760. package/src/utils/utils.js +0 -36
  761. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
  762. package/src/webgl-utils/texture-utils.d.ts +0 -11
  763. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -1,20 +1,27 @@
1
1
  // Contains metadata describing attribute configurations for a program's shaders
2
2
  // Much of this is automatically extracted from shaders after program linking
3
3
  import Accessor from './accessor';
4
- import {isWebGL2} from '@luma.gl/gltools';
4
+ import {isWebGL2} from '../context/context/webgl-checks';
5
5
  import {decomposeCompositeGLType} from '../webgl-utils/attribute-utils';
6
6
 
7
- export default class ProgramConfiguration {
7
+ /**
8
+ * is a mechanism for taking a program object and querying information
9
+ * about it, so as to be able to interface and interact with it.
10
+ * For example, if there is a uniform, you may need to query its
11
+ * location so that you can set its value.
12
+ */
13
+ export default class ProgramConfiguration {
14
+ id: string;
15
+ attributeInfos: any[] = [];
16
+ attributeInfosByName: Record<string, any> = {};
17
+ // Locations may not be contiguous the case of matrix attributes
18
+ // so keep a separate location->attribute map.
19
+ attributeInfosByLocation: any[] = [];
20
+ varyingInfos: any[] = [];
21
+ varyingInfosByName: Record<string, any> = {};
22
+
8
23
  constructor(program) {
9
24
  this.id = program.id;
10
- this.attributeInfos = [];
11
- this.attributeInfosByName = {};
12
-
13
- // Locations may not be contiguous the case of matrix attributes
14
- // so keep a separate location->attribute map.
15
- this.attributeInfosByLocation = [];
16
- this.varyingInfos = [];
17
- this.varyingInfosByName = {};
18
25
  Object.seal(this);
19
26
  this._readAttributesFromProgram(program);
20
27
  this._readVaryingsFromProgram(program);
@@ -48,12 +55,12 @@ export default class ProgramConfiguration {
48
55
  }
49
56
 
50
57
  getVaryingIndex(locationOrName) {
51
- const varying = this.getVaryingInfo();
58
+ const varying = this.getVaryingInfo(locationOrName);
52
59
  return varying ? varying.location : -1;
53
60
  }
54
61
 
55
62
  getVaryingAccessor(locationOrName) {
56
- const varying = this.getVaryingInfo();
63
+ const varying = this.getVaryingInfo(locationOrName);
57
64
  return varying ? varying.accessor : null;
58
65
  }
59
66
 
@@ -1,51 +1,67 @@
1
+ import {log, assert, uid} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
-
3
- import Resource from './resource';
3
+ import WebGLDevice from '../device/webgl-device';
4
+ import WebGLResource, {ResourceProps} from './webgl-resource';
4
5
  import Texture from './texture';
5
6
  import Framebuffer from './framebuffer';
6
7
  import {parseUniformName, getUniformSetter} from './uniforms';
7
- import {VertexShader, FragmentShader} from './shader';
8
+ import {VertexShader, FragmentShader} from './webgl-shader';
8
9
  import ProgramConfiguration from './program-configuration';
9
10
  import {copyUniform, checkUniformValues} from './uniforms';
10
11
 
11
- import {isWebGL2, assertWebGL2Context, withParameters, log} from '@luma.gl/gltools';
12
+ import {isWebGL2, assertWebGL2Context} from '../context/context/webgl-checks';
13
+ import {withParameters} from '../context/state-tracker/with-parameters';
12
14
  import {getKey} from '../webgl-utils/constants-to-keys';
13
15
  import {getPrimitiveDrawMode} from '../webgl-utils/attribute-utils';
14
- import {assert} from '../utils/assert';
15
- import {uid} from '../utils/utils';
16
16
 
17
17
  const LOG_PROGRAM_PERF_PRIORITY = 4;
18
18
 
19
19
  const GL_SEPARATE_ATTRIBS = 0x8c8d;
20
20
 
21
- const V6_DEPRECATED_METHODS = [
22
- 'setVertexArray',
23
- 'setAttributes',
24
- 'setBuffers',
25
- 'unsetBuffers',
26
-
27
- 'use',
28
- 'getUniformCount',
29
- 'getUniformInfo',
30
- 'getUniformLocation',
31
- 'getUniformValue',
32
-
33
- 'getVarying',
34
- 'getFragDataLocation',
35
- 'getAttachedShaders',
36
- 'getAttributeCount',
37
- 'getAttributeLocation',
38
- 'getAttributeInfo'
39
- ];
40
-
41
- export default class Program extends Resource {
42
- constructor(gl, props = {}) {
43
- super(gl, props);
21
+ export type ProgramProps = ResourceProps & {
22
+ hash?;
23
+ vs?;
24
+ fs?;
25
+ varyings?;
26
+ bufferMode?: number;
27
+ }
44
28
 
45
- this.stubRemovedMethods('Program', 'v6.0', V6_DEPRECATED_METHODS);
29
+ export type ProgramDrawOptions = {
30
+ logPriority?: any;
31
+ drawMode?: any;
32
+ vertexCount: any;
33
+ offset?: number;
34
+ start?: any;
35
+ end?: any;
36
+ isIndexed?: boolean;
37
+ indexType?: any;
38
+ instanceCount?: number;
39
+ isInstanced?: boolean;
40
+ vertexArray?: any;
41
+ transformFeedback?: any;
42
+ framebuffer?: any;
43
+ parameters?: {};
44
+ uniforms?: any;
45
+ samplers?: any;
46
+ };
47
+
48
+ export default class Program extends WebGLResource<ProgramProps> {
49
+ configuration: ProgramConfiguration;
50
+ // Experimental flag to avoid deleting Program object while it is cached
51
+ hash: string;; // Used by ProgramManager
52
+ vs;
53
+ fs;
54
+ uniforms: Record<string, any>;
55
+ varyings: Record<string, any>;
56
+ _textureUniforms: Record<string, any>;
57
+ _isCached: boolean = false;
58
+ _textureIndexCounter: number = 0;
59
+ _uniformCount: number = 0;
60
+ _uniformSetters: Record<string, Function>;
61
+
62
+ constructor(gl: WebGLRenderingContext, props: ProgramProps = {}) {
63
+ super(WebGLDevice.attach(gl), props, {} as any);
46
64
 
47
- // Experimental flag to avoid deleting Program object while it is cached
48
- this._isCached = false;
49
65
 
50
66
  this.initialize(props);
51
67
 
@@ -54,7 +70,7 @@ export default class Program extends Resource {
54
70
  this._setId(props.id);
55
71
  }
56
72
 
57
- initialize(props = {}) {
73
+ initialize(props: ProgramProps = {}) {
58
74
  const {hash, vs, fs, varyings, bufferMode = GL_SEPARATE_ATTRIBS} = props;
59
75
 
60
76
  this.hash = hash || ''; // Used by ProgramManager
@@ -103,7 +119,8 @@ export default class Program extends Resource {
103
119
 
104
120
  // A good thing about the WebGL API is that there are so many ways to draw things ;)
105
121
  // This function unifies those ways into a single call using common parameters with sane defaults
106
- draw({
122
+ draw(options: ProgramDrawOptions): boolean {
123
+ const {
107
124
  logPriority, // Probe log priority, enables Model to do more integrated logging
108
125
 
109
126
  drawMode = GL.TRIANGLES,
@@ -119,13 +136,15 @@ export default class Program extends Resource {
119
136
  vertexArray = null,
120
137
  transformFeedback,
121
138
  framebuffer,
122
- parameters = {},
123
139
 
124
140
  // Deprecated
125
141
  uniforms,
126
142
  samplers
127
- }) {
128
- if (uniforms || samplers) {
143
+ } = options;
144
+
145
+ let {parameters = {}} = options;
146
+
147
+ if (uniforms || samplers) {
129
148
  // DEPRECATED: v7.0 (deprecated earlier but warning not properly implemented)
130
149
  log.deprecated('Program.draw({uniforms})', 'Program.setUniforms(uniforms)')();
131
150
  this.setUniforms(uniforms || {});
@@ -216,12 +235,15 @@ export default class Program extends Resource {
216
235
 
217
236
  if (textureUpdate) {
218
237
  // eslint-disable-next-line max-depth
238
+ // @ts-expect-error
219
239
  if (uniformSetter.textureIndex === undefined) {
240
+ // @ts-expect-error
220
241
  uniformSetter.textureIndex = this._textureIndexCounter++;
221
242
  }
222
243
 
223
244
  // Bind texture to index
224
245
  const texture = value;
246
+ // @ts-expect-error
225
247
  const {textureIndex} = uniformSetter;
226
248
 
227
249
  texture.bind(textureIndex);
@@ -229,6 +251,7 @@ export default class Program extends Resource {
229
251
 
230
252
  this._textureUniforms[uniformName] = texture;
231
253
  } else {
254
+ // @ts-expect-error
232
255
  value = uniformSetter.textureIndex;
233
256
  }
234
257
  } else if (this._textureUniforms[uniformName]) {
@@ -267,6 +290,7 @@ export default class Program extends Resource {
267
290
  // Note: This is currently done before every draw call
268
291
  _bindTextures() {
269
292
  for (const uniformName in this._textureUniforms) {
293
+ // @ts-expect-error
270
294
  const textureIndex = this._uniformSetters[uniformName].textureIndex;
271
295
  this._textureUniforms[uniformName].bind(textureIndex);
272
296
  }
@@ -290,11 +314,11 @@ export default class Program extends Resource {
290
314
  const type = this.gl.getShaderParameter(this.handle, GL.SHADER_TYPE);
291
315
  switch (type) {
292
316
  case GL.VERTEX_SHADER:
293
- // @ts-ignore
317
+ // @ts-expect-error
294
318
  opts.vs = new VertexShader({handle: shaderHandle});
295
319
  break;
296
320
  case GL.FRAGMENT_SHADER:
297
- // @ts-ignore
321
+ // @ts-expect-error
298
322
  opts.fs = new FragmentShader({handle: shaderHandle});
299
323
  break;
300
324
  default:
@@ -333,7 +357,7 @@ export default class Program extends Resource {
333
357
  log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this._getName()}`)();
334
358
 
335
359
  // Avoid checking program linking error in production
336
- // @ts-ignore
360
+ // @ts-expect-error
337
361
  if (gl.debug || log.level > 0) {
338
362
  const linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);
339
363
  if (!linked) {
@@ -358,10 +382,12 @@ export default class Program extends Resource {
358
382
  const info = this.gl.getActiveUniform(this.handle, i);
359
383
  const {name} = parseUniformName(info.name);
360
384
  let location = gl.getUniformLocation(this.handle, name);
385
+ // @ts-expect-error
361
386
  this._uniformSetters[name] = getUniformSetter(gl, location, info);
362
387
  if (info.size > 1) {
363
388
  for (let l = 0; l < info.size; l++) {
364
389
  location = gl.getUniformLocation(this.handle, `${name}[${l}]`);
390
+ // @ts-expect-error
365
391
  this._uniformSetters[`${name}[${l}]`] = getUniformSetter(gl, location, info);
366
392
  }
367
393
  }
@@ -1,8 +1,8 @@
1
1
  // WebGL2 Query (also handles disjoint timer extensions)
2
- import Resource from './resource';
3
- import {FEATURES, hasFeatures} from '../features';
4
- import {isWebGL2} from '@luma.gl/gltools';
5
- import {assert} from '../utils/assert';
2
+ import {assert} from '@luma.gl/api';
3
+ import WebGLDevice from '../device/webgl-device';
4
+ import {isWebGL2} from '../context/context/webgl-checks';
5
+ import WebGLResource, {ResourceProps} from './webgl-resource';
6
6
 
7
7
  const GL_QUERY_RESULT = 0x8866; // Returns a GLuint containing the query result.
8
8
  const GL_QUERY_RESULT_AVAILABLE = 0x8867; // whether query result is available.
@@ -14,17 +14,24 @@ const GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8c88; // #primitives written
14
14
  const GL_ANY_SAMPLES_PASSED = 0x8c2f; // Occlusion query (if drawing passed depth test)
15
15
  const GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8d6a; // Occlusion query less accurate/faster version
16
16
 
17
- export default class Query extends Resource {
17
+ export type QueryProps = ResourceProps & {
18
+ };
19
+
20
+ /**
21
+ * Asynchronous queries for different kinds of information
22
+ */
23
+ export default class Query extends WebGLResource<QueryProps> {
18
24
  // Returns true if Query is supported by the WebGL implementation
19
25
  // Can also check whether timestamp queries are available.
20
- static isSupported(gl, opts = []) {
26
+ static isSupported(gl: WebGLRenderingContext, options: string[] = []): boolean {
21
27
  const webgl2 = isWebGL2(gl);
22
28
 
23
29
  // Initial value
24
- const hasTimerQuery = hasFeatures(gl, FEATURES.TIMER_QUERY);
30
+ const webglDevice = WebGLDevice.fromContext(gl);
31
+ const hasTimerQuery = webglDevice.features.has('webgl-timer-query');
25
32
  let supported = webgl2 || hasTimerQuery;
26
33
 
27
- for (const key of opts) {
34
+ for (const key of options) {
28
35
  switch (key) {
29
36
  case 'queries':
30
37
  supported = supported && webgl2;
@@ -40,31 +47,30 @@ export default class Query extends Resource {
40
47
  return supported;
41
48
  }
42
49
 
43
- // Create a query class
44
- constructor(gl, opts = {}) {
45
- super(gl, opts);
46
-
47
- this.target = null;
48
- this._queryPending = false;
49
- this._pollingPromise = null;
50
+ target = null;
51
+ _queryPending = false;
52
+ _pollingPromise = null;
50
53
 
54
+ // Create a query class
55
+ constructor(gl: WebGLRenderingContext, opts: QueryProps = {}) {
56
+ super(WebGLDevice.attach(gl), opts, {} as any);
51
57
  Object.seal(this);
52
58
  }
53
59
 
54
60
  // Shortcut for timer query (dependent on extension in both WebGL1 and 2)
55
61
  // Measures GPU time delta between this call and a matching `end` call in the
56
62
  // GPU instruction stream.
57
- beginTimeElapsedQuery() {
63
+ beginTimeElapsedQuery(): this {
58
64
  return this.begin(GL_TIME_ELAPSED_EXT);
59
65
  }
60
66
 
61
67
  // Shortcut for occlusion queries
62
- beginOcclusionQuery({conservative = false} = {}) {
63
- return this.begin(conservative ? GL_ANY_SAMPLES_PASSED_CONSERVATIVE : GL_ANY_SAMPLES_PASSED);
68
+ beginOcclusionQuery(options?: {conservative?: boolean}): this {
69
+ return this.begin(options?.conservative ? GL_ANY_SAMPLES_PASSED_CONSERVATIVE : GL_ANY_SAMPLES_PASSED);
64
70
  }
65
71
 
66
72
  // Shortcut for transformFeedbackQuery
67
- beginTransformFeedbackQuery() {
73
+ beginTransformFeedbackQuery(): this {
68
74
  return this.begin(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN);
69
75
  }
70
76
 
@@ -73,7 +79,7 @@ export default class Query extends Resource {
73
79
  // calling `begin()` on another query. While there can be multiple
74
80
  // outstanding queries representing disjoint `begin()`/`end()` intervals.
75
81
  // It is not possible to interleave or overlap `begin` and `end` calls.
76
- begin(target) {
82
+ begin(target: number): this {
77
83
  // Don't start a new query if one is already active.
78
84
  if (this._queryPending) {
79
85
  return this;
@@ -86,7 +92,7 @@ export default class Query extends Resource {
86
92
  }
87
93
 
88
94
  // ends the current query
89
- end() {
95
+ end(): this {
90
96
  // Can't end a new query if the last one hasn't been resolved.
91
97
  if (this._queryPending) {
92
98
  return this;
@@ -101,7 +107,7 @@ export default class Query extends Resource {
101
107
  }
102
108
 
103
109
  // Returns true if the query result is available
104
- isResultAvailable() {
110
+ isResultAvailable(): boolean {
105
111
  if (!this._queryPending) {
106
112
  return false;
107
113
  }
@@ -114,12 +120,12 @@ export default class Query extends Resource {
114
120
  }
115
121
 
116
122
  // Timing query is disjoint, i.e. results are invalid
117
- isTimerDisjoint() {
123
+ isTimerDisjoint(): boolean {
118
124
  return this.gl2.getParameter(GL_GPU_DISJOINT_EXT);
119
125
  }
120
126
 
121
127
  // Returns query result.
122
- getResult() {
128
+ getResult(): any {
123
129
  return this.gl2.getQueryParameter(this.handle, GL_QUERY_RESULT);
124
130
  }
125
131
 
@@ -129,7 +135,7 @@ export default class Query extends Resource {
129
135
  }
130
136
 
131
137
  // Polls the query
132
- createPoll(limit = Number.POSITIVE_INFINITY) {
138
+ createPoll(limit: number = Number.POSITIVE_INFINITY): Promise<any> {
133
139
  if (this._pollingPromise) {
134
140
  return this._pollingPromise;
135
141
  }
@@ -1,14 +1,40 @@
1
1
  import GL from '@luma.gl/constants';
2
+ import {isWebGL2} from '../context/context/webgl-checks';
3
+
4
+ export function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: GL): boolean {
5
+ const info = RENDERBUFFER_FORMATS[format];
6
+ // Unknown format
7
+ if (!info) {
8
+ return false;
9
+ }
10
+ if (info.ext) {
11
+ return Boolean(gl.getExtension(info.ext));
12
+ }
13
+ if (info.gl2) {
14
+ return isWebGL2(gl);
15
+ }
16
+ return true;
17
+ }
18
+
19
+ export function getRenderbufferFormatBytesPerPixel(format: GL): number {
20
+ return RENDERBUFFER_FORMATS[format].bpp;
21
+ }
2
22
 
3
23
  // Define local extension strings to optimize minification
4
- // const SRGB = 'EXT_sRGB';
5
- // const EXT_FLOAT_WEBGL1 = 'WEBGL_color_buffer_float';
6
24
  const EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';
7
- // const EXT_HALF_FLOAT_WEBGL1 = 'EXT_color_buffer_half_float';
8
25
 
9
- // NOTE(Tarek): bpp === "bytes per pixel", used for
10
- // memory usage calculations.
11
- export default {
26
+ /**
27
+ * @param bpp "bytes per pixel", used for memory usage calculations.
28
+ * @param gl2 requires WebGL2
29
+ * @param ext requires extension
30
+ */
31
+ type RenderbufferFormat = {
32
+ bpp: number;
33
+ gl2?: boolean;
34
+ ext?: string;
35
+ };
36
+
37
+ const RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {
12
38
  [GL.DEPTH_COMPONENT16]: {bpp: 2}, // 16 depth bits.
13
39
  [GL.DEPTH_COMPONENT24]: {gl2: true, bpp: 3},
14
40
  [GL.DEPTH_COMPONENT32F]: {gl2: true, bpp: 4},
@@ -52,13 +78,15 @@ export default {
52
78
  [GL.RGBA32UI]: {gl2: true, bpp: 16},
53
79
 
54
80
  // When using a WebGL 2 context and the EXT_color_buffer_float WebGL2 extension
55
- [GL.R16F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 2},
56
- [GL.RG16F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 4},
57
- [GL.RGBA16F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 8},
58
- [GL.R32F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 4},
59
- [GL.RG32F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 8},
81
+ [GL.R16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 2},
82
+ [GL.RG16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},
83
+ [GL.RGBA16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},
84
+ [GL.R32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},
85
+ [GL.RG32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},
60
86
  // TODO - can't get WEBGL_color_buffer_float to work on renderbuffers
61
- [GL.RGBA32F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 16},
62
- // [GL.RGBA32F]: {gl2: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},
63
- [GL.R11F_G11F_B10F]: {gl2: EXT_FLOAT_WEBGL2, bpp: 4}
87
+ [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 16},
88
+ // [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},
89
+ [GL.R11F_G11F_B10F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4}
64
90
  };
91
+
92
+ export default RENDERBUFFER_FORMATS;
@@ -0,0 +1,154 @@
1
+ /* eslint-disable no-inline-comments */
2
+ import {assert} from '@luma.gl/api';
3
+ import GL from '@luma.gl/constants';
4
+ import WebGLDevice from '../device/webgl-device';
5
+ import WebGLResource, {ResourceProps} from './webgl-resource';
6
+ import {isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel} from './renderbuffer-formats';
7
+ import {isWebGL2} from '../context/context/webgl-checks';
8
+
9
+ export type RenderbufferProps = ResourceProps & {
10
+ format: number;
11
+ width?: number;
12
+ height?: number;
13
+ samples?: number;
14
+ };
15
+
16
+ const DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {
17
+ id: undefined,
18
+ handle: undefined,
19
+ userData: undefined,
20
+ format: 0,
21
+ width: 1,
22
+ height: 1,
23
+ samples: 0
24
+ };
25
+
26
+ /**
27
+ * Renderbuffers are GPU objects that contain images.
28
+ * In contrast to Textures they are optimized for use as render targets, with Framebuffers.
29
+ * while Textures may not be, and are the logical choice when
30
+ * you do not need to sample (i.e. in a post-pass shader)
31
+ * from the produced image. If you need to resample
32
+ * (such as when reading depth back in a second shader pass),
33
+ * use Textures instead.
34
+ * Renderbuffer objects also natively accommodate Multisampling (MSAA).
35
+ */
36
+ export class ImmutableRenderbuffer extends WebGLResource<RenderbufferProps> {
37
+ static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {
38
+ return !options.format || isRenderbufferFormatSupported(gl, options.format);
39
+ }
40
+
41
+ constructor(gl: WebGLRenderingContext, props: RenderbufferProps) {
42
+ super(WebGLDevice.attach(gl), props, DEFAULT_RENDERBUFFER_PROPS);
43
+ this._initialize(this.props);
44
+ }
45
+
46
+ // PRIVATE METHODS
47
+
48
+ /** Creates and initializes a renderbuffer object's data store */
49
+ protected _initialize(props: Required<RenderbufferProps>) {
50
+ const {format, width, height, samples} = props;
51
+ assert(format, 'Needs format');
52
+
53
+ this.trackDeallocatedMemory();
54
+
55
+ this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
56
+
57
+ if (samples !== 0 && isWebGL2(this.gl)) {
58
+ // @ts-expect-error
59
+ this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
60
+ } else {
61
+ this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);
62
+ }
63
+
64
+ this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
65
+
66
+ this.trackAllocatedMemory(
67
+ width * height * (samples || 1) * getRenderbufferFormatBytesPerPixel(format)
68
+ );
69
+
70
+ return this;
71
+ }
72
+
73
+ // RESOURECE IMPLEMENTATION
74
+
75
+ _createHandle() {
76
+ return this.gl.createRenderbuffer();
77
+ }
78
+
79
+ _deleteHandle(): void {
80
+ this.gl.deleteRenderbuffer(this.handle);
81
+ this.trackDeallocatedMemory();
82
+ }
83
+
84
+ _bindHandle(handle): void {
85
+ this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
86
+ }
87
+ }
88
+
89
+
90
+ /**
91
+ * Renderbuffers are GPU objects that contain images.
92
+ * In contrast to Textures they are optimized for use as render targets, with Framebuffers.
93
+ * while Textures may not be, and are the logical choice when
94
+ * you do not need to sample (i.e. in a post-pass shader)
95
+ * from the produced image. If you need to resample
96
+ * (such as when reading depth back in a second shader pass),
97
+ * use Textures instead.
98
+ * Renderbuffer objects also natively accommodate Multisampling (MSAA).
99
+ */
100
+ export default class Renderbuffer extends ImmutableRenderbuffer {
101
+ get width(): number { return this.props.width; }
102
+ get height(): number { return this.props.height; }
103
+ get format(): number { return this.props.format; }
104
+ get samples(): number { return this.props.samples; }
105
+
106
+ static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {
107
+ return ImmutableRenderbuffer.isSupported(gl, options);
108
+ }
109
+
110
+ static getSamplesForFormat(gl: WebGL2RenderingContext, options: {format: number}): number{
111
+ // Polyfilled to return [0] under WebGL1
112
+ return gl.getInternalformatParameter(GL.RENDERBUFFER, options.format, GL.SAMPLES);
113
+ }
114
+
115
+ constructor(gl: WebGLRenderingContext, props?: RenderbufferProps) {
116
+ super(gl, props);
117
+ }
118
+
119
+ resize(size: {width: number, height: number}): this {
120
+ // Don't resize if width/height haven't changed
121
+ if (size.width !== this.width || size.height !== this.height) {
122
+ return this.initialize({...size, format: this.format, samples: this.samples});
123
+ }
124
+ return this;
125
+ }
126
+
127
+ /** Creates and initializes a renderbuffer object's data store */
128
+ initialize(props: RenderbufferProps): this {
129
+ Object.assign(this.props, props);
130
+ this._initialize(this.props);
131
+ return this;
132
+ }
133
+
134
+ // PRIVATE
135
+
136
+ _syncHandle(handle) {
137
+ this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
138
+ Object.assign(this.props, {
139
+ format: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_INTERNAL_FORMAT),
140
+ width: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_WIDTH),
141
+ height: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_HEIGHT),
142
+ samples: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_SAMPLES)
143
+ });
144
+ }
145
+
146
+ // @param {Boolean} opt.autobind=true - method call will bind/unbind object
147
+ // @returns {GLenum|GLint} - depends on pname
148
+ _getParameter(pname) {
149
+ this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
150
+ const value = this.gl.getRenderbufferParameter(GL.RENDERBUFFER, pname);
151
+ // this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
152
+ return value;
153
+ }
154
+ }
@@ -0,0 +1,35 @@
1
+ import {Device, loadImage} from '@luma.gl/api';
2
+ import GL from '@luma.gl/constants';
3
+ import Texture, {TextureProps, TextureSupportOptions} from './texture';
4
+
5
+
6
+ export type Texture2DProps = TextureProps & {
7
+ };
8
+
9
+ export default class Texture2D extends Texture {
10
+ static isSupported(device: Device | WebGLRenderingContext, opts?: TextureSupportOptions): boolean {
11
+ return Texture.isSupported(device, opts);
12
+ }
13
+
14
+ constructor(device: Device | WebGLRenderingContext, props?: Texture2DProps | Promise<Texture2DProps>) {
15
+ // Signature: new Texture2D(gl, url | Promise)
16
+ if (props instanceof Promise || typeof props === 'string') {
17
+ props = {data: props};
18
+ }
19
+
20
+ // Signature: new Texture2D(gl, {data: url})
21
+ if (typeof props?.data === 'string') {
22
+ props = Object.assign({}, props, {data: loadImage(props.data)});
23
+ }
24
+
25
+ super(device, Object.assign({}, props, {target: GL.TEXTURE_2D}));
26
+
27
+ this.initialize(props);
28
+
29
+ Object.seal(this);
30
+ }
31
+
32
+ get [Symbol.toStringTag](): string {
33
+ return 'Texture2D';
34
+ }
35
+ }