@loaders.gl/textures 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (316) hide show
  1. package/dist/basis-loader.d.ts +4 -43
  2. package/dist/basis-loader.d.ts.map +1 -1
  3. package/dist/basis-loader.js +34 -24
  4. package/dist/basis-worker-node.js +64152 -0
  5. package/dist/basis-worker.js +51 -18
  6. package/dist/bundle.js +2 -2
  7. package/dist/compressed-texture-loader.d.ts +1 -1
  8. package/dist/compressed-texture-loader.d.ts.map +1 -1
  9. package/dist/compressed-texture-loader.js +59 -36
  10. package/dist/compressed-texture-worker.js +51 -18
  11. package/dist/compressed-texture-writer.d.ts +13 -21
  12. package/dist/compressed-texture-writer.d.ts.map +1 -1
  13. package/dist/compressed-texture-writer.js +33 -21
  14. package/dist/crunch-loader.js +23 -16
  15. package/dist/crunch-worker.js +49 -17
  16. package/dist/dist.min.js +104 -35
  17. package/dist/es5/basis-loader.js +37 -0
  18. package/dist/es5/basis-loader.js.map +1 -0
  19. package/dist/es5/bundle.js +6 -0
  20. package/dist/es5/bundle.js.map +1 -0
  21. package/dist/es5/compressed-texture-loader.js +76 -0
  22. package/dist/es5/compressed-texture-loader.js.map +1 -0
  23. package/dist/es5/compressed-texture-writer.js +28 -0
  24. package/dist/es5/compressed-texture-writer.js.map +1 -0
  25. package/dist/es5/crunch-loader.js +26 -0
  26. package/dist/es5/crunch-loader.js.map +1 -0
  27. package/dist/es5/index.js +131 -0
  28. package/dist/es5/index.js.map +1 -0
  29. package/dist/es5/ktx2-basis-writer.js +26 -0
  30. package/dist/es5/ktx2-basis-writer.js.map +1 -0
  31. package/dist/es5/lib/encoders/encode-ktx.js +12 -0
  32. package/dist/es5/lib/encoders/encode-ktx.js.map +1 -0
  33. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +74 -0
  34. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  35. package/dist/es5/lib/encoders/encode-texture.js +38 -0
  36. package/dist/es5/lib/encoders/encode-texture.js.map +1 -0
  37. package/dist/es5/lib/gl-extensions.js +68 -0
  38. package/dist/es5/lib/gl-extensions.js.map +1 -0
  39. package/dist/es5/lib/parsers/basis-module-loader.js +194 -0
  40. package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -0
  41. package/dist/es5/lib/parsers/crunch-module-loader.js +67 -0
  42. package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -0
  43. package/dist/es5/lib/parsers/parse-basis.js +270 -0
  44. package/dist/es5/lib/parsers/parse-basis.js.map +1 -0
  45. package/dist/es5/lib/parsers/parse-compressed-texture.js +22 -0
  46. package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -0
  47. package/dist/es5/lib/parsers/parse-crunch.js +100 -0
  48. package/dist/es5/lib/parsers/parse-crunch.js.map +1 -0
  49. package/dist/es5/lib/parsers/parse-dds.js +84 -0
  50. package/dist/es5/lib/parsers/parse-dds.js.map +1 -0
  51. package/dist/es5/lib/parsers/parse-ktx.js +34 -0
  52. package/dist/es5/lib/parsers/parse-ktx.js.map +1 -0
  53. package/dist/es5/lib/parsers/parse-npy.js +70 -0
  54. package/dist/es5/lib/parsers/parse-npy.js.map +1 -0
  55. package/dist/es5/lib/parsers/parse-pvr.js +161 -0
  56. package/dist/es5/lib/parsers/parse-pvr.js.map +1 -0
  57. package/dist/es5/lib/texture-api/async-deep-map.js +156 -0
  58. package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -0
  59. package/dist/es5/lib/texture-api/deep-load.js +63 -0
  60. package/dist/es5/lib/texture-api/deep-load.js.map +1 -0
  61. package/dist/es5/lib/texture-api/generate-url.js +20 -0
  62. package/dist/es5/lib/texture-api/generate-url.js.map +1 -0
  63. package/dist/es5/lib/texture-api/load-image-array.js +75 -0
  64. package/dist/es5/lib/texture-api/load-image-array.js.map +1 -0
  65. package/dist/es5/lib/texture-api/load-image-cube.js +136 -0
  66. package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -0
  67. package/dist/es5/lib/texture-api/load-image.js +129 -0
  68. package/dist/es5/lib/texture-api/load-image.js.map +1 -0
  69. package/dist/es5/lib/texture-api/texture-api-types.js +2 -0
  70. package/dist/es5/lib/texture-api/texture-api-types.js.map +1 -0
  71. package/dist/es5/lib/utils/extract-mipmap-images.js +41 -0
  72. package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -0
  73. package/dist/es5/lib/utils/ktx-format-helper.js +79 -0
  74. package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -0
  75. package/dist/es5/lib/utils/texture-formats.js +54 -0
  76. package/dist/es5/lib/utils/texture-formats.js.map +1 -0
  77. package/dist/es5/lib/utils/version.js +9 -0
  78. package/dist/es5/lib/utils/version.js.map +1 -0
  79. package/dist/es5/libs/basis_encoder.js +21 -0
  80. package/dist/es5/libs/basis_encoder.wasm +0 -0
  81. package/dist/es5/libs/basis_transcoder.js +22 -0
  82. package/dist/{libs → es5}/libs/basis_transcoder.wasm +0 -0
  83. package/dist/es5/npy-loader.js +51 -0
  84. package/dist/es5/npy-loader.js.map +1 -0
  85. package/dist/es5/types.js +2 -0
  86. package/dist/es5/types.js.map +1 -0
  87. package/dist/es5/workers/basis-worker-node.js +7 -0
  88. package/dist/es5/workers/basis-worker-node.js.map +1 -0
  89. package/dist/es5/workers/basis-worker.js +6 -0
  90. package/dist/es5/workers/basis-worker.js.map +1 -0
  91. package/dist/es5/workers/compressed-texture-worker.js +6 -0
  92. package/dist/es5/workers/compressed-texture-worker.js.map +1 -0
  93. package/dist/es5/workers/crunch-worker.js +19 -0
  94. package/dist/es5/workers/crunch-worker.js.map +1 -0
  95. package/dist/es5/workers/ktx2-basis-writer-worker-node.js +54 -0
  96. package/dist/es5/workers/ktx2-basis-writer-worker-node.js.map +1 -0
  97. package/dist/es5/workers/ktx2-basis-writer-worker.js +53 -0
  98. package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -0
  99. package/dist/es5/workers/npy-worker.js +6 -0
  100. package/dist/es5/workers/npy-worker.js.map +1 -0
  101. package/dist/esm/basis-loader.js +26 -0
  102. package/dist/esm/basis-loader.js.map +1 -0
  103. package/dist/esm/bundle.js +4 -0
  104. package/dist/esm/bundle.js.map +1 -0
  105. package/dist/esm/compressed-texture-loader.js +41 -0
  106. package/dist/esm/compressed-texture-loader.js.map +1 -0
  107. package/dist/esm/compressed-texture-writer.js +21 -0
  108. package/dist/esm/compressed-texture-writer.js.map +1 -0
  109. package/dist/esm/crunch-loader.js +18 -0
  110. package/dist/esm/crunch-loader.js.map +1 -0
  111. package/dist/esm/index.js +29 -0
  112. package/dist/esm/index.js.map +1 -0
  113. package/dist/{ktx2-basis-universal-texture-writer.js → esm/ktx2-basis-writer.js} +4 -4
  114. package/dist/esm/ktx2-basis-writer.js.map +1 -0
  115. package/dist/esm/lib/encoders/encode-ktx.js +6 -0
  116. package/dist/esm/lib/encoders/encode-ktx.js.map +1 -0
  117. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +35 -0
  118. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  119. package/dist/esm/lib/encoders/encode-texture.js +12 -0
  120. package/dist/esm/lib/encoders/encode-texture.js.map +1 -0
  121. package/dist/esm/lib/gl-extensions.js +61 -0
  122. package/dist/esm/lib/gl-extensions.js.map +1 -0
  123. package/dist/esm/lib/parsers/basis-module-loader.js +77 -0
  124. package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -0
  125. package/dist/esm/lib/parsers/crunch-module-loader.js +19 -0
  126. package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -0
  127. package/dist/esm/lib/parsers/parse-basis.js +231 -0
  128. package/dist/esm/lib/parsers/parse-basis.js.map +1 -0
  129. package/dist/esm/lib/parsers/parse-compressed-texture.js +16 -0
  130. package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -0
  131. package/dist/esm/lib/parsers/parse-crunch.js +75 -0
  132. package/dist/esm/lib/parsers/parse-crunch.js.map +1 -0
  133. package/dist/esm/lib/parsers/parse-dds.js +75 -0
  134. package/dist/esm/lib/parsers/parse-dds.js.map +1 -0
  135. package/dist/esm/lib/parsers/parse-ktx.js +25 -0
  136. package/dist/esm/lib/parsers/parse-ktx.js.map +1 -0
  137. package/dist/esm/lib/parsers/parse-npy.js +63 -0
  138. package/dist/esm/lib/parsers/parse-npy.js.map +1 -0
  139. package/dist/esm/lib/parsers/parse-pvr.js +154 -0
  140. package/dist/esm/lib/parsers/parse-pvr.js.map +1 -0
  141. package/dist/esm/lib/texture-api/async-deep-map.js +34 -0
  142. package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -0
  143. package/dist/esm/lib/texture-api/deep-load.js +10 -0
  144. package/dist/esm/lib/texture-api/deep-load.js.map +1 -0
  145. package/dist/esm/lib/texture-api/generate-url.js +13 -0
  146. package/dist/esm/lib/texture-api/generate-url.js.map +1 -0
  147. package/dist/esm/lib/texture-api/load-image-array.js +20 -0
  148. package/dist/esm/lib/texture-api/load-image-array.js.map +1 -0
  149. package/dist/esm/lib/texture-api/load-image-cube.js +63 -0
  150. package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -0
  151. package/dist/esm/lib/texture-api/load-image.js +46 -0
  152. package/dist/esm/lib/texture-api/load-image.js.map +1 -0
  153. package/dist/esm/lib/texture-api/texture-api-types.js +2 -0
  154. package/dist/esm/lib/texture-api/texture-api-types.js.map +1 -0
  155. package/dist/esm/lib/utils/extract-mipmap-images.js +35 -0
  156. package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -0
  157. package/dist/esm/lib/utils/ktx-format-helper.js +73 -0
  158. package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -0
  159. package/dist/esm/lib/utils/texture-formats.js +36 -0
  160. package/dist/esm/lib/utils/texture-formats.js.map +1 -0
  161. package/dist/esm/lib/utils/version.js +2 -0
  162. package/dist/esm/lib/utils/version.js.map +1 -0
  163. package/dist/esm/libs/README.md +9 -0
  164. package/dist/esm/libs/basis_encoder.js +21 -0
  165. package/dist/esm/libs/basis_encoder.wasm +0 -0
  166. package/dist/esm/libs/basis_transcoder.js +22 -0
  167. package/dist/esm/libs/basis_transcoder.wasm +0 -0
  168. package/dist/esm/libs/crunch.js +136 -0
  169. package/dist/esm/npy-loader.js +22 -0
  170. package/dist/esm/npy-loader.js.map +1 -0
  171. package/dist/esm/types.js +2 -0
  172. package/dist/esm/types.js.map +1 -0
  173. package/dist/esm/workers/basis-worker-node.js +5 -0
  174. package/dist/esm/workers/basis-worker-node.js.map +1 -0
  175. package/dist/esm/workers/basis-worker.js +4 -0
  176. package/dist/esm/workers/basis-worker.js.map +1 -0
  177. package/dist/esm/workers/compressed-texture-worker.js +4 -0
  178. package/dist/esm/workers/compressed-texture-worker.js.map +1 -0
  179. package/dist/esm/workers/crunch-worker.js +9 -0
  180. package/dist/esm/workers/crunch-worker.js.map +1 -0
  181. package/dist/esm/workers/ktx2-basis-writer-worker-node.js +32 -0
  182. package/dist/esm/workers/ktx2-basis-writer-worker-node.js.map +1 -0
  183. package/dist/esm/workers/ktx2-basis-writer-worker.js +31 -0
  184. package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -0
  185. package/dist/esm/workers/npy-worker.js +4 -0
  186. package/dist/esm/workers/npy-worker.js.map +1 -0
  187. package/dist/index.d.ts +15 -1
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/index.js +52 -14
  190. package/dist/ktx2-basis-writer-worker-node.js +63611 -0
  191. package/dist/ktx2-basis-writer-worker.js +343 -0
  192. package/dist/ktx2-basis-writer.d.ts +16 -0
  193. package/dist/ktx2-basis-writer.d.ts.map +1 -0
  194. package/dist/ktx2-basis-writer.js +26 -0
  195. package/dist/lib/encoders/encode-ktx.js +9 -5
  196. package/dist/lib/encoders/encode-ktx2-basis-texture.js +40 -34
  197. package/dist/lib/encoders/encode-texture.d.ts +2 -3
  198. package/dist/lib/encoders/encode-texture.d.ts.map +1 -1
  199. package/dist/lib/encoders/encode-texture.js +26 -11
  200. package/dist/lib/gl-extensions.js +71 -60
  201. package/dist/lib/parsers/basis-module-loader.js +100 -76
  202. package/dist/lib/parsers/crunch-module-loader.js +30 -18
  203. package/dist/lib/parsers/parse-basis.d.ts +1 -1
  204. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  205. package/dist/lib/parsers/parse-basis.js +225 -240
  206. package/dist/lib/parsers/parse-compressed-texture.js +25 -18
  207. package/dist/lib/parsers/parse-crunch.js +96 -82
  208. package/dist/lib/parsers/parse-dds.js +93 -63
  209. package/dist/lib/parsers/parse-ktx.js +44 -23
  210. package/dist/lib/parsers/parse-npy.d.ts +10 -5
  211. package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
  212. package/dist/lib/parsers/parse-npy.js +76 -71
  213. package/dist/lib/parsers/parse-pvr.js +212 -133
  214. package/dist/lib/texture-api/async-deep-map.d.ts +2 -2
  215. package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -1
  216. package/dist/lib/texture-api/async-deep-map.js +35 -33
  217. package/dist/lib/texture-api/deep-load.d.ts +2 -2
  218. package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
  219. package/dist/lib/texture-api/deep-load.js +14 -8
  220. package/dist/lib/texture-api/generate-url.js +16 -13
  221. package/dist/lib/texture-api/load-image-array.js +19 -18
  222. package/dist/lib/texture-api/load-image-cube.d.ts +1 -1
  223. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  224. package/dist/lib/texture-api/load-image-cube.js +39 -55
  225. package/dist/lib/texture-api/load-image.js +38 -43
  226. package/dist/lib/texture-api/texture-api-types.d.ts +2 -2
  227. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  228. package/dist/lib/texture-api/texture-api-types.js +3 -2
  229. package/dist/lib/utils/extract-mipmap-images.d.ts +1 -1
  230. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  231. package/dist/lib/utils/extract-mipmap-images.js +45 -36
  232. package/dist/lib/utils/ktx-format-helper.js +122 -70
  233. package/dist/lib/utils/texture-formats.js +42 -30
  234. package/dist/lib/utils/version.js +8 -2
  235. package/dist/libs/basis_encoder.js +20 -21
  236. package/dist/libs/basis_encoder.wasm +0 -0
  237. package/dist/libs/basis_transcoder.js +14 -13
  238. package/dist/libs/basis_transcoder.wasm +0 -0
  239. package/dist/npy-loader.d.ts +6 -37
  240. package/dist/npy-loader.d.ts.map +1 -1
  241. package/dist/npy-loader.js +28 -20
  242. package/dist/npy-worker.js +60 -31
  243. package/dist/types.js +1 -2
  244. package/dist/workers/basis-worker-node.d.ts +2 -0
  245. package/dist/workers/basis-worker-node.d.ts.map +1 -0
  246. package/dist/workers/basis-worker-node.js +7 -0
  247. package/dist/workers/basis-worker.js +5 -4
  248. package/dist/workers/compressed-texture-worker.js +5 -4
  249. package/dist/workers/crunch-worker.js +13 -7
  250. package/dist/workers/ktx2-basis-writer-worker-node.d.ts +2 -0
  251. package/dist/workers/ktx2-basis-writer-worker-node.d.ts.map +1 -0
  252. package/dist/workers/ktx2-basis-writer-worker-node.js +28 -0
  253. package/dist/workers/ktx2-basis-writer-worker.d.ts +2 -0
  254. package/dist/workers/ktx2-basis-writer-worker.d.ts.map +1 -0
  255. package/dist/workers/ktx2-basis-writer-worker.js +26 -0
  256. package/dist/workers/npy-worker.js +5 -4
  257. package/package.json +21 -15
  258. package/src/basis-loader.ts +5 -7
  259. package/src/compressed-texture-writer.ts +21 -3
  260. package/src/index.ts +18 -1
  261. package/src/{ktx2-basis-universal-texture-writer.ts → ktx2-basis-writer.ts} +14 -3
  262. package/src/lib/encoders/encode-texture.ts +2 -1
  263. package/src/lib/parsers/parse-basis.ts +1 -1
  264. package/src/lib/parsers/parse-npy.ts +52 -31
  265. package/src/libs/basis_encoder.js +20 -21
  266. package/src/libs/basis_encoder.wasm +0 -0
  267. package/src/libs/basis_transcoder.js +14 -13
  268. package/src/libs/basis_transcoder.wasm +0 -0
  269. package/src/npy-loader.ts +7 -7
  270. package/src/workers/basis-worker-node.ts +6 -0
  271. package/src/workers/ktx2-basis-writer-worker-node.ts +27 -0
  272. package/src/workers/ktx2-basis-writer-worker.ts +25 -0
  273. package/dist/basis-loader.js.map +0 -1
  274. package/dist/bundle.js.map +0 -1
  275. package/dist/compressed-texture-loader.js.map +0 -1
  276. package/dist/compressed-texture-writer.js.map +0 -1
  277. package/dist/crunch-loader.js.map +0 -1
  278. package/dist/index.js.map +0 -1
  279. package/dist/ktx2-basis-universal-texture-writer.d.ts +0 -22
  280. package/dist/ktx2-basis-universal-texture-writer.d.ts.map +0 -1
  281. package/dist/ktx2-basis-universal-texture-writer.js.map +0 -1
  282. package/dist/lib/encoders/encode-ktx.js.map +0 -1
  283. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
  284. package/dist/lib/encoders/encode-texture.js.map +0 -1
  285. package/dist/lib/gl-extensions.js.map +0 -1
  286. package/dist/lib/parsers/basis-module-loader.js.map +0 -1
  287. package/dist/lib/parsers/crunch-module-loader.js.map +0 -1
  288. package/dist/lib/parsers/parse-basis.js.map +0 -1
  289. package/dist/lib/parsers/parse-compressed-texture.js.map +0 -1
  290. package/dist/lib/parsers/parse-crunch.js.map +0 -1
  291. package/dist/lib/parsers/parse-dds.js.map +0 -1
  292. package/dist/lib/parsers/parse-ktx.js.map +0 -1
  293. package/dist/lib/parsers/parse-npy.js.map +0 -1
  294. package/dist/lib/parsers/parse-pvr.js.map +0 -1
  295. package/dist/lib/texture-api/async-deep-map.js.map +0 -1
  296. package/dist/lib/texture-api/deep-load.js.map +0 -1
  297. package/dist/lib/texture-api/generate-url.js.map +0 -1
  298. package/dist/lib/texture-api/load-image-array.js.map +0 -1
  299. package/dist/lib/texture-api/load-image-cube.js.map +0 -1
  300. package/dist/lib/texture-api/load-image.js.map +0 -1
  301. package/dist/lib/texture-api/texture-api-types.js.map +0 -1
  302. package/dist/lib/utils/extract-mipmap-images.js.map +0 -1
  303. package/dist/lib/utils/ktx-format-helper.js.map +0 -1
  304. package/dist/lib/utils/texture-formats.js.map +0 -1
  305. package/dist/lib/utils/version.js.map +0 -1
  306. package/dist/libs/libs/basis_encoder.js +0 -22
  307. package/dist/libs/libs/basis_encoder.wasm +0 -0
  308. package/dist/libs/libs/basis_transcoder.js +0 -21
  309. package/dist/npy-loader.js.map +0 -1
  310. package/dist/types.js.map +0 -1
  311. package/dist/workers/basis-worker.js.map +0 -1
  312. package/dist/workers/compressed-texture-worker.js.map +0 -1
  313. package/dist/workers/crunch-worker.js.map +0 -1
  314. package/dist/workers/npy-worker.js.map +0 -1
  315. /package/dist/{libs → es5}/libs/README.md +0 -0
  316. /package/dist/{libs → es5}/libs/crunch.js +0 -0
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isKTX = isKTX;
7
+ exports.parseKTX = parseKTX;
8
+ var _ktxParse = require("ktx-parse");
9
+ var _extractMipmapImages = require("../utils/extract-mipmap-images");
10
+ var _ktxFormatHelper = require("../utils/ktx-format-helper");
11
+ var KTX2_ID = [0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a];
12
+ function isKTX(data) {
13
+ var id = new Uint8Array(data);
14
+ var notKTX = id.byteLength < KTX2_ID.length || id[0] !== KTX2_ID[0] || id[1] !== KTX2_ID[1] || id[2] !== KTX2_ID[2] || id[3] !== KTX2_ID[3] || id[4] !== KTX2_ID[4] || id[5] !== KTX2_ID[5] || id[6] !== KTX2_ID[6] || id[7] !== KTX2_ID[7] || id[8] !== KTX2_ID[8] || id[9] !== KTX2_ID[9] || id[10] !== KTX2_ID[10] || id[11] !== KTX2_ID[11];
15
+ return !notKTX;
16
+ }
17
+ function parseKTX(arrayBuffer) {
18
+ var uint8Array = new Uint8Array(arrayBuffer);
19
+ var ktx = (0, _ktxParse.read)(uint8Array);
20
+ var mipMapLevels = Math.max(1, ktx.levels.length);
21
+ var width = ktx.pixelWidth;
22
+ var height = ktx.pixelHeight;
23
+ var internalFormat = (0, _ktxFormatHelper.mapVkFormatToWebGL)(ktx.vkFormat);
24
+ return (0, _extractMipmapImages.extractMipmapImages)(ktx.levels, {
25
+ mipMapLevels: mipMapLevels,
26
+ width: width,
27
+ height: height,
28
+ sizeFunction: function sizeFunction(level) {
29
+ return level.uncompressedByteLength;
30
+ },
31
+ internalFormat: internalFormat
32
+ });
33
+ }
34
+ //# sourceMappingURL=parse-ktx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-ktx.js","names":["_ktxParse","require","_extractMipmapImages","_ktxFormatHelper","KTX2_ID","isKTX","data","id","Uint8Array","notKTX","byteLength","length","parseKTX","arrayBuffer","uint8Array","ktx","read","mipMapLevels","Math","max","levels","width","pixelWidth","height","pixelHeight","internalFormat","mapVkFormatToWebGL","vkFormat","extractMipmapImages","sizeFunction","level","uncompressedByteLength"],"sources":["../../../../src/lib/parsers/parse-ktx.ts"],"sourcesContent":["import type {TextureLevel} from '@loaders.gl/schema';\nimport {read} from 'ktx-parse';\nimport {extractMipmapImages} from '../utils/extract-mipmap-images';\nimport {mapVkFormatToWebGL} from '../utils/ktx-format-helper';\n\nconst KTX2_ID = [\n // '´', 'K', 'T', 'X', '2', '0', 'ª', '\\r', '\\n', '\\x1A', '\\n'\n 0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a\n];\n\n// eslint-disable-next-line complexity\nexport function isKTX(data: ArrayBuffer) {\n // const id = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n const id = new Uint8Array(data);\n const notKTX =\n id.byteLength < KTX2_ID.length ||\n id[0] !== KTX2_ID[0] || // '´'\n id[1] !== KTX2_ID[1] || // 'K'\n id[2] !== KTX2_ID[2] || // 'T'\n id[3] !== KTX2_ID[3] || // 'X'\n id[4] !== KTX2_ID[4] || // ' '\n id[5] !== KTX2_ID[5] || // '2'\n id[6] !== KTX2_ID[6] || // '0'\n id[7] !== KTX2_ID[7] || // 'ª'\n id[8] !== KTX2_ID[8] || // '\\r'\n id[9] !== KTX2_ID[9] || // '\\n'\n id[10] !== KTX2_ID[10] || // '\\x1A'\n id[11] !== KTX2_ID[11]; // '\\n'\n\n return !notKTX;\n}\n\nexport function parseKTX(arrayBuffer: ArrayBuffer): TextureLevel[] {\n const uint8Array = new Uint8Array(arrayBuffer);\n const ktx = read(uint8Array);\n const mipMapLevels = Math.max(1, ktx.levels.length);\n const width = ktx.pixelWidth;\n const height = ktx.pixelHeight;\n const internalFormat = mapVkFormatToWebGL(ktx.vkFormat);\n\n return extractMipmapImages(ktx.levels, {\n mipMapLevels,\n width,\n height,\n sizeFunction: (level: any): number => level.uncompressedByteLength,\n internalFormat\n });\n}\n"],"mappings":";;;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAMG,OAAO,GAAG,CAEd,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CACvE;AAGM,SAASC,KAAKA,CAACC,IAAiB,EAAE;EAEvC,IAAMC,EAAE,GAAG,IAAIC,UAAU,CAACF,IAAI,CAAC;EAC/B,IAAMG,MAAM,GACVF,EAAE,CAACG,UAAU,GAAGN,OAAO,CAACO,MAAM,IAC9BJ,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,CAAC,CAAC,KAAKH,OAAO,CAAC,CAAC,CAAC,IACpBG,EAAE,CAAC,EAAE,CAAC,KAAKH,OAAO,CAAC,EAAE,CAAC,IACtBG,EAAE,CAAC,EAAE,CAAC,KAAKH,OAAO,CAAC,EAAE,CAAC;EAExB,OAAO,CAACK,MAAM;AAChB;AAEO,SAASG,QAAQA,CAACC,WAAwB,EAAkB;EACjE,IAAMC,UAAU,GAAG,IAAIN,UAAU,CAACK,WAAW,CAAC;EAC9C,IAAME,GAAG,GAAG,IAAAC,cAAI,EAACF,UAAU,CAAC;EAC5B,IAAMG,YAAY,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,GAAG,CAACK,MAAM,CAACT,MAAM,CAAC;EACnD,IAAMU,KAAK,GAAGN,GAAG,CAACO,UAAU;EAC5B,IAAMC,MAAM,GAAGR,GAAG,CAACS,WAAW;EAC9B,IAAMC,cAAc,GAAG,IAAAC,mCAAkB,EAACX,GAAG,CAACY,QAAQ,CAAC;EAEvD,OAAO,IAAAC,wCAAmB,EAACb,GAAG,CAACK,MAAM,EAAE;IACrCH,YAAY,EAAZA,YAAY;IACZI,KAAK,EAALA,KAAK;IACLE,MAAM,EAANA,MAAM;IACNM,YAAY,EAAE,SAAAA,aAACC,KAAU;MAAA,OAAaA,KAAK,CAACC,sBAAsB;IAAA;IAClEN,cAAc,EAAdA;EACF,CAAC,CAAC;AACJ"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseNPY = parseNPY;
7
+ var a = new Uint32Array([0x12345678]);
8
+ var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
9
+ var isLittleEndian = !(b[0] === 0x12);
10
+ var LITTLE_ENDIAN_OS = isLittleEndian;
11
+ var DTYPES = {
12
+ u1: Uint8Array,
13
+ i1: Int8Array,
14
+ u2: Uint16Array,
15
+ i2: Int16Array,
16
+ u4: Uint32Array,
17
+ i4: Int32Array,
18
+ f4: Float32Array,
19
+ f8: Float64Array
20
+ };
21
+ function parseNPY(arrayBuffer, options) {
22
+ var _header$shape;
23
+ var view = new DataView(arrayBuffer);
24
+ var _parseHeader = parseHeader(view),
25
+ header = _parseHeader.header,
26
+ headerEndOffset = _parseHeader.headerEndOffset;
27
+ var numpyType = header.descr;
28
+ var ArrayType = DTYPES[numpyType.slice(1, 3)];
29
+ if (!ArrayType) {
30
+ throw new Error("Unimplemented type ".concat(numpyType));
31
+ }
32
+ var nArrayElements = (_header$shape = header.shape) === null || _header$shape === void 0 ? void 0 : _header$shape.reduce(function (a, b) {
33
+ return a * b;
34
+ });
35
+ var arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
36
+ if (arrayBuffer.byteLength < headerEndOffset + arrayByteLength) {
37
+ throw new Error('Buffer overflow');
38
+ }
39
+ var data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
40
+ if (numpyType[0] === '>' && LITTLE_ENDIAN_OS || numpyType[0] === '<' && !LITTLE_ENDIAN_OS) {
41
+ throw new Error('Incorrect endianness');
42
+ }
43
+ return {
44
+ data: data,
45
+ header: header
46
+ };
47
+ }
48
+ function parseHeader(view) {
49
+ var majorVersion = view.getUint8(6);
50
+ var offset = 8;
51
+ var headerLength;
52
+ if (majorVersion >= 2) {
53
+ headerLength = view.getUint32(offset, true);
54
+ offset += 4;
55
+ } else {
56
+ headerLength = view.getUint16(offset, true);
57
+ offset += 2;
58
+ }
59
+ var encoding = majorVersion <= 2 ? 'latin1' : 'utf-8';
60
+ var decoder = new TextDecoder(encoding);
61
+ var headerArray = new Uint8Array(view.buffer, offset, headerLength);
62
+ var headerText = decoder.decode(headerArray);
63
+ offset += headerLength;
64
+ var header = JSON.parse(headerText.replace(/'/g, '"').replace('False', 'false').replace('(', '[').replace(/,*\),*/g, ']'));
65
+ return {
66
+ header: header,
67
+ headerEndOffset: offset
68
+ };
69
+ }
70
+ //# sourceMappingURL=parse-npy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-npy.js","names":["a","Uint32Array","b","Uint8Array","buffer","byteOffset","byteLength","isLittleEndian","LITTLE_ENDIAN_OS","DTYPES","u1","i1","Int8Array","u2","Uint16Array","i2","Int16Array","u4","i4","Int32Array","f4","Float32Array","f8","Float64Array","parseNPY","arrayBuffer","options","_header$shape","view","DataView","_parseHeader","parseHeader","header","headerEndOffset","numpyType","descr","ArrayType","slice","Error","concat","nArrayElements","shape","reduce","arrayByteLength","BYTES_PER_ELEMENT","data","majorVersion","getUint8","offset","headerLength","getUint32","getUint16","encoding","decoder","TextDecoder","headerArray","headerText","decode","JSON","parse","replace"],"sources":["../../../../src/lib/parsers/parse-npy.ts"],"sourcesContent":["// import type {TextureLevel} from '@loaders.gl/schema';\nimport {TypedArray} from '@math.gl/types';\n// import {TypedArrayConstructor} from \"@math.gl/types\";\n\n// TODO move to math.gl\ntype TypedArrayConstructor =\n | typeof Int8Array\n | typeof Uint8Array\n | typeof Int16Array\n | typeof Uint16Array\n | typeof Int32Array\n | typeof Uint32Array\n | typeof Int32Array\n | typeof Uint32Array\n | typeof Float32Array\n | typeof Float64Array;\n\nconst a = new Uint32Array([0x12345678]);\nconst b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\nconst isLittleEndian = !(b[0] === 0x12);\n\nconst LITTLE_ENDIAN_OS = isLittleEndian;\n\n/** One numpy \"tile\" */\nexport type NPYTile = {\n /** tile header */\n header: NumpyHeader;\n /** data in tile */\n data: TypedArray;\n};\n\ntype NumpyHeader = {\n descr: string;\n shape: number[];\n};\n\n/**\n * The basic string format consists of 3 characters:\n * 1. a character describing the byteorder of the data (<: little-endian, >: big-endian, |: not-relevant)\n * 2. a character code giving the basic type of the array\n * 3. an integer providing the number of bytes the type uses.\n * https://numpy.org/doc/stable/reference/arrays.interface.html\n *\n * Here I only include the second and third characters, and check endianness separately\n */\nconst DTYPES: Record<string, TypedArrayConstructor> = {\n u1: Uint8Array,\n i1: Int8Array,\n u2: Uint16Array,\n i2: Int16Array,\n u4: Uint32Array,\n i4: Int32Array,\n f4: Float32Array,\n f8: Float64Array\n};\n\nexport function parseNPY(arrayBuffer: ArrayBuffer, options?: {}): NPYTile {\n const view = new DataView(arrayBuffer);\n const {header, headerEndOffset} = parseHeader(view);\n\n const numpyType = header.descr;\n const ArrayType = DTYPES[numpyType.slice(1, 3)];\n if (!ArrayType) {\n throw new Error(`Unimplemented type ${numpyType}`);\n }\n\n const nArrayElements = header.shape?.reduce((a: number, b: number): number => a * b);\n const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;\n\n if (arrayBuffer.byteLength < headerEndOffset + arrayByteLength) {\n throw new Error('Buffer overflow');\n }\n const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));\n\n // Swap endianness if needed\n if ((numpyType[0] === '>' && LITTLE_ENDIAN_OS) || (numpyType[0] === '<' && !LITTLE_ENDIAN_OS)) {\n throw new Error('Incorrect endianness');\n }\n\n return {\n data,\n header\n };\n}\n\n/**\n * Parse NPY header\n *\n * @param view\n * @return\n */\nfunction parseHeader(view: DataView): {header: NumpyHeader; headerEndOffset: number} {\n const majorVersion = view.getUint8(6);\n // const minorVersion = view.getUint8(7);\n\n let offset = 8;\n let headerLength: number;\n if (majorVersion >= 2) {\n headerLength = view.getUint32(offset, true);\n offset += 4;\n } else {\n headerLength = view.getUint16(offset, true);\n offset += 2;\n }\n\n const encoding = majorVersion <= 2 ? 'latin1' : 'utf-8';\n const decoder = new TextDecoder(encoding);\n const headerArray = new Uint8Array(view.buffer, offset, headerLength);\n const headerText = decoder.decode(headerArray);\n offset += headerLength;\n\n const header = JSON.parse(\n headerText\n .replace(/'/g, '\"')\n .replace('False', 'false')\n .replace('(', '[')\n .replace(/,*\\),*/g, ']')\n );\n\n return {header, headerEndOffset: offset};\n}\n"],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isPVR = isPVR;
7
+ exports.parsePVR = parsePVR;
8
+ var _glExtensions = require("../gl-extensions");
9
+ var _extractMipmapImages = require("../utils/extract-mipmap-images");
10
+ var PVR_CONSTANTS = {
11
+ MAGIC_NUMBER: 0x03525650,
12
+ MAGIC_NUMBER_EXTRA: 0x50565203,
13
+ HEADER_LENGTH: 13,
14
+ HEADER_SIZE: 52,
15
+ MAGIC_NUMBER_INDEX: 0,
16
+ PIXEL_FORMAT_INDEX: 2,
17
+ COLOUR_SPACE_INDEX: 4,
18
+ HEIGHT_INDEX: 6,
19
+ WIDTH_INDEX: 7,
20
+ MIPMAPCOUNT_INDEX: 11,
21
+ METADATA_SIZE_INDEX: 12
22
+ };
23
+ var PVR_PIXEL_FORMATS = {
24
+ 0: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
25
+ 1: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
26
+ 2: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
27
+ 3: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
28
+ 6: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],
29
+ 7: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],
30
+ 9: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],
31
+ 11: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],
32
+ 22: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],
33
+ 23: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],
34
+ 24: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
35
+ 25: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],
36
+ 26: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],
37
+ 27: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],
38
+ 28: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],
39
+ 29: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],
40
+ 30: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],
41
+ 31: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],
42
+ 32: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],
43
+ 33: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],
44
+ 34: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],
45
+ 35: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],
46
+ 36: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],
47
+ 37: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],
48
+ 38: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],
49
+ 39: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],
50
+ 40: [_glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR, _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]
51
+ };
52
+ var PVR_SIZE_FUNCTIONS = {
53
+ 0: pvrtc2bppSize,
54
+ 1: pvrtc2bppSize,
55
+ 2: pvrtc4bppSize,
56
+ 3: pvrtc4bppSize,
57
+ 6: dxtEtcSmallSize,
58
+ 7: dxtEtcSmallSize,
59
+ 9: dxtEtcAstcBigSize,
60
+ 11: dxtEtcAstcBigSize,
61
+ 22: dxtEtcSmallSize,
62
+ 23: dxtEtcAstcBigSize,
63
+ 24: dxtEtcSmallSize,
64
+ 25: dxtEtcSmallSize,
65
+ 26: dxtEtcAstcBigSize,
66
+ 27: dxtEtcAstcBigSize,
67
+ 28: atc5x4Size,
68
+ 29: atc5x5Size,
69
+ 30: atc6x5Size,
70
+ 31: atc6x6Size,
71
+ 32: atc8x5Size,
72
+ 33: atc8x6Size,
73
+ 34: atc8x8Size,
74
+ 35: atc10x5Size,
75
+ 36: atc10x6Size,
76
+ 37: atc10x8Size,
77
+ 38: atc10x10Size,
78
+ 39: atc12x10Size,
79
+ 40: atc12x12Size
80
+ };
81
+ function isPVR(data) {
82
+ var header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
83
+ var version = header[PVR_CONSTANTS.MAGIC_NUMBER_INDEX];
84
+ return version === PVR_CONSTANTS.MAGIC_NUMBER || version === PVR_CONSTANTS.MAGIC_NUMBER_EXTRA;
85
+ }
86
+ function parsePVR(data) {
87
+ var header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
88
+ var pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];
89
+ var colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];
90
+ var pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];
91
+ var internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];
92
+ var sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];
93
+ var mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];
94
+ var width = header[PVR_CONSTANTS.WIDTH_INDEX];
95
+ var height = header[PVR_CONSTANTS.HEIGHT_INDEX];
96
+ var dataOffset = PVR_CONSTANTS.HEADER_SIZE + header[PVR_CONSTANTS.METADATA_SIZE_INDEX];
97
+ var image = new Uint8Array(data, dataOffset);
98
+ return (0, _extractMipmapImages.extractMipmapImages)(image, {
99
+ mipMapLevels: mipMapLevels,
100
+ width: width,
101
+ height: height,
102
+ sizeFunction: sizeFunction,
103
+ internalFormat: internalFormat
104
+ });
105
+ }
106
+ function pvrtc2bppSize(width, height) {
107
+ width = Math.max(width, 16);
108
+ height = Math.max(height, 8);
109
+ return width * height / 4;
110
+ }
111
+ function pvrtc4bppSize(width, height) {
112
+ width = Math.max(width, 8);
113
+ height = Math.max(height, 8);
114
+ return width * height / 2;
115
+ }
116
+ function dxtEtcSmallSize(width, height) {
117
+ return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;
118
+ }
119
+ function dxtEtcAstcBigSize(width, height) {
120
+ return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;
121
+ }
122
+ function atc5x4Size(width, height) {
123
+ return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16;
124
+ }
125
+ function atc5x5Size(width, height) {
126
+ return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16;
127
+ }
128
+ function atc6x5Size(width, height) {
129
+ return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16;
130
+ }
131
+ function atc6x6Size(width, height) {
132
+ return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16;
133
+ }
134
+ function atc8x5Size(width, height) {
135
+ return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16;
136
+ }
137
+ function atc8x6Size(width, height) {
138
+ return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16;
139
+ }
140
+ function atc8x8Size(width, height) {
141
+ return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16;
142
+ }
143
+ function atc10x5Size(width, height) {
144
+ return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16;
145
+ }
146
+ function atc10x6Size(width, height) {
147
+ return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16;
148
+ }
149
+ function atc10x8Size(width, height) {
150
+ return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16;
151
+ }
152
+ function atc10x10Size(width, height) {
153
+ return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16;
154
+ }
155
+ function atc12x10Size(width, height) {
156
+ return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16;
157
+ }
158
+ function atc12x12Size(width, height) {
159
+ return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;
160
+ }
161
+ //# sourceMappingURL=parse-pvr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-pvr.js","names":["_glExtensions","require","_extractMipmapImages","PVR_CONSTANTS","MAGIC_NUMBER","MAGIC_NUMBER_EXTRA","HEADER_LENGTH","HEADER_SIZE","MAGIC_NUMBER_INDEX","PIXEL_FORMAT_INDEX","COLOUR_SPACE_INDEX","HEIGHT_INDEX","WIDTH_INDEX","MIPMAPCOUNT_INDEX","METADATA_SIZE_INDEX","PVR_PIXEL_FORMATS","GL_EXTENSIONS_CONSTANTS","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_RGBA_ASTC_4X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR","COMPRESSED_RGBA_ASTC_5X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR","COMPRESSED_RGBA_ASTC_6X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR","COMPRESSED_RGBA_ASTC_6X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR","COMPRESSED_RGBA_ASTC_8X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR","COMPRESSED_RGBA_ASTC_8X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR","COMPRESSED_RGBA_ASTC_8X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR","COMPRESSED_RGBA_ASTC_10X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR","COMPRESSED_RGBA_ASTC_10X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR","COMPRESSED_RGBA_ASTC_10X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR","COMPRESSED_RGBA_ASTC_10X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR","COMPRESSED_RGBA_ASTC_12X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR","COMPRESSED_RGBA_ASTC_12X12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR","PVR_SIZE_FUNCTIONS","pvrtc2bppSize","pvrtc4bppSize","dxtEtcSmallSize","dxtEtcAstcBigSize","atc5x4Size","atc5x5Size","atc6x5Size","atc6x6Size","atc8x5Size","atc8x6Size","atc8x8Size","atc10x5Size","atc10x6Size","atc10x8Size","atc10x10Size","atc12x10Size","atc12x12Size","isPVR","data","header","Uint32Array","version","parsePVR","pvrFormat","colourSpace","pixelFormats","internalFormat","length","sizeFunction","mipMapLevels","width","height","dataOffset","image","Uint8Array","extractMipmapImages","Math","max","floor"],"sources":["../../../../src/lib/parsers/parse-pvr.ts"],"sourcesContent":["/* eslint-disable camelcase */\n// Forked from PicoGL: https://github.com/tsherif/picogl.js/blob/master/examples/utils/utils.js\n// Copyright (c) 2017 Tarek Sherif, The MIT License (MIT)\n\nimport type {TextureLevel} from '@loaders.gl/schema';\nimport {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\nimport {extractMipmapImages} from '../utils/extract-mipmap-images';\n\nconst PVR_CONSTANTS: Record<string, number> = {\n MAGIC_NUMBER: 0x03525650,\n MAGIC_NUMBER_EXTRA: 0x50565203,\n HEADER_LENGTH: 13,\n HEADER_SIZE: 52,\n MAGIC_NUMBER_INDEX: 0,\n PIXEL_FORMAT_INDEX: 2,\n COLOUR_SPACE_INDEX: 4,\n HEIGHT_INDEX: 6,\n WIDTH_INDEX: 7,\n MIPMAPCOUNT_INDEX: 11,\n METADATA_SIZE_INDEX: 12\n};\n\nconst PVR_PIXEL_FORMATS: Record<number, number[]> = {\n 0: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],\n 1: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],\n 2: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],\n 3: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],\n 6: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],\n 7: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],\n 9: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],\n 11: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],\n 22: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],\n 23: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],\n 24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],\n 25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],\n 26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],\n 27: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR\n ],\n 28: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR\n ],\n 29: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR\n ],\n 30: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR\n ],\n 31: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR\n ],\n 32: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR\n ],\n 33: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR\n ],\n 34: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR\n ],\n 35: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR\n ],\n 36: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR\n ],\n 37: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR\n ],\n 38: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR\n ],\n 39: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR\n ],\n 40: [\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR,\n GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR\n ]\n};\n\nconst PVR_SIZE_FUNCTIONS: Record<number, (width: number, height: number) => number> = {\n 0: pvrtc2bppSize,\n 1: pvrtc2bppSize,\n 2: pvrtc4bppSize,\n 3: pvrtc4bppSize,\n 6: dxtEtcSmallSize,\n 7: dxtEtcSmallSize,\n 9: dxtEtcAstcBigSize,\n 11: dxtEtcAstcBigSize,\n 22: dxtEtcSmallSize,\n 23: dxtEtcAstcBigSize,\n 24: dxtEtcSmallSize,\n 25: dxtEtcSmallSize,\n 26: dxtEtcAstcBigSize,\n 27: dxtEtcAstcBigSize,\n 28: atc5x4Size,\n 29: atc5x5Size,\n 30: atc6x5Size,\n 31: atc6x6Size,\n 32: atc8x5Size,\n 33: atc8x6Size,\n 34: atc8x8Size,\n 35: atc10x5Size,\n 36: atc10x6Size,\n 37: atc10x8Size,\n 38: atc10x10Size,\n 39: atc12x10Size,\n 40: atc12x12Size\n};\n\n/**\n * Check if data is in \"PVR\" format by its magic number\n * @param data - binary data of compressed texture\n * @returns true - data in \"PVR\" format, else - false\n */\nexport function isPVR(data: ArrayBuffer): boolean {\n const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);\n const version = header[PVR_CONSTANTS.MAGIC_NUMBER_INDEX];\n\n return version === PVR_CONSTANTS.MAGIC_NUMBER || version === PVR_CONSTANTS.MAGIC_NUMBER_EXTRA;\n}\n\n/**\n * Parse texture data as \"PVR\" format\n * @param data - binary data of compressed texture\n * @returns Array of the texture levels\n * @see http://cdn.imgtec.com/sdk-documentation/PVR+File+Format.Specification.pdf\n */\nexport function parsePVR(data: ArrayBuffer): TextureLevel[] {\n const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);\n\n const pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];\n const colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];\n const pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];\n const internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];\n\n const sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];\n\n const mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];\n\n const width = header[PVR_CONSTANTS.WIDTH_INDEX];\n const height = header[PVR_CONSTANTS.HEIGHT_INDEX];\n\n const dataOffset = PVR_CONSTANTS.HEADER_SIZE + header[PVR_CONSTANTS.METADATA_SIZE_INDEX];\n\n const image = new Uint8Array(data, dataOffset);\n\n return extractMipmapImages(image, {\n mipMapLevels,\n width,\n height,\n sizeFunction,\n internalFormat\n });\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/\nfunction pvrtc2bppSize(width: number, height: number): number {\n width = Math.max(width, 16);\n height = Math.max(height, 8);\n\n return (width * height) / 4;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/\nfunction pvrtc4bppSize(width: number, height: number): number {\n width = Math.max(width, 8);\n height = Math.max(height, 8);\n\n return (width * height) / 2;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/\n// Size for:\n// COMPRESSED_RGB_S3TC_DXT1_EXT\n// COMPRESSED_R11_EAC\n// COMPRESSED_SIGNED_R11_EAC\n// COMPRESSED_RGB8_ETC2\n// COMPRESSED_SRGB8_ETC2\n// COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2\n// COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2\nfunction dxtEtcSmallSize(width: number, height: number): number {\n return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\n// Size for:\n// COMPRESSED_RGBA_S3TC_DXT3_EXT\n// COMPRESSED_RGBA_S3TC_DXT5_EXT\n// COMPRESSED_RG11_EAC\n// COMPRESSED_SIGNED_RG11_EAC\n// COMPRESSED_RGBA8_ETC2_EAC\n// COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\n// COMPRESSED_RGBA_ASTC_4x4_KHR\nfunction dxtEtcAstcBigSize(width: number, height: number): number {\n return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc5x4Size(width: number, height: number): number {\n return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc5x5Size(width: number, height: number): number {\n return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc6x5Size(width: number, height: number): number {\n return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc6x6Size(width: number, height: number): number {\n return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x5Size(width: number, height: number): number {\n return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x6Size(width: number, height: number): number {\n return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x8Size(width: number, height: number): number {\n return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x5Size(width: number, height: number): number {\n return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x6Size(width: number, height: number): number {\n return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x8Size(width: number, height: number): number {\n return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x10Size(width: number, height: number): number {\n return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc12x10Size(width: number, height: number): number {\n return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc12x12Size(width: number, height: number): number {\n return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;\n}\n"],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.asyncDeepMap = asyncDeepMap;
8
+ exports.mapSubtree = mapSubtree;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
+ var isObject = function isObject(value) {
13
+ return value && (0, _typeof2.default)(value) === 'object';
14
+ };
15
+ function asyncDeepMap(_x, _x2) {
16
+ return _asyncDeepMap.apply(this, arguments);
17
+ }
18
+ function _asyncDeepMap() {
19
+ _asyncDeepMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tree, func) {
20
+ var options,
21
+ _args = arguments;
22
+ return _regenerator.default.wrap(function _callee$(_context) {
23
+ while (1) switch (_context.prev = _context.next) {
24
+ case 0:
25
+ options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};
26
+ _context.next = 3;
27
+ return mapSubtree(tree, func, options);
28
+ case 3:
29
+ return _context.abrupt("return", _context.sent);
30
+ case 4:
31
+ case "end":
32
+ return _context.stop();
33
+ }
34
+ }, _callee);
35
+ }));
36
+ return _asyncDeepMap.apply(this, arguments);
37
+ }
38
+ function mapSubtree(_x3, _x4, _x5) {
39
+ return _mapSubtree.apply(this, arguments);
40
+ }
41
+ function _mapSubtree() {
42
+ _mapSubtree = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(object, func, options) {
43
+ var url;
44
+ return _regenerator.default.wrap(function _callee2$(_context2) {
45
+ while (1) switch (_context2.prev = _context2.next) {
46
+ case 0:
47
+ if (!Array.isArray(object)) {
48
+ _context2.next = 4;
49
+ break;
50
+ }
51
+ _context2.next = 3;
52
+ return mapArray(object, func, options);
53
+ case 3:
54
+ return _context2.abrupt("return", _context2.sent);
55
+ case 4:
56
+ if (!isObject(object)) {
57
+ _context2.next = 8;
58
+ break;
59
+ }
60
+ _context2.next = 7;
61
+ return mapObject(object, func, options);
62
+ case 7:
63
+ return _context2.abrupt("return", _context2.sent);
64
+ case 8:
65
+ url = object;
66
+ _context2.next = 11;
67
+ return func(url, options);
68
+ case 11:
69
+ return _context2.abrupt("return", _context2.sent);
70
+ case 12:
71
+ case "end":
72
+ return _context2.stop();
73
+ }
74
+ }, _callee2);
75
+ }));
76
+ return _mapSubtree.apply(this, arguments);
77
+ }
78
+ function mapObject(_x6, _x7, _x8) {
79
+ return _mapObject.apply(this, arguments);
80
+ }
81
+ function _mapObject() {
82
+ _mapObject = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(object, func, options) {
83
+ var promises, values, _loop, key;
84
+ return _regenerator.default.wrap(function _callee3$(_context4) {
85
+ while (1) switch (_context4.prev = _context4.next) {
86
+ case 0:
87
+ promises = [];
88
+ values = {};
89
+ _loop = _regenerator.default.mark(function _loop(key) {
90
+ var url, promise;
91
+ return _regenerator.default.wrap(function _loop$(_context3) {
92
+ while (1) switch (_context3.prev = _context3.next) {
93
+ case 0:
94
+ url = object[key];
95
+ promise = mapSubtree(url, func, options).then(function (value) {
96
+ values[key] = value;
97
+ });
98
+ promises.push(promise);
99
+ case 3:
100
+ case "end":
101
+ return _context3.stop();
102
+ }
103
+ }, _loop);
104
+ });
105
+ _context4.t0 = _regenerator.default.keys(object);
106
+ case 4:
107
+ if ((_context4.t1 = _context4.t0()).done) {
108
+ _context4.next = 9;
109
+ break;
110
+ }
111
+ key = _context4.t1.value;
112
+ return _context4.delegateYield(_loop(key), "t2", 7);
113
+ case 7:
114
+ _context4.next = 4;
115
+ break;
116
+ case 9:
117
+ _context4.next = 11;
118
+ return Promise.all(promises);
119
+ case 11:
120
+ return _context4.abrupt("return", values);
121
+ case 12:
122
+ case "end":
123
+ return _context4.stop();
124
+ }
125
+ }, _callee3);
126
+ }));
127
+ return _mapObject.apply(this, arguments);
128
+ }
129
+ function mapArray(_x9, _x10) {
130
+ return _mapArray.apply(this, arguments);
131
+ }
132
+ function _mapArray() {
133
+ _mapArray = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(urlArray, func) {
134
+ var options,
135
+ promises,
136
+ _args5 = arguments;
137
+ return _regenerator.default.wrap(function _callee4$(_context5) {
138
+ while (1) switch (_context5.prev = _context5.next) {
139
+ case 0:
140
+ options = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : {};
141
+ promises = urlArray.map(function (url) {
142
+ return mapSubtree(url, func, options);
143
+ });
144
+ _context5.next = 4;
145
+ return Promise.all(promises);
146
+ case 4:
147
+ return _context5.abrupt("return", _context5.sent);
148
+ case 5:
149
+ case "end":
150
+ return _context5.stop();
151
+ }
152
+ }, _callee4);
153
+ }));
154
+ return _mapArray.apply(this, arguments);
155
+ }
156
+ //# sourceMappingURL=async-deep-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-deep-map.js","names":["isObject","value","_typeof2","default","asyncDeepMap","_x","_x2","_asyncDeepMap","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","tree","func","options","_args","wrap","_callee$","_context","prev","next","length","undefined","mapSubtree","abrupt","sent","stop","_x3","_x4","_x5","_mapSubtree","_callee2","object","url","_callee2$","_context2","Array","isArray","mapArray","mapObject","_x6","_x7","_x8","_mapObject","_callee3","promises","values","_loop","key","_callee3$","_context4","promise","_loop$","_context3","then","push","t0","keys","t1","done","delegateYield","Promise","all","_x9","_x10","_mapArray","_callee4","urlArray","_args5","_callee4$","_context5","map"],"sources":["../../../../src/lib/texture-api/async-deep-map.ts"],"sourcesContent":["// loaders.gl, MIT license\n/*\nAsynchronously maps a deep structure of values (e.g. objects and arrays of urls).\n\nE.g. a mipmapped cubemap\n{\n [CUBE_FACE_FRONT]: [\n \"image-front-0.jpg\",\n \"image-front-1.jpg\",\n \"image-front-2.jpg\",\n ],\n [CUBE_MAP_BACK]: [\n ...\n ]\n}\n*/\nexport type Options = Record<string, any>;\nexport type Func = (url: string, options: Options) => unknown;\n\nconst isObject = (value: any): boolean => value && typeof value === 'object';\n\n// Loads a deep structure of urls (objects and arrays of urls)\n// Returns an object with six key-value pairs containing the images (or image mip arrays)\n// for each cube face\nexport async function asyncDeepMap(tree: unknown, func: Func, options: Options = {}) {\n return await mapSubtree(tree, func, options);\n}\n\nexport async function mapSubtree(object: unknown, func: Func, options: Options) {\n if (Array.isArray(object)) {\n return await mapArray(object, func, options);\n }\n\n if (isObject(object)) {\n return await mapObject(object as object, func, options);\n }\n\n // TODO - ignore non-urls, non-arraybuffers?\n const url = object as string;\n return await func(url, options);\n}\n\n// HELPERS\n\nasync function mapObject(\n object: Record<string, any>,\n func: Func,\n options: Options\n): Promise<Record<string, any>> {\n const promises: Promise<any>[] = [];\n const values: Record<string, any> = {};\n\n for (const key in object) {\n const url = object[key];\n const promise = mapSubtree(url, func, options).then((value) => {\n values[key] = value;\n });\n promises.push(promise);\n }\n\n await Promise.all(promises);\n\n return values;\n}\n\nasync function mapArray(urlArray: string[], func: Func, options = {}): Promise<any[]> {\n const promises = urlArray.map((url) => mapSubtree(url, func, options));\n return await Promise.all(promises);\n}\n"],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.deepLoad = deepLoad;
8
+ exports.shallowLoad = shallowLoad;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _asyncDeepMap = require("./async-deep-map");
12
+ function deepLoad(_x, _x2, _x3) {
13
+ return _deepLoad.apply(this, arguments);
14
+ }
15
+ function _deepLoad() {
16
+ _deepLoad = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(urlTree, load, options) {
17
+ return _regenerator.default.wrap(function _callee$(_context) {
18
+ while (1) switch (_context.prev = _context.next) {
19
+ case 0:
20
+ _context.next = 2;
21
+ return (0, _asyncDeepMap.asyncDeepMap)(urlTree, function (url) {
22
+ return shallowLoad(url, load, options);
23
+ });
24
+ case 2:
25
+ return _context.abrupt("return", _context.sent);
26
+ case 3:
27
+ case "end":
28
+ return _context.stop();
29
+ }
30
+ }, _callee);
31
+ }));
32
+ return _deepLoad.apply(this, arguments);
33
+ }
34
+ function shallowLoad(_x4, _x5, _x6) {
35
+ return _shallowLoad.apply(this, arguments);
36
+ }
37
+ function _shallowLoad() {
38
+ _shallowLoad = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(url, load, options) {
39
+ var response, arrayBuffer;
40
+ return _regenerator.default.wrap(function _callee2$(_context2) {
41
+ while (1) switch (_context2.prev = _context2.next) {
42
+ case 0:
43
+ _context2.next = 2;
44
+ return fetch(url, options.fetch);
45
+ case 2:
46
+ response = _context2.sent;
47
+ _context2.next = 5;
48
+ return response.arrayBuffer();
49
+ case 5:
50
+ arrayBuffer = _context2.sent;
51
+ _context2.next = 8;
52
+ return load(arrayBuffer, options);
53
+ case 8:
54
+ return _context2.abrupt("return", _context2.sent);
55
+ case 9:
56
+ case "end":
57
+ return _context2.stop();
58
+ }
59
+ }, _callee2);
60
+ }));
61
+ return _shallowLoad.apply(this, arguments);
62
+ }
63
+ //# sourceMappingURL=deep-load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-load.js","names":["_asyncDeepMap","require","deepLoad","_x","_x2","_x3","_deepLoad","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","urlTree","load","options","wrap","_callee$","_context","prev","next","asyncDeepMap","url","shallowLoad","abrupt","sent","stop","_x4","_x5","_x6","_shallowLoad","_callee2","response","arrayBuffer","_callee2$","_context2","fetch"],"sources":["../../../../src/lib/texture-api/deep-load.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {asyncDeepMap} from './async-deep-map';\n\nexport type LoadOptions = Record<string, any>;\nexport type Load = (data: ArrayBuffer, options: Record<string, any>) => Promise<any>;\n\nexport async function deepLoad(urlTree: unknown, load: Load, options: LoadOptions) {\n return await asyncDeepMap(urlTree, (url: string) => shallowLoad(url, load, options));\n}\n\nexport async function shallowLoad(url: string, load: Load, options: LoadOptions): Promise<any> {\n // console.error('loading', url);\n const response = await fetch(url, options.fetch);\n const arrayBuffer = await response.arrayBuffer();\n return await load(arrayBuffer, options);\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAA8C,SAKxBC,QAAQA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,UAAA;EAAAA,SAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAvB,SAAAC,QAAwBC,OAAgB,EAAEC,IAAU,EAAEC,OAAoB;IAAA,OAAAL,YAAA,CAAAD,OAAA,CAAAO,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OAClE,IAAAC,0BAAY,EAACR,OAAO,EAAE,UAACS,GAAW;YAAA,OAAKC,WAAW,CAACD,GAAG,EAAER,IAAI,EAAEC,OAAO,CAAC;UAAA,EAAC;QAAA;UAAA,OAAAG,QAAA,CAAAM,MAAA,WAAAN,QAAA,CAAAO,IAAA;QAAA;QAAA;UAAA,OAAAP,QAAA,CAAAQ,IAAA;MAAA;IAAA,GAAAd,OAAA;EAAA,CACrF;EAAA,OAAAP,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEqBgB,WAAWA,CAAAI,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,YAAA,CAAAxB,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAuB,aAAA;EAAAA,YAAA,OAAAtB,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAA1B,SAAAoB,SAA2BT,GAAW,EAAER,IAAU,EAAEC,OAAoB;IAAA,IAAAiB,QAAA,EAAAC,WAAA;IAAA,OAAAvB,YAAA,CAAAD,OAAA,CAAAO,IAAA,UAAAkB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAhB,IAAA,GAAAgB,SAAA,CAAAf,IAAA;QAAA;UAAAe,SAAA,CAAAf,IAAA;UAAA,OAEtDgB,KAAK,CAACd,GAAG,EAAEP,OAAO,CAACqB,KAAK,CAAC;QAAA;UAA1CJ,QAAQ,GAAAG,SAAA,CAAAV,IAAA;UAAAU,SAAA,CAAAf,IAAA;UAAA,OACYY,QAAQ,CAACC,WAAW,CAAC,CAAC;QAAA;UAA1CA,WAAW,GAAAE,SAAA,CAAAV,IAAA;UAAAU,SAAA,CAAAf,IAAA;UAAA,OACJN,IAAI,CAACmB,WAAW,EAAElB,OAAO,CAAC;QAAA;UAAA,OAAAoB,SAAA,CAAAX,MAAA,WAAAW,SAAA,CAAAV,IAAA;QAAA;QAAA;UAAA,OAAAU,SAAA,CAAAT,IAAA;MAAA;IAAA,GAAAK,QAAA;EAAA,CACxC;EAAA,OAAAD,YAAA,CAAAxB,KAAA,OAAAC,SAAA;AAAA"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.generateUrl = generateUrl;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _loaderUtils = require("@loaders.gl/loader-utils");
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12
+ function generateUrl(getUrl, options, urlOptions) {
13
+ var url = typeof getUrl === 'function' ? getUrl(_objectSpread(_objectSpread({}, options), urlOptions)) : getUrl;
14
+ var baseUrl = options.baseUrl;
15
+ if (baseUrl) {
16
+ url = baseUrl[baseUrl.length - 1] === '/' ? "".concat(baseUrl).concat(url) : "".concat(baseUrl, "/").concat(url);
17
+ }
18
+ return (0, _loaderUtils.resolvePath)(url);
19
+ }
20
+ //# sourceMappingURL=generate-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-url.js","names":["_loaderUtils","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","generateUrl","getUrl","options","urlOptions","url","baseUrl","concat","resolvePath"],"sources":["../../../../src/lib/texture-api/generate-url.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {resolvePath} from '@loaders.gl/loader-utils';\nimport type {GetUrl, UrlOptions} from './texture-api-types';\n\n// Generate a url by calling getUrl with mix of options, applying options.baseUrl\nexport function generateUrl(\n getUrl: string | GetUrl,\n options: UrlOptions,\n urlOptions: Record<string, any>\n): string {\n // Get url\n let url = typeof getUrl === 'function' ? getUrl({...options, ...urlOptions}) : getUrl;\n\n // Apply options.baseUrl\n const baseUrl = options.baseUrl;\n if (baseUrl) {\n url = baseUrl[baseUrl.length - 1] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;\n }\n\n return resolvePath(url);\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAqD,SAAAC,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAI9C,SAASY,WAAWA,CACzBC,MAAuB,EACvBC,OAAmB,EACnBC,UAA+B,EACvB;EAER,IAAIC,GAAG,GAAG,OAAOH,MAAM,KAAK,UAAU,GAAGA,MAAM,CAAAd,aAAA,CAAAA,aAAA,KAAKe,OAAO,GAAKC,UAAU,CAAC,CAAC,GAAGF,MAAM;EAGrF,IAAMI,OAAO,GAAGH,OAAO,CAACG,OAAO;EAC/B,IAAIA,OAAO,EAAE;IACXD,GAAG,GAAGC,OAAO,CAACA,OAAO,CAACd,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,MAAAe,MAAA,CAAMD,OAAO,EAAAC,MAAA,CAAGF,GAAG,OAAAE,MAAA,CAAQD,OAAO,OAAAC,MAAA,CAAIF,GAAG,CAAE;EACtF;EAEA,OAAO,IAAAG,wBAAW,EAACH,GAAG,CAAC;AACzB"}