@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
@@ -1,260 +1,245 @@
1
- import { loadBasisEncoderModule, loadBasisTrascoderModule } from './basis-module-loader';
2
- import { GL_EXTENSIONS_CONSTANTS } from '../gl-extensions';
3
- import { getSupportedGPUTextureFormats } from '../utils/texture-formats';
4
- import { isKTX } from './parse-ktx';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectSupportedBasisFormat = void 0;
4
+ const basis_module_loader_1 = require("./basis-module-loader");
5
+ const gl_extensions_1 = require("../gl-extensions");
6
+ const texture_formats_1 = require("../utils/texture-formats");
7
+ const parse_ktx_1 = require("./parse-ktx");
5
8
  const OutputFormat = {
6
- etc1: {
7
- basisFormat: 0,
8
- compressed: true,
9
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
10
- },
11
- etc2: {
12
- basisFormat: 1,
13
- compressed: true
14
- },
15
- bc1: {
16
- basisFormat: 2,
17
- compressed: true,
18
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
19
- },
20
- bc3: {
21
- basisFormat: 3,
22
- compressed: true,
23
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
24
- },
25
- bc4: {
26
- basisFormat: 4,
27
- compressed: true
28
- },
29
- bc5: {
30
- basisFormat: 5,
31
- compressed: true
32
- },
33
- 'bc7-m6-opaque-only': {
34
- basisFormat: 6,
35
- compressed: true
36
- },
37
- 'bc7-m5': {
38
- basisFormat: 7,
39
- compressed: true
40
- },
41
- 'pvrtc1-4-rgb': {
42
- basisFormat: 8,
43
- compressed: true,
44
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
45
- },
46
- 'pvrtc1-4-rgba': {
47
- basisFormat: 9,
48
- compressed: true,
49
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
50
- },
51
- 'astc-4x4': {
52
- basisFormat: 10,
53
- compressed: true,
54
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
55
- },
56
- 'atc-rgb': {
57
- basisFormat: 11,
58
- compressed: true
59
- },
60
- 'atc-rgba-interpolated-alpha': {
61
- basisFormat: 12,
62
- compressed: true
63
- },
64
- rgba32: {
65
- basisFormat: 13,
66
- compressed: false
67
- },
68
- rgb565: {
69
- basisFormat: 14,
70
- compressed: false
71
- },
72
- bgr565: {
73
- basisFormat: 15,
74
- compressed: false
75
- },
76
- rgba4444: {
77
- basisFormat: 16,
78
- compressed: false
79
- }
9
+ etc1: {
10
+ basisFormat: 0,
11
+ compressed: true,
12
+ format: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
13
+ },
14
+ etc2: { basisFormat: 1, compressed: true },
15
+ bc1: {
16
+ basisFormat: 2,
17
+ compressed: true,
18
+ format: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
19
+ },
20
+ bc3: {
21
+ basisFormat: 3,
22
+ compressed: true,
23
+ format: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
24
+ },
25
+ bc4: { basisFormat: 4, compressed: true },
26
+ bc5: { basisFormat: 5, compressed: true },
27
+ 'bc7-m6-opaque-only': { basisFormat: 6, compressed: true },
28
+ 'bc7-m5': { basisFormat: 7, compressed: true },
29
+ 'pvrtc1-4-rgb': {
30
+ basisFormat: 8,
31
+ compressed: true,
32
+ format: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
33
+ },
34
+ 'pvrtc1-4-rgba': {
35
+ basisFormat: 9,
36
+ compressed: true,
37
+ format: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
38
+ },
39
+ 'astc-4x4': {
40
+ basisFormat: 10,
41
+ compressed: true,
42
+ format: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
43
+ },
44
+ 'atc-rgb': { basisFormat: 11, compressed: true },
45
+ 'atc-rgba-interpolated-alpha': { basisFormat: 12, compressed: true },
46
+ rgba32: { basisFormat: 13, compressed: false },
47
+ rgb565: { basisFormat: 14, compressed: false },
48
+ bgr565: { basisFormat: 15, compressed: false },
49
+ rgba4444: { basisFormat: 16, compressed: false }
80
50
  };
