@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,40 +1,231 @@
1
- import { getWebGL2Context, assertWebGL2Context, log } from '@luma.gl/gltools';
2
- import Resource from './resource';
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { log, assert } from '@luma.gl/api';
3
+ import GL from '@luma.gl/constants';
4
+ import WebGLDevice from '../device/webgl-device';
5
+ import { getWebGL2Context, assertWebGL2Context } from '../context/context/webgl-checks';
6
+ import { getKey } from '../webgl-utils/constants-to-keys';
7
+ import Resource from './webgl-resource';
3
8
  import Texture2D from './texture-2d';
4
9
  import Renderbuffer from './renderbuffer';
5
10
  import { clear, clearBuffer } from './clear';
6
- import { copyToDataUrl } from './copy-and-blit.js';
7
- import { getFeatures } from '../features';
8
- import { getKey } from '../webgl-utils/constants-to-keys';
9
- import { assert } from '../utils/assert';
11
+ import { copyToDataUrl } from './copy-and-blit';
10
12
  const ERR_MULTIPLE_RENDERTARGETS = 'Multiple render targets not supported';
11
- export default class Framebuffer extends Resource {
12
- static isSupported(gl, options = {}) {
13
+ export class ImmutableFramebuffer extends Resource {
14
+ constructor(gl, props) {
15
+ super(WebGLDevice.attach(gl), props, {});
16
+
17
+ this._initialize({
18
+ attachments: (props === null || props === void 0 ? void 0 : props.attachments) || {},
19
+ readBuffer: props === null || props === void 0 ? void 0 : props.readBuffer,
20
+ drawBuffers: props === null || props === void 0 ? void 0 : props.drawBuffers
21
+ });
22
+ }
23
+
24
+ checkStatus() {
25
+ const {
26
+ gl
27
+ } = this;
28
+ const status = this.getStatus();
29
+
30
+ if (status !== gl.FRAMEBUFFER_COMPLETE) {
31
+ throw new Error(_getFrameBufferStatus(status));
32
+ }
33
+
34
+ return this;
35
+ }
36
+
37
+ getStatus() {
13
38
  const {
14
- colorBufferFloat,
15
- colorBufferHalfFloat
39
+ gl
40
+ } = this;
41
+ const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
42
+ const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER);
43
+ gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
44
+ return status;
45
+ }
46
+
47
+ show() {
48
+ if (typeof window !== 'undefined') {
49
+ window.open(copyToDataUrl(this), 'luma-debug-texture');
50
+ }
51
+
52
+ return this;
53
+ }
54
+
55
+ log(logLevel = 0, message = '') {
56
+ if (logLevel > log.level || typeof window === 'undefined') {
57
+ return this;
58
+ }
59
+
60
+ message = message || "Framebuffer ".concat(this.id);
61
+ const image = copyToDataUrl(this, {
62
+ targetMaxHeight: 100
63
+ });
64
+ log.image({
65
+ logLevel,
66
+ message,
67
+ image
68
+ })();
69
+ return this;
70
+ }
71
+
72
+ bind({
73
+ target = GL.FRAMEBUFFER
74
+ } = {}) {
75
+ this.gl.bindFramebuffer(target, this.handle);
76
+ return this;
77
+ }
78
+
79
+ unbind({
80
+ target = GL.FRAMEBUFFER
81
+ } = {}) {
82
+ this.gl.bindFramebuffer(target, null);
83
+ return this;
84
+ }
85
+
86
+ _initialize(options) {
87
+ const {
88
+ attachments = {},
89
+ readBuffer,
90
+ drawBuffers
16
91
  } = options;
17
- let supported = true;
18
92
 
19
- if (colorBufferFloat) {
20
- supported = Boolean(gl.getExtension('EXT_color_buffer_float') || gl.getExtension('WEBGL_color_buffer_float') || gl.getExtension('OES_texture_float'));
93
+ this._attach(attachments);
94
+
95
+ const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
96
+
97
+ if (readBuffer) {
98
+ this._setReadBuffer(readBuffer);
21
99
  }
22
100
 
23
- if (colorBufferHalfFloat) {
24
- supported = supported && Boolean(gl.getExtension('EXT_color_buffer_float') || gl.getExtension('EXT_color_buffer_half_float'));
101
+ if (drawBuffers) {
102
+ this._setDrawBuffers(drawBuffers);
25
103
  }
26
104
 
27
- return supported;
105
+ this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
106
+ return this;
107
+ }
108
+
109
+ _attach(attachments) {
110
+ const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
111
+
112
+ for (const key in attachments) {
113
+ assert(key !== undefined, 'Misspelled framebuffer binding point?');
114
+ const attachmentPoint = Number(key);
115
+ const attachment = attachments[attachmentPoint];
116
+
117
+ this._attachOne(attachmentPoint, attachment);
118
+ }
119
+
120
+ this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
121
+ }
122
+
123
+ _attachOne(attachmentPoint, attachment) {
124
+ if (attachment instanceof Renderbuffer) {
125
+ this._attachRenderbuffer(attachmentPoint, attachment);
126
+
127
+ return attachment;
128
+ } else if (Array.isArray(attachment)) {
129
+ const [texture, layer = 0, level = 0] = attachment;
130
+
131
+ this._attachTexture(attachmentPoint, texture, layer, level);
132
+
133
+ return texture;
134
+ } else if (attachment instanceof Texture2D) {
135
+ this._attachTexture(attachmentPoint, attachment, 0, 0);
136
+
137
+ return attachment;
138
+ }
139
+ }
140
+
141
+ _attachRenderbuffer(attachment, renderbuffer) {
142
+ this.gl.framebufferRenderbuffer(GL.FRAMEBUFFER, attachment, GL.RENDERBUFFER, renderbuffer.handle);
143
+ }
144
+
145
+ _attachTexture(attachment, texture, layer, level) {
146
+ const {
147
+ gl
148
+ } = this;
149
+ gl.bindTexture(texture.target, texture.handle);
150
+
151
+ switch (texture.target) {
152
+ case GL.TEXTURE_2D_ARRAY:
153
+ case GL.TEXTURE_3D:
154
+ const gl2 = assertWebGL2Context(gl);
155
+ gl2.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);
156
+ break;
157
+
158
+ case GL.TEXTURE_CUBE_MAP:
159
+ const face = mapIndexToCubeMapFace(layer);
160
+ gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, face, texture.handle, level);
161
+ break;
162
+
163
+ case GL.TEXTURE_2D:
164
+ gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, texture.handle, level);
165
+ break;
166
+
167
+ default:
168
+ assert(false, 'Illegal texture type');
169
+ }
170
+
171
+ gl.bindTexture(texture.target, null);
172
+ }
173
+
174
+ _setReadBuffer(readBuffer) {
175
+ const gl2 = getWebGL2Context(this.gl);
176
+
177
+ if (gl2) {
178
+ gl2.readBuffer(readBuffer);
179
+ } else {
180
+ assert(readBuffer === GL.COLOR_ATTACHMENT0 || readBuffer === GL.BACK, ERR_MULTIPLE_RENDERTARGETS);
181
+ }
182
+ }
183
+
184
+ _setDrawBuffers(drawBuffers) {
185
+ const {
186
+ gl
187
+ } = this;
188
+ const gl2 = assertWebGL2Context(gl);
189
+
190
+ if (gl2) {
191
+ gl2.drawBuffers(drawBuffers);
192
+ } else {
193
+ const ext = gl.getExtension('WEBGL_draw_buffers');
194
+
195
+ if (ext) {
196
+ ext.drawBuffersWEBGL(drawBuffers);
197
+ } else {
198
+ assert(drawBuffers.length === 1 && (drawBuffers[0] === GL.COLOR_ATTACHMENT0 || drawBuffers[0] === GL.BACK), ERR_MULTIPLE_RENDERTARGETS);
199
+ }
200
+ }
201
+ }
202
+
203
+ _createHandle() {
204
+ return this.gl.createFramebuffer();
205
+ }
206
+
207
+ _deleteHandle() {
208
+ this.gl.deleteFramebuffer(this.handle);
209
+ }
210
+
211
+ _bindHandle(handle) {
212
+ return this.gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
213
+ }
214
+
215
+ }
216
+ export default class Framebuffer extends ImmutableFramebuffer {
217
+ static isSupported(gl, options) {
218
+ return isFloatColorBufferSupported(gl, options);
28
219
  }
29
220
 
30
221
  static getDefaultFramebuffer(gl) {
31
- gl.luma = gl.luma || {};
32
- gl.luma.defaultFramebuffer = gl.luma.defaultFramebuffer || new Framebuffer(gl, {
222
+ const webglDevice = WebGLDevice.fromContext(gl);
223
+ webglDevice.defaultFramebuffer = webglDevice.defaultFramebuffer || new Framebuffer(gl, {
33
224
  id: 'default-framebuffer',
34
225
  handle: null,
35
226
  attachments: {}
36
227
  });
37
- return gl.luma.defaultFramebuffer;
228
+ return webglDevice.defaultFramebuffer;
38
229
  }
39
230
 
40
231
  get MAX_COLOR_ATTACHMENTS() {
@@ -47,45 +238,55 @@ export default class Framebuffer extends Resource {
47
238
  return gl2.getParameter(gl2.MAX_DRAW_BUFFERS);
48
239
  }
49
240
 
50
- constructor(gl, opts = {}) {
51
- super(gl, opts);
52
- this.width = null;
53
- this.height = null;
54
- this.attachments = {};
55
- this.readBuffer = 36064;
56
- this.drawBuffers = [36064];
57
- this.ownResources = [];
58
- this.initialize(opts);
241
+ constructor(gl, props) {
242
+ super(gl, props);
243
+
244
+ _defineProperty(this, "width", null);
245
+
246
+ _defineProperty(this, "height", null);
247
+
248
+ _defineProperty(this, "attachments", {});
249
+
250
+ _defineProperty(this, "readBuffer", GL.COLOR_ATTACHMENT0);
251
+
252
+ _defineProperty(this, "drawBuffers", [GL.COLOR_ATTACHMENT0]);
253
+
254
+ _defineProperty(this, "ownResources", []);
255
+
256
+ this.initialize(props);
59
257
  Object.seal(this);
60
258
  }
61
259
 
62
260
  get color() {
63
- return this.attachments[36064] || null;
261
+ return this.attachments[GL.COLOR_ATTACHMENT0] || null;
64
262
  }
65
263
 
66
264
  get texture() {
67
- return this.attachments[36064] || null;
265
+ return this.attachments[GL.COLOR_ATTACHMENT0] || null;
68
266
  }
69
267
 
70
268
  get depth() {
71
- return this.attachments[36096] || this.attachments[33306] || null;
269
+ return this.attachments[GL.DEPTH_ATTACHMENT] || this.attachments[GL.DEPTH_STENCIL_ATTACHMENT] || null;
72
270
  }
73
271
 
74
272
  get stencil() {
75
- return this.attachments[36128] || this.attachments[33306] || null;
76
- }
77
-
78
- initialize({
79
- width = 1,
80
- height = 1,
81
- attachments = null,
82
- color = true,
83
- depth = true,
84
- stencil = false,
85
- check = true,
86
- readBuffer = undefined,
87
- drawBuffers = undefined
88
- }) {
273
+ return this.attachments[GL.STENCIL_ATTACHMENT] || this.attachments[GL.DEPTH_STENCIL_ATTACHMENT] || null;
274
+ }
275
+
276
+ initialize(props) {
277
+ let {
278
+ attachments = null
279
+ } = props || {};
280
+ const {
281
+ width = 1,
282
+ height = 1,
283
+ color = true,
284
+ depth = true,
285
+ stencil = false,
286
+ check = true,
287
+ readBuffer = undefined,
288
+ drawBuffers = undefined
289
+ } = props || {};
89
290
  assert(width >= 0 && height >= 0, 'Width and height need to be integers');
90
291
  this.width = width;
91
292
  this.height = height;
@@ -124,13 +325,14 @@ export default class Framebuffer extends Resource {
124
325
  return this;
125
326
  }
126
327
 
127
- update({
128
- attachments = {},
129
- readBuffer,
130
- drawBuffers,
131
- clearAttachments = false,
132
- resizeAttachments = true
133
- }) {
328
+ update(options) {
329
+ const {
330
+ attachments = {},
331
+ readBuffer,
332
+ drawBuffers,
333
+ clearAttachments = false,
334
+ resizeAttachments = true
335
+ } = options;
134
336
  this.attach(attachments, {
135
337
  clearAttachments,
136
338
  resizeAttachments
@@ -138,25 +340,29 @@ export default class Framebuffer extends Resource {
138
340
  const {
139
341
  gl
140
342
  } = this;
141
- const prevHandle = gl.bindFramebuffer(36160, this.handle);
343
+ const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
142
344
 
143
345
  if (readBuffer) {
144
346
  this._setReadBuffer(readBuffer);
347
+
348
+ this.readBuffer = readBuffer;
145
349
  }
146
350
 
147
351
  if (drawBuffers) {
148
352
  this._setDrawBuffers(drawBuffers);
353
+
354
+ this.drawBuffers = drawBuffers;
149
355
  }
150
356
 
151
- gl.bindFramebuffer(36160, prevHandle || null);
357
+ gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
152
358
  return this;
153
359
  }
154
360
 
155
- resize(options = {}) {
361
+ resize(size) {
156
362
  let {
157
363
  width,
158
364
  height
159
- } = options;
365
+ } = size || {};
160
366
 
161
367
  if (this.handle === null) {
162
368
  assert(width === undefined && height === undefined);
@@ -174,7 +380,7 @@ export default class Framebuffer extends Resource {
174
380
  }
175
381
 
176
382
  if (width !== this.width && height !== this.height) {
177
- log.log(2, `Resizing framebuffer ${this.id} to ${width}x${height}`)();
383
+ log.log(2, "Resizing framebuffer ".concat(this.id, " to ").concat(width, "x").concat(height))();
178
384
  }
179
385
 
180
386
  for (const attachmentPoint in this.attachments) {
@@ -202,7 +408,7 @@ export default class Framebuffer extends Resource {
202
408
  }
203
409
 
204
410
  Object.assign(newAttachments, attachments);
205
- const prevHandle = this.gl.bindFramebuffer(36160, this.handle);
411
+ const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
206
412
 
207
413
  for (const key in newAttachments) {
208
414
  assert(key !== undefined, 'Misspelled framebuffer binding point?');
@@ -212,28 +418,9 @@ export default class Framebuffer extends Resource {
212
418
 
213
419
  if (!object) {
214
420
  this._unattach(attachment);
215
- } else if (object instanceof Renderbuffer) {
216
- this._attachRenderbuffer({
217
- attachment,
218
- renderbuffer: object
219
- });
220
- } else if (Array.isArray(descriptor)) {
221
- const [texture, layer = 0, level = 0] = descriptor;
222
- object = texture;
223
-
224
- this._attachTexture({
225
- attachment,
226
- texture,
227
- layer,
228
- level
229
- });
230
421
  } else {
231
- this._attachTexture({
232
- attachment,
233
- texture: object,
234
- layer: 0,
235
- level: 0
236
- });
422
+ object = this._attachOne(attachment, object);
423
+ this.attachments[attachment] = object;
237
424
  }
238
425
 
239
426
  if (resizeAttachments && object) {
@@ -244,44 +431,21 @@ export default class Framebuffer extends Resource {
244
431
  }
245
432
  }
246
433
 
247
- this.gl.bindFramebuffer(36160, prevHandle || null);
434
+ this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
248
435
  Object.assign(this.attachments, attachments);
249
436
  Object.keys(this.attachments).filter(key => !this.attachments[key]).forEach(key => {
250
437
  delete this.attachments[key];
251
438
  });
252
439
  }
253
440
 
254
- checkStatus() {
255
- const {
256
- gl
257
- } = this;
258
- const status = this.getStatus();
259
-
260
- if (status !== 36053) {
261
- throw new Error(_getFrameBufferStatus(status));
262
- }
263
-
264
- return this;
265
- }
266
-
267
- getStatus() {
268
- const {
269
- gl
270
- } = this;
271
- const prevHandle = gl.bindFramebuffer(36160, this.handle);
272
- const status = gl.checkFramebufferStatus(36160);
273
- gl.bindFramebuffer(36160, prevHandle || null);
274
- return status;
275
- }
276
-
277
- clear(options = {}) {
441
+ clear(options) {
278
442
  const {
279
443
  color,
280
444
  depth,
281
445
  stencil,
282
446
  drawBuffers = []
283
447
  } = options;
284
- const prevHandle = this.gl.bindFramebuffer(36160, this.handle);
448
+ const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
285
449
 
286
450
  if (color || depth || stencil) {
287
451
  clear(this.gl, {
@@ -297,58 +461,34 @@ export default class Framebuffer extends Resource {
297
461
  value
298
462
  });
299
463
  });
300
- this.gl.bindFramebuffer(36160, prevHandle || null);
464
+ this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);
301
465
  return this;
302
466
  }
303
467
 
304
- readPixels(opts = {}) {
305
- log.error('Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)')();
306
- return null;
307
- }
308
-
309
- readPixelsToBuffer(opts = {}) {
310
- log.error('Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)')();
311
- return null;
312
- }
313
-
314
- copyToDataUrl(opts = {}) {
315
- log.error('Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)')();
316
- return null;
317
- }
318
-
319
- copyToImage(opts = {}) {
320
- log.error('Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)')();
321
- return null;
322
- }
323
-
324
- copyToTexture(opts = {}) {
325
- log.error('Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})')();
326
- return null;
327
- }
328
-
329
468
  blit(opts = {}) {
330
469
  log.error('Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)')();
331
470
  return null;
332
471
  }
333
472
 
334
- invalidate({
335
- attachments = [],
336
- x = 0,
337
- y = 0,
338
- width,
339
- height
340
- }) {
473
+ invalidate(options) {
474
+ const {
475
+ attachments = [],
476
+ x = 0,
477
+ y = 0,
478
+ width,
479
+ height
480
+ } = options;
341
481
  const gl2 = assertWebGL2Context(this.gl);
342
- const prevHandle = gl2.bindFramebuffer(36008, this.handle);
482
+ const prevHandle = gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, this.handle);
343
483
  const invalidateAll = x === 0 && y === 0 && width === undefined && height === undefined;
344
484
 
345
485
  if (invalidateAll) {
346
- gl2.invalidateFramebuffer(36008, attachments);
486
+ gl2.invalidateFramebuffer(GL.READ_FRAMEBUFFER, attachments);
347
487
  } else {
348
- gl2.invalidateFramebuffer(36008, attachments, x, y, width, height);
488
+ gl2.invalidateFramebuffer(GL.READ_FRAMEBUFFER, attachments, x, y, width, height);
349
489
  }
350
490
 
351
- gl2.bindFramebuffer(36008, prevHandle);
491
+ gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, prevHandle);
352
492
  return this;
353
493
  }
354
494
 
@@ -356,9 +496,9 @@ export default class Framebuffer extends Resource {
356
496
  let value = this._getAttachmentParameterFallback(pname);
357
497
 
358
498
  if (value === null) {
359
- this.gl.bindFramebuffer(36160, this.handle);
360
- value = this.gl.getFramebufferAttachmentParameter(36160, attachment, pname);
361
- this.gl.bindFramebuffer(36160, null);
499
+ this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);
500
+ value = this.gl.getFramebufferAttachmentParameter(GL.FRAMEBUFFER, attachment, pname);
501
+ this.gl.bindFramebuffer(GL.FRAMEBUFFER, null);
362
502
  }
363
503
 
364
504
  if (keys && value > 1000) {
@@ -368,7 +508,7 @@ export default class Framebuffer extends Resource {
368
508
  return value;
369
509
  }
370
510
 
371
- getAttachmentParameters(attachment = 36064, keys, parameters = this.constructor.ATTACHMENT_PARAMETERS || []) {
511
+ getAttachmentParameters(attachment = GL.COLOR_ATTACHMENT0, keys, parameters = this.constructor.ATTACHMENT_PARAMETERS || []) {
372
512
  const values = {};
373
513
 
374
514
  for (const pname of parameters) {
@@ -392,86 +532,47 @@ export default class Framebuffer extends Resource {
392
532
  return parameters;
393
533
  }
394
534
 
395
- show() {
396
- if (typeof window !== 'undefined') {
397
- window.open(copyToDataUrl(this), 'luma-debug-texture');
398
- }
399
-
400
- return this;
401
- }
402
-
403
- log(logLevel = 0, message = '') {
404
- if (logLevel > log.level || typeof window === 'undefined') {
405
- return this;
406
- }
407
-
408
- message = message || `Framebuffer ${this.id}`;
409
- const image = copyToDataUrl(this, {
410
- targetMaxHeight: 100
411
- });
412
- log.image({
413
- logLevel,
414
- message,
415
- image
416
- }, message)();
417
- return this;
418
- }
419
-
420
- bind({
421
- target = 36160
422
- } = {}) {
423
- this.gl.bindFramebuffer(target, this.handle);
424
- return this;
425
- }
426
-
427
- unbind({
428
- target = 36160
429
- } = {}) {
430
- this.gl.bindFramebuffer(target, null);
431
- return this;
432
- }
433
-
434
535
  _createDefaultAttachments(color, depth, stencil, width, height) {
435
536
  let defaultAttachments = null;
436
537
 
437
538
  if (color) {
438
539
  defaultAttachments = defaultAttachments || {};
439
- defaultAttachments[36064] = new Texture2D(this.gl, {
440
- id: `${this.id}-color0`,
540
+ defaultAttachments[GL.COLOR_ATTACHMENT0] = new Texture2D(this.gl, {
541
+ id: "".concat(this.id, "-color0"),
441
542
  pixels: null,
442
- format: 6408,
443
- type: 5121,
543
+ format: GL.RGBA,
544
+ type: GL.UNSIGNED_BYTE,
444
545
  width,
445
546
  height,
446
547
  mipmaps: false,
447
548
  parameters: {
448
- [10241]: 9729,
449
- [10240]: 9729,
450
- [10242]: 33071,
451
- [10243]: 33071
549
+ [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,
550
+ [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,
551
+ [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,
552
+ [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE
452
553
  }
453
554
  });
454
- this.ownResources.push(defaultAttachments[36064]);
555
+ this.ownResources.push(defaultAttachments[GL.COLOR_ATTACHMENT0]);
455
556
  }
456
557
 
457
558
  if (depth && stencil) {
458
559
  defaultAttachments = defaultAttachments || {};
459
- defaultAttachments[33306] = new Renderbuffer(this.gl, {
460
- id: `${this.id}-depth-stencil`,
461
- format: 35056,
560
+ defaultAttachments[GL.DEPTH_STENCIL_ATTACHMENT] = new Renderbuffer(this.gl, {
561
+ id: "".concat(this.id, "-depth-stencil"),
562
+ format: GL.DEPTH24_STENCIL8,
462
563
  width,
463
564
  height: 111
464
565
  });
465
- this.ownResources.push(defaultAttachments[33306]);
566
+ this.ownResources.push(defaultAttachments[GL.DEPTH_STENCIL_ATTACHMENT]);
466
567
  } else if (depth) {
467
568
  defaultAttachments = defaultAttachments || {};
468
- defaultAttachments[36096] = new Renderbuffer(this.gl, {
469
- id: `${this.id}-depth`,
470
- format: 33189,
569
+ defaultAttachments[GL.DEPTH_ATTACHMENT] = new Renderbuffer(this.gl, {
570
+ id: "".concat(this.id, "-depth"),
571
+ format: GL.DEPTH_COMPONENT16,
471
572
  width,
472
573
  height
473
574
  });
474
- this.ownResources.push(defaultAttachments[36096]);
575
+ this.ownResources.push(defaultAttachments[GL.DEPTH_ATTACHMENT]);
475
576
  } else if (stencil) {
476
577
  assert(false);
477
578
  }
@@ -487,142 +588,69 @@ export default class Framebuffer extends Resource {
487
588
  }
488
589
 
489
590
  if (oldAttachment instanceof Renderbuffer) {
490
- this.gl.framebufferRenderbuffer(36160, attachment, 36161, null);
591
+ this.gl.framebufferRenderbuffer(GL.FRAMEBUFFER, attachment, GL.RENDERBUFFER, null);
491
592
  } else {
492
- this.gl.framebufferTexture2D(36160, attachment, 3553, null, 0);
593
+ this.gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, null, 0);
493
594
  }
494
595
 
495
596
  delete this.attachments[attachment];
496
597
  }
497
598
 
498
- _attachRenderbuffer({
499
- attachment = 36064,
500
- renderbuffer
501
- }) {
502
- const {
503
- gl
504
- } = this;
505
- gl.framebufferRenderbuffer(36160, attachment, 36161, renderbuffer.handle);
506
- this.attachments[attachment] = renderbuffer;
507
- }
508
-
509
- _attachTexture({
510
- attachment = 36064,
511
- texture,
512
- layer,
513
- level
514
- }) {
515
- const {
516
- gl
517
- } = this;
518
- gl.bindTexture(texture.target, texture.handle);
519
-
520
- switch (texture.target) {
521
- case 35866:
522
- case 32879:
523
- const gl2 = assertWebGL2Context(gl);
524
- gl2.framebufferTextureLayer(36160, attachment, texture.target, level, layer);
525
- break;
526
-
527
- case 34067:
528
- const face = mapIndexToCubeMapFace(layer);
529
- gl.framebufferTexture2D(36160, attachment, face, texture.handle, level);
530
- break;
531
-
532
- case 3553:
533
- gl.framebufferTexture2D(36160, attachment, 3553, texture.handle, level);
534
- break;
535
-
536
- default:
537
- assert(false, 'Illegal texture type');
538
- }
539
-
540
- gl.bindTexture(texture.target, null);
541
- this.attachments[attachment] = texture;
542
- }
543
-
544
- _setReadBuffer(readBuffer) {
545
- const gl2 = getWebGL2Context(this.gl);
546
-
547
- if (gl2) {
548
- gl2.readBuffer(readBuffer);
549
- } else {
550
- assert(readBuffer === 36064 || readBuffer === 1029, ERR_MULTIPLE_RENDERTARGETS);
551
- }
552
-
553
- this.readBuffer = readBuffer;
554
- }
555
-
556
- _setDrawBuffers(drawBuffers) {
557
- const {
558
- gl
559
- } = this;
560
- const gl2 = assertWebGL2Context(gl);
561
-
562
- if (gl2) {
563
- gl2.drawBuffers(drawBuffers);
564
- } else {
565
- const ext = gl.getExtension('WEBGL_draw_buffers');
566
-
567
- if (ext) {
568
- ext.drawBuffersWEBGL(drawBuffers);
569
- } else {
570
- assert(drawBuffers.length === 1 && (drawBuffers[0] === 36064 || drawBuffers[0] === 1029), ERR_MULTIPLE_RENDERTARGETS);
571
- }
572
- }
573
-
574
- this.drawBuffers = drawBuffers;
575
- }
576
-
577
599
  _getAttachmentParameterFallback(pname) {
578
- const caps = getFeatures(this.gl);
600
+ const webglDevice = WebGLDevice.fromContext(this.gl);
601
+ const features = webglDevice.features;
579
602
 
580
603
  switch (pname) {
581
- case 36052:
582
- return !caps.WEBGL2 ? 0 : null;
604
+ case GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:
605
+ return !features.has('webgl2') ? 0 : null;
583
606
 
584
- case 33298:
585
- case 33299:
586
- case 33300:
587
- case 33301:
588
- case 33302:
589
- case 33303:
590
- return !caps.WEBGL2 ? 8 : null;
607
+ case GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE:
608
+ case GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:
609
+ case GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:
610
+ case GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:
611
+ case GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:
612
+ case GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:
613
+ return !features.has('webgl2') ? 8 : null;
591
614
 
592
- case 33297:
593
- return !caps.WEBGL2 ? 5125 : null;
615
+ case GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:
616
+ return !features.has('webgl2') ? GL.UNSIGNED_INT : null;
594
617
 
595
- case 33296:
596
- return !caps.WEBGL2 && !caps.EXT_sRGB ? 9729 : null;
618
+ case GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:
619
+ return !features.has('webgl2') && !features.has('webgl-color-encoding-srgb') ? GL.LINEAR : null;
597
620
 
598
621
  default:
599
622
  return null;
600
623
  }
601
624
  }
602
625
 
603
- _createHandle() {
604
- return this.gl.createFramebuffer();
605
- }
606
-
607
- _deleteHandle() {
608
- this.gl.deleteFramebuffer(this.handle);
609
- }
610
-
611
- _bindHandle(handle) {
612
- return this.gl.bindFramebuffer(36160, handle);
613
- }
614
-
615
626
  }
616
627
 
628
+ _defineProperty(Framebuffer, "FRAMEBUFFER_ATTACHMENT_PARAMETERS", [GL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, GL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING, GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE, GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE, GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE, GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE]);
629
+
617
630
  function mapIndexToCubeMapFace(layer) {
618
- return layer < 34069 ? layer + 34069 : layer;
631
+ return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
619
632
  }
620
633
 
621
634
  function _getFrameBufferStatus(status) {
622
635
  const STATUS = Framebuffer.STATUS || {};
623
- return STATUS[status] || `Framebuffer error ${status}`;
636
+ return STATUS[status] || "Framebuffer error ".concat(status);
624
637
  }
625
638
 
626
- export const FRAMEBUFFER_ATTACHMENT_PARAMETERS = [36049, 36048, 33296, 33298, 33299, 33300, 33301, 33302, 33303];
627
- Framebuffer.ATTACHMENT_PARAMETERS = FRAMEBUFFER_ATTACHMENT_PARAMETERS;
639
+ function isFloatColorBufferSupported(gl, options) {
640
+ const {
641
+ colorBufferFloat,
642
+ colorBufferHalfFloat
643
+ } = options;
644
+ let supported = true;
645
+
646
+ if (colorBufferFloat) {
647
+ supported = Boolean(gl.getExtension('EXT_color_buffer_float') || gl.getExtension('WEBGL_color_buffer_float') || gl.getExtension('OES_texture_float'));
648
+ }
649
+
650
+ if (colorBufferHalfFloat) {
651
+ supported = supported && Boolean(gl.getExtension('EXT_color_buffer_float') || gl.getExtension('EXT_color_buffer_half_float'));
652
+ }
653
+
654
+ return supported;
655
+ }
628
656
  //# sourceMappingURL=framebuffer.js.map