@luma.gl/webgl 9.0.0-alpha.5 → 9.0.0-alpha.51

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 (527) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +23 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +101 -73
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +6 -6
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +74 -111
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/shader-formats.d.ts +9 -0
  11. package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
  12. package/dist/adapter/converters/shader-formats.js +52 -0
  13. package/dist/adapter/converters/shader-formats.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +32 -44
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/texture-formats.js +309 -346
  17. package/dist/adapter/converters/texture-formats.js.map +1 -1
  18. package/dist/adapter/converters/vertex-formats.d.ts +9 -3
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  20. package/dist/adapter/converters/vertex-formats.js +53 -22
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +17 -23
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +54 -58
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  31. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  32. package/dist/adapter/device-helpers/get-device-info.js +31 -22
  33. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  34. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  36. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  38. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  39. package/dist/adapter/helpers/decode-webgl-types.js +89 -0
  40. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  41. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  42. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  43. package/dist/adapter/helpers/get-shader-layout.js +87 -143
  44. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
  48. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  49. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  50. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  51. package/dist/adapter/helpers/set-uniform.js +51 -82
  52. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  53. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  54. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  55. package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
  56. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  57. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  58. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  59. package/dist/adapter/objects/constants-to-keys.js +2 -29
  60. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  62. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  63. package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
  64. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  65. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  66. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-resource.js +26 -83
  68. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  69. package/dist/adapter/resources/webgl-buffer.d.ts +19 -11
  70. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  71. package/dist/adapter/resources/webgl-buffer.js +60 -88
  72. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  74. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-command-buffer.js +175 -48
  76. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  78. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  80. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  81. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  82. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  83. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.js +63 -173
  85. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  86. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  87. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-render-pass.js +99 -11
  89. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -21
  91. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pipeline.js +108 -270
  93. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  94. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  95. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-sampler.js +11 -21
  97. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  98. package/dist/adapter/resources/webgl-shader.d.ts +5 -5
  99. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-shader.js +18 -43
  101. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  102. package/dist/adapter/resources/webgl-texture.d.ts +62 -42
  103. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-texture.js +137 -256
  105. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  106. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  107. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  108. package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
  109. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  110. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  111. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-vertex-array.js +167 -0
  113. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  114. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  115. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  116. package/dist/adapter/webgl-canvas-context.js +10 -23
  117. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  118. package/dist/adapter/webgl-device.d.ts +76 -41
  119. package/dist/adapter/webgl-device.d.ts.map +1 -1
  120. package/dist/adapter/webgl-device.js +219 -129
  121. package/dist/adapter/webgl-device.js.map +1 -1
  122. package/dist/classic/accessor.d.ts +3 -3
  123. package/dist/classic/accessor.d.ts.map +1 -1
  124. package/dist/classic/accessor.js +26 -52
  125. package/dist/classic/accessor.js.map +1 -1
  126. package/dist/classic/clear.d.ts +22 -0
  127. package/dist/classic/clear.d.ts.map +1 -0
  128. package/dist/classic/clear.js +88 -0
  129. package/dist/classic/clear.js.map +1 -0
  130. package/dist/classic/copy-and-blit.d.ts +62 -0
  131. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  132. package/dist/classic/copy-and-blit.js +191 -0
  133. package/dist/classic/copy-and-blit.js.map +1 -0
  134. package/dist/classic/format-utils.d.ts +3 -0
  135. package/dist/classic/format-utils.d.ts.map +1 -0
  136. package/dist/classic/format-utils.js +37 -0
  137. package/dist/classic/format-utils.js.map +1 -0
  138. package/dist/classic/typed-array-utils.d.ts +17 -17
  139. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  140. package/dist/classic/typed-array-utils.js +18 -39
  141. package/dist/classic/typed-array-utils.js.map +1 -1
  142. package/dist/context/context/create-browser-context.d.ts +40 -0
  143. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  144. package/dist/context/context/create-browser-context.js +53 -0
  145. package/dist/context/context/create-browser-context.js.map +1 -0
  146. package/dist/context/context/create-headless-context.d.ts +9 -0
  147. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  148. package/dist/context/context/create-headless-context.js +42 -0
  149. package/dist/context/context/create-headless-context.js.map +1 -0
  150. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  151. package/dist/context/context/webgl-checks.js +1 -4
  152. package/dist/context/context/webgl-checks.js.map +1 -1
  153. package/dist/context/debug/spector.d.ts +1 -2
  154. package/dist/context/debug/spector.d.ts.map +1 -1
  155. package/dist/context/debug/spector.js +8 -20
  156. package/dist/context/debug/spector.js.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  158. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  159. package/dist/context/debug/webgl-developer-tools.js +15 -39
  160. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
  162. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  163. package/dist/context/parameters/unified-parameter-api.js +9 -19
  164. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  166. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  167. package/dist/context/parameters/webgl-parameter-tables.js +267 -286
  168. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  169. package/dist/context/polyfill/context-data.d.ts +13 -0
  170. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  171. package/dist/context/polyfill/context-data.js +12 -0
  172. package/dist/context/polyfill/context-data.js.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  174. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  175. package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
  176. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  178. package/dist/context/polyfill/polyfill-context.js +22 -30
  179. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  180. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  181. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-table.js +18 -41
  183. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  187. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  188. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  189. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  190. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  191. package/dist/context/state-tracker/track-context-state.js +26 -62
  192. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  193. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  194. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  195. package/dist/context/state-tracker/with-parameters.js +8 -10
  196. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  197. package/dist/dist.dev.js +8624 -0
  198. package/dist/index.cjs +6570 -0
  199. package/dist/index.d.ts +26 -24
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +27 -26
  202. package/dist/index.js.map +1 -1
  203. package/dist/types.d.ts +3 -1
  204. package/dist/types.d.ts.map +1 -1
  205. package/dist/types.js.map +1 -1
  206. package/dist.min.js +52 -0
  207. package/package.json +21 -9
  208. package/src/adapter/converters/device-parameters.ts +144 -41
  209. package/src/adapter/converters/sampler-parameters.ts +103 -41
  210. package/src/adapter/converters/shader-formats.ts +44 -0
  211. package/src/adapter/converters/texture-formats.ts +268 -195
  212. package/src/adapter/converters/vertex-formats.ts +71 -10
  213. package/src/adapter/device-helpers/device-features.ts +14 -3
  214. package/src/adapter/device-helpers/device-limits.ts +5 -3
  215. package/src/adapter/device-helpers/get-device-info.ts +53 -18
  216. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  217. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
  218. package/src/adapter/helpers/get-shader-layout.ts +121 -146
  219. package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
  220. package/src/adapter/helpers/set-uniform.ts +39 -35
  221. package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
  222. package/src/adapter/objects/constants-to-keys.ts +6 -25
  223. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  224. package/src/adapter/objects/webgl-resource.ts +16 -23
  225. package/src/adapter/resources/.webgl-render-pipeline.ts.swp +0 -0
  226. package/src/adapter/resources/webgl-buffer.ts +67 -62
  227. package/src/adapter/resources/webgl-command-buffer.ts +327 -25
  228. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  229. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  230. package/src/adapter/resources/webgl-framebuffer.ts +90 -134
  231. package/src/adapter/resources/webgl-render-pass.ts +166 -4
  232. package/src/adapter/resources/webgl-render-pipeline.ts +256 -192
  233. package/src/adapter/resources/webgl-sampler.ts +16 -10
  234. package/src/adapter/resources/webgl-shader.ts +33 -27
  235. package/src/adapter/resources/webgl-texture.ts +138 -99
  236. package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
  237. package/src/adapter/resources/webgl-vertex-array.ts +283 -0
  238. package/src/adapter/webgl-canvas-context.ts +16 -14
  239. package/src/adapter/webgl-device.ts +328 -79
  240. package/src/classic/accessor.ts +8 -18
  241. package/src/classic/clear.ts +113 -0
  242. package/src/classic/copy-and-blit.ts +311 -0
  243. package/src/classic/format-utils.ts +46 -0
  244. package/src/classic/typed-array-utils.ts +21 -27
  245. package/src/context/context/create-browser-context.ts +140 -0
  246. package/src/context/context/create-headless-context.ts +51 -0
  247. package/src/context/context/webgl-checks.ts +3 -1
  248. package/src/context/debug/spector.ts +9 -6
  249. package/src/context/debug/webgl-developer-tools.ts +23 -15
  250. package/src/context/parameters/unified-parameter-api.ts +23 -14
  251. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  252. package/src/context/polyfill/context-data.ts +30 -0
  253. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  254. package/src/context/polyfill/polyfill-context.ts +10 -9
  255. package/src/context/polyfill/polyfill-table.ts +21 -16
  256. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  257. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  258. package/src/context/state-tracker/track-context-state.ts +14 -11
  259. package/src/context/state-tracker/with-parameters.ts +13 -4
  260. package/src/index.ts +70 -35
  261. package/src/types.ts +5 -0
  262. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  263. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  264. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  265. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  266. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  267. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  268. package/dist/adapter/helpers/attribute-utils.js +0 -81
  269. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  270. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  271. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  272. package/dist/adapter/helpers/uniforms.js +0 -99
  273. package/dist/adapter/helpers/uniforms.js.map +0 -1
  274. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  275. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  276. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  277. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  278. package/dist/bundle.d.ts +0 -2
  279. package/dist/bundle.d.ts.map +0 -1
  280. package/dist/bundle.js +0 -5
  281. package/dist/bundle.js.map +0 -1
  282. package/dist/classic/buffer.d.ts +0 -95
  283. package/dist/classic/buffer.d.ts.map +0 -1
  284. package/dist/classic/buffer.js +0 -384
  285. package/dist/classic/buffer.js.map +0 -1
  286. package/dist/context/context/context-state.d.ts +0 -18
  287. package/dist/context/context/context-state.d.ts.map +0 -1
  288. package/dist/context/context/context-state.js +0 -26
  289. package/dist/context/context/context-state.js.map +0 -1
  290. package/dist/context/context/create-context.d.ts +0 -41
  291. package/dist/context/context/create-context.d.ts.map +0 -1
  292. package/dist/context/context/create-context.js +0 -49
  293. package/dist/context/context/create-context.js.map +0 -1
  294. package/dist/context/context/device-pixels.d.ts +0 -25
  295. package/dist/context/context/device-pixels.d.ts.map +0 -1
  296. package/dist/context/context/device-pixels.js +0 -98
  297. package/dist/context/context/device-pixels.js.map +0 -1
  298. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  299. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  300. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  301. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  302. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  303. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  304. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  305. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  306. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  307. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  308. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  309. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  310. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  311. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  312. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  313. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  314. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  315. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  316. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  317. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  318. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  319. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  320. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  321. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  322. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  323. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  324. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  325. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  326. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  327. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  328. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  329. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  330. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  331. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  333. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  334. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  335. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  336. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  337. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  339. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  341. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  343. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  344. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  345. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  346. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  347. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  348. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  349. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  350. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  351. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  352. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  353. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  354. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  355. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  356. package/dist/es5/adapter/webgl-device.js +0 -399
  357. package/dist/es5/adapter/webgl-device.js.map +0 -1
  358. package/dist/es5/bundle.js +0 -7
  359. package/dist/es5/bundle.js.map +0 -1
  360. package/dist/es5/classic/accessor.js +0 -181
  361. package/dist/es5/classic/accessor.js.map +0 -1
  362. package/dist/es5/classic/buffer.js +0 -470
  363. package/dist/es5/classic/buffer.js.map +0 -1
  364. package/dist/es5/classic/typed-array-utils.js +0 -126
  365. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  366. package/dist/es5/context/context/context-state.js +0 -31
  367. package/dist/es5/context/context/context-state.js.map +0 -1
  368. package/dist/es5/context/context/create-context.js +0 -69
  369. package/dist/es5/context/context/create-context.js.map +0 -1
  370. package/dist/es5/context/context/device-pixels.js +0 -115
  371. package/dist/es5/context/context/device-pixels.js.map +0 -1
  372. package/dist/es5/context/context/webgl-checks.js +0 -54
  373. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  374. package/dist/es5/context/debug/spector.js +0 -133
  375. package/dist/es5/context/debug/spector.js.map +0 -1
  376. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  377. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  378. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  379. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  380. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  381. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  382. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  383. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  384. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  385. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  386. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  387. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  388. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  389. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  390. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  391. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  392. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  393. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  394. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  395. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  396. package/dist/es5/index.js +0 -276
  397. package/dist/es5/index.js.map +0 -1
  398. package/dist/es5/init.js +0 -10
  399. package/dist/es5/init.js.map +0 -1
  400. package/dist/es5/types/webgl.js +0 -6
  401. package/dist/es5/types/webgl.js.map +0 -1
  402. package/dist/es5/types.js +0 -2
  403. package/dist/es5/types.js.map +0 -1
  404. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  405. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  406. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  407. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  408. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  409. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  410. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  411. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  412. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  413. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  414. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  415. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  416. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  417. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  418. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  419. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  420. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  421. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  422. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  423. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  424. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  425. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  426. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  427. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  428. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  429. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  430. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  431. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  432. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  433. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  434. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  435. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  436. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  437. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  438. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  439. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  440. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  441. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  442. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  443. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  445. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  447. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  449. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  450. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  451. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  452. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  453. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  454. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  455. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  456. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  457. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  458. package/dist/esm/adapter/resources/webgl-texture.js +0 -833
  459. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  460. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  461. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  462. package/dist/esm/adapter/webgl-device.js +0 -280
  463. package/dist/esm/adapter/webgl-device.js.map +0 -1
  464. package/dist/esm/bundle.js +0 -5
  465. package/dist/esm/bundle.js.map +0 -1
  466. package/dist/esm/classic/accessor.js +0 -144
  467. package/dist/esm/classic/accessor.js.map +0 -1
  468. package/dist/esm/classic/buffer.js +0 -384
  469. package/dist/esm/classic/buffer.js.map +0 -1
  470. package/dist/esm/classic/typed-array-utils.js +0 -112
  471. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  472. package/dist/esm/context/context/context-state.js +0 -26
  473. package/dist/esm/context/context/context-state.js.map +0 -1
  474. package/dist/esm/context/context/create-context.js +0 -49
  475. package/dist/esm/context/context/create-context.js.map +0 -1
  476. package/dist/esm/context/context/device-pixels.js +0 -98
  477. package/dist/esm/context/context/device-pixels.js.map +0 -1
  478. package/dist/esm/context/context/webgl-checks.js +0 -34
  479. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  480. package/dist/esm/context/debug/spector.js +0 -76
  481. package/dist/esm/context/debug/spector.js.map +0 -1
  482. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  483. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  484. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  485. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  486. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  487. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  488. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  489. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  490. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  491. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  492. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  493. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  494. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  495. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  496. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  497. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  498. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  499. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  500. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  501. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  502. package/dist/esm/index.js +0 -27
  503. package/dist/esm/index.js.map +0 -1
  504. package/dist/esm/init.js +0 -4
  505. package/dist/esm/init.js.map +0 -1
  506. package/dist/esm/types/webgl.js +0 -2
  507. package/dist/esm/types/webgl.js.map +0 -1
  508. package/dist/esm/types.js +0 -2
  509. package/dist/esm/types.js.map +0 -1
  510. package/dist/init.d.ts +0 -2
  511. package/dist/init.d.ts.map +0 -1
  512. package/dist/init.js +0 -4
  513. package/dist/init.js.map +0 -1
  514. package/dist/types/webgl.d.ts +0 -145
  515. package/dist/types/webgl.d.ts.map +0 -1
  516. package/dist/types/webgl.js +0 -2
  517. package/dist/types/webgl.js.map +0 -1
  518. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  519. package/src/adapter/helpers/attribute-utils.ts +0 -61
  520. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  521. package/src/bundle.ts +0 -4
  522. package/src/classic/buffer.ts +0 -474
  523. package/src/context/context/context-state.ts +0 -41
  524. package/src/context/context/create-context.ts +0 -110
  525. package/src/context/context/device-pixels.ts +0 -152
  526. package/src/init.ts +0 -4
  527. package/src/types/webgl.ts +0 -284