81
- export default async function parseBasis(data, options) {
82
- if (options.basis.containerFormat === 'auto') {
83
- if (isKTX(data)) {
84
- const fileConstructors = await loadBasisEncoderModule(options);
85
- return parseKTX2File(fileConstructors.KTX2File, data, options);
51
+ /**
52
+ * parse data with a Binomial Basis_Universal module
53
+ * @param data
54
+ * @param options
55
+ * @returns compressed texture data
56
+ */
57
+ async function parseBasis(data, options) {
58
+ if (options.basis.containerFormat === 'auto') {
59
+ if ((0, parse_ktx_1.isKTX)(data)) {
60
+ const fileConstructors = await (0, basis_module_loader_1.loadBasisEncoderModule)(options);
61
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
62
+ }
63
+ const { BasisFile } = await (0, basis_module_loader_1.loadBasisTrascoderModule)(options);
64
+ return parseBasisFile(BasisFile, data, options);
86
65
  }
87
-
88
- const {
89
- BasisFile
90
- } = await loadBasisTrascoderModule(options);
91
- return parseBasisFile(BasisFile, data, options);
92
- }
93
-
94
- switch (options.basis.module) {
95
- case 'encoder':
96
- const fileConstructors = await loadBasisEncoderModule(options);
97
-
98
- switch (options.basis.containerFormat) {
99
- case 'ktx2':
100
- return parseKTX2File(fileConstructors.KTX2File, data, options);
101
-
102
- case 'basis':
66
+ switch (options.basis.module) {
67
+ case 'encoder':
68
+ const fileConstructors = await (0, basis_module_loader_1.loadBasisEncoderModule)(options);
69
+ switch (options.basis.containerFormat) {
70
+ case 'ktx2':
71
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
72
+ case 'basis':
73
+ default:
74
+ return parseBasisFile(fileConstructors.BasisFile, data, options);
75
+ }
76
+ case 'transcoder':
103
77
  default:
104
- return parseBasisFile(fileConstructors.BasisFile, data, options);
105
- }
106
-
107
- case 'transcoder':
108
- default:
109
- const {
110
- BasisFile
111
- } = await loadBasisTrascoderModule(options);
112
- return parseBasisFile(BasisFile, data, options);
113
- }
78
+ const { BasisFile } = await (0, basis_module_loader_1.loadBasisTrascoderModule)(options);
79
+ return parseBasisFile(BasisFile, data, options);
80
+ }
114
81
  }
115
-
82
+ exports.default = parseBasis;
83
+ /**
84
+ * Parse *.basis file data
85
+ * @param BasisFile - initialized transcoder module
86
+ * @param data
87
+ * @param options
88
+ * @returns compressed texture data
89
+ */
116
90
  function parseBasisFile(BasisFile, data, options) {
117
- const basisFile = new BasisFile(new Uint8Array(data));
118
-
119
- try {
120
- if (!basisFile.startTranscoding()) {
121
- throw new Error('Failed to start basis transcoding');
91
+ const basisFile = new BasisFile(new Uint8Array(data));
92
+ try {
93
+ if (!basisFile.startTranscoding()) {
94
+ throw new Error('Failed to start basis transcoding');
95
+ }
96
+ const imageCount = basisFile.getNumImages();
97
+ const images = [];
98
+ for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {
99
+ const levelsCount = basisFile.getNumLevels(imageIndex);
100
+ const levels = [];
101
+ for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
102
+ levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));
103
+ }
104
+ images.push(levels);
105
+ }
106
+ return images;
122
107
  }
123
-
124
- const imageCount = basisFile.getNumImages();
125
- const images = [];
126
-
127
- for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {
128
- const levelsCount = basisFile.getNumLevels(imageIndex);
129
- const levels = [];
130
-
131
- for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
132
- levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));
133
- }
134
-
135
- images.push(levels);
108
+ finally {
109
+ basisFile.close();
110
+ basisFile.delete();
136
111
  }
137
-
138
- return images;
139
- } finally {
140
- basisFile.close();
141
- basisFile.delete();
142
- }
143
112
  }
