@luma.gl/webgl 8.5.10 → 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
@@ -7,258 +7,205 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
13
13
 
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+ var _gltools = require("@luma.gl/gltools");
15
15
 
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
+ var _webglResource = _interopRequireDefault(require("./webgl-resource"));
17
17
 
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
18
+ var _webglBuffer = _interopRequireDefault(require("./webgl-buffer"));
19
19
 
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
20
+ var _utils = require("../utils");
21
21
 
22
- var _gltools = require("@luma.gl/gltools");
22
+ class TransformFeedback extends _webglResource.default {
23
+ static isSupported(gl) {
24
+ return (0, _gltools.isWebGL2)(gl);
25
+ }
23
26
 
24
- var _resource = _interopRequireDefault(require("./resource"));
27
+ constructor(gl, props = {}) {
28
+ super(gl, props, {});
29
+ (0, _defineProperty2.default)(this, "buffers", {});
30
+ (0, _defineProperty2.default)(this, "unused", {});
31
+ (0, _defineProperty2.default)(this, "configuration", null);
32
+ (0, _defineProperty2.default)(this, "bindOnUse", true);
33
+ (0, _gltools.assertWebGL2Context)(gl);
34
+ this.initialize(props);
35
+ this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);
36
+ Object.seal(this);
37
+ }
25
38
 
26
- var _buffer = _interopRequireDefault(require("./buffer"));
39
+ initialize(props) {
40
+ this.buffers = {};
41
+ this.unused = {};
42
+ this.configuration = null;
43
+ this.bindOnUse = true;
27
44
 
28
- var _utils = require("../utils/utils");
45
+ if (!(0, _utils.isObjectEmpty)(this.buffers)) {
46
+ this.bind(() => this._unbindBuffers());
47
+ }
29
48
 
30
- 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); }; }
49
+ this.setProps(props);
50
+ return this;
51
+ }
31
52
 