@@ -1,11 +1,9 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { assert, checkProps } from '@luma.gl/api';
3
- import GL from '@luma.gl/constants';
4
- import { getTypedArrayFromGLType } from './typed-array-utils';
1
+ import { assert, checkProps } from '@luma.gl/core';
2
+ import { getTypedArrayFromGLType } from "./typed-array-utils.js";
5
3
  const DEFAULT_ACCESSOR_VALUES = {
6
4
  offset: 0,
7
5
  stride: 0,
8
- type: GL.FLOAT,
6
+ type: 5126,
9
7
  size: 1,
10
8
  divisor: 0,
11
9
  normalized: false,
@@ -17,100 +15,80 @@ const PROP_CHECKS = {
17
15
  isInstanced: 'divisor'
18
16
  }
19
17
  };
20
- export default class Accessor {
18
+ export class Accessor {
21
19
  static getBytesPerElement(accessor) {
22
- const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
20
+ const ArrayType = getTypedArrayFromGLType(accessor.type || 5126);
23
21
  return ArrayType.BYTES_PER_ELEMENT;
24
22
  }
25
-
26
23
  static getBytesPerVertex(accessor) {
27
24
  assert(accessor.size);
28
- const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
25
+ const ArrayType = getTypedArrayFromGLType(accessor.type || 5126);
29
26
  return ArrayType.BYTES_PER_ELEMENT * accessor.size;
30
27
  }
31
-
32
- static resolve(...accessors) {
28
+ static resolve() {
29
+ for (var _len = arguments.length, accessors = new Array(_len), _key = 0; _key < _len; _key++) {
30
+ accessors[_key] = arguments[_key];
31
+ }
33
32
  return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]);
34
33
  }
35
-
36
- constructor(...accessors) {
37
- _defineProperty(this, "offset", void 0);
38
-
39
- _defineProperty(this, "stride", void 0);
40
-
41
- _defineProperty(this, "type", void 0);
42
-
43
- _defineProperty(this, "size", void 0);
44
-
45
- _defineProperty(this, "divisor", void 0);
46
-
47
- _defineProperty(this, "normalized", void 0);
48
-
49
- _defineProperty(this, "integer", void 0);
50
-
51
- _defineProperty(this, "buffer", void 0);
52
-
53
- _defineProperty(this, "index", void 0);
54
-
34
+ constructor() {
35
+ this.offset = void 0;
36
+ this.stride = void 0;
37
+ this.type = void 0;
38
+ this.size = void 0;
39
+ this.divisor = void 0;
40
+ this.normalized = void 0;
41
+ this.integer = void 0;
42
+ this.buffer = void 0;
43
+ this.index = void 0;
44
+ for (var _len2 = arguments.length, accessors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
45
+ accessors[_key2] = arguments[_key2];
46
+ }
55
47
  accessors.forEach(accessor => this._assign(accessor));
56
48
  Object.freeze(this);
57
49
  }
58
-
59
50
  toString() {
60
51
  return JSON.stringify(this);
61
52
  }
62
-
63
53
  get BYTES_PER_ELEMENT() {
64
54
  return Accessor.getBytesPerElement(this);
65
55
  }
66
-
67
56
  get BYTES_PER_VERTEX() {
68
57
  return Accessor.getBytesPerVertex(this);
69
58
  }
70
-
71
- _assign(props = {}) {
59
+ _assign() {
60
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
72
61
  props = checkProps('Accessor', props, PROP_CHECKS);
73
-
74
62
  if (props.type !== undefined) {
75
63
  this.type = props.type;
76
-
77
- if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
64
+ if (props.type === 5124 || props.type === 5125) {
78
65
  this.integer = true;
79
66
  }
80
67
  }
81
-
82
68
  if (props.size !== undefined) {
83
69
  this.size = props.size;
84
70
  }
85
-
86
71
  if (props.offset !== undefined) {
87
72
  this.offset = props.offset;
88
73
  }
89
-
90
74
  if (props.stride !== undefined) {
91
75
  this.stride = props.stride;
92
76
  }
93
-
94
77
  if (props.normalize !== undefined) {
95
78
  this.normalized = props.normalize;
96
79
  }
97
-
98
80
  if (props.normalized !== undefined) {
99
81
  this.normalized = props.normalized;
100
82
  }
101
-
102
83
  if (props.integer !== undefined) {
103
84
  this.integer = props.integer;
104
85
  }
105
-
106
86
  if (props.divisor !== undefined) {
107
87
  this.divisor = props.divisor;
108
88
  }
109
-
110
89
  if (props.buffer !== undefined) {
111
90
  this.buffer = props.buffer;
112
91
  }
113
-
114
92
  if (props.index !== undefined) {
115
93
  if (typeof props.index === 'boolean') {
116
94
  this.index = props.index ? 1 : 0;
@@ -118,15 +96,12 @@ export default class Accessor {
118
96
  this.index = props.index;
119
97
  }
120
98
  }
121
-
122
99
  if (props.instanced !== undefined) {
123
100
  this.divisor = props.instanced ? 1 : 0;
124
101
  }
125
-
126
102
  if (props.isInstanced !== undefined) {
127
103
  this.divisor = props.isInstanced ? 1 : 0;
128
104
  }
129
-
130
105
  if (this.offset === undefined) delete this.offset;
131
106
  if (this.stride === undefined) delete this.stride;
132
107
  if (this.type === undefined) delete this.type;
@@ -138,7 +113,6 @@ export default class Accessor {
138
113
  if (this.index === undefined) delete this.index;
139
114
  return this;
140
115
  }
141
-
142
116
  }
143
117
  export { DEFAULT_ACCESSOR_VALUES };
144
118
  //# sourceMappingURL=accessor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/classic/accessor.ts"],"names":["assert","checkProps","GL","getTypedArrayFromGLType","DEFAULT_ACCESSOR_VALUES","offset","stride","type","FLOAT","size","divisor","normalized","integer","PROP_CHECKS","deprecatedProps","instanced","isInstanced","Accessor","getBytesPerElement","accessor","ArrayType","BYTES_PER_ELEMENT","getBytesPerVertex","resolve","accessors","constructor","forEach","_assign","Object","freeze","toString","JSON","stringify","BYTES_PER_VERTEX","props","undefined","INT","UNSIGNED_INT","normalize","buffer","index"],"mappings":"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","sourcesContent":["import {assert, checkProps, Buffer, AccessorObject} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getTypedArrayFromGLType} from './typed-array-utils';\n\n// export interface AccessorObject {\n// offset?: number;\n// stride?: number;\n// type?: number;\n// size?: number;\n// divisor?: number;\n// normalized?: boolean;\n// integer?: boolean;\n\n// buffer?: Buffer;\n// index?: number;\n// }\n\nconst DEFAULT_ACCESSOR_VALUES = {\n offset: 0,\n stride: 0,\n type: GL.FLOAT,\n size: 1,\n divisor: 0,\n normalized: false,\n integer: false\n};\n\nconst PROP_CHECKS = {\n deprecatedProps: {\n instanced: 'divisor',\n isInstanced: 'divisor'\n }\n};\n\nexport default class Accessor implements AccessorObject {\n offset?: number;\n stride?: number;\n type?: number;\n size?: number;\n divisor?: number;\n normalized?: boolean;\n integer?: boolean;\n\n buffer?: Buffer;\n index?: number;\n\n static getBytesPerElement(accessor: Accessor | AccessorObject): number {\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n\n static getBytesPerVertex(accessor: AccessorObject): number {\n assert(accessor.size);\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT * accessor.size;\n }\n\n // Combines (merges) a list of accessors. On top of default values\n // Usually [programAccessor, bufferAccessor, appAccessor]\n // All props will be set in the returned object.\n // TODO check for conflicts between values in the supplied accessors\n static resolve(...accessors: AccessorObject[]): Accessor {\n return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values\n }\n\n constructor(...accessors: AccessorObject[]) {\n accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence\n Object.freeze(this);\n }\n\n toString(): string {\n return JSON.stringify(this);\n }\n\n // ACCESSORS\n\n // TODO - remove>\n get BYTES_PER_ELEMENT(): number {\n return Accessor.getBytesPerElement(this);\n }\n\n get BYTES_PER_VERTEX(): number {\n return Accessor.getBytesPerVertex(this);\n }\n\n // PRIVATE\n\n // eslint-disable-next-line complexity, max-statements\n _assign(props: AccessorObject = {}): this {\n props = checkProps('Accessor', props, PROP_CHECKS);\n\n if (props.type !== undefined) {\n this.type = props.type;\n\n // Auto-deduce integer type?\n if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {\n this.integer = true;\n }\n }\n if (props.size !== undefined) {\n this.size = props.size;\n }\n if (props.offset !== undefined) {\n this.offset = props.offset;\n }\n if (props.stride !== undefined) {\n this.stride = props.stride;\n }\n // @ts-expect-error\n if (props.normalize !== undefined) {\n // @ts-expect-error\n this.normalized = props.normalize;\n }\n if (props.normalized !== undefined) {\n this.normalized = props.normalized;\n }\n if (props.integer !== undefined) {\n this.integer = props.integer;\n }\n\n // INSTANCE DIVISOR\n if (props.divisor !== undefined) {\n this.divisor = props.divisor;\n }\n\n // Buffer is optional\n if (props.buffer !== undefined) {\n this.buffer = props.buffer;\n }\n\n // The binding index (for binding e.g. Transform feedbacks and Uniform buffers)\n // TODO - should this be part of accessor?\n if (props.index !== undefined) {\n if (typeof props.index === 'boolean') {\n this.index = props.index ? 1 : 0;\n } else {\n this.index = props.index;\n }\n }\n\n // DEPRECATED\n // @ts-expect-error\n if (props.instanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.instanced ? 1 : 0;\n }\n // @ts-expect-error\n if (props.isInstanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.isInstanced ? 1 : 0;\n }\n\n if (this.offset === undefined) delete this.offset;\n if (this.stride === undefined) delete this.stride;\n if (this.type === undefined) delete this.type;\n if (this.size === undefined) delete this.size;\n if (this.divisor === undefined) delete this.divisor;\n if (this.normalized === undefined) delete this.normalized;\n if (this.integer === undefined) delete this.integer;\n \n if (this.buffer === undefined) delete this.buffer;\n if (this.index === undefined) delete this.index;\n \n return this;\n }\n}\n\n// TEST EXPORTS\nexport {DEFAULT_ACCESSOR_VALUES};\n"],"file":"accessor.js"}
1
+ {"version":3,"file":"accessor.js","names":["assert","checkProps","getTypedArrayFromGLType","DEFAULT_ACCESSOR_VALUES","offset","stride","type","size","divisor","normalized","integer","PROP_CHECKS","deprecatedProps","instanced","isInstanced","Accessor","getBytesPerElement","accessor","ArrayType","BYTES_PER_ELEMENT","getBytesPerVertex","resolve","_len","arguments","length","accessors","Array","_key","constructor","buffer","index","_len2","_key2","forEach","_assign","Object","freeze","toString","JSON","stringify","BYTES_PER_VERTEX","props","undefined","normalize"],"sources":["../../src/classic/accessor.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {assert, checkProps, Buffer, AccessorObject} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\nimport {getTypedArrayFromGLType} from './typed-array-utils';\n\nconst DEFAULT_ACCESSOR_VALUES = {\n offset: 0,\n stride: 0,\n type: GL.FLOAT,\n size: 1,\n divisor: 0,\n normalized: false,\n integer: false\n};\n\nconst PROP_CHECKS = {\n deprecatedProps: {\n instanced: 'divisor',\n isInstanced: 'divisor'\n }\n};\n\nexport class Accessor implements AccessorObject {\n offset?: number;\n stride?: number;\n type?: number;\n size?: number;\n divisor?: number;\n normalized?: boolean;\n integer?: boolean;\n\n buffer?: Buffer;\n index?: number;\n\n static getBytesPerElement(accessor: Accessor | AccessorObject): number {\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n\n static getBytesPerVertex(accessor: AccessorObject): number {\n assert(accessor.size);\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT * accessor.size;\n }\n\n // Combines (merges) a list of accessors. On top of default values\n // Usually [programAccessor, bufferAccessor, appAccessor]\n // All props will be set in the returned object.\n // TODO check for conflicts between values in the supplied accessors\n static resolve(...accessors: AccessorObject[]): Accessor {\n return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values\n }\n\n constructor(...accessors: AccessorObject[]) {\n accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence\n Object.freeze(this);\n }\n\n toString(): string {\n return JSON.stringify(this);\n }\n\n // ACCESSORS\n\n // TODO - remove>\n get BYTES_PER_ELEMENT(): number {\n return Accessor.getBytesPerElement(this);\n }\n\n get BYTES_PER_VERTEX(): number {\n return Accessor.getBytesPerVertex(this);\n }\n\n // PRIVATE\n\n // eslint-disable-next-line complexity, max-statements\n _assign(props: AccessorObject = {}): this {\n props = checkProps('Accessor', props, PROP_CHECKS);\n\n if (props.type !== undefined) {\n this.type = props.type;\n\n // Auto-deduce integer type?\n if ((props.type as GL) === GL.INT || (props.type as GL) === GL.UNSIGNED_INT) {\n this.integer = true;\n }\n }\n if (props.size !== undefined) {\n this.size = props.size;\n }\n if (props.offset !== undefined) {\n this.offset = props.offset;\n }\n if (props.stride !== undefined) {\n this.stride = props.stride;\n }\n // @ts-expect-error\n if (props.normalize !== undefined) {\n // @ts-expect-error\n this.normalized = props.normalize;\n }\n if (props.normalized !== undefined) {\n this.normalized = props.normalized;\n }\n if (props.integer !== undefined) {\n this.integer = props.integer;\n }\n\n // INSTANCE DIVISOR\n if (props.divisor !== undefined) {\n this.divisor = props.divisor;\n }\n\n // Buffer is optional\n if (props.buffer !== undefined) {\n this.buffer = props.buffer;\n }\n\n // The binding index (for binding e.g. Transform feedbacks and Uniform buffers)\n // TODO - should this be part of accessor?\n if (props.index !== undefined) {\n if (typeof props.index === 'boolean') {\n this.index = props.index ? 1 : 0;\n } else {\n this.index = props.index;\n }\n }\n\n // DEPRECATED\n // @ts-expect-error\n if (props.instanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.instanced ? 1 : 0;\n }\n // @ts-expect-error\n if (props.isInstanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.isInstanced ? 1 : 0;\n }\n\n if (this.offset === undefined) delete this.offset;\n if (this.stride === undefined) delete this.stride;\n if (this.type === undefined) delete this.type;\n if (this.size === undefined) delete this.size;\n if (this.divisor === undefined) delete this.divisor;\n if (this.normalized === undefined) delete this.normalized;\n if (this.integer === undefined) delete this.integer;\n \n if (this.buffer === undefined) delete this.buffer;\n if (this.index === undefined) delete this.index;\n \n return this;\n }\n}\n\n// TEST EXPORTS\nexport {DEFAULT_ACCESSOR_VALUES};\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Device, Framebuffer } from '@luma.gl/core';
2
+ /**
3
+ * Optionally clears depth, color and stencil buffers
4
+ * @deprecated Set clear color when creating a RenderPass.
5
+ */
6
+ export declare function clear(gl: Device | WebGLRenderingContext, options?: {
7
+ framebuffer?: Framebuffer;
8
+ color?: any;
9
+ depth?: any;
10
+ stencil?: any;
11
+ }): void;
12
+ /**
13
+ * WebGL2 - clear a specific drawing buffer
14
+ * @deprecated Set clear color when creating a RenderPass
15
+ */
16
+ export declare function clearBuffer(gl: Device | WebGLRenderingContext, options?: {
17
+ framebuffer?: Framebuffer;
18
+ buffer?: any;
19
+ drawBuffer?: any;
20
+ value?: any;
21
+ }): void;
22
+ //# sourceMappingURL=clear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/classic/clear.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAS,MAAM,eAAe,CAAC;AAiB1D;;;GAGG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,MAAM,GAAG,qBAAqB,EAClC,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAA;CAAC,GAC7E,IAAI,CAsCN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,GAAG,qBAAqB,EAClC,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAC,QAuCnF"}
@@ -0,0 +1,88 @@
1
+ import { assert } from '@luma.gl/core';
2
+ import { WebGLDevice } from "../adapter/webgl-device.js";
3
+ import { withGLParameters } from "../context/state-tracker/with-parameters.js";
4
+ const GL_DEPTH_BUFFER_BIT = 0x00000100;
5
+ const GL_STENCIL_BUFFER_BIT = 0x00000400;
6
+ const GL_COLOR_BUFFER_BIT = 0x00004000;
7
+ const GL_COLOR = 0x1800;
8
+ const GL_DEPTH = 0x1801;
9
+ const GL_STENCIL = 0x1802;
10
+ const GL_DEPTH_STENCIL = 0x84f9;
11
+ const ERR_ARGUMENTS = 'clear: bad arguments';
12
+ export function clear(gl, options) {
13
+ const device = WebGLDevice.attach(gl);
14
+ const {
15
+ framebuffer = null,
16
+ color = null,
17
+ depth = null,
18
+ stencil = null
19
+ } = options || {};
20
+ const parameters = {};
21
+ if (framebuffer) {
22
+ parameters.framebuffer = framebuffer;
23
+ }
24
+ let clearFlags = 0;
25
+ if (color) {
26
+ clearFlags |= GL_COLOR_BUFFER_BIT;
27
+ if (color !== true) {
28
+ parameters.clearColor = color;
29
+ }
30
+ }
31
+ if (depth) {
32
+ clearFlags |= GL_DEPTH_BUFFER_BIT;
33
+ if (depth !== true) {
34
+ parameters.clearDepth = depth;
35
+ }
36
+ }
37
+ if (stencil) {
38
+ clearFlags |= GL_STENCIL_BUFFER_BIT;
39
+ if (depth !== true) {
40
+ parameters.clearStencil = depth;
41
+ }
42
+ }
43
+ assert(clearFlags !== 0, ERR_ARGUMENTS);
44
+ withGLParameters(device.gl, parameters, () => {
45
+ device.gl.clear(clearFlags);
46
+ });
47
+ }
48
+ export function clearBuffer(gl, options) {
49
+ const device = WebGLDevice.attach(gl);
50
+ const {
51
+ framebuffer = null,
52
+ buffer = GL_COLOR,
53
+ drawBuffer = 0,
54
+ value = [0, 0, 0, 0]
55
+ } = options || {};
56
+ withGLParameters(device.gl2, {
57
+ framebuffer
58
+ }, () => {
59
+ switch (buffer) {
60
+ case GL_COLOR:
61
+ switch (value.constructor) {
62
+ case Int32Array:
63
+ device.gl2.clearBufferiv(buffer, drawBuffer, value);
64
+ break;
65
+ case Uint32Array:
66
+ device.gl2.clearBufferuiv(buffer, drawBuffer, value);
67
+ break;
68
+ case Float32Array:
69
+ default:
70
+ device.gl2.clearBufferfv(buffer, drawBuffer, value);
71
+ }
72
+ break;
73
+ case GL_DEPTH:
74
+ device.gl2.clearBufferfv(GL_DEPTH, 0, [value]);
75
+ break;
76
+ case GL_STENCIL:
77
+ device.gl2.clearBufferiv(GL_STENCIL, 0, [value]);
78
+ break;
79
+ case GL_DEPTH_STENCIL:
80
+ const [depth, stencil] = value;
81
+ device.gl2.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);
82
+ break;
83
+ default:
84
+ assert(false, ERR_ARGUMENTS);
85
+ }
86
+ });
87
+ }
88
+ //# sourceMappingURL=clear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear.js","names":["assert","WebGLDevice","withGLParameters","GL_DEPTH_BUFFER_BIT","GL_STENCIL_BUFFER_BIT","GL_COLOR_BUFFER_BIT","GL_COLOR","GL_DEPTH","GL_STENCIL","GL_DEPTH_STENCIL","ERR_ARGUMENTS","clear","gl","options","device","attach","framebuffer","color","depth","stencil","parameters","clearFlags","clearColor","clearDepth","clearStencil","clearBuffer","buffer","drawBuffer","value","gl2","constructor","Int32Array","clearBufferiv","Uint32Array","clearBufferuiv","Float32Array","clearBufferfv","clearBufferfi"],"sources":["../../src/classic/clear.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {Device, Framebuffer, assert} from '@luma.gl/core';\nimport {WebGLDevice} from '../adapter/webgl-device';\nimport {withGLParameters} from '../context/state-tracker/with-parameters';\n\n// Should collapse during minification\nconst GL_DEPTH_BUFFER_BIT = 0x00000100;\nconst GL_STENCIL_BUFFER_BIT = 0x00000400;\nconst GL_COLOR_BUFFER_BIT = 0x00004000;\n\nconst GL_COLOR = 0x1800;\nconst GL_DEPTH = 0x1801;\nconst GL_STENCIL = 0x1802;\nconst GL_DEPTH_STENCIL = 0x84f9;\n\n// Should disappear if asserts are removed\nconst ERR_ARGUMENTS = 'clear: bad arguments';\n\n/** \n * Optionally clears depth, color and stencil buffers \n * @deprecated Set clear color when creating a RenderPass.\n */\nexport function clear(\n gl: Device | WebGLRenderingContext,\n options?: {framebuffer?: Framebuffer; color?: any; depth?: any; stencil?: any}\n): void {\n const device = WebGLDevice.attach(gl);\n const {framebuffer = null, color = null, depth = null, stencil = null} = options || {};\n const parameters: any = {};\n\n if (framebuffer) {\n parameters.framebuffer = framebuffer;\n }\n\n let clearFlags = 0;\n\n if (color) {\n clearFlags |= GL_COLOR_BUFFER_BIT;\n if (color !== true) {\n parameters.clearColor = color;\n }\n }\n\n if (depth) {\n clearFlags |= GL_DEPTH_BUFFER_BIT;\n if (depth !== true) {\n parameters.clearDepth = depth;\n }\n }\n\n if (stencil) {\n clearFlags |= GL_STENCIL_BUFFER_BIT;\n if (depth !== true) {\n parameters.clearStencil = depth;\n }\n }\n\n assert(clearFlags !== 0, ERR_ARGUMENTS);\n\n // Temporarily set any clear \"colors\" and call clear\n withGLParameters(device.gl, parameters, () => {\n device.gl.clear(clearFlags);\n });\n}\n\n/** \n * WebGL2 - clear a specific drawing buffer \n * @deprecated Set clear color when creating a RenderPass\n */\nexport function clearBuffer(\n gl: Device | WebGLRenderingContext,\n options?: {framebuffer?: Framebuffer; buffer?: any; drawBuffer?: any; value?: any}\n) {\n const device = WebGLDevice.attach(gl);\n\n const {framebuffer = null, buffer = GL_COLOR, drawBuffer = 0, value = [0, 0, 0, 0]} = options || {};\n withGLParameters(device.gl2, {framebuffer}, () => {\n // Method selection per OpenGL ES 3 docs\n switch (buffer) {\n case GL_COLOR:\n switch (value.constructor) {\n case Int32Array:\n device.gl2.clearBufferiv(buffer, drawBuffer, value);\n break;\n case Uint32Array:\n device.gl2.clearBufferuiv(buffer, drawBuffer, value);\n break;\n case Float32Array:\n default:\n device.gl2.clearBufferfv(buffer, drawBuffer, value);\n }\n break;\n\n case GL_DEPTH:\n device.gl2.clearBufferfv(GL_DEPTH, 0, [value]);\n break;\n\n case GL_STENCIL:\n device.gl2.clearBufferiv(GL_STENCIL, 0, [value]);\n break;\n\n case GL_DEPTH_STENCIL:\n const [depth, stencil] = value;\n device.gl2.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);\n break;\n\n default:\n assert(false, ERR_ARGUMENTS);\n }\n });\n}\n"],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { Texture, Framebuffer, FramebufferProps } from '@luma.gl/core';
2
+ import { GL } from '@luma.gl/constants';
3
+ import { WEBGLBuffer } from '../adapter/resources/webgl-buffer';
4
+ /**
5
+ * Copies data from a type or a Texture object into ArrayBuffer object.
6
+ * App can provide targetPixelArray or have it auto allocated by this method
7
+ * newly allocated by this method unless provided by app.
8
+ * @deprecated Use CommandEncoder.copyTextureToBuffer and Buffer.read
9
+ * @note Slow requires roundtrip to GPU
10
+ *
11
+ * @param source
12
+ * @param options
13
+ * @returns pixel array,
14
+ */
15
+ export declare function readPixelsToArray(source: Framebuffer | Texture, options?: {
16
+ sourceX?: number;
17
+ sourceY?: number;
18
+ sourceFormat?: number;
19
+ sourceAttachment?: number;
20
+ target?: Uint8Array | Uint16Array | Float32Array;
21
+ sourceWidth?: number;
22
+ sourceHeight?: number;
23
+ sourceType?: number;
24
+ }): Uint8Array | Uint16Array | Float32Array;
25
+ /**
26
+ * Copies data from a Framebuffer or a Texture object into a Buffer object.
27
+ * NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.
28
+ * @deprecated Use CommandEncoder
29
+ * @param source
30
+ * @param options
31
+ */
32
+ export declare function readPixelsToBuffer(source: Framebuffer | Texture, options?: {
33
+ sourceX?: number;
34
+ sourceY?: number;
35
+ sourceFormat?: number;
36
+ target?: WEBGLBuffer;
37
+ targetByteOffset?: number;
38
+ sourceWidth?: number;
39
+ sourceHeight?: number;
40
+ sourceType?: number;
41
+ }): WEBGLBuffer;
42
+ /**
43
+ * Copy a rectangle from a Framebuffer or Texture object into a texture (at an offset)
44
+ * @deprecated Use CommandEncoder
45
+ */
46
+ export declare function copyToTexture(source: Framebuffer | Texture, target: Texture | GL, options?: {
47
+ sourceX?: number;
48
+ sourceY?: number;
49
+ targetX?: number;
50
+ targetY?: number;
51
+ targetZ?: number;
52
+ targetMipmaplevel?: number;
53
+ targetInternalFormat?: number;
54
+ width?: number;
55
+ height?: number;
56
+ }): Texture;
57
+ /**
58
+ * Wraps a given texture into a framebuffer object, that can be further used
59
+ * to read data from the texture object.
60
+ */
61
+ export declare function toFramebuffer(texture: Texture, props?: FramebufferProps): Framebuffer;
62
+ //# sourceMappingURL=copy-and-blit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-and-blit.d.ts","sourceRoot":"","sources":["../../src/classic/copy-and-blit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAMtC,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAEjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,UAAU,GAAG,WAAW,GAAG,YAAY,CAiDzC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,WAAW,CAwCb;AAED;;;GAGG;AAEH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,MAAM,EAAE,OAAO,GAAG,EAAE,EACpB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAgGT;AAYD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAUrF"}
@@ -0,0 +1,191 @@
1
+ import { assert, Texture, Framebuffer } from '@luma.gl/core';
2
+ import { getGLTypeFromTypedArray, getTypedArrayFromGLType } from "./typed-array-utils.js";
3
+ import { glFormatToComponents, glTypeToBytes } from "./format-utils.js";
4
+ export function readPixelsToArray(source, options) {
5
+ var _framebuffer$colorAtt;
6
+ const {
7
+ sourceX = 0,
8
+ sourceY = 0,
9
+ sourceFormat = 6408,
10
+ sourceAttachment = 36064
11
+ } = options || {};
12
+ let {
13
+ target = null,
14
+ sourceWidth,
15
+ sourceHeight,
16
+ sourceType
17
+ } = options || {};
18
+ const {
19
+ framebuffer,
20
+ deleteFramebuffer
21
+ } = getFramebuffer(source);
22
+ assert(framebuffer);
23
+ const {
24
+ gl,
25
+ handle
26
+ } = framebuffer;
27
+ sourceWidth = sourceWidth || framebuffer.width;
28
+ sourceHeight = sourceHeight || framebuffer.height;
29
+ const attachment = sourceAttachment - 36064;
30
+ sourceType = sourceType || ((_framebuffer$colorAtt = framebuffer.colorAttachments[attachment]) === null || _framebuffer$colorAtt === void 0 ? void 0 : _framebuffer$colorAtt.type) || 5121;
31
+ target = getPixelArray(target, sourceType, sourceFormat, sourceWidth, sourceHeight);
32
+ sourceType = sourceType || getGLTypeFromTypedArray(target);
33
+ const prevHandle = gl.bindFramebuffer(36160, handle);
34
+ gl.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, target);
35
+ gl.bindFramebuffer(36160, prevHandle || null);
36
+ if (deleteFramebuffer) {
37
+ framebuffer.destroy();
38
+ }
39
+ return target;
40
+ }
41
+ export function readPixelsToBuffer(source, options) {
42
+ const {
43
+ sourceX = 0,
44
+ sourceY = 0,
45
+ sourceFormat = 6408,
46
+ targetByteOffset = 0
47
+ } = options || {};
48
+ let {
49
+ target,
50
+ sourceWidth,
51
+ sourceHeight,
52
+ sourceType
53
+ } = options || {};
54
+ const {
55
+ framebuffer,
56
+ deleteFramebuffer
57
+ } = getFramebuffer(source);
58
+ assert(framebuffer);
59
+ sourceWidth = sourceWidth || framebuffer.width;
60
+ sourceHeight = sourceHeight || framebuffer.height;
61
+ const webglFramebuffer = framebuffer;
62
+ sourceType = sourceType || 5121;
63
+ if (!target) {
64
+ const components = glFormatToComponents(sourceFormat);
65
+ const byteCount = glTypeToBytes(sourceType);
66
+ const byteLength = targetByteOffset + sourceWidth * sourceHeight * components * byteCount;
67
+ target = webglFramebuffer.device.createBuffer({
68
+ byteLength
69
+ });
70
+ }
71
+ const commandEncoder = source.device.createCommandEncoder();
72
+ commandEncoder.copyTextureToBuffer({
73
+ source: source,
74
+ width: sourceWidth,
75
+ height: sourceHeight,
76
+ origin: [sourceX, sourceY],
77
+ destination: target,
78
+ byteOffset: targetByteOffset
79
+ });
80
+ commandEncoder.destroy();
81
+ if (deleteFramebuffer) {
82
+ framebuffer.destroy();
83
+ }
84
+ return target;
85
+ }
86
+ export function copyToTexture(source, target, options) {
87
+ const {
88
+ sourceX = 0,
89
+ sourceY = 0,
90
+ targetMipmaplevel = 0,
91
+ targetInternalFormat = 6408
92
+ } = options || {};
93
+ let {
94
+ targetX,
95
+ targetY,
96
+ targetZ,
97
+ width,
98
+ height
99
+ } = options || {};
100
+ const {
101
+ framebuffer,
102
+ deleteFramebuffer
103
+ } = getFramebuffer(source);
104
+ assert(framebuffer);
105
+ const webglFramebuffer = framebuffer;
106
+ const {
107
+ device,
108
+ handle
109
+ } = webglFramebuffer;
110
+ const isSubCopy = typeof targetX !== 'undefined' || typeof targetY !== 'undefined' || typeof targetZ !== 'undefined';
111
+ targetX = targetX || 0;
112
+ targetY = targetY || 0;
113
+ targetZ = targetZ || 0;
114
+ const prevHandle = device.gl.bindFramebuffer(36160, handle);
115
+ assert(target);
116
+ let texture = null;
117
+ let textureTarget;
118
+ if (target instanceof Texture) {
119
+ texture = target;
120
+ width = Number.isFinite(width) ? width : texture.width;
121
+ height = Number.isFinite(height) ? height : texture.height;
122
+ texture.bind(0);
123
+ textureTarget = texture.target;
124
+ } else {
125
+ textureTarget = target;
126
+ }
127
+ if (!isSubCopy) {
128
+ device.gl.copyTexImage2D(textureTarget, targetMipmaplevel, targetInternalFormat, sourceX, sourceY, width, height, 0);
129
+ } else {
130
+ switch (textureTarget) {
131
+ case 3553:
132
+ case 34067:
133
+ device.gl.copyTexSubImage2D(textureTarget, targetMipmaplevel, targetX, targetY, sourceX, sourceY, width, height);
134
+ break;
135
+ case 35866:
136
+ case 32879:
137
+ device.assertWebGL2();
138
+ device.gl2.copyTexSubImage3D(textureTarget, targetMipmaplevel, targetX, targetY, targetZ, sourceX, sourceY, width, height);
139
+ break;
140
+ default:
141
+ }
142
+ }
143
+ if (texture) {
144
+ texture.unbind();
145
+ }
146
+ device.gl.bindFramebuffer(36160, prevHandle || null);
147
+ if (deleteFramebuffer) {
148
+ framebuffer.destroy();
149
+ }
150
+ return texture;
151
+ }
152
+ function getFramebuffer(source) {
153
+ if (!(source instanceof Framebuffer)) {
154
+ return {
155
+ framebuffer: toFramebuffer(source),
156
+ deleteFramebuffer: true
157
+ };
158
+ }
159
+ return {
160
+ framebuffer: source,
161
+ deleteFramebuffer: false
162
+ };
163
+ }
164
+ export function toFramebuffer(texture, props) {
165
+ const {
166
+ device,
167
+ width,
168
+ height,
169
+ id
170
+ } = texture;
171
+ const framebuffer = device.createFramebuffer({
172
+ ...props,
173
+ id: `framebuffer-for-${id}`,
174
+ width,
175
+ height,
176
+ colorAttachments: [texture]
177
+ });
178
+ return framebuffer;
179
+ }
180
+ function getPixelArray(pixelArray, type, format, width, height) {
181
+ if (pixelArray) {
182
+ return pixelArray;
183
+ }
184
+ type = type || 5121;
185
+ const ArrayType = getTypedArrayFromGLType(type, {
186
+ clamped: false
187
+ });
188
+ const components = glFormatToComponents(format);
189
+ return new ArrayType(width * height * components);
190
+ }
191
+ //# sourceMappingURL=copy-and-blit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-and-blit.js","names":["assert","Texture","Framebuffer","getGLTypeFromTypedArray","getTypedArrayFromGLType","glFormatToComponents","glTypeToBytes","readPixelsToArray","source","options","_framebuffer$colorAtt","sourceX","sourceY","sourceFormat","sourceAttachment","target","sourceWidth","sourceHeight","sourceType","framebuffer","deleteFramebuffer","getFramebuffer","gl","handle","width","height","attachment","colorAttachments","type","getPixelArray","prevHandle","bindFramebuffer","readPixels","destroy","readPixelsToBuffer","targetByteOffset","webglFramebuffer","components","byteCount","byteLength","device","createBuffer","commandEncoder","createCommandEncoder","copyTextureToBuffer","origin","destination","byteOffset","copyToTexture","targetMipmaplevel","targetInternalFormat","targetX","targetY","targetZ","isSubCopy","texture","textureTarget","Number","isFinite","bind","copyTexImage2D","copyTexSubImage2D","assertWebGL2","gl2","copyTexSubImage3D","unbind","toFramebuffer","props","id","createFramebuffer","pixelArray","format","ArrayType","clamped"],"sources":["../../src/classic/copy-and-blit.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {assert, Texture, Framebuffer, FramebufferProps} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\n\nimport {WEBGLTexture} from '../adapter/resources/webgl-texture';\nimport {WEBGLFramebuffer} from '../adapter/resources/webgl-framebuffer';\nimport {getGLTypeFromTypedArray, getTypedArrayFromGLType} from './typed-array-utils';\nimport {glFormatToComponents, glTypeToBytes} from './format-utils';\nimport {WEBGLBuffer} from '../adapter/resources/webgl-buffer';\n\n/**\n * Copies data from a type or a Texture object into ArrayBuffer object.\n * App can provide targetPixelArray or have it auto allocated by this method\n * newly allocated by this method unless provided by app.\n * @deprecated Use CommandEncoder.copyTextureToBuffer and Buffer.read\n * @note Slow requires roundtrip to GPU\n *\n * @param source\n * @param options\n * @returns pixel array,\n */\nexport function readPixelsToArray(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n sourceAttachment?: number;\n target?: Uint8Array | Uint16Array | Float32Array;\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n): Uint8Array | Uint16Array | Float32Array {\n const {\n sourceX = 0,\n sourceY = 0,\n sourceFormat = GL.RGBA,\n sourceAttachment = GL.COLOR_ATTACHMENT0 // TODO - support gl.readBuffer\n } = options || {};\n let {\n target = null,\n // following parameters are auto deduced if not provided\n sourceWidth,\n sourceHeight,\n sourceType\n } = options || {};\n\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n const {gl, handle} = framebuffer as WEBGLFramebuffer;\n sourceWidth = sourceWidth || framebuffer.width;\n sourceHeight = sourceHeight || framebuffer.height;\n\n // TODO - Set and unset gl.readBuffer\n // if (sourceAttachment === GL.COLOR_ATTACHMENT0 && handle === null) {\n // sourceAttachment = GL.FRONT;\n // }\n\n const attachment = sourceAttachment - GL.COLOR_ATTACHMENT0;\n // assert(attachments[sourceAttachment]);\n\n // Deduce the type from color attachment if not provided.\n sourceType =\n sourceType ||\n (framebuffer.colorAttachments[attachment] as WEBGLTexture)?.type ||\n GL.UNSIGNED_BYTE;\n\n // Deduce type and allocated pixelArray if needed\n target = getPixelArray(target, sourceType, sourceFormat, sourceWidth, sourceHeight);\n\n // Pixel array available, if necessary, deduce type from it.\n sourceType = sourceType || getGLTypeFromTypedArray(target);\n\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n gl.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, target);\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (deleteFramebuffer) {\n framebuffer.destroy();\n }\n return target;\n}\n\n/**\n * Copies data from a Framebuffer or a Texture object into a Buffer object.\n * NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.\n * @deprecated Use CommandEncoder\n * @param source\n * @param options\n */\nexport function readPixelsToBuffer(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n target?: WEBGLBuffer; // A new Buffer object is created when not provided.\n targetByteOffset?: number; // byte offset in buffer object\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n): WEBGLBuffer {\n const {sourceX = 0, sourceY = 0, sourceFormat = GL.RGBA, targetByteOffset = 0} = options || {};\n // following parameters are auto deduced if not provided\n let {target, sourceWidth, sourceHeight, sourceType} = options || {};\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n sourceWidth = sourceWidth || framebuffer.width;\n sourceHeight = sourceHeight || framebuffer.height;\n\n // Asynchronous read (PIXEL_PACK_BUFFER) is WebGL2 only feature\n const webglFramebuffer = framebuffer as WEBGLFramebuffer;\n\n // deduce type if not available.\n sourceType = sourceType || GL.UNSIGNED_BYTE;\n\n if (!target) {\n // Create new buffer with enough size\n const components = glFormatToComponents(sourceFormat);\n const byteCount = glTypeToBytes(sourceType);\n const byteLength = targetByteOffset + sourceWidth * sourceHeight * components * byteCount;\n target = webglFramebuffer.device.createBuffer({byteLength});\n }\n\n // TODO(donmccurdy): Do we have tests to confirm this is working?\n const commandEncoder = source.device.createCommandEncoder();\n commandEncoder.copyTextureToBuffer({\n source: source as Texture,\n width: sourceWidth,\n height: sourceHeight,\n origin: [sourceX, sourceY],\n destination: target,\n byteOffset: targetByteOffset\n });\n commandEncoder.destroy();\n\n if (deleteFramebuffer) {\n framebuffer.destroy();\n }\n\n return target;\n}\n\n/**\n * Copy a rectangle from a Framebuffer or Texture object into a texture (at an offset)\n * @deprecated Use CommandEncoder\n */\n// eslint-disable-next-line complexity, max-statements\nexport function copyToTexture(\n source: Framebuffer | Texture,\n target: Texture | GL,\n options?: {\n sourceX?: number;\n sourceY?: number;\n\n targetX?: number;\n targetY?: number;\n targetZ?: number;\n targetMipmaplevel?: number;\n targetInternalFormat?: number;\n\n width?: number; // defaults to target width\n height?: number; // defaults to target height\n }\n): Texture {\n const {\n sourceX = 0,\n sourceY = 0,\n // attachment = GL.COLOR_ATTACHMENT0, // TODO - support gl.readBuffer\n targetMipmaplevel = 0,\n targetInternalFormat = GL.RGBA\n } = options || {};\n let {\n targetX,\n targetY,\n targetZ,\n width, // defaults to target width\n height // defaults to target height\n } = options || {};\n\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n const webglFramebuffer = framebuffer as WEBGLFramebuffer;\n const {device, handle} = webglFramebuffer;\n const isSubCopy =\n typeof targetX !== 'undefined' ||\n typeof targetY !== 'undefined' ||\n typeof targetZ !== 'undefined';\n targetX = targetX || 0;\n targetY = targetY || 0;\n targetZ = targetZ || 0;\n const prevHandle = device.gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n // TODO - support gl.readBuffer (WebGL2 only)\n // const prevBuffer = gl.readBuffer(attachment);\n assert(target);\n let texture = null;\n let textureTarget: GL;\n if (target instanceof Texture) {\n texture = target;\n width = Number.isFinite(width) ? width : texture.width;\n height = Number.isFinite(height) ? height : texture.height;\n texture.bind(0);\n textureTarget = texture.target;\n } else {\n textureTarget = target;\n }\n\n if (!isSubCopy) {\n device.gl.copyTexImage2D(\n textureTarget,\n targetMipmaplevel,\n targetInternalFormat,\n sourceX,\n sourceY,\n width,\n height,\n 0 /* border must be 0 */\n );\n } else {\n switch (textureTarget) {\n case GL.TEXTURE_2D:\n case GL.TEXTURE_CUBE_MAP:\n device.gl.copyTexSubImage2D(\n textureTarget,\n targetMipmaplevel,\n targetX,\n targetY,\n sourceX,\n sourceY,\n width,\n height\n );\n break;\n case GL.TEXTURE_2D_ARRAY:\n case GL.TEXTURE_3D:\n device.assertWebGL2();\n device.gl2.copyTexSubImage3D(\n textureTarget,\n targetMipmaplevel,\n targetX,\n targetY,\n targetZ,\n sourceX,\n sourceY,\n width,\n height\n );\n break;\n default:\n }\n }\n if (texture) {\n texture.unbind();\n }\n // @ts-expect-error\n device.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (deleteFramebuffer) {\n framebuffer.destroy();\n }\n return texture;\n}\n\nfunction getFramebuffer(source: Texture | Framebuffer): {\n framebuffer: Framebuffer;\n deleteFramebuffer: boolean;\n} {\n if (!(source instanceof Framebuffer)) {\n return {framebuffer: toFramebuffer(source), deleteFramebuffer: true};\n }\n return {framebuffer: source, deleteFramebuffer: false};\n}\n\n/**\n * Wraps a given texture into a framebuffer object, that can be further used\n * to read data from the texture object.\n */\nexport function toFramebuffer(texture: Texture, props?: FramebufferProps): Framebuffer {\n const {device, width, height, id} = texture;\n const framebuffer = device.createFramebuffer({\n ...props,\n id: `framebuffer-for-${id}`,\n width,\n height,\n colorAttachments: [texture]\n });\n return framebuffer;\n}\n\nfunction getPixelArray(\n pixelArray,\n type,\n format,\n width: number,\n height: number\n): Uint8Array | Uint16Array | Float32Array {\n if (pixelArray) {\n return pixelArray;\n }\n // Allocate pixel array if not already available, using supplied type\n type = type || GL.UNSIGNED_BYTE;\n const ArrayType = getTypedArrayFromGLType(type, {clamped: false});\n const components = glFormatToComponents(format);\n // TODO - check for composite type (components = 1).\n return new ArrayType(width * height * components) as Uint8Array | Uint16Array | Float32Array;\n}\n"],"mappings":"AAGA,SAAQA,MAAM,EAAEC,OAAO,EAAEC,WAAW,QAAyB,eAAe;AAAC,SAKrEC,uBAAuB,EAAEC,uBAAuB;AAAA,SAChDC,oBAAoB,EAAEC,aAAa;AAc3C,OAAO,SAASC,iBAAiBA,CAC/BC,MAA6B,EAC7BC,OAUC,EACwC;EAAA,IAAAC,qBAAA;EACzC,MAAM;IACJC,OAAO,GAAG,CAAC;IACXC,OAAO,GAAG,CAAC;IACXC,YAAY,OAAU;IACtBC,gBAAgB;EAClB,CAAC,GAAGL,OAAO,IAAI,CAAC,CAAC;EACjB,IAAI;IACFM,MAAM,GAAG,IAAI;IAEbC,WAAW;IACXC,YAAY;IACZC;EACF,CAAC,GAAGT,OAAO,IAAI,CAAC,CAAC;EAEjB,MAAM;IAACU,WAAW;IAAEC;EAAiB,CAAC,GAAGC,cAAc,CAACb,MAAM,CAAC;EAC/DR,MAAM,CAACmB,WAAW,CAAC;EACnB,MAAM;IAACG,EAAE;IAAEC;EAAM,CAAC,GAAGJ,WAA+B;EACpDH,WAAW,GAAGA,WAAW,IAAIG,WAAW,CAACK,KAAK;EAC9CP,YAAY,GAAGA,YAAY,IAAIE,WAAW,CAACM,MAAM;EAOjD,MAAMC,UAAU,GAAGZ,gBAAgB,QAAuB;EAI1DI,UAAU,GACRA,UAAU,MAAAR,qBAAA,GACTS,WAAW,CAACQ,gBAAgB,CAACD,UAAU,CAAC,cAAAhB,qBAAA,uBAAzCA,qBAAA,CAA4DkB,IAAI,SAChD;EAGlBb,MAAM,GAAGc,aAAa,CAACd,MAAM,EAAEG,UAAU,EAAEL,YAAY,EAAEG,WAAW,EAAEC,YAAY,CAAC;EAGnFC,UAAU,GAAGA,UAAU,IAAIf,uBAAuB,CAACY,MAAM,CAAC;EAE1D,MAAMe,UAAU,GAAGR,EAAE,CAACS,eAAe,QAAiBR,MAAM,CAAC;EAC7DD,EAAE,CAACU,UAAU,CAACrB,OAAO,EAAEC,OAAO,EAAEI,WAAW,EAAEC,YAAY,EAAEJ,YAAY,EAAEK,UAAU,EAAEH,MAAM,CAAC;EAE5FO,EAAE,CAACS,eAAe,QAAiBD,UAAU,IAAI,IAAI,CAAC;EACtD,IAAIV,iBAAiB,EAAE;IACrBD,WAAW,CAACc,OAAO,CAAC,CAAC;EACvB;EACA,OAAOlB,MAAM;AACf;AASA,OAAO,SAASmB,kBAAkBA,CAChC1B,MAA6B,EAC7BC,OAUC,EACY;EACb,MAAM;IAACE,OAAO,GAAG,CAAC;IAAEC,OAAO,GAAG,CAAC;IAAEC,YAAY,OAAU;IAAEsB,gBAAgB,GAAG;EAAC,CAAC,GAAG1B,OAAO,IAAI,CAAC,CAAC;EAE9F,IAAI;IAACM,MAAM;IAAEC,WAAW;IAAEC,YAAY;IAAEC;EAAU,CAAC,GAAGT,OAAO,IAAI,CAAC,CAAC;EACnE,MAAM;IAACU,WAAW;IAAEC;EAAiB,CAAC,GAAGC,cAAc,CAACb,MAAM,CAAC;EAC/DR,MAAM,CAACmB,WAAW,CAAC;EACnBH,WAAW,GAAGA,WAAW,IAAIG,WAAW,CAACK,KAAK;EAC9CP,YAAY,GAAGA,YAAY,IAAIE,WAAW,CAACM,MAAM;EAGjD,MAAMW,gBAAgB,GAAGjB,WAA+B;EAGxDD,UAAU,GAAGA,UAAU,QAAoB;EAE3C,IAAI,CAACH,MAAM,EAAE;IAEX,MAAMsB,UAAU,GAAGhC,oBAAoB,CAACQ,YAAY,CAAC;IACrD,MAAMyB,SAAS,GAAGhC,aAAa,CAACY,UAAU,CAAC;IAC3C,MAAMqB,UAAU,GAAGJ,gBAAgB,GAAGnB,WAAW,GAAGC,YAAY,GAAGoB,UAAU,GAAGC,SAAS;IACzFvB,MAAM,GAAGqB,gBAAgB,CAACI,MAAM,CAACC,YAAY,CAAC;MAACF;IAAU,CAAC,CAAC;EAC7D;EAGA,MAAMG,cAAc,GAAGlC,MAAM,CAACgC,MAAM,CAACG,oBAAoB,CAAC,CAAC;EAC3DD,cAAc,CAACE,mBAAmB,CAAC;IACjCpC,MAAM,EAAEA,MAAiB;IACzBgB,KAAK,EAAER,WAAW;IAClBS,MAAM,EAAER,YAAY;IACpB4B,MAAM,EAAE,CAAClC,OAAO,EAAEC,OAAO,CAAC;IAC1BkC,WAAW,EAAE/B,MAAM;IACnBgC,UAAU,EAAEZ;EACd,CAAC,CAAC;EACFO,cAAc,CAACT,OAAO,CAAC,CAAC;EAExB,IAAIb,iBAAiB,EAAE;IACrBD,WAAW,CAACc,OAAO,CAAC,CAAC;EACvB;EAEA,OAAOlB,MAAM;AACf;AAOA,OAAO,SAASiC,aAAaA,CAC3BxC,MAA6B,EAC7BO,MAAoB,EACpBN,OAYC,EACQ;EACT,MAAM;IACJE,OAAO,GAAG,CAAC;IACXC,OAAO,GAAG,CAAC;IAEXqC,iBAAiB,GAAG,CAAC;IACrBC,oBAAoB;EACtB,CAAC,GAAGzC,OAAO,IAAI,CAAC,CAAC;EACjB,IAAI;IACF0C,OAAO;IACPC,OAAO;IACPC,OAAO;IACP7B,KAAK;IACLC;EACF,CAAC,GAAGhB,OAAO,IAAI,CAAC,CAAC;EAEjB,MAAM;IAACU,WAAW;IAAEC;EAAiB,CAAC,GAAGC,cAAc,CAACb,MAAM,CAAC;EAC/DR,MAAM,CAACmB,WAAW,CAAC;EACnB,MAAMiB,gBAAgB,GAAGjB,WAA+B;EACxD,MAAM;IAACqB,MAAM;IAAEjB;EAAM,CAAC,GAAGa,gBAAgB;EACzC,MAAMkB,SAAS,GACb,OAAOH,OAAO,KAAK,WAAW,IAC9B,OAAOC,OAAO,KAAK,WAAW,IAC9B,OAAOC,OAAO,KAAK,WAAW;EAChCF,OAAO,GAAGA,OAAO,IAAI,CAAC;EACtBC,OAAO,GAAGA,OAAO,IAAI,CAAC;EACtBC,OAAO,GAAGA,OAAO,IAAI,CAAC;EACtB,MAAMvB,UAAU,GAAGU,MAAM,CAAClB,EAAE,CAACS,eAAe,QAAiBR,MAAM,CAAC;EAGpEvB,MAAM,CAACe,MAAM,CAAC;EACd,IAAIwC,OAAO,GAAG,IAAI;EAClB,IAAIC,aAAiB;EACrB,IAAIzC,MAAM,YAAYd,OAAO,EAAE;IAC7BsD,OAAO,GAAGxC,MAAM;IAChBS,KAAK,GAAGiC,MAAM,CAACC,QAAQ,CAAClC,KAAK,CAAC,GAAGA,KAAK,GAAG+B,OAAO,CAAC/B,KAAK;IACtDC,MAAM,GAAGgC,MAAM,CAACC,QAAQ,CAACjC,MAAM,CAAC,GAAGA,MAAM,GAAG8B,OAAO,CAAC9B,MAAM;IAC1D8B,OAAO,CAACI,IAAI,CAAC,CAAC,CAAC;IACfH,aAAa,GAAGD,OAAO,CAACxC,MAAM;EAChC,CAAC,MAAM;IACLyC,aAAa,GAAGzC,MAAM;EACxB;EAEA,IAAI,CAACuC,SAAS,EAAE;IACdd,MAAM,CAAClB,EAAE,CAACsC,cAAc,CACtBJ,aAAa,EACbP,iBAAiB,EACjBC,oBAAoB,EACpBvC,OAAO,EACPC,OAAO,EACPY,KAAK,EACLC,MAAM,EACN,CACF,CAAC;EACH,CAAC,MAAM;IACL,QAAQ+B,aAAa;MACnB;MACA;QACEhB,MAAM,CAAClB,EAAE,CAACuC,iBAAiB,CACzBL,aAAa,EACbP,iBAAiB,EACjBE,OAAO,EACPC,OAAO,EACPzC,OAAO,EACPC,OAAO,EACPY,KAAK,EACLC,MACF,CAAC;QACD;MACF;MACA;QACEe,MAAM,CAACsB,YAAY,CAAC,CAAC;QACrBtB,MAAM,CAACuB,GAAG,CAACC,iBAAiB,CAC1BR,aAAa,EACbP,iBAAiB,EACjBE,OAAO,EACPC,OAAO,EACPC,OAAO,EACP1C,OAAO,EACPC,OAAO,EACPY,KAAK,EACLC,MACF,CAAC;QACD;MACF;IACF;EACF;EACA,IAAI8B,OAAO,EAAE;IACXA,OAAO,CAACU,MAAM,CAAC,CAAC;EAClB;EAEAzB,MAAM,CAAClB,EAAE,CAACS,eAAe,QAAiBD,UAAU,IAAI,IAAI,CAAC;EAC7D,IAAIV,iBAAiB,EAAE;IACrBD,WAAW,CAACc,OAAO,CAAC,CAAC;EACvB;EACA,OAAOsB,OAAO;AAChB;AAEA,SAASlC,cAAcA,CAACb,MAA6B,EAGnD;EACA,IAAI,EAAEA,MAAM,YAAYN,WAAW,CAAC,EAAE;IACpC,OAAO;MAACiB,WAAW,EAAE+C,aAAa,CAAC1D,MAAM,CAAC;MAAEY,iBAAiB,EAAE;IAAI,CAAC;EACtE;EACA,OAAO;IAACD,WAAW,EAAEX,MAAM;IAAEY,iBAAiB,EAAE;EAAK,CAAC;AACxD;AAMA,OAAO,SAAS8C,aAAaA,CAACX,OAAgB,EAAEY,KAAwB,EAAe;EACrF,MAAM;IAAC3B,MAAM;IAAEhB,KAAK;IAAEC,MAAM;IAAE2C;EAAE,CAAC,GAAGb,OAAO;EAC3C,MAAMpC,WAAW,GAAGqB,MAAM,CAAC6B,iBAAiB,CAAC;IAC3C,GAAGF,KAAK;IACRC,EAAE,EAAG,mBAAkBA,EAAG,EAAC;IAC3B5C,KAAK;IACLC,MAAM;IACNE,gBAAgB,EAAE,CAAC4B,OAAO;EAC5B,CAAC,CAAC;EACF,OAAOpC,WAAW;AACpB;AAEA,SAASU,aAAaA,CACpByC,UAAU,EACV1C,IAAI,EACJ2C,MAAM,EACN/C,KAAa,EACbC,MAAc,EAC2B;EACzC,IAAI6C,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEA1C,IAAI,GAAGA,IAAI,QAAoB;EAC/B,MAAM4C,SAAS,GAAGpE,uBAAuB,CAACwB,IAAI,EAAE;IAAC6C,OAAO,EAAE;EAAK,CAAC,CAAC;EACjE,MAAMpC,UAAU,GAAGhC,oBAAoB,CAACkE,MAAM,CAAC;EAE/C,OAAO,IAAIC,SAAS,CAAChD,KAAK,GAAGC,MAAM,GAAGY,UAAU,CAAC;AACnD"}
@@ -0,0 +1,3 @@
1
+ export declare function glFormatToComponents(format: any): 2 | 0 | 1 | 4 | 3;
2
+ export declare function glTypeToBytes(type: any): 2 | 0 | 1 | 4;
3
+ //# sourceMappingURL=format-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-utils.d.ts","sourceRoot":"","sources":["../../src/classic/format-utils.ts"],"names":[],"mappings":"AAOA,wBAAgB,oBAAoB,CAAC,MAAM,KAAA,qBAoB1C;AAGD,wBAAgB,aAAa,CAAC,IAAI,KAAA,iBAejC"}