144
-
113
+ /**
114
+ * Parse the particular level image of a basis file
115
+ * @param basisFile
116
+ * @param imageIndex
117
+ * @param levelIndex
118
+ * @param options
119
+ * @returns compressed texture data
120
+ */
145
121
  function transcodeImage(basisFile, imageIndex, levelIndex, options) {
146
- const width = basisFile.getImageWidth(imageIndex, levelIndex);
147
- const height = basisFile.getImageHeight(imageIndex, levelIndex);
148
- const hasAlpha = basisFile.getHasAlpha();
149
- const {
150
- compressed,
151
- format,
152
- basisFormat
153
- } = getBasisOptions(options, hasAlpha);
154
- const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
155
- const decodedData = new Uint8Array(decodedSize);
156
-
157
- if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
158
- throw new Error('failed to start Basis transcoding');
159
- }
160
-
161
- return {
162
- width,
163
- height,
164
- data: decodedData,
165
- compressed,
166
- format,
167
- hasAlpha
168
- };
122
+ const width = basisFile.getImageWidth(imageIndex, levelIndex);
123
+ const height = basisFile.getImageHeight(imageIndex, levelIndex);
124
+ // See https://github.com/BinomialLLC/basis_universal/pull/83
125
+ const hasAlpha = basisFile.getHasAlpha( /* imageIndex, levelIndex */);
126
+ // Check options for output format etc
127
+ const { compressed, format, basisFormat } = getBasisOptions(options, hasAlpha);
128
+ const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
129
+ const decodedData = new Uint8Array(decodedSize);
130
+ if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
131
+ throw new Error('failed to start Basis transcoding');
132
+ }
133
+ return {
134
+ // standard loaders.gl image category payload
135
+ width,
136
+ height,
137
+ data: decodedData,
138
+ compressed,
139
+ format,
140
+ // Additional fields
141
+ // Add levelSize field.
142
+ hasAlpha
143
+ };
169
144
  }
170
-
145
+ /**
146
+ * Parse *.ktx2 file data
147
+ * @param KTX2File
148
+ * @param data
149
+ * @param options
150
+ * @returns compressed texture data
151
+ */
171
152
  function parseKTX2File(KTX2File, data, options) {
172
- const ktx2File = new KTX2File(new Uint8Array(data));
173
-
174
- try {
175
- if (!ktx2File.startTranscoding()) {
176
- throw new Error('failed to start KTX2 transcoding');
153
+ const ktx2File = new KTX2File(new Uint8Array(data));
154
+ try {
155
+ if (!ktx2File.startTranscoding()) {
156
+ throw new Error('failed to start KTX2 transcoding');
157
+ }
158
+ const levelsCount = ktx2File.getLevels();
159
+ const levels = [];
160
+ for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
161
+ levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
162
+ break; // texture app can only show one level for some reason
163
+ }
164
+ return [levels];
177
165
  }
178
-
179
- const levelsCount = ktx2File.getLevels();
180
- const levels = [];
181
-
182
- for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
183
- levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
184
- break;
166
+ finally {
167
+ ktx2File.close();
168
+ ktx2File.delete();
185
169
  }
186
-
187
- return [levels];
188
- } finally {
189
- ktx2File.close();
190
- ktx2File.delete();
191
- }
192
170
  }
193
-
171
+ /**
172
+ * Parse the particular level image of a ktx2 file
173
+ * @param ktx2File
174
+ * @param levelIndex
175
+ * @param options
176
+ * @returns
177
+ */
194
178
  function transcodeKTX2Image(ktx2File, levelIndex, options) {
195
- const {
196
- alphaFlag,
197
- height,
198
- width
199
- } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
200
- const {
201
- compressed,
202
- format,
203
- basisFormat
204
- } = getBasisOptions(options, alphaFlag);
205
- const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
206
- const decodedData = new Uint8Array(decodedSize);
207
-
208
- if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
209
- throw new Error('Failed to transcode KTX2 image');
210
- }
211
-
212
- return {
213
- width,
214
- height,
215
- data: decodedData,
216
- compressed,
217
- hasAlpha: alphaFlag,
218
- format
219
- };
179
+ const { alphaFlag, height, width } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
180
+ // Check options for output format etc
181
+ const { compressed, format, basisFormat } = getBasisOptions(options, alphaFlag);
182
+ const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0 /* layerIndex */, 0 /* faceIndex */, basisFormat);
183
+ const decodedData = new Uint8Array(decodedSize);
184
+ if (!ktx2File.transcodeImage(decodedData, levelIndex, 0 /* layerIndex */, 0 /* faceIndex */, basisFormat, 0, -1 /* channel0 */, -1 /* channel1 */)) {
185
+ throw new Error('Failed to transcode KTX2 image');
186
+ }
187
+ return {
188
+ // standard loaders.gl image category payload
189
+ width,
190
+ height,
191
+ data: decodedData,
192
+ compressed,
193
+ // Additional fields
194
+ levelSize: decodedSize,
195
+ hasAlpha: alphaFlag,
196
+ format
197
+ };
220
198
  }
