@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
@@ -5,791 +5,674 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.FRAMEBUFFER_ATTACHMENT_PARAMETERS = exports.default = void 0;
8
+ exports.default = exports.ImmutableFramebuffer = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
13
13
 
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
14
+ var _gltools = require("@luma.gl/gltools");
15
15
 
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
16
+ var _webglResource = _interopRequireDefault(require("./webgl-resource"));
17
17
 
18
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
18
+ var _texture2d = _interopRequireDefault(require("./texture-2d"));
19
19
 
20
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
20
+ var _renderbuffer = _interopRequireDefault(require("./renderbuffer"));
21
21
 
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
+ var _clear = require("./clear");
23
23
 
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
24
+ var _copyAndBlit = require("./copy-and-blit");
25
25
 
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
26
+ var _lumaContextData = require("../context/luma-context-data");
27
27
 
28
- var _gltools = require("@luma.gl/gltools");
28
+ var _features = require("../features");
29
29
 
30
- var _resource = _interopRequireDefault(require("./resource"));
30
+ var _webglUtils = require("../webgl-utils");
31
31
 
32
- var _texture2d = _interopRequireDefault(require("./texture-2d"));
32
+ var _utils = require("../utils");
33
33
 
34
- var _renderbuffer = _interopRequireDefault(require("./renderbuffer"));
34
+ const ERR_MULTIPLE_RENDERTARGETS = 'Multiple render targets not supported';
35
35
 
36
- var _clear2 = require("./clear");
36
+ class ImmutableFramebuffer extends _webglResource.default {
37
+ constructor(gl, props) {
38
+ super(gl, props, {});
37
39
 
38
- var _copyAndBlit = require("./copy-and-blit.js");
40
+ this._initialize({
41
+ attachments: (props === null || props === void 0 ? void 0 : props.attachments) || {},
42
+ readBuffer: props === null || props === void 0 ? void 0 : props.readBuffer,
43
+ drawBuffers: props === null || props === void 0 ? void 0 : props.drawBuffers
44
+ });
45
+ }
39
46
 
40
- var _features = require("../features");
47
+ checkStatus() {
48
+ const {
49
+ gl
50
+ } = this;
51
+ const status = this.getStatus();
41
52
 
42
- var _constantsToKeys = require("../webgl-utils/constants-to-keys");
53
+ if (status !== gl.FRAMEBUFFER_COMPLETE) {
54
+ throw new Error(_getFrameBufferStatus(status));
55
+ }
43
56
 
44
- var _assert = require("../utils/assert");
57
+ return this;
58
+ }
45
59
 
46
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
60
+ getStatus() {
61
+ const {
62
+ gl
63
+ } = this;
64
+ const prevHandle = gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
65
+ const status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER);
66
+ gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
67
+ return status;
68
+ }
47
69
 
48
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
70
+ show() {
71
+ if (typeof window !== 'undefined') {
72
+ window.open((0, _copyAndBlit.copyToDataUrl)(this), 'luma-debug-texture');
73
+ }
74
+
75
+ return this;
76
+ }
77
+
78
+ log(logLevel = 0, message = '') {
79
+ if (logLevel > _gltools.log.level || typeof window === 'undefined') {
80
+ return this;
81
+ }
49
82
 
50
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
83
+ message = message || "Framebuffer ".concat(this.id);
84
+ const image = (0, _copyAndBlit.copyToDataUrl)(this, {
85
+ targetMaxHeight: 100
86
+ });
51
87
 
52
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
88
+ _gltools.log.image({
89
+ logLevel,
90
+ message,
91
+ image
92
+ }, message)();
53
93
 
54
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
94
+ return this;
95
+ }
96
+
97
+ bind({
98
+ target = _constants.default.FRAMEBUFFER
99
+ } = {}) {
100
+ this.gl.bindFramebuffer(target, this.handle);
101
+ return this;
102
+ }
103
+
104
+ unbind({
105
+ target = _constants.default.FRAMEBUFFER
106
+ } = {}) {
107
+ this.gl.bindFramebuffer(target, null);
108
+ return this;
109
+ }
55
110
 