32
- 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; } }
53
+ setProps(props) {
54
+ if ('program' in props) {
55
+ this.configuration = props.program && props.program.configuration;
56
+ }
33
57
 
34
- var TransformFeedback = function (_Resource) {
35
- (0, _inherits2.default)(TransformFeedback, _Resource);
58
+ if ('configuration' in props) {
59
+ this.configuration = props.configuration;
60
+ }
36
61
 
37
- var _super = _createSuper(TransformFeedback);
62
+ if ('bindOnUse' in props) {
63
+ props = props.bindOnUse;
64
+ }
38
65
 
39
- (0, _createClass2.default)(TransformFeedback, null, [{
40
- key: "isSupported",
41
- value: function isSupported(gl) {
42
- return (0, _gltools.isWebGL2)(gl);
66
+ if ('buffers' in props) {
67
+ this.setBuffers(props.buffers);
43
68
  }
44
- }]);
69
+ }
45
70
 
46
- function TransformFeedback(gl) {
47
- var _this;
71
+ setBuffers(buffers = {}) {
72
+ this.bind(() => {
73
+ for (const bufferName in buffers) {
74
+ this.setBuffer(bufferName, buffers[bufferName]);
75
+ }
76
+ });
77
+ return this;
78
+ }
48
79
 
49
- var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
50
- (0, _classCallCheck2.default)(this, TransformFeedback);
51
- (0, _gltools.assertWebGL2Context)(gl);
52
- _this = _super.call(this, gl, props);
80
+ setBuffer(locationOrName, bufferOrParams) {
81
+ const location = this._getVaryingIndex(locationOrName);
53
82
 
54
- _this.initialize(props);
83
+ const {
84
+ buffer,
85
+ byteSize,
86
+ byteOffset
87
+ } = this._getBufferParams(bufferOrParams);
55
88
 
56
- _this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);
89
+ if (location < 0) {
90
+ this.unused[locationOrName] = buffer;
57
91
 
58
- Object.seal((0, _assertThisInitialized2.default)(_this));
59
- return _this;
60
- }
92
+ _gltools.log.warn(() => "".concat(this.id, " unused varying buffer ").concat(locationOrName))();
61
93
 
62
- (0, _createClass2.default)(TransformFeedback, [{
63
- key: "initialize",
64
- value: function initialize() {
65
- var _this2 = this;
66
-
67
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
68
- this.buffers = {};
69
- this.unused = {};
70
- this.configuration = null;
71
- this.bindOnUse = true;
72
-
73
- if (!(0, _utils.isObjectEmpty)(this.buffers)) {
74
- this.bind(function () {
75
- return _this2._unbindBuffers();
76
- });
77
- }
78
-
79
- this.setProps(props);
80
94
  return this;
81
95
  }
82
- }, {
83
- key: "setProps",
84
- value: function setProps(props) {
85
- if ('program' in props) {
86
- this.configuration = props.program && props.program.configuration;
87
- }
88
-
89
- if ('configuration' in props) {
90
- this.configuration = props.configuration;
91
- }
92
96
 
93
- if ('bindOnUse' in props) {
94
- props = props.bindOnUse;
95
- }
97
+ this.buffers[location] = bufferOrParams;
96
98
 
97
- if ('buffers' in props) {
98
- this.setBuffers(props.buffers);
99
- }
100
- }
101
- }, {
102
- key: "setBuffers",
103
- value: function setBuffers() {
104
- var _this3 = this;
105
-
106
- var buffers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
107
- this.bind(function () {
108
- for (var bufferName in buffers) {
109
- _this3.setBuffer(bufferName, buffers[bufferName]);
110
- }
111
- });
112
- return this;
99
+ if (!this.bindOnUse) {
100
+ this._bindBuffer(location, buffer, byteOffset, byteSize);
113
101
  }
114
- }, {
115
- key: "setBuffer",
116
- value: function setBuffer(locationOrName, bufferOrParams) {
117
- var _this4 = this;
118
102
 
119
- var location = this._getVaryingIndex(locationOrName);
103
+ return this;
104
+ }
120
105
 
121
- var _this$_getBufferParam = this._getBufferParams(bufferOrParams),
122
- buffer = _this$_getBufferParam.buffer,
123
- byteSize = _this$_getBufferParam.byteSize,
124
- byteOffset = _this$_getBufferParam.byteOffset;
106
+ begin(primitiveMode = _constants.default.POINTS) {
107
+ this.gl.bindTransformFeedback(_constants.default.TRANSFORM_FEEDBACK, this.handle);
125
108
 
126
- if (location < 0) {
127
- this.unused[locationOrName] = buffer;
109
+ this._bindBuffers();
128
110
 
129
- _gltools.log.warn(function () {
130
- return "".concat(_this4.id, " unused varying buffer ").concat(locationOrName);
131
- })();
111
+ this.gl.beginTransformFeedback(primitiveMode);
112
+ return this;
113
+ }
132
114
 
133
- return this;
134
- }
115
+ end() {
116
+ this.gl.endTransformFeedback();
135
117
 
136
- this.buffers[location] = bufferOrParams;
118
+ this._unbindBuffers();
137
119
 
138
- if (!this.bindOnUse) {
139
- this._bindBuffer(location, buffer, byteOffset, byteSize);
140
- }
120
+ this.gl.bindTransformFeedback(_constants.default.TRANSFORM_FEEDBACK, null);
121
+ return this;
122
+ }
141
123
 
142
- return this;
143
- }
144
- }, {
145
- key: "begin",
146
- value: function begin() {
147
- var primitiveMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
148
- this.gl.bindTransformFeedback(36386, this.handle);
124
+ _getBufferParams(bufferOrParams) {
125
+ let byteOffset;
126
+ let byteSize;
127
+ let buffer;
149
128
 
150
- this._bindBuffers();
129
+ if (bufferOrParams instanceof _webglBuffer.default === false) {
130
+ buffer = bufferOrParams.buffer;
131
+ byteSize = bufferOrParams.byteSize;
132
+ byteOffset = bufferOrParams.byteOffset;
133
+ } else {
134
+ buffer = bufferOrParams;
135
+ }
151
136
 
152
- this.gl.beginTransformFeedback(primitiveMode);
153
- return this;
137
+ if (byteOffset !== undefined || byteSize !== undefined) {
138
+ byteOffset = byteOffset || 0;
139
+ byteSize = byteSize || buffer.byteLength - byteOffset;
154
140
  }
155
- }, {
156
- key: "end",
157
- value: function end() {
158
- this.gl.endTransformFeedback();
159
141
 
160
- this._unbindBuffers();
142
+ return {
143
+ buffer,
144
+ byteOffset,
145
+ byteSize
146
+ };
147
+ }
161
148
 
162
- this.gl.bindTransformFeedback(36386, null);
163
- return this;
149
+ _getVaryingInfo(locationOrName) {
150
+ return this.configuration && this.configuration.getVaryingInfo(locationOrName);
151
+ }
152
+
153
+ _getVaryingIndex(locationOrName) {
154
+ if (this.configuration) {
155
+ return this.configuration.getVaryingInfo(locationOrName).location;
164
156
  }
165
- }, {
166
- key: "_getBufferParams",
167
- value: function _getBufferParams(bufferOrParams) {
168
- var byteOffset;
169
- var byteSize;
170
- var buffer;
171
-
172
- if (bufferOrParams instanceof _buffer.default === false) {
173
- buffer = bufferOrParams.buffer;
174
- byteSize = bufferOrParams.byteSize;
175
- byteOffset = bufferOrParams.byteOffset;
176
- } else {
177
- buffer = bufferOrParams;
178
- }
179
157
 
180
- if (byteOffset !== undefined || byteSize !== undefined) {
181
- byteOffset = byteOffset || 0;
182
- byteSize = byteSize || buffer.byteLength - byteOffset;
183
- }
158
+ const location = Number(locationOrName);
159
+ return Number.isFinite(location) ? location : -1;
160
+ }
184
161
 
185
- return {
186
- buffer: buffer,
187
- byteOffset: byteOffset,
188
- byteSize: byteSize
189
- };
190
- }
191
- }, {
192
- key: "_getVaryingInfo",
193
- value: function _getVaryingInfo(locationOrName) {
194
- return this.configuration && this.configuration.getVaryingInfo(locationOrName);
195
- }
196
- }, {
197
- key: "_getVaryingIndex",
198
- value: function _getVaryingIndex(locationOrName) {
199
- if (this.configuration) {
200
- return this.configuration.getVaryingInfo(locationOrName).location;
201
- }
162
+ _bindBuffers() {
163
+ if (this.bindOnUse) {
164
+ for (const bufferIndex in this.buffers) {
165
+ const {
166
+ buffer,
167
+ byteSize,
168
+ byteOffset
169
+ } = this._getBufferParams(this.buffers[bufferIndex]);
202
170
 
203
- var location = Number(locationOrName);
204
- return Number.isFinite(location) ? location : -1;
205
- }
206
- }, {
207
- key: "_bindBuffers",
208
- value: function _bindBuffers() {
209
- if (this.bindOnUse) {
210
- for (var bufferIndex in this.buffers) {
211
- var _this$_getBufferParam2 = this._getBufferParams(this.buffers[bufferIndex]),
212
- buffer = _this$_getBufferParam2.buffer,
213
- byteSize = _this$_getBufferParam2.byteSize,
214
- byteOffset = _this$_getBufferParam2.byteOffset;
215
-
216
- this._bindBuffer(bufferIndex, buffer, byteOffset, byteSize);
217
- }
171
+ this._bindBuffer(bufferIndex, buffer, byteOffset, byteSize);
218
172
  }
219
173
  }
220
- }, {
221
- key: "_unbindBuffers",
222
- value: function _unbindBuffers() {
223
- if (this.bindOnUse) {
224
- for (var bufferIndex in this.buffers) {
225
- this._bindBuffer(bufferIndex, null);
226
- }
174
+ }
175
+
176
+ _unbindBuffers() {
177
+ if (this.bindOnUse) {
178
+ for (const bufferIndex in this.buffers) {
179
+ this._bindBuffer(bufferIndex, null);
227
180
  }
228
181
  }
229
- }, {
230
- key: "_bindBuffer",
231
- value: function _bindBuffer(index, buffer) {
232
- var byteOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
233
- var byteSize = arguments.length > 3 ? arguments[3] : undefined;
234
- var handle = buffer && buffer.handle;
235
-
236
- if (!handle || byteSize === undefined) {
237
- this.gl.bindBufferBase(35982, index, handle);
238
- } else {
239
- this.gl.bindBufferRange(35982, index, handle, byteOffset, byteSize);
240
- }
182
+ }
241
183
 
242
- return this;
243
- }
244
- }, {
245
- key: "_createHandle",
246
- value: function _createHandle() {
247
- return this.gl.createTransformFeedback();
248
- }
249
- }, {
250
- key: "_deleteHandle",
251
- value: function _deleteHandle() {
252
- this.gl.deleteTransformFeedback(this.handle);
253
- }
254
- }, {
255
- key: "_bindHandle",
256
- value: function _bindHandle(handle) {
257
- this.gl.bindTransformFeedback(36386, this.handle);
184
+ _bindBuffer(index, buffer, byteOffset = 0, byteSize) {
185
+ const handle = buffer && buffer.handle;
186
+
187
+ if (!handle || byteSize === undefined) {
188
+ this.gl.bindBufferBase(_constants.default.TRANSFORM_FEEDBACK_BUFFER, index, handle);
189
+ } else {
190
+ this.gl.bindBufferRange(_constants.default.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);
258
191
  }
259
- }]);
260
- return TransformFeedback;
261
- }(_resource.default);
192
+
193
+ return this;
194
+ }
195
+
196
+ _createHandle() {
197
+ return this.gl.createTransformFeedback();
198
+ }
199
+
200
+ _deleteHandle() {
201
+ this.gl.deleteTransformFeedback(this.handle);
202
+ }
203
+
204
+ _bindHandle(handle) {
205
+ this.gl.bindTransformFeedback(_constants.default.TRANSFORM_FEEDBACK, this.handle);
206
+ }
207
+
208
+ }
262
209
 
263
210
  exports.default = TransformFeedback;
264
211
  //# sourceMappingURL=transform-feedback.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/transform-feedback.js"],"names":["TransformFeedback","gl","props","initialize","stubRemovedMethods","Object","seal","buffers","unused","configuration","bindOnUse","bind","_unbindBuffers","setProps","program","setBuffers","bufferName","setBuffer","locationOrName","bufferOrParams","location","_getVaryingIndex","_getBufferParams","buffer","byteSize","byteOffset","log","warn","id","_bindBuffer","primitiveMode","bindTransformFeedback","handle","_bindBuffers","beginTransformFeedback","endTransformFeedback","Buffer","undefined","byteLength","getVaryingInfo","Number","isFinite","bufferIndex","index","bindBufferBase","bindBufferRange","createTransformFeedback","deleteTransformFeedback","Resource"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;;;IAKqBA,iB;;;;;;;gCACAC,E,EAAI;AACrB,aAAO,uBAASA,EAAT,CAAP;AACD;;;AAED,6BAAYA,EAAZ,EAA4B;AAAA;;AAAA,QAAZC,KAAY,uEAAJ,EAAI;AAAA;AAC1B,sCAAoBD,EAApB;AACA,8BAAMA,EAAN,EAAUC,KAAV;;AAEA,UAAKC,UAAL,CAAgBD,KAAhB;;AACA,UAAKE,kBAAL,CAAwB,mBAAxB,EAA6C,MAA7C,EAAqD,CAAC,OAAD,EAAU,QAAV,CAArD;;AACAC,IAAAA,MAAM,CAACC,IAAP;AAN0B;AAO3B;;;;iCAEsB;AAAA;;AAAA,UAAZJ,KAAY,uEAAJ,EAAI;AACrB,WAAKK,OAAL,GAAe,EAAf;AACA,WAAKC,MAAL,GAAc,EAAd;AACA,WAAKC,aAAL,GAAqB,IAArB;AACA,WAAKC,SAAL,GAAiB,IAAjB;;AAGA,UAAI,CAAC,0BAAc,KAAKH,OAAnB,CAAL,EAAkC;AAChC,aAAKI,IAAL,CAAU;AAAA,iBAAM,MAAI,CAACC,cAAL,EAAN;AAAA,SAAV;AACD;;AAED,WAAKC,QAAL,CAAcX,KAAd;AACA,aAAO,IAAP;AACD;;;6BAEQA,K,EAAO;AACd,UAAI,aAAaA,KAAjB,EAAwB;AACtB,aAAKO,aAAL,GAAqBP,KAAK,CAACY,OAAN,IAAiBZ,KAAK,CAACY,OAAN,CAAcL,aAApD;AACD;;AACD,UAAI,mBAAmBP,KAAvB,EAA8B;AAC5B,aAAKO,aAAL,GAAqBP,KAAK,CAACO,aAA3B;AACD;;AACD,UAAI,eAAeP,KAAnB,EAA0B;AACxBA,QAAAA,KAAK,GAAGA,KAAK,CAACQ,SAAd;AACD;;AACD,UAAI,aAAaR,KAAjB,EAAwB;AACtB,aAAKa,UAAL,CAAgBb,KAAK,CAACK,OAAtB;AACD;AACF;;;iCAEwB;AAAA;;AAAA,UAAdA,OAAc,uEAAJ,EAAI;AACvB,WAAKI,IAAL,CAAU,YAAM;AACd,aAAK,IAAMK,UAAX,IAAyBT,OAAzB,EAAkC;AAChC,UAAA,MAAI,CAACU,SAAL,CAAeD,UAAf,EAA2BT,OAAO,CAACS,UAAD,CAAlC;AACD;AACF,OAJD;AAKA,aAAO,IAAP;AACD;;;8BAESE,c,EAAgBC,c,EAAgB;AAAA;;AACxC,UAAMC,QAAQ,GAAG,KAAKC,gBAAL,CAAsBH,cAAtB,CAAjB;;AADwC,kCAED,KAAKI,gBAAL,CAAsBH,cAAtB,CAFC;AAAA,UAEjCI,MAFiC,yBAEjCA,MAFiC;AAAA,UAEzBC,QAFyB,yBAEzBA,QAFyB;AAAA,UAEfC,UAFe,yBAEfA,UAFe;;AAIxC,UAAIL,QAAQ,GAAG,CAAf,EAAkB;AAChB,aAAKZ,MAAL,CAAYU,cAAZ,IAA8BK,MAA9B;;AACAG,qBAAIC,IAAJ,CAAS;AAAA,2BAAS,MAAI,CAACC,EAAd,oCAA0CV,cAA1C;AAAA,SAAT;;AACA,eAAO,IAAP;AACD;;AAED,WAAKX,OAAL,CAAaa,QAAb,IAAyBD,cAAzB;;AAIA,UAAI,CAAC,KAAKT,SAAV,EAAqB;AACnB,aAAKmB,WAAL,CAAiBT,QAAjB,EAA2BG,MAA3B,EAAmCE,UAAnC,EAA+CD,QAA/C;AACD;;AAED,aAAO,IAAP;AACD;;;4BAEgC;AAAA,UAA3BM,aAA2B;AAE/B,WAAK7B,EAAL,CAAQ8B,qBAAR,QAAqD,KAAKC,MAA1D;;AACA,WAAKC,YAAL;;AAEA,WAAKhC,EAAL,CAAQiC,sBAAR,CAA+BJ,aAA/B;AACA,aAAO,IAAP;AACD;;;0BAEK;AAEJ,WAAK7B,EAAL,CAAQkC,oBAAR;;AACA,WAAKvB,cAAL;;AAEA,WAAKX,EAAL,CAAQ8B,qBAAR,QAAqD,IAArD;AACA,aAAO,IAAP;AACD;;;qCAIgBZ,c,EAAgB;AAC/B,UAAIM,UAAJ;AACA,UAAID,QAAJ;AACA,UAAID,MAAJ;;AACA,UAAIJ,cAAc,YAAYiB,eAA1B,KAAqC,KAAzC,EAAgD;AAC9Cb,QAAAA,MAAM,GAAGJ,cAAc,CAACI,MAAxB;AACAC,QAAAA,QAAQ,GAAGL,cAAc,CAACK,QAA1B;AACAC,QAAAA,UAAU,GAAGN,cAAc,CAACM,UAA5B;AACD,OAJD,MAIO;AACLF,QAAAA,MAAM,GAAGJ,cAAT;AACD;;AAED,UAAIM,UAAU,KAAKY,SAAf,IAA4Bb,QAAQ,KAAKa,SAA7C,EAAwD;AACtDZ,QAAAA,UAAU,GAAGA,UAAU,IAAI,CAA3B;AACAD,QAAAA,QAAQ,GAAGA,QAAQ,IAAID,MAAM,CAACe,UAAP,GAAoBb,UAA3C;AACD;;AACD,aAAO;AAACF,QAAAA,MAAM,EAANA,MAAD;AAASE,QAAAA,UAAU,EAAVA,UAAT;AAAqBD,QAAAA,QAAQ,EAARA;AAArB,OAAP;AACD;;;oCAEeN,c,EAAgB;AAC9B,aAAO,KAAKT,aAAL,IAAsB,KAAKA,aAAL,CAAmB8B,cAAnB,CAAkCrB,cAAlC,CAA7B;AACD;;;qCAEgBA,c,EAAgB;AAC/B,UAAI,KAAKT,aAAT,EAAwB;AACtB,eAAO,KAAKA,aAAL,CAAmB8B,cAAnB,CAAkCrB,cAAlC,EAAkDE,QAAzD;AACD;;AACD,UAAMA,QAAQ,GAAGoB,MAAM,CAACtB,cAAD,CAAvB;AACA,aAAOsB,MAAM,CAACC,QAAP,CAAgBrB,QAAhB,IAA4BA,QAA5B,GAAuC,CAAC,CAA/C;AACD;;;mCAIc;AACb,UAAI,KAAKV,SAAT,EAAoB;AAClB,aAAK,IAAMgC,WAAX,IAA0B,KAAKnC,OAA/B,EAAwC;AAAA,uCACC,KAAKe,gBAAL,CAAsB,KAAKf,OAAL,CAAamC,WAAb,CAAtB,CADD;AAAA,cAC/BnB,MAD+B,0BAC/BA,MAD+B;AAAA,cACvBC,QADuB,0BACvBA,QADuB;AAAA,cACbC,UADa,0BACbA,UADa;;AAEtC,eAAKI,WAAL,CAAiBa,WAAjB,EAA8BnB,MAA9B,EAAsCE,UAAtC,EAAkDD,QAAlD;AACD;AACF;AACF;;;qCAEgB;AACf,UAAI,KAAKd,SAAT,EAAoB;AAClB,aAAK,IAAMgC,WAAX,IAA0B,KAAKnC,OAA/B,EAAwC;AACtC,eAAKsB,WAAL,CAAiBa,WAAjB,EAA8B,IAA9B;AACD;AACF;AACF;;;gCAEWC,K,EAAOpB,M,EAAkC;AAAA,UAA1BE,UAA0B,uEAAb,CAAa;AAAA,UAAVD,QAAU;AACnD,UAAMQ,MAAM,GAAGT,MAAM,IAAIA,MAAM,CAACS,MAAhC;;AACA,UAAI,CAACA,MAAD,IAAWR,QAAQ,KAAKa,SAA5B,EAAuC;AAErC,aAAKpC,EAAL,CAAQ2C,cAAR,QAAqDD,KAArD,EAA4DX,MAA5D;AACD,OAHD,MAGO;AAEL,aAAK/B,EAAL,CAAQ4C,eAAR,QAAsDF,KAAtD,EAA6DX,MAA7D,EAAqEP,UAArE,EAAiFD,QAAjF;AACD;;AACD,aAAO,IAAP;AACD;;;oCAIe;AAEd,aAAO,KAAKvB,EAAL,CAAQ6C,uBAAR,EAAP;AACD;;;oCAEe;AAEd,WAAK7C,EAAL,CAAQ8C,uBAAR,CAAgC,KAAKf,MAArC;AACD;;;gCAEWA,M,EAAQ;AAElB,WAAK/B,EAAL,CAAQ8B,qBAAR,QAAqD,KAAKC,MAA1D;AACD;;;EA3K4CgB,iB","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGL2Context, log} from '@luma.gl/gltools';\nimport Resource from './resource';\nimport Buffer from './buffer';\nimport {isObjectEmpty} from '../utils/utils';\n\n// NOTE: The `bindOnUse` flag is a major workaround:\n// See https://github.com/KhronosGroup/WebGL/issues/2346\n\nexport default class TransformFeedback extends Resource {\n static isSupported(gl) {\n return isWebGL2(gl);\n }\n\n constructor(gl, props = {}) {\n assertWebGL2Context(gl);\n super(gl, props);\n\n this.initialize(props);\n this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);\n Object.seal(this);\n }\n\n initialize(props = {}) {\n this.buffers = {};\n this.unused = {};\n this.configuration = null;\n this.bindOnUse = true;\n\n // Unbind any currently bound buffers\n if (!isObjectEmpty(this.buffers)) {\n this.bind(() => this._unbindBuffers());\n }\n\n this.setProps(props);\n return this;\n }\n\n setProps(props) {\n if ('program' in props) {\n this.configuration = props.program && props.program.configuration;\n }\n if ('configuration' in props) {\n this.configuration = props.configuration;\n }\n if ('bindOnUse' in props) {\n props = props.bindOnUse;\n }\n if ('buffers' in props) {\n this.setBuffers(props.buffers);\n }\n }\n\n setBuffers(buffers = {}) {\n this.bind(() => {\n for (const bufferName in buffers) {\n this.setBuffer(bufferName, buffers[bufferName]);\n }\n });\n return this;\n }\n\n setBuffer(locationOrName, bufferOrParams) {\n const location = this._getVaryingIndex(locationOrName);\n const {buffer, byteSize, byteOffset} = this._getBufferParams(bufferOrParams);\n\n if (location < 0) {\n this.unused[locationOrName] = buffer;\n log.warn(() => `${this.id} unused varying buffer ${locationOrName}`)();\n return this;\n }\n\n this.buffers[location] = bufferOrParams;\n\n // Need to avoid chrome bug where buffer that is already bound to a different target\n // cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.\n if (!this.bindOnUse) {\n this._bindBuffer(location, buffer, byteOffset, byteSize);\n }\n\n return this;\n }\n\n begin(primitiveMode = GL.POINTS) {\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);\n this._bindBuffers();\n // @ts-ignore\n this.gl.beginTransformFeedback(primitiveMode);\n return this;\n }\n\n end() {\n // @ts-ignore\n this.gl.endTransformFeedback();\n this._unbindBuffers();\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, null);\n return this;\n }\n\n // PRIVATE METHODS\n\n _getBufferParams(bufferOrParams) {\n let byteOffset;\n let byteSize;\n let buffer;\n if (bufferOrParams instanceof Buffer === false) {\n buffer = bufferOrParams.buffer;\n byteSize = bufferOrParams.byteSize;\n byteOffset = bufferOrParams.byteOffset;\n } else {\n buffer = bufferOrParams;\n }\n // to use bindBufferRange, either offset or size must be specified, use default value for the other.\n if (byteOffset !== undefined || byteSize !== undefined) {\n byteOffset = byteOffset || 0;\n byteSize = byteSize || buffer.byteLength - byteOffset;\n }\n return {buffer, byteOffset, byteSize};\n }\n\n _getVaryingInfo(locationOrName) {\n return this.configuration && this.configuration.getVaryingInfo(locationOrName);\n }\n\n _getVaryingIndex(locationOrName) {\n if (this.configuration) {\n return this.configuration.getVaryingInfo(locationOrName).location;\n }\n const location = Number(locationOrName);\n return Number.isFinite(location) ? location : -1;\n }\n\n // Need to avoid chrome bug where buffer that is already bound to a different target\n // cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.\n _bindBuffers() {\n if (this.bindOnUse) {\n for (const bufferIndex in this.buffers) {\n const {buffer, byteSize, byteOffset} = this._getBufferParams(this.buffers[bufferIndex]);\n this._bindBuffer(bufferIndex, buffer, byteOffset, byteSize);\n }\n }\n }\n\n _unbindBuffers() {\n if (this.bindOnUse) {\n for (const bufferIndex in this.buffers) {\n this._bindBuffer(bufferIndex, null);\n }\n }\n }\n\n _bindBuffer(index, buffer, byteOffset = 0, byteSize) {\n const handle = buffer && buffer.handle;\n if (!handle || byteSize === undefined) {\n // @ts-ignore\n this.gl.bindBufferBase(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle);\n } else {\n // @ts-ignore\n this.gl.bindBufferRange(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);\n }\n return this;\n }\n\n // RESOURCE METHODS\n\n _createHandle() {\n // @ts-ignore\n return this.gl.createTransformFeedback();\n }\n\n _deleteHandle() {\n // @ts-ignore\n this.gl.deleteTransformFeedback(this.handle);\n }\n\n _bindHandle(handle) {\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);\n }\n}\n"],"file":"transform-feedback.js"}
1
+ {"version":3,"sources":["../../../src/classes/transform-feedback.ts"],"names":["TransformFeedback","WebGLResource","isSupported","gl","constructor","props","initialize","stubRemovedMethods","Object","seal","buffers","unused","configuration","bindOnUse","bind","_unbindBuffers","setProps","program","setBuffers","bufferName","setBuffer","locationOrName","bufferOrParams","location","_getVaryingIndex","buffer","byteSize","byteOffset","_getBufferParams","log","warn","id","_bindBuffer","begin","primitiveMode","GL","POINTS","bindTransformFeedback","TRANSFORM_FEEDBACK","handle","_bindBuffers","beginTransformFeedback","end","endTransformFeedback","Buffer","undefined","byteLength","_getVaryingInfo","getVaryingInfo","Number","isFinite","bufferIndex","index","bindBufferBase","TRANSFORM_FEEDBACK_BUFFER","bindBufferRange","_createHandle","createTransformFeedback","_deleteHandle","deleteTransformFeedback","_bindHandle"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGL2Context, log} from '@luma.gl/gltools';\nimport WebGLResource, {ResourceProps} from './webgl-resource';\nimport Buffer from './webgl-buffer';\nimport {isObjectEmpty} from '../utils';\n\nexport type TransformFeedbackProps = ResourceProps & {\n [key: string]: any;\n};\n\nexport default class TransformFeedback extends WebGLResource<TransformFeedbackProps> {\n buffers = {};\n unused = {};\n configuration = null;\n // NOTE: The `bindOnUse` flag is a major workaround:\n // See https://github.com/KhronosGroup/WebGL/issues/2346\n bindOnUse = true;\n\n static isSupported(gl: WebGLRenderingContext): boolean {\n return isWebGL2(gl);\n }\n\n constructor(gl: WebGLRenderingContext, props: TransformFeedbackProps = {}) {\n super(gl, props, {} as any);\n assertWebGL2Context(gl);\n\n this.initialize(props);\n this.stubRemovedMethods('TransformFeedback', 'v6.0', ['pause', 'resume']);\n Object.seal(this);\n }\n\n initialize(props?: TransformFeedbackProps): this {\n this.buffers = {};\n this.unused = {};\n this.configuration = null;\n this.bindOnUse = true;\n\n // Unbind any currently bound buffers\n if (!isObjectEmpty(this.buffers)) {\n this.bind(() => this._unbindBuffers());\n }\n\n this.setProps(props);\n return this;\n }\n\n setProps(props: TransformFeedbackProps) {\n if ('program' in props) {\n this.configuration = props.program && props.program.configuration;\n }\n if ('configuration' in props) {\n this.configuration = props.configuration;\n }\n if ('bindOnUse' in props) {\n props = props.bindOnUse;\n }\n if ('buffers' in props) {\n this.setBuffers(props.buffers);\n }\n }\n\n setBuffers(buffers = {}) {\n this.bind(() => {\n for (const bufferName in buffers) {\n this.setBuffer(bufferName, buffers[bufferName]);\n }\n });\n return this;\n }\n\n setBuffer(locationOrName, bufferOrParams) {\n const location = this._getVaryingIndex(locationOrName);\n const {buffer, byteSize, byteOffset} = this._getBufferParams(bufferOrParams);\n\n if (location < 0) {\n this.unused[locationOrName] = buffer;\n log.warn(() => `${this.id} unused varying buffer ${locationOrName}`)();\n return this;\n }\n\n this.buffers[location] = bufferOrParams;\n\n // Need to avoid chrome bug where buffer that is already bound to a different target\n // cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.\n if (!this.bindOnUse) {\n this._bindBuffer(location, buffer, byteOffset, byteSize);\n }\n\n return this;\n }\n\n begin(primitiveMode = GL.POINTS) {\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);\n this._bindBuffers();\n // @ts-ignore\n this.gl.beginTransformFeedback(primitiveMode);\n return this;\n }\n\n end() {\n // @ts-ignore\n this.gl.endTransformFeedback();\n this._unbindBuffers();\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, null);\n return this;\n }\n\n // PRIVATE METHODS\n\n _getBufferParams(bufferOrParams) {\n let byteOffset;\n let byteSize;\n let buffer;\n if (bufferOrParams instanceof Buffer === false) {\n buffer = bufferOrParams.buffer;\n byteSize = bufferOrParams.byteSize;\n byteOffset = bufferOrParams.byteOffset;\n } else {\n buffer = bufferOrParams;\n }\n // to use bindBufferRange, either offset or size must be specified, use default value for the other.\n if (byteOffset !== undefined || byteSize !== undefined) {\n byteOffset = byteOffset || 0;\n byteSize = byteSize || buffer.byteLength - byteOffset;\n }\n return {buffer, byteOffset, byteSize};\n }\n\n _getVaryingInfo(locationOrName) {\n return this.configuration && this.configuration.getVaryingInfo(locationOrName);\n }\n\n _getVaryingIndex(locationOrName) {\n if (this.configuration) {\n return this.configuration.getVaryingInfo(locationOrName).location;\n }\n const location = Number(locationOrName);\n return Number.isFinite(location) ? location : -1;\n }\n\n // Need to avoid chrome bug where buffer that is already bound to a different target\n // cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.\n _bindBuffers() {\n if (this.bindOnUse) {\n for (const bufferIndex in this.buffers) {\n const {buffer, byteSize, byteOffset} = this._getBufferParams(this.buffers[bufferIndex]);\n this._bindBuffer(bufferIndex, buffer, byteOffset, byteSize);\n }\n }\n }\n\n _unbindBuffers() {\n if (this.bindOnUse) {\n for (const bufferIndex in this.buffers) {\n this._bindBuffer(bufferIndex, null);\n }\n }\n }\n\n _bindBuffer(index, buffer, byteOffset = 0, byteSize?) {\n const handle = buffer && buffer.handle;\n if (!handle || byteSize === undefined) {\n // @ts-ignore\n this.gl.bindBufferBase(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle);\n } else {\n // @ts-ignore\n this.gl.bindBufferRange(GL.TRANSFORM_FEEDBACK_BUFFER, index, handle, byteOffset, byteSize);\n }\n return this;\n }\n\n // RESOURCE METHODS\n\n _createHandle() {\n // @ts-ignore\n return this.gl.createTransformFeedback();\n }\n\n _deleteHandle() {\n // @ts-ignore\n this.gl.deleteTransformFeedback(this.handle);\n }\n\n _bindHandle(handle) {\n // @ts-ignore\n this.gl.bindTransformFeedback(GL.TRANSFORM_FEEDBACK, this.handle);\n }\n}\n"],"file":"transform-feedback.js"}