221
-
199
+ /**
200
+ * Get BasisFormat by loader format option
201
+ * @param options
202
+ * @param hasAlpha
203
+ * @returns BasisFormat data
204
+ */
222
205
  function getBasisOptions(options, hasAlpha) {
223
- let format = options && options.basis && options.basis.format;
224
-
225
- if (format === 'auto') {
226
- format = selectSupportedBasisFormat();
227
- }
228
-
229
- if (typeof format === 'object') {
230
- format = hasAlpha ? format.alpha : format.noAlpha;
231
- }
232
-
233
- format = format.toLowerCase();
234
- return OutputFormat[format];
206
+ let format = options && options.basis && options.basis.format;
207
+ if (format === 'auto') {
208
+ format = selectSupportedBasisFormat();
209
+ }
210
+ if (typeof format === 'object') {
211
+ format = hasAlpha ? format.alpha : format.noAlpha;
212
+ }
213
+ format = format.toLowerCase();
214
+ return OutputFormat[format];
235
215
  }
236
-
237
- export function selectSupportedBasisFormat() {
238
- const supportedFormats = getSupportedGPUTextureFormats();
239
-
240
- if (supportedFormats.has('astc')) {
241
- return 'astc-4x4';
242
- } else if (supportedFormats.has('dxt')) {
243
- return {
244
- alpha: 'bc3',
245
- noAlpha: 'bc1'
246
- };
247
- } else if (supportedFormats.has('pvrtc')) {
248
- return {
249
- alpha: 'pvrtc1-4-rgba',
250
- noAlpha: 'pvrtc1-4-rgb'
251
- };
252
- } else if (supportedFormats.has('etc1')) {
253
- return 'etc1';
254
- } else if (supportedFormats.has('etc2')) {
255
- return 'etc2';
256
- }
257
-
258
- return 'rgb565';
216
+ /**
217
+ * Select transcode format from the list of supported formats
218
+ * @returns key for OutputFormat map
219
+ */
220
+ function selectSupportedBasisFormat() {
221
+ const supportedFormats = (0, texture_formats_1.getSupportedGPUTextureFormats)();
222
+ if (supportedFormats.has('astc')) {
223
+ return 'astc-4x4';
224
+ }
225
+ else if (supportedFormats.has('dxt')) {
226
+ return {
227
+ alpha: 'bc3',
228
+ noAlpha: 'bc1'
229
+ };
230
+ }
231
+ else if (supportedFormats.has('pvrtc')) {
232
+ return {
233
+ alpha: 'pvrtc1-4-rgba',
234
+ noAlpha: 'pvrtc1-4-rgb'
235
+ };
236
+ }
237
+ else if (supportedFormats.has('etc1')) {
238
+ return 'etc1';
239
+ }
240
+ else if (supportedFormats.has('etc2')) {
241
+ return 'etc2';
242
+ }
243
+ return 'rgb565';
259
244
  }
260
- //# sourceMappingURL=parse-basis.js.map
245
+ exports.selectSupportedBasisFormat = selectSupportedBasisFormat;
@@ -1,19 +1,26 @@
1
- import { isKTX, parseKTX } from './parse-ktx';
2
- import { isDDS, parseDDS } from './parse-dds';
3
- import { isPVR, parsePVR } from './parse-pvr';
4
- export function parseCompressedTexture(data) {
5
- if (isKTX(data)) {
6
- return parseKTX(data);
7
- }
8
-
9
- if (isDDS(data)) {
10
- return parseDDS(data);
11
- }
12
-
13
- if (isPVR(data)) {
14
- return parsePVR(data);
15
- }
16
-
17
- throw new Error('Texture container format not recognized');
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCompressedTexture = void 0;
4
+ const parse_ktx_1 = require("./parse-ktx");
5
+ const parse_dds_1 = require("./parse-dds");
6
+ const parse_pvr_1 = require("./parse-pvr");
7
+ /**
8
+ * Deduces format and parses compressed texture loaded in ArrayBuffer
9
+ * @param data - binary data of compressed texture
10
+ * @returns Array of the texture levels
11
+ */
12
+ function parseCompressedTexture(data) {
13
+ if ((0, parse_ktx_1.isKTX)(data)) {
14
+ // TODO: remove @ts-ignore when `parseKTX` output is normalized to loaders.gl texture format
15
+ // @ts-ignore
16
+ return (0, parse_ktx_1.parseKTX)(data);
17
+ }
18
+ if ((0, parse_dds_1.isDDS)(data)) {
19
+ return (0, parse_dds_1.parseDDS)(data);
20
+ }
21
+ if ((0, parse_pvr_1.isPVR)(data)) {
22
+ return (0, parse_pvr_1.parsePVR)(data);
23
+ }
24
+ throw new Error('Texture container format not recognized');
18
25
  }
19
- //# sourceMappingURL=parse-compressed-texture.js.map
26
+ exports.parseCompressedTexture = parseCompressedTexture;