56
- var ERR_MULTIPLE_RENDERTARGETS = 'Multiple render targets not supported';
111
+ _initialize(options) {
112
+ const {
113
+ attachments = {},
114
+ readBuffer,
115
+ drawBuffers
116
+ } = options;
57
117
 
58
- var Framebuffer = function (_Resource) {
59
- (0, _inherits2.default)(Framebuffer, _Resource);
118
+ this._attach(attachments);
60
119
 
61
- var _super = _createSuper(Framebuffer);
120
+ const prevHandle = this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
62
121
 
63
- (0, _createClass2.default)(Framebuffer, [{
64
- key: "MAX_COLOR_ATTACHMENTS",
65
- get: function get() {
66
- var gl2 = (0, _gltools.assertWebGL2Context)(this.gl);
67
- return gl2.getParameter(gl2.MAX_COLOR_ATTACHMENTS);
122
+ if (readBuffer) {
123
+ this._setReadBuffer(readBuffer);
68
124
  }
69
- }, {
70
- key: "MAX_DRAW_BUFFERS",
71
- get: function get() {
72
- var gl2 = (0, _gltools.assertWebGL2Context)(this.gl);
73
- return gl2.getParameter(gl2.MAX_DRAW_BUFFERS);
125
+
126
+ if (drawBuffers) {
127
+ this._setDrawBuffers(drawBuffers);
74
128
  }
75
- }], [{
76
- key: "isSupported",
77
- value: function isSupported(gl) {
78
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
79
- var colorBufferFloat = options.colorBufferFloat,
80
- colorBufferHalfFloat = options.colorBufferHalfFloat;
81
- var supported = true;
82
129
 
83
- if (colorBufferFloat) {
84
- supported = Boolean(gl.getExtension('EXT_color_buffer_float') || gl.getExtension('WEBGL_color_buffer_float') || gl.getExtension('OES_texture_float'));
85
- }
130
+ this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
131
+ return this;
132
+ }
86
133
 
87
- if (colorBufferHalfFloat) {
88
- supported = supported && Boolean(gl.getExtension('EXT_color_buffer_float') || gl.getExtension('EXT_color_buffer_half_float'));
89
- }
134
+ _attach(attachments) {
135
+ const prevHandle = this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
136
+
137
+ for (const key in attachments) {
138
+ (0, _utils.assert)(key !== undefined, 'Misspelled framebuffer binding point?');
139
+ const attachmentPoint = Number(key);
140
+ const attachment = attachments[attachmentPoint];
90
141
 
91
- return supported;
142
+ this._attachOne(attachmentPoint, attachment);
92
143
  }
93
- }, {
94
- key: "getDefaultFramebuffer",
95
- value: function getDefaultFramebuffer(gl) {
96
- gl.luma = gl.luma || {};
97
- gl.luma.defaultFramebuffer = gl.luma.defaultFramebuffer || new Framebuffer(gl, {
98
- id: 'default-framebuffer',
99
- handle: null,
100
- attachments: {}
101
- });
102
- return gl.luma.defaultFramebuffer;
103
- }
104
- }]);
105
-
106
- function Framebuffer(gl) {
107
- var _this;
108
-
109
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
110
- (0, _classCallCheck2.default)(this, Framebuffer);
111
- _this = _super.call(this, gl, opts);
112
- _this.width = null;
113
- _this.height = null;
114
- _this.attachments = {};
115
- _this.readBuffer = 36064;
116
- _this.drawBuffers = [36064];
117
- _this.ownResources = [];
118
-
119
- _this.initialize(opts);
120
-
121
- Object.seal((0, _assertThisInitialized2.default)(_this));
122
- return _this;
123
- }
124
-
125
- (0, _createClass2.default)(Framebuffer, [{
126
- key: "initialize",
127
- value: function initialize(_ref) {
128
- var _ref$width = _ref.width,
129
- width = _ref$width === void 0 ? 1 : _ref$width,
130
- _ref$height = _ref.height,
131
- height = _ref$height === void 0 ? 1 : _ref$height,
132
- _ref$attachments = _ref.attachments,
133
- attachments = _ref$attachments === void 0 ? null : _ref$attachments,
134
- _ref$color = _ref.color,
135
- color = _ref$color === void 0 ? true : _ref$color,
136
- _ref$depth = _ref.depth,
137
- depth = _ref$depth === void 0 ? true : _ref$depth,
138
- _ref$stencil = _ref.stencil,
139
- stencil = _ref$stencil === void 0 ? false : _ref$stencil,
140
- _ref$check = _ref.check,
141
- check = _ref$check === void 0 ? true : _ref$check,
142
- _ref$readBuffer = _ref.readBuffer,
143
- readBuffer = _ref$readBuffer === void 0 ? undefined : _ref$readBuffer,
144
- _ref$drawBuffers = _ref.drawBuffers,
145
- drawBuffers = _ref$drawBuffers === void 0 ? undefined : _ref$drawBuffers;
146
- (0, _assert.assert)(width >= 0 && height >= 0, 'Width and height need to be integers');
147
- this.width = width;
148
- this.height = height;
149
-
150
- if (attachments) {
151
- for (var attachment in attachments) {
152
- var target = attachments[attachment];
153
- var object = Array.isArray(target) ? target[0] : target;
154
- object.resize({
155
- width: width,
156
- height: height
157
- });
158
- }
159
- } else {
160
- attachments = this._createDefaultAttachments(color, depth, stencil, width, height);
161
- }
162
144
 
163
- this.update({
164
- clearAttachments: true,
165
- attachments: attachments,
166
- readBuffer: readBuffer,
167
- drawBuffers: drawBuffers
168
- });
145
+ this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
146
+ }
169
147
 
170
- if (attachments && check) {
171
- this.checkStatus();
172
- }
148
+ _attachOne(attachmentPoint, attachment) {
149
+ if (attachment instanceof _renderbuffer.default) {
150
+ this._attachRenderbuffer(attachmentPoint, attachment);
151
+
152
+ return attachment;
153
+ } else if (Array.isArray(attachment)) {
154
+ const [texture, layer = 0, level = 0] = attachment;
155
+
156
+ this._attachTexture(attachmentPoint, texture, layer, level);
157
+
158
+ return texture;
159
+ } else if (attachment instanceof _texture2d.default) {
160
+ this._attachTexture(attachmentPoint, attachment, 0, 0);
161
+
162
+ return attachment;
173
163
  }
174
- }, {
175
- key: "delete",
176
- value: function _delete() {
177
- var _iterator = _createForOfIteratorHelper(this.ownResources),
178
- _step;
164
+ }
179
165
 
180
- try {
181
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
182
- var resource = _step.value;
183
- resource.delete();
184
- }
185
- } catch (err) {
186
- _iterator.e(err);
187
- } finally {
188
- _iterator.f();
189
- }
166
+ _attachRenderbuffer(attachment, renderbuffer) {
167
+ this.gl.framebufferRenderbuffer(_constants.default.FRAMEBUFFER, attachment, _constants.default.RENDERBUFFER, renderbuffer.handle);
168
+ }
190
169
 
191
- (0, _get2.default)((0, _getPrototypeOf2.default)(Framebuffer.prototype), "delete", this).call(this);
192
- return this;
170
+ _attachTexture(attachment, texture, layer, level) {
171
+ const {
172
+ gl
173
+ } = this;
174
+ gl.bindTexture(texture.target, texture.handle);
175
+
176
+ switch (texture.target) {
177
+ case _constants.default.TEXTURE_2D_ARRAY:
178
+ case _constants.default.TEXTURE_3D:
179
+ const gl2 = (0, _gltools.assertWebGL2Context)(gl);
180
+ gl2.framebufferTextureLayer(_constants.default.FRAMEBUFFER, attachment, texture.target, level, layer);
181
+ break;
182
+
183
+ case _constants.default.TEXTURE_CUBE_MAP:
184
+ const face = mapIndexToCubeMapFace(layer);
185
+ gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, face, texture.handle, level);
186
+ break;
187
+
188
+ case _constants.default.TEXTURE_2D:
189
+ gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, _constants.default.TEXTURE_2D, texture.handle, level);
190
+ break;
191
+
192
+ default:
193
+ (0, _utils.assert)(false, 'Illegal texture type');
193
194
  }
194
- }, {
195
- key: "update",
196
- value: function update(_ref2) {
197
- var _ref2$attachments = _ref2.attachments,
198
- attachments = _ref2$attachments === void 0 ? {} : _ref2$attachments,
199
- readBuffer = _ref2.readBuffer,
200
- drawBuffers = _ref2.drawBuffers,
201
- _ref2$clearAttachment = _ref2.clearAttachments,
202
- clearAttachments = _ref2$clearAttachment === void 0 ? false : _ref2$clearAttachment,
203
- _ref2$resizeAttachmen = _ref2.resizeAttachments,
204
- resizeAttachments = _ref2$resizeAttachmen === void 0 ? true : _ref2$resizeAttachmen;
205
- this.attach(attachments, {
206
- clearAttachments: clearAttachments,
207
- resizeAttachments: resizeAttachments
208
- });
209
- var gl = this.gl;
210
- var prevHandle = gl.bindFramebuffer(36160, this.handle);
211
195
 
212
- if (readBuffer) {
213
- this._setReadBuffer(readBuffer);
214
- }
196
+ gl.bindTexture(texture.target, null);
197
+ }
215
198
 
216
- if (drawBuffers) {
217
- this._setDrawBuffers(drawBuffers);
218
- }
199
+ _setReadBuffer(readBuffer) {
200
+ const gl2 = (0, _gltools.getWebGL2Context)(this.gl);
219
201
 
220
- gl.bindFramebuffer(36160, prevHandle || null);
221
- return this;
202
+ if (gl2) {
203
+ gl2.readBuffer(readBuffer);
204
+ } else {
205
+ (0, _utils.assert)(readBuffer === _constants.default.COLOR_ATTACHMENT0 || readBuffer === _constants.default.BACK, ERR_MULTIPLE_RENDERTARGETS);
222
206
  }
223
- }, {
224
- key: "resize",
225
- value: function resize() {
226
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
227
- var width = options.width,
228
- height = options.height;
229
-
230
- if (this.handle === null) {
231
- (0, _assert.assert)(width === undefined && height === undefined);
232
- this.width = this.gl.drawingBufferWidth;
233
- this.height = this.gl.drawingBufferHeight;
234
- return this;
235
- }
207
+ }
236
208
 
237
- if (width === undefined) {
238
- width = this.gl.drawingBufferWidth;
239
- }
209
+ _setDrawBuffers(drawBuffers) {
210
+ const {
211
+ gl
212
+ } = this;
213
+ const gl2 = (0, _gltools.assertWebGL2Context)(gl);
240
214
 
241
- if (height === undefined) {
242
- height = this.gl.drawingBufferHeight;
243
- }
215
+ if (gl2) {
216
+ gl2.drawBuffers(drawBuffers);
217
+ } else {
218
+ const ext = gl.getExtension('WEBGL_draw_buffers');
244
219
 
245
- if (width !== this.width && height !== this.height) {
246
- _gltools.log.log(2, "Resizing framebuffer ".concat(this.id, " to ").concat(width, "x").concat(height))();
220
+ if (ext) {
221
+ ext.drawBuffersWEBGL(drawBuffers);
222
+ } else {
223
+ (0, _utils.assert)(drawBuffers.length === 1 && (drawBuffers[0] === _constants.default.COLOR_ATTACHMENT0 || drawBuffers[0] === _constants.default.BACK), ERR_MULTIPLE_RENDERTARGETS);
247
224
  }
225
+ }
226
+ }
248
227
 
249
- for (var attachmentPoint in this.attachments) {
250
- this.attachments[attachmentPoint].resize({
251
- width: width,
252
- height: height
253
- });
254
- }
228
+ _createHandle() {
229
+ return this.gl.createFramebuffer();
230
+ }
255
231
 
256
- this.width = width;
257
- this.height = height;
258
- return this;
259
- }
260
- }, {
261
- key: "attach",
262
- value: function attach(attachments) {
263
- var _this2 = this;
232
+ _deleteHandle() {
233
+ this.gl.deleteFramebuffer(this.handle);
234
+ }
264
235
 
265
- var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
266
- _ref3$clearAttachment = _ref3.clearAttachments,
267
- clearAttachments = _ref3$clearAttachment === void 0 ? false : _ref3$clearAttachment,
268
- _ref3$resizeAttachmen = _ref3.resizeAttachments,
269
- resizeAttachments = _ref3$resizeAttachmen === void 0 ? true : _ref3$resizeAttachmen;
236
+ _bindHandle(handle) {
237
+ return this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, handle);
238
+ }
270
239
 
271
- var newAttachments = {};
240
+ }
272
241
 
273
- if (clearAttachments) {
274
- Object.keys(this.attachments).forEach(function (key) {
275
- newAttachments[key] = null;
276
- });
277
- }
242
+ exports.ImmutableFramebuffer = ImmutableFramebuffer;
278
243
 
279
- Object.assign(newAttachments, attachments);
280
- var prevHandle = this.gl.bindFramebuffer(36160, this.handle);
281
-
282
- for (var key in newAttachments) {
283
- (0, _assert.assert)(key !== undefined, 'Misspelled framebuffer binding point?');
284
- var attachment = Number(key);
285
- var descriptor = newAttachments[attachment];
286
- var object = descriptor;
287
-
288
- if (!object) {
289
- this._unattach(attachment);
290
- } else if (object instanceof _renderbuffer.default) {
291
- this._attachRenderbuffer({
292
- attachment: attachment,
293
- renderbuffer: object
294
- });
295
- } else if (Array.isArray(descriptor)) {
296
- var _descriptor = (0, _slicedToArray2.default)(descriptor, 3),
297
- texture = _descriptor[0],
298
- _descriptor$ = _descriptor[1],
299
- layer = _descriptor$ === void 0 ? 0 : _descriptor$,
300
- _descriptor$2 = _descriptor[2],
301
- level = _descriptor$2 === void 0 ? 0 : _descriptor$2;
302
-
303
- object = texture;
304
-
305
- this._attachTexture({
306
- attachment: attachment,
307
- texture: texture,
308
- layer: layer,
309
- level: level
310
- });
311
- } else {
312
- this._attachTexture({
313
- attachment: attachment,
314
- texture: object,
315
- layer: 0,
316
- level: 0
317
- });
318
- }
244
+ class Framebuffer extends ImmutableFramebuffer {
245
+ static isSupported(gl, options) {
246
+ return isFloatColorBufferSupported(gl, options);
247
+ }
319
248
 
320
- if (resizeAttachments && object) {
321
- object.resize({
322
- width: this.width,
323
- height: this.height
324
- });
325
- }
326
- }
249
+ static getDefaultFramebuffer(gl) {
250
+ const lumaContextData = (0, _lumaContextData.getLumaContextData)(gl);
251
+ lumaContextData.defaultFramebuffer = lumaContextData.defaultFramebuffer || new Framebuffer(gl, {
252
+ id: 'default-framebuffer',
253
+ handle: null,
254
+ attachments: {}
255
+ });
256
+ return lumaContextData.defaultFramebuffer;
257
+ }
327
258
 
328
- this.gl.bindFramebuffer(36160, prevHandle || null);
329
- Object.assign(this.attachments, attachments);
330
- Object.keys(this.attachments).filter(function (key) {
331
- return !_this2.attachments[key];
332
- }).forEach(function (key) {
333
- delete _this2.attachments[key];
334
- });
335
- }
336
- }, {
337
- key: "checkStatus",
338
- value: function checkStatus() {
339
- var gl = this.gl;
340
- var status = this.getStatus();
259
+ get MAX_COLOR_ATTACHMENTS() {
260
+ const gl2 = (0, _gltools.assertWebGL2Context)(this.gl);
261
+ return gl2.getParameter(gl2.MAX_COLOR_ATTACHMENTS);
262
+ }
341
263
 
342
- if (status !== 36053) {
343
- throw new Error(_getFrameBufferStatus(status));
344
- }
264
+ get MAX_DRAW_BUFFERS() {
265
+ const gl2 = (0, _gltools.assertWebGL2Context)(this.gl);
266
+ return gl2.getParameter(gl2.MAX_DRAW_BUFFERS);
267
+ }
345
268
 
346
- return this;
347
- }
348
- }, {
349
- key: "getStatus",
350
- value: function getStatus() {
351
- var gl = this.gl;
352
- var prevHandle = gl.bindFramebuffer(36160, this.handle);
353
- var status = gl.checkFramebufferStatus(36160);
354
- gl.bindFramebuffer(36160, prevHandle || null);
355
- return status;
356
- }
357
- }, {
358
- key: "clear",
359
- value: function clear() {
360
- var _this3 = this;
361
-
362
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
363
- var color = options.color,
364
- depth = options.depth,
365
- stencil = options.stencil,
366
- _options$drawBuffers = options.drawBuffers,
367
- drawBuffers = _options$drawBuffers === void 0 ? [] : _options$drawBuffers;
368
- var prevHandle = this.gl.bindFramebuffer(36160, this.handle);
369
-
370
- if (color || depth || stencil) {
371
- (0, _clear2.clear)(this.gl, {
372
- color: color,
373
- depth: depth,
374
- stencil: stencil
375
- });
376
- }
269
+ constructor(gl, props) {
270
+ super(gl, props);
271
+ (0, _defineProperty2.default)(this, "width", null);
272
+ (0, _defineProperty2.default)(this, "height", null);
273
+ (0, _defineProperty2.default)(this, "attachments", {});
274
+ (0, _defineProperty2.default)(this, "readBuffer", _constants.default.COLOR_ATTACHMENT0);
275
+ (0, _defineProperty2.default)(this, "drawBuffers", [_constants.default.COLOR_ATTACHMENT0]);
276
+ (0, _defineProperty2.default)(this, "ownResources", []);
277
+ this.initialize(props);
278
+ Object.seal(this);
279
+ }
377
280
 
378
- drawBuffers.forEach(function (value, drawBuffer) {
379
- (0, _clear2.clearBuffer)(_this3.gl, {
380
- drawBuffer: drawBuffer,
381
- value: value
281
+ get color() {
282
+ return this.attachments[_constants.default.COLOR_ATTACHMENT0] || null;
283
+ }
284
+
285
+ get texture() {
286
+ return this.attachments[_constants.default.COLOR_ATTACHMENT0] || null;
287
+ }
288
+
289
+ get depth() {
290
+ return this.attachments[_constants.default.DEPTH_ATTACHMENT] || this.attachments[_constants.default.DEPTH_STENCIL_ATTACHMENT] || null;
291
+ }
292
+
293
+ get stencil() {
294
+ return this.attachments[_constants.default.STENCIL_ATTACHMENT] || this.attachments[_constants.default.DEPTH_STENCIL_ATTACHMENT] || null;
295
+ }
296
+
297
+ initialize(props) {
298
+ let {
299
+ attachments = null
300
+ } = props || {};
301
+ const {
302
+ width = 1,
303
+ height = 1,
304
+ color = true,
305
+ depth = true,
306
+ stencil = false,
307
+ check = true,
308
+ readBuffer = undefined,
309
+ drawBuffers = undefined
310
+ } = props || {};
311
+ (0, _utils.assert)(width >= 0 && height >= 0, 'Width and height need to be integers');
312
+ this.width = width;
313
+ this.height = height;
314
+
315
+ if (attachments) {
316
+ for (const attachment in attachments) {
317
+ const target = attachments[attachment];
318
+ const object = Array.isArray(target) ? target[0] : target;
319
+ object.resize({
320
+ width,
321
+ height
382
322
  });
383
- });
384
- this.gl.bindFramebuffer(36160, prevHandle || null);
385
- return this;
323
+ }
324
+ } else {
325
+ attachments = this._createDefaultAttachments(color, depth, stencil, width, height);
386
326
  }
387
- }, {
388
- key: "readPixels",
389
- value: function readPixels() {
390
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
391
327
 
392
- _gltools.log.error('Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)')();
328
+ this.update({
329
+ clearAttachments: true,
330
+ attachments,
331
+ readBuffer,
332
+ drawBuffers
333
+ });
393
334
 
394
- return null;
335
+ if (attachments && check) {
336
+ this.checkStatus();
395
337
  }
396
- }, {
397
- key: "readPixelsToBuffer",
398
- value: function readPixelsToBuffer() {
399
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
400
-
401
- _gltools.log.error('Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)')();
338
+ }
402
339
 
403
- return null;
340
+ delete() {
341
+ for (const resource of this.ownResources) {
342
+ resource.delete();
404
343
  }
405
- }, {
406
- key: "copyToDataUrl",
407
- value: function copyToDataUrl() {
408
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
409
344
 
410
- _gltools.log.error('Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)')();
345
+ super.delete();
346
+ return this;
347
+ }
348
+
349
+ update(options) {
350
+ const {
351
+ attachments = {},
352
+ readBuffer,
353
+ drawBuffers,
354
+ clearAttachments = false,
355
+ resizeAttachments = true
356
+ } = options;
357
+ this.attach(attachments, {
358
+ clearAttachments,
359
+ resizeAttachments
360
+ });
361
+ const {
362
+ gl
363
+ } = this;
364
+ const prevHandle = gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
365
+
366
+ if (readBuffer) {
367
+ this._setReadBuffer(readBuffer);
411
368
 
412
- return null;
369
+ this.readBuffer = readBuffer;
413
370
  }
414
- }, {
415
- key: "copyToImage",
416
- value: function copyToImage() {
417
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
418
371
 
419
- _gltools.log.error('Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)')();
372
+ if (drawBuffers) {
373
+ this._setDrawBuffers(drawBuffers);
420
374
 
421
- return null;
375
+ this.drawBuffers = drawBuffers;
422
376
  }
423
- }, {
424
- key: "copyToTexture",
425
- value: function copyToTexture() {
426
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
427
377
 
428
- _gltools.log.error('Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})')();
378
+ gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
379
+ return this;
380
+ }
381
+
382
+ resize(size) {
383
+ let {
384
+ width,
385
+ height
386
+ } = size || {};
429
387
 
430
- return null;
388
+ if (this.handle === null) {
389
+ (0, _utils.assert)(width === undefined && height === undefined);
390
+ this.width = this.gl.drawingBufferWidth;
391
+ this.height = this.gl.drawingBufferHeight;
392
+ return this;
431
393
  }
432
- }, {
433
- key: "blit",
434
- value: function blit() {
435
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
436
394
 
437
- _gltools.log.error('Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)')();
395
+ if (width === undefined) {
396
+ width = this.gl.drawingBufferWidth;
397
+ }
438
398
 
439
- return null;
399
+ if (height === undefined) {
400
+ height = this.gl.drawingBufferHeight;
440
401
  }
441
- }, {
442
- key: "invalidate",
443
- value: function invalidate(_ref4) {
444
- var _ref4$attachments = _ref4.attachments,
445
- attachments = _ref4$attachments === void 0 ? [] : _ref4$attachments,
446
- _ref4$x = _ref4.x,
447
- x = _ref4$x === void 0 ? 0 : _ref4$x,
448
- _ref4$y = _ref4.y,
449
- y = _ref4$y === void 0 ? 0 : _ref4$y,
450
- width = _ref4.width,
451
- height = _ref4.height;
452
- var gl2 = (0, _gltools.assertWebGL2Context)(this.gl);
453
- var prevHandle = gl2.bindFramebuffer(36008, this.handle);
454
- var invalidateAll = x === 0 && y === 0 && width === undefined && height === undefined;
455
402
 
456
- if (invalidateAll) {
457
- gl2.invalidateFramebuffer(36008, attachments);
458
- } else {
459
- gl2.invalidateFramebuffer(36008, attachments, x, y, width, height);
460
- }
403
+ if (width !== this.width && height !== this.height) {
404
+ _gltools.log.log(2, "Resizing framebuffer ".concat(this.id, " to ").concat(width, "x").concat(height))();
405
+ }
461
406
 
462
- gl2.bindFramebuffer(36008, prevHandle);
463
- return this;
407
+ for (const attachmentPoint in this.attachments) {
408
+ this.attachments[attachmentPoint].resize({
409
+ width,
410
+ height
411
+ });
464
412
  }
465
- }, {
466
- key: "getAttachmentParameter",
467
- value: function getAttachmentParameter(attachment, pname, keys) {
468
- var value = this._getAttachmentParameterFallback(pname);
469
413
 
470
- if (value === null) {
471
- this.gl.bindFramebuffer(36160, this.handle);
472
- value = this.gl.getFramebufferAttachmentParameter(36160, attachment, pname);
473
- this.gl.bindFramebuffer(36160, null);
474
- }
414
+ this.width = width;
415
+ this.height = height;
416
+ return this;
417
+ }
475
418
 
476
- if (keys && value > 1000) {
477
- value = (0, _constantsToKeys.getKey)(this.gl, value);
478
- }
419
+ attach(attachments, {
420
+ clearAttachments = false,
421
+ resizeAttachments = true
422
+ } = {}) {
423
+ const newAttachments = {};
479
424
 
480
- return value;
425
+ if (clearAttachments) {
426
+ Object.keys(this.attachments).forEach(key => {
427
+ newAttachments[key] = null;
428
+ });
481
429
  }
482
- }, {
483
- key: "getAttachmentParameters",
484
- value: function getAttachmentParameters() {
485
- var attachment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 36064;
486
- var keys = arguments.length > 1 ? arguments[1] : undefined;
487
- var parameters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.constructor.ATTACHMENT_PARAMETERS || [];
488
- var values = {};
489
430
 
490
- var _iterator2 = _createForOfIteratorHelper(parameters),
491
- _step2;
431
+ Object.assign(newAttachments, attachments);
432
+ const prevHandle = this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
492
433
 
493
- try {
494
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
495
- var pname = _step2.value;
496
- var key = keys ? (0, _constantsToKeys.getKey)(this.gl, pname) : pname;
497
- values[key] = this.getAttachmentParameter(attachment, pname, keys);
498
- }
499
- } catch (err) {
500
- _iterator2.e(err);
501
- } finally {
502
- _iterator2.f();
434
+ for (const key in newAttachments) {
435
+ (0, _utils.assert)(key !== undefined, 'Misspelled framebuffer binding point?');
436
+ const attachment = Number(key);
437
+ const descriptor = newAttachments[attachment];
438
+ let object = descriptor;
439
+
440
+ if (!object) {
441
+ this._unattach(attachment);
442
+ } else {
443
+ object = this._attachOne(attachment, object);
444
+ this.attachments[attachment] = object;
503
445
  }
504
446
 
505
- return values;
447
+ if (resizeAttachments && object) {
448
+ object.resize({
449
+ width: this.width,
450
+ height: this.height
451
+ });
452
+ }
506
453
  }
507
- }, {
508
- key: "getParameters",
509
- value: function getParameters() {
510
- var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
511
- var attachments = Object.keys(this.attachments);
512
- var parameters = {};
513
454
 
514
- for (var _i = 0, _attachments = attachments; _i < _attachments.length; _i++) {
515
- var attachmentName = _attachments[_i];
516
- var attachment = Number(attachmentName);
517
- var key = keys ? (0, _constantsToKeys.getKey)(this.gl, attachment) : attachment;
518
- parameters[key] = this.getAttachmentParameters(attachment, keys);
519
- }
455
+ this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
456
+ Object.assign(this.attachments, attachments);
457
+ Object.keys(this.attachments).filter(key => !this.attachments[key]).forEach(key => {
458
+ delete this.attachments[key];
459
+ });
460
+ }
520
461
 
521
- return parameters;
462
+ clear(options) {
463
+ const {
464
+ color,
465
+ depth,
466
+ stencil,
467
+ drawBuffers = []
468
+ } = options;
469
+ const prevHandle = this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
470
+
471
+ if (color || depth || stencil) {
472
+ (0, _clear.clear)(this.gl, {
473
+ color,
474
+ depth,
475
+ stencil
476
+ });
522
477
  }
523
- }, {
524
- key: "show",
525
- value: function show() {
526
- if (typeof window !== 'undefined') {
527
- window.open((0, _copyAndBlit.copyToDataUrl)(this), 'luma-debug-texture');
528
- }
529
478
 
530
- return this;
531
- }
532
- }, {
533
- key: "log",
534
- value: function log() {
535
- var logLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
536
- var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
479
+ drawBuffers.forEach((value, drawBuffer) => {
480
+ (0, _clear.clearBuffer)(this.gl, {
481
+ drawBuffer,
482
+ value
483
+ });
484
+ });
485
+ this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
486
+ return this;
487
+ }
537
488
 
538
- if (logLevel > _gltools.log.level || typeof window === 'undefined') {
539
- return this;
540
- }
489
+ blit(opts = {}) {
490
+ _gltools.log.error('Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)')();
541
491
 
542
- message = message || "Framebuffer ".concat(this.id);
543
- var image = (0, _copyAndBlit.copyToDataUrl)(this, {
544
- targetMaxHeight: 100
545
- });
492
+ return null;
493
+ }
546
494
 
547
- _gltools.log.image({
548
- logLevel: logLevel,
549
- message: message,
550
- image: image
551
- }, message)();
495
+ invalidate(options) {
496
+ const {
497
+ attachments = [],
498
+ x = 0,
499
+ y = 0,
500
+ width,
501
+ height
502
+ } = options;
503
+ const gl2 = (0, _gltools.assertWebGL2Context)(this.gl);
504
+ const prevHandle = gl2.bindFramebuffer(_constants.default.READ_FRAMEBUFFER, this.handle);
505
+ const invalidateAll = x === 0 && y === 0 && width === undefined && height === undefined;
506
+
507
+ if (invalidateAll) {
508
+ gl2.invalidateFramebuffer(_constants.default.READ_FRAMEBUFFER, attachments);
509
+ } else {
510
+ gl2.invalidateFramebuffer(_constants.default.READ_FRAMEBUFFER, attachments, x, y, width, height);
511
+ }
512
+
513
+ gl2.bindFramebuffer(_constants.default.READ_FRAMEBUFFER, prevHandle);
514
+ return this;
515
+ }
552
516
 
553
- return this;
554
- }
555
- }, {
556
- key: "bind",
557
- value: function bind() {
558
- var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
559
- _ref5$target = _ref5.target,
560
- target = _ref5$target === void 0 ? 36160 : _ref5$target;
517
+ getAttachmentParameter(attachment, pname, keys) {
518
+ let value = this._getAttachmentParameterFallback(pname);
561
519
 
562
- this.gl.bindFramebuffer(target, this.handle);
563
- return this;
520
+ if (value === null) {
521
+ this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
522
+ value = this.gl.getFramebufferAttachmentParameter(_constants.default.FRAMEBUFFER, attachment, pname);
523
+ this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, null);
564
524
  }
565
- }, {
566
- key: "unbind",
567
- value: function unbind() {
568
- var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
569
- _ref6$target = _ref6.target,
570
- target = _ref6$target === void 0 ? 36160 : _ref6$target;
571
525
 
572
- this.gl.bindFramebuffer(target, null);
573
- return this;
526
+ if (keys && value > 1000) {
527
+ value = (0, _webglUtils.getKey)(this.gl, value);
574
528
  }
575
- }, {
576
- key: "_createDefaultAttachments",
577
- value: function _createDefaultAttachments(color, depth, stencil, width, height) {
578
- var defaultAttachments = null;
579
-
580
- if (color) {
581
- var _parameters;
582
-
583
- defaultAttachments = defaultAttachments || {};
584
- defaultAttachments[36064] = new _texture2d.default(this.gl, {
585
- id: "".concat(this.id, "-color0"),
586
- pixels: null,
587
- format: 6408,
588
- type: 5121,
589
- width: width,
590
- height: height,
591
- mipmaps: false,
592
- parameters: (_parameters = {}, (0, _defineProperty2.default)(_parameters, 10241, 9729), (0, _defineProperty2.default)(_parameters, 10240, 9729), (0, _defineProperty2.default)(_parameters, 10242, 33071), (0, _defineProperty2.default)(_parameters, 10243, 33071), _parameters)
593
- });
594
- this.ownResources.push(defaultAttachments[36064]);
595
- }
596
529
 
597
- if (depth && stencil) {
598
- defaultAttachments = defaultAttachments || {};
599
- defaultAttachments[33306] = new _renderbuffer.default(this.gl, {
600
- id: "".concat(this.id, "-depth-stencil"),
601
- format: 35056,
602
- width: width,
603
- height: 111
604
- });
605
- this.ownResources.push(defaultAttachments[33306]);
606
- } else if (depth) {
607
- defaultAttachments = defaultAttachments || {};
608
- defaultAttachments[36096] = new _renderbuffer.default(this.gl, {
609
- id: "".concat(this.id, "-depth"),
610
- format: 33189,
611
- width: width,
612
- height: height
613
- });
614
- this.ownResources.push(defaultAttachments[36096]);
615
- } else if (stencil) {
616
- (0, _assert.assert)(false);
617
- }
530
+ return value;
531
+ }
618
532
 
619
- return defaultAttachments;
620
- }
621
- }, {
622
- key: "_unattach",
623
- value: function _unattach(attachment) {
624
- var oldAttachment = this.attachments[attachment];
533
+ getAttachmentParameters(attachment = _constants.default.COLOR_ATTACHMENT0, keys, parameters = this.constructor.ATTACHMENT_PARAMETERS || []) {
534
+ const values = {};
625
535
 
626
- if (!oldAttachment) {
627
- return;
628
- }
536
+ for (const pname of parameters) {
537
+ const key = keys ? (0, _webglUtils.getKey)(this.gl, pname) : pname;
538
+ values[key] = this.getAttachmentParameter(attachment, pname, keys);
539
+ }
629
540
 
630
- if (oldAttachment instanceof _renderbuffer.default) {
631
- this.gl.framebufferRenderbuffer(36160, attachment, 36161, null);
632
- } else {
633
- this.gl.framebufferTexture2D(36160, attachment, 3553, null, 0);
634
- }
541
+ return values;
542
+ }
635
543
 
636
- delete this.attachments[attachment];
637
- }
638
- }, {
639
- key: "_attachRenderbuffer",
640
- value: function _attachRenderbuffer(_ref7) {
641
- var _ref7$attachment = _ref7.attachment,
642
- attachment = _ref7$attachment === void 0 ? 36064 : _ref7$attachment,
643
- renderbuffer = _ref7.renderbuffer;
644
- var gl = this.gl;
645
- gl.framebufferRenderbuffer(36160, attachment, 36161, renderbuffer.handle);
646
- this.attachments[attachment] = renderbuffer;
647
- }
648
- }, {
649
- key: "_attachTexture",
650
- value: function _attachTexture(_ref8) {
651
- var _ref8$attachment = _ref8.attachment,
652
- attachment = _ref8$attachment === void 0 ? 36064 : _ref8$attachment,
653
- texture = _ref8.texture,
654
- layer = _ref8.layer,
655
- level = _ref8.level;
656
- var gl = this.gl;
657
- gl.bindTexture(texture.target, texture.handle);
658
-
659
- switch (texture.target) {
660
- case 35866:
661
- case 32879:
662
- var gl2 = (0, _gltools.assertWebGL2Context)(gl);
663
- gl2.framebufferTextureLayer(36160, attachment, texture.target, level, layer);
664
- break;
665
-
666
- case 34067:
667
- var face = mapIndexToCubeMapFace(layer);
668
- gl.framebufferTexture2D(36160, attachment, face, texture.handle, level);
669
- break;
670
-
671
- case 3553:
672
- gl.framebufferTexture2D(36160, attachment, 3553, texture.handle, level);
673
- break;
674
-
675
- default:
676
- (0, _assert.assert)(false, 'Illegal texture type');
677
- }
544
+ getParameters(keys = true) {
545
+ const attachments = Object.keys(this.attachments);
546
+ const parameters = {};
678
547
 
679
- gl.bindTexture(texture.target, null);
680
- this.attachments[attachment] = texture;
548
+ for (const attachmentName of attachments) {
549
+ const attachment = Number(attachmentName);
550
+ const key = keys ? (0, _webglUtils.getKey)(this.gl, attachment) : attachment;
551
+ parameters[key] = this.getAttachmentParameters(attachment, keys);
681
552
  }
682
- }, {
683
- key: "_setReadBuffer",
684
- value: function _setReadBuffer(readBuffer) {
685
- var gl2 = (0, _gltools.getWebGL2Context)(this.gl);
686
553
 
687
- if (gl2) {
688
- gl2.readBuffer(readBuffer);
689
- } else {
690
- (0, _assert.assert)(readBuffer === 36064 || readBuffer === 1029, ERR_MULTIPLE_RENDERTARGETS);
691
- }
554
+ return parameters;
555
+ }
692
556
 
693
- this.readBuffer = readBuffer;
557
+ _createDefaultAttachments(color, depth, stencil, width, height) {
558
+ let defaultAttachments = null;
559
+
560
+ if (color) {
561
+ defaultAttachments = defaultAttachments || {};
562
+ defaultAttachments[_constants.default.COLOR_ATTACHMENT0] = new _texture2d.default(this.gl, {
563
+ id: "".concat(this.id, "-color0"),
564
+ pixels: null,
565
+ format: _constants.default.RGBA,
566
+ type: _constants.default.UNSIGNED_BYTE,
567
+ width,
568
+ height,
569
+ mipmaps: false,
570
+ parameters: {
571
+ [_constants.default.TEXTURE_MIN_FILTER]: _constants.default.LINEAR,
572
+ [_constants.default.TEXTURE_MAG_FILTER]: _constants.default.LINEAR,
573
+ [_constants.default.TEXTURE_WRAP_S]: _constants.default.CLAMP_TO_EDGE,
574
+ [_constants.default.TEXTURE_WRAP_T]: _constants.default.CLAMP_TO_EDGE
575
+ }
576
+ });
577
+ this.ownResources.push(defaultAttachments[_constants.default.COLOR_ATTACHMENT0]);
694
578
  }
695
- }, {
696
- key: "_setDrawBuffers",
697
- value: function _setDrawBuffers(drawBuffers) {
698
- var gl = this.gl;
699
- var gl2 = (0, _gltools.assertWebGL2Context)(gl);
700
579
 
701
- if (gl2) {
702
- gl2.drawBuffers(drawBuffers);
703
- } else {
704
- var ext = gl.getExtension('WEBGL_draw_buffers');
580
+ if (depth && stencil) {
581
+ defaultAttachments = defaultAttachments || {};
582
+ defaultAttachments[_constants.default.DEPTH_STENCIL_ATTACHMENT] = new _renderbuffer.default(this.gl, {
583
+ id: "".concat(this.id, "-depth-stencil"),
584
+ format: _constants.default.DEPTH24_STENCIL8,
585
+ width,
586
+ height: 111
587
+ });
588
+ this.ownResources.push(defaultAttachments[_constants.default.DEPTH_STENCIL_ATTACHMENT]);
589
+ } else if (depth) {
590
+ defaultAttachments = defaultAttachments || {};
591
+ defaultAttachments[_constants.default.DEPTH_ATTACHMENT] = new _renderbuffer.default(this.gl, {
592
+ id: "".concat(this.id, "-depth"),
593
+ format: _constants.default.DEPTH_COMPONENT16,
594
+ width,
595
+ height
596
+ });
597
+ this.ownResources.push(defaultAttachments[_constants.default.DEPTH_ATTACHMENT]);
598
+ } else if (stencil) {
599
+ (0, _utils.assert)(false);
600
+ }
705
601
 
706
- if (ext) {
707
- ext.drawBuffersWEBGL(drawBuffers);
708
- } else {
709
- (0, _assert.assert)(drawBuffers.length === 1 && (drawBuffers[0] === 36064 || drawBuffers[0] === 1029), ERR_MULTIPLE_RENDERTARGETS);
710
- }
711
- }
602
+ return defaultAttachments;
603
+ }
712
604
 
713
- this.drawBuffers = drawBuffers;
605
+ _unattach(attachment) {
606
+ const oldAttachment = this.attachments[attachment];
607
+
608
+ if (!oldAttachment) {
609
+ return;
714
610
  }
715
- }, {
716
- key: "_getAttachmentParameterFallback",
717
- value: function _getAttachmentParameterFallback(pname) {
718
- var caps = (0, _features.getFeatures)(this.gl);
719
611
 
720
- switch (pname) {
721
- case 36052:
722
- return !caps.WEBGL2 ? 0 : null;
612
+ if (oldAttachment instanceof _renderbuffer.default) {
613
+ this.gl.framebufferRenderbuffer(_constants.default.FRAMEBUFFER, attachment, _constants.default.RENDERBUFFER, null);
614
+ } else {
615
+ this.gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, _constants.default.TEXTURE_2D, null, 0);
616
+ }
723
617
 
724
- case 33298:
725
- case 33299:
726
- case 33300:
727
- case 33301:
728
- case 33302:
729
- case 33303:
730
- return !caps.WEBGL2 ? 8 : null;
618
+ delete this.attachments[attachment];
619
+ }
731
620
 
732
- case 33297:
733
- return !caps.WEBGL2 ? 5125 : null;
621
+ _getAttachmentParameterFallback(pname) {
622
+ const caps = (0, _features.getFeatures)(this.gl);
734
623
 
735
- case 33296:
736
- return !caps.WEBGL2 && !caps.EXT_sRGB ? 9729 : null;
624
+ switch (pname) {
625
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:
626
+ return !caps.WEBGL2 ? 0 : null;
737
627
 
738
- default:
739
- return null;
740
- }
628
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_RED_SIZE:
629
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:
630
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:
631
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:
632
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:
633
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:
634
+ return !caps.WEBGL2 ? 8 : null;
635
+
636
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:
637
+ return !caps.WEBGL2 ? _constants.default.UNSIGNED_INT : null;
638
+
639
+ case _constants.default.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:
640
+ return !caps.WEBGL2 && !caps.EXT_sRGB ? _constants.default.LINEAR : null;
641
+
642
+ default:
643
+ return null;
741
644
  }
742
- }, {
743
- key: "_createHandle",
744
- value: function _createHandle() {
745
- return this.gl.createFramebuffer();
746
- }
747
- }, {
748
- key: "_deleteHandle",
749
- value: function _deleteHandle() {
750
- this.gl.deleteFramebuffer(this.handle);
751
- }
752
- }, {
753
- key: "_bindHandle",
754
- value: function _bindHandle(handle) {
755
- return this.gl.bindFramebuffer(36160, handle);
756
- }
757
- }, {
758
- key: "color",
759
- get: function get() {
760
- return this.attachments[36064] || null;
761
- }
762
- }, {
763
- key: "texture",
764
- get: function get() {
765
- return this.attachments[36064] || null;
766
- }
767
- }, {
768
- key: "depth",
769
- get: function get() {
770
- return this.attachments[36096] || this.attachments[33306] || null;
771
- }
772
- }, {
773
- key: "stencil",
774
- get: function get() {
775
- return this.attachments[36128] || this.attachments[33306] || null;
776
- }
777
- }]);
778
- return Framebuffer;
779
- }(_resource.default);
645
+ }
646
+
647
+ }
780
648
 
781
649
  exports.default = Framebuffer;
650
+ (0, _defineProperty2.default)(Framebuffer, "FRAMEBUFFER_ATTACHMENT_PARAMETERS", [_constants.default.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, _constants.default.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, _constants.default.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING, _constants.default.FRAMEBUFFER_ATTACHMENT_RED_SIZE, _constants.default.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE, _constants.default.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE, _constants.default.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, _constants.default.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, _constants.default.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE]);
782
651
 
783
652
  function mapIndexToCubeMapFace(layer) {
784
- return layer < 34069 ? layer + 34069 : layer;
653
+ return layer < _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
785
654
  }
786
655
 
787
656
  function _getFrameBufferStatus(status) {
788
- var STATUS = Framebuffer.STATUS || {};
657
+ const STATUS = Framebuffer.STATUS || {};
789
658
  return STATUS[status] || "Framebuffer error ".concat(status);
790
659
  }
791
660
 
792
- var FRAMEBUFFER_ATTACHMENT_PARAMETERS = [36049, 36048, 33296, 33298, 33299, 33300, 33301, 33302, 33303];
793
- exports.FRAMEBUFFER_ATTACHMENT_PARAMETERS = FRAMEBUFFER_ATTACHMENT_PARAMETERS;
794
- Framebuffer.ATTACHMENT_PARAMETERS = FRAMEBUFFER_ATTACHMENT_PARAMETERS;
661
+ function isFloatColorBufferSupported(gl, options) {
662
+ const {
663
+ colorBufferFloat,
664
+ colorBufferHalfFloat
665
+ } = options;
666
+ let supported = true;
667
+
668
+ if (colorBufferFloat) {
669
+ supported = Boolean(gl.getExtension('EXT_color_buffer_float') || gl.getExtension('WEBGL_color_buffer_float') || gl.getExtension('OES_texture_float'));
670
+ }
671
+
672
+ if (colorBufferHalfFloat) {
673
+ supported = supported && Boolean(gl.getExtension('EXT_color_buffer_float') || gl.getExtension('EXT_color_buffer_half_float'));
674
+ }
675
+
676
+ return supported;
677
+ }
795
678
  //# sourceMappingURL=framebuffer.js.map