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

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