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

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 (274) hide show
  1. package/dist/basis-loader.js +24 -37
  2. package/dist/basis-loader.js.map +1 -0
  3. package/dist/basis-worker.js +13 -14
  4. package/dist/bundle.js +2 -2
  5. package/dist/bundle.js.map +1 -0
  6. package/dist/compressed-texture-loader.d.ts +1 -1
  7. package/dist/compressed-texture-loader.js +36 -59
  8. package/dist/compressed-texture-loader.js.map +1 -0
  9. package/dist/compressed-texture-worker.js +14 -15
  10. package/dist/compressed-texture-writer.js +21 -27
  11. package/dist/compressed-texture-writer.js.map +1 -0
  12. package/dist/crunch-loader.js +16 -23
  13. package/dist/crunch-loader.js.map +1 -0
  14. package/dist/crunch-worker.js +18 -18
  15. package/dist/dist.min.js +13 -13
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +14 -37
  19. package/dist/index.js.map +1 -0
  20. package/dist/ktx2-basis-universal-texture-writer.js +17 -24
  21. package/dist/ktx2-basis-universal-texture-writer.js.map +1 -0
  22. package/dist/lib/encoders/encode-ktx.js +5 -9
  23. package/dist/lib/encoders/encode-ktx.js.map +1 -0
  24. package/dist/lib/encoders/encode-ktx2-basis-texture.js +34 -40
  25. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  26. package/dist/lib/encoders/encode-texture.js +11 -26
  27. package/dist/lib/encoders/encode-texture.js.map +1 -0
  28. package/dist/lib/gl-extensions.js +60 -71
  29. package/dist/lib/gl-extensions.js.map +1 -0
  30. package/dist/lib/parsers/basis-module-loader.js +76 -100
  31. package/dist/lib/parsers/basis-module-loader.js.map +1 -0
  32. package/dist/lib/parsers/crunch-module-loader.js +18 -30
  33. package/dist/lib/parsers/crunch-module-loader.js.map +1 -0
  34. package/dist/lib/parsers/parse-basis.d.ts +8 -6
  35. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  36. package/dist/lib/parsers/parse-basis.js +240 -225
  37. package/dist/lib/parsers/parse-basis.js.map +1 -0
  38. package/dist/lib/parsers/parse-compressed-texture.d.ts +1 -1
  39. package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -1
  40. package/dist/lib/parsers/parse-compressed-texture.js +18 -25
  41. package/dist/lib/parsers/parse-compressed-texture.js.map +1 -0
  42. package/dist/lib/parsers/parse-crunch.d.ts +1 -1
  43. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  44. package/dist/lib/parsers/parse-crunch.js +83 -96
  45. package/dist/lib/parsers/parse-crunch.js.map +1 -0
  46. package/dist/lib/parsers/parse-dds.d.ts +1 -1
  47. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  48. package/dist/lib/parsers/parse-dds.js +63 -93
  49. package/dist/lib/parsers/parse-dds.js.map +1 -0
  50. package/dist/lib/parsers/parse-ktx.d.ts +2 -1
  51. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  52. package/dist/lib/parsers/parse-ktx.js +23 -44
  53. package/dist/lib/parsers/parse-ktx.js.map +1 -0
  54. package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
  55. package/dist/lib/parsers/parse-npy.js +68 -77
  56. package/dist/lib/parsers/parse-npy.js.map +1 -0
  57. package/dist/lib/parsers/parse-pvr.d.ts +1 -1
  58. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  59. package/dist/lib/parsers/parse-pvr.js +133 -212
  60. package/dist/lib/parsers/parse-pvr.js.map +1 -0
  61. package/dist/lib/texture-api/async-deep-map.js +33 -35
  62. package/dist/lib/texture-api/async-deep-map.js.map +1 -0
  63. package/dist/lib/texture-api/deep-load.js +8 -14
  64. package/dist/lib/texture-api/deep-load.js.map +1 -0
  65. package/dist/lib/texture-api/generate-url.js +13 -16
  66. package/dist/lib/texture-api/generate-url.js.map +1 -0
  67. package/dist/lib/texture-api/load-image-array.js +18 -19
  68. package/dist/lib/texture-api/load-image-array.js.map +1 -0
  69. package/dist/lib/texture-api/load-image-cube.js +55 -39
  70. package/dist/lib/texture-api/load-image-cube.js.map +1 -0
  71. package/dist/lib/texture-api/load-image.js +43 -38
  72. package/dist/lib/texture-api/load-image.js.map +1 -0
  73. package/dist/lib/texture-api/texture-api-types.js +2 -3
  74. package/dist/{es5/lib → lib}/texture-api/texture-api-types.js.map +0 -0
  75. package/dist/lib/utils/extract-mipmap-images.d.ts +8 -1
  76. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  77. package/dist/lib/utils/extract-mipmap-images.js +36 -45
  78. package/dist/lib/utils/extract-mipmap-images.js.map +1 -0
  79. package/dist/lib/utils/ktx-format-helper.js +70 -122
  80. package/dist/lib/utils/ktx-format-helper.js.map +1 -0
  81. package/dist/lib/utils/texture-formats.js +30 -42
  82. package/dist/lib/utils/texture-formats.js.map +1 -0
  83. package/dist/lib/utils/version.d.ts.map +1 -1
  84. package/dist/lib/utils/version.js +2 -7
  85. package/dist/lib/utils/version.js.map +1 -0
  86. package/dist/{es5 → libs}/libs/README.md +0 -0
  87. package/dist/{es5 → libs}/libs/basis_encoder.js +0 -0
  88. package/dist/{es5 → libs}/libs/basis_encoder.wasm +0 -0
  89. package/dist/{es5 → libs}/libs/basis_transcoder.js +0 -0
  90. package/dist/{es5 → libs}/libs/basis_transcoder.wasm +0 -0
  91. package/dist/{es5 → libs}/libs/crunch.js +0 -0
  92. package/dist/npy-loader.js +20 -31
  93. package/dist/npy-loader.js.map +1 -0
  94. package/dist/npy-worker.js +1 -1
  95. package/dist/types.d.ts +0 -20
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/types.js +2 -2
  98. package/dist/{es5/types.js.map → types.js.map} +0 -0
  99. package/dist/workers/basis-worker.js +4 -5
  100. package/dist/workers/basis-worker.js.map +1 -0
  101. package/dist/workers/compressed-texture-worker.js +4 -5
  102. package/dist/workers/compressed-texture-worker.js.map +1 -0
  103. package/dist/workers/crunch-worker.js +7 -13
  104. package/dist/workers/crunch-worker.js.map +1 -0
  105. package/dist/workers/npy-worker.js +4 -5
  106. package/dist/workers/npy-worker.js.map +1 -0
  107. package/package.json +12 -11
  108. package/src/compressed-texture-loader.ts +1 -1
  109. package/src/index.ts +1 -1
  110. package/src/lib/parsers/basis-module-loader.ts +1 -1
  111. package/src/lib/parsers/crunch-module-loader.ts +1 -1
  112. package/src/lib/parsers/parse-basis.ts +68 -36
  113. package/src/lib/parsers/parse-compressed-texture.ts +1 -1
  114. package/src/lib/parsers/parse-crunch.ts +15 -14
  115. package/src/lib/parsers/parse-dds.ts +1 -1
  116. package/src/lib/parsers/parse-ktx.ts +2 -1
  117. package/src/lib/parsers/parse-npy.ts +2 -0
  118. package/src/lib/parsers/parse-pvr.ts +2 -1
  119. package/src/lib/utils/extract-mipmap-images.ts +9 -1
  120. package/src/lib/utils/texture-formats.ts +1 -1
  121. package/src/lib/utils/version.ts +2 -1
  122. package/src/types.ts +0 -30
  123. package/dist/es5/basis-loader.js +0 -50
  124. package/dist/es5/basis-loader.js.map +0 -1
  125. package/dist/es5/bundle.js +0 -7
  126. package/dist/es5/bundle.js.map +0 -1
  127. package/dist/es5/compressed-texture-loader.js +0 -96
  128. package/dist/es5/compressed-texture-loader.js.map +0 -1
  129. package/dist/es5/compressed-texture-writer.js +0 -33
  130. package/dist/es5/compressed-texture-writer.js.map +0 -1
  131. package/dist/es5/crunch-loader.js +0 -28
  132. package/dist/es5/crunch-loader.js.map +0 -1
  133. package/dist/es5/index.js +0 -126
  134. package/dist/es5/index.js.map +0 -1
  135. package/dist/es5/ktx2-basis-universal-texture-writer.js +0 -29
  136. package/dist/es5/ktx2-basis-universal-texture-writer.js.map +0 -1
  137. package/dist/es5/lib/encoders/encode-ktx.js +0 -14
  138. package/dist/es5/lib/encoders/encode-ktx.js.map +0 -1
  139. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +0 -87
  140. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
  141. package/dist/es5/lib/encoders/encode-texture.js +0 -48
  142. package/dist/es5/lib/encoders/encode-texture.js.map +0 -1
  143. package/dist/es5/lib/gl-extensions.js +0 -68
  144. package/dist/es5/lib/gl-extensions.js.map +0 -1
  145. package/dist/es5/lib/parsers/basis-module-loader.js +0 -245
  146. package/dist/es5/lib/parsers/basis-module-loader.js.map +0 -1
  147. package/dist/es5/lib/parsers/crunch-module-loader.js +0 -88
  148. package/dist/es5/lib/parsers/crunch-module-loader.js.map +0 -1
  149. package/dist/es5/lib/parsers/parse-basis.js +0 -325
  150. package/dist/es5/lib/parsers/parse-basis.js.map +0 -1
  151. package/dist/es5/lib/parsers/parse-compressed-texture.js +0 -29
  152. package/dist/es5/lib/parsers/parse-compressed-texture.js.map +0 -1
  153. package/dist/es5/lib/parsers/parse-crunch.js +0 -125
  154. package/dist/es5/lib/parsers/parse-crunch.js.map +0 -1
  155. package/dist/es5/lib/parsers/parse-dds.js +0 -95
  156. package/dist/es5/lib/parsers/parse-dds.js.map +0 -1
  157. package/dist/es5/lib/parsers/parse-ktx.js +0 -40
  158. package/dist/es5/lib/parsers/parse-ktx.js.map +0 -1
  159. package/dist/es5/lib/parsers/parse-npy.js +0 -87
  160. package/dist/es5/lib/parsers/parse-npy.js.map +0 -1
  161. package/dist/es5/lib/parsers/parse-pvr.js +0 -183
  162. package/dist/es5/lib/parsers/parse-pvr.js.map +0 -1
  163. package/dist/es5/lib/texture-api/async-deep-map.js +0 -177
  164. package/dist/es5/lib/texture-api/async-deep-map.js.map +0 -1
  165. package/dist/es5/lib/texture-api/deep-load.js +0 -81
  166. package/dist/es5/lib/texture-api/deep-load.js.map +0 -1
  167. package/dist/es5/lib/texture-api/generate-url.js +0 -28
  168. package/dist/es5/lib/texture-api/generate-url.js.map +0 -1
  169. package/dist/es5/lib/texture-api/load-image-array.js +0 -96
  170. package/dist/es5/lib/texture-api/load-image-array.js.map +0 -1
  171. package/dist/es5/lib/texture-api/load-image-cube.js +0 -145
  172. package/dist/es5/lib/texture-api/load-image-cube.js.map +0 -1
  173. package/dist/es5/lib/texture-api/load-image.js +0 -169
  174. package/dist/es5/lib/texture-api/load-image.js.map +0 -1
  175. package/dist/es5/lib/texture-api/texture-api-types.js +0 -2
  176. package/dist/es5/lib/utils/extract-mipmap-images.js +0 -48
  177. package/dist/es5/lib/utils/extract-mipmap-images.js.map +0 -1
  178. package/dist/es5/lib/utils/ktx-format-helper.js +0 -82
  179. package/dist/es5/lib/utils/ktx-format-helper.js.map +0 -1
  180. package/dist/es5/lib/utils/texture-formats.js +0 -64
  181. package/dist/es5/lib/utils/texture-formats.js.map +0 -1
  182. package/dist/es5/lib/utils/version.js +0 -9
  183. package/dist/es5/lib/utils/version.js.map +0 -1
  184. package/dist/es5/npy-loader.js +0 -71
  185. package/dist/es5/npy-loader.js.map +0 -1
  186. package/dist/es5/types.js +0 -2
  187. package/dist/es5/workers/basis-worker.js +0 -8
  188. package/dist/es5/workers/basis-worker.js.map +0 -1
  189. package/dist/es5/workers/compressed-texture-worker.js +0 -8
  190. package/dist/es5/workers/compressed-texture-worker.js.map +0 -1
  191. package/dist/es5/workers/crunch-worker.js +0 -28
  192. package/dist/es5/workers/crunch-worker.js.map +0 -1
  193. package/dist/es5/workers/npy-worker.js +0 -8
  194. package/dist/es5/workers/npy-worker.js.map +0 -1
  195. package/dist/esm/basis-loader.js +0 -27
  196. package/dist/esm/basis-loader.js.map +0 -1
  197. package/dist/esm/bundle.js +0 -5
  198. package/dist/esm/bundle.js.map +0 -1
  199. package/dist/esm/compressed-texture-loader.js +0 -41
  200. package/dist/esm/compressed-texture-loader.js.map +0 -1
  201. package/dist/esm/compressed-texture-writer.js +0 -22
  202. package/dist/esm/compressed-texture-writer.js.map +0 -1
  203. package/dist/esm/crunch-loader.js +0 -18
  204. package/dist/esm/crunch-loader.js.map +0 -1
  205. package/dist/esm/index.js +0 -14
  206. package/dist/esm/index.js.map +0 -1
  207. package/dist/esm/ktx2-basis-universal-texture-writer.js +0 -18
  208. package/dist/esm/ktx2-basis-universal-texture-writer.js.map +0 -1
  209. package/dist/esm/lib/encoders/encode-ktx.js +0 -6
  210. package/dist/esm/lib/encoders/encode-ktx.js.map +0 -1
  211. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +0 -35
  212. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
  213. package/dist/esm/lib/encoders/encode-texture.js +0 -12
  214. package/dist/esm/lib/encoders/encode-texture.js.map +0 -1
  215. package/dist/esm/lib/gl-extensions.js +0 -61
  216. package/dist/esm/lib/gl-extensions.js.map +0 -1
  217. package/dist/esm/lib/parsers/basis-module-loader.js +0 -90
  218. package/dist/esm/lib/parsers/basis-module-loader.js.map +0 -1
  219. package/dist/esm/lib/parsers/crunch-module-loader.js +0 -23
  220. package/dist/esm/lib/parsers/crunch-module-loader.js.map +0 -1
  221. package/dist/esm/lib/parsers/parse-basis.js +0 -260
  222. package/dist/esm/lib/parsers/parse-basis.js.map +0 -1
  223. package/dist/esm/lib/parsers/parse-compressed-texture.js +0 -19
  224. package/dist/esm/lib/parsers/parse-compressed-texture.js.map +0 -1
  225. package/dist/esm/lib/parsers/parse-crunch.js +0 -91
  226. package/dist/esm/lib/parsers/parse-crunch.js.map +0 -1
  227. package/dist/esm/lib/parsers/parse-dds.js +0 -78
  228. package/dist/esm/lib/parsers/parse-dds.js.map +0 -1
  229. package/dist/esm/lib/parsers/parse-ktx.js +0 -25
  230. package/dist/esm/lib/parsers/parse-ktx.js.map +0 -1
  231. package/dist/esm/lib/parsers/parse-npy.js +0 -76
  232. package/dist/esm/lib/parsers/parse-npy.js.map +0 -1
  233. package/dist/esm/lib/parsers/parse-pvr.js +0 -171
  234. package/dist/esm/lib/parsers/parse-pvr.js.map +0 -1
  235. package/dist/esm/lib/texture-api/async-deep-map.js +0 -39
  236. package/dist/esm/lib/texture-api/async-deep-map.js.map +0 -1
  237. package/dist/esm/lib/texture-api/deep-load.js +0 -10
  238. package/dist/esm/lib/texture-api/deep-load.js.map +0 -1
  239. package/dist/esm/lib/texture-api/generate-url.js +0 -14
  240. package/dist/esm/lib/texture-api/generate-url.js.map +0 -1
  241. package/dist/esm/lib/texture-api/load-image-array.js +0 -20
  242. package/dist/esm/lib/texture-api/load-image-array.js.map +0 -1
  243. package/dist/esm/lib/texture-api/load-image-cube.js +0 -63
  244. package/dist/esm/lib/texture-api/load-image-cube.js.map +0 -1
  245. package/dist/esm/lib/texture-api/load-image.js +0 -48
  246. package/dist/esm/lib/texture-api/load-image.js.map +0 -1
  247. package/dist/esm/lib/texture-api/texture-api-types.js +0 -2
  248. package/dist/esm/lib/texture-api/texture-api-types.js.map +0 -1
  249. package/dist/esm/lib/utils/extract-mipmap-images.js +0 -41
  250. package/dist/esm/lib/utils/extract-mipmap-images.js.map +0 -1
  251. package/dist/esm/lib/utils/ktx-format-helper.js +0 -73
  252. package/dist/esm/lib/utils/ktx-format-helper.js.map +0 -1
  253. package/dist/esm/lib/utils/texture-formats.js +0 -39
  254. package/dist/esm/lib/utils/texture-formats.js.map +0 -1
  255. package/dist/esm/lib/utils/version.js +0 -2
  256. package/dist/esm/lib/utils/version.js.map +0 -1
  257. package/dist/esm/libs/README.md +0 -9
  258. package/dist/esm/libs/basis_encoder.js +0 -22
  259. package/dist/esm/libs/basis_encoder.wasm +0 -0
  260. package/dist/esm/libs/basis_transcoder.js +0 -21
  261. package/dist/esm/libs/basis_transcoder.wasm +0 -0
  262. package/dist/esm/libs/crunch.js +0 -136
  263. package/dist/esm/npy-loader.js +0 -23
  264. package/dist/esm/npy-loader.js.map +0 -1
  265. package/dist/esm/types.js +0 -2
  266. package/dist/esm/types.js.map +0 -1
  267. package/dist/esm/workers/basis-worker.js +0 -4
  268. package/dist/esm/workers/basis-worker.js.map +0 -1
  269. package/dist/esm/workers/compressed-texture-worker.js +0 -4
  270. package/dist/esm/workers/compressed-texture-worker.js.map +0 -1
  271. package/dist/esm/workers/crunch-worker.js +0 -8
  272. package/dist/esm/workers/crunch-worker.js.map +0 -1
  273. package/dist/esm/workers/npy-worker.js +0 -4
  274. package/dist/esm/workers/npy-worker.js.map +0 -1
@@ -31,7 +31,7 @@ async function loadCrunch(options) {
31
31
 
32
32
  // Depends on how import happened...
33
33
  // @ts-ignore TS2339: Property does not exist on type
34
- loadCrunchDecoder = loadCrunchDecoder || globalThis.loadCrunchDecoder;
34
+ loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
35
35
  crunchModule = loadCrunchDecoder();
36
36
  return crunchModule;
37
37
  }
@@ -1,9 +1,36 @@
1
+ /* eslint-disable indent */
2
+ import type {TextureLevel} from '@loaders.gl/schema';
1
3
  import {loadBasisEncoderModule, loadBasisTrascoderModule} from './basis-module-loader';
2
4
  import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
3
5
  import {getSupportedGPUTextureFormats} from '../utils/texture-formats';
4
6
  import {isKTX} from './parse-ktx';
5
7
 
6
- const OutputFormat = {
8
+ export type BasisFormat =
9
+ | 'etc1'
10
+ | 'etc2'
11
+ | 'bc1'
12
+ | 'bc3'
13
+ | 'bc4'
14
+ | 'bc5'
15
+ | 'bc7-m6-opaque-only'
16
+ | 'bc7-m5'
17
+ | 'pvrtc1-4-rgb'
18
+ | 'pvrtc1-4-rgba'
19
+ | 'astc-4x4'
20
+ | 'atc-rgb'
21
+ | 'atc-rgba-interpolated-alpha'
22
+ | 'rgba32'
23
+ | 'rgb565'
24
+ | 'bgr565'
25
+ | 'rgba4444';
26
+
27
+ type BasisOutputOptions = {
28
+ basisFormat: number;
29
+ compressed: boolean;
30
+ format?: number;
31
+ };
32
+
33
+ const OutputFormat: Record<string, BasisOutputOptions> = {
7
34
  etc1: {
8
35
  basisFormat: 0,
9
36
  compressed: true,
@@ -49,11 +76,11 @@ const OutputFormat = {
49
76
 
50
77
  /**
51
78
  * parse data with a Binomial Basis_Universal module
52
- * @param {ArrayBuffer} data
53
- * @param {*} options
79
+ * @param data
80
+ * @param options
54
81
  * @returns compressed texture data
55
82
  */
56
- export default async function parseBasis(data, options) {
83
+ export default async function parseBasis(data: ArrayBuffer, options): Promise<TextureLevel[][]> {
57
84
  if (options.basis.containerFormat === 'auto') {
58
85
  if (isKTX(data)) {
59
86
  const fileConstructors = await loadBasisEncoderModule(options);
@@ -81,25 +108,25 @@ export default async function parseBasis(data, options) {
81
108
 
82
109
  /**
83
110
  * Parse *.basis file data
84
- * @param {*} BasisFile - initialized transcoder module
85
- * @param {*} data
86
- * @param {*} options
111
+ * @param BasisFile - initialized transcoder module
112
+ * @param data
113
+ * @param options
87
114
  * @returns compressed texture data
88
115
  */
89
- function parseBasisFile(BasisFile, data, options) {
116
+ function parseBasisFile(BasisFile, data, options): TextureLevel[][] {
90
117
  const basisFile = new BasisFile(new Uint8Array(data));
91
118
 
92
119
  try {
93
120
  if (!basisFile.startTranscoding()) {
94
- return null;
121
+ throw new Error('Failed to start basis transcoding');
95
122
  }
96
123
 
97
124
  const imageCount = basisFile.getNumImages();
98
- const images: any[] = [];
125
+ const images: TextureLevel[][] = [];
99
126
 
100
127
  for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {
101
128
  const levelsCount = basisFile.getNumLevels(imageIndex);
102
- const levels: any[] = [];
129
+ const levels: TextureLevel[] = [];
103
130
 
104
131
  for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
105
132
  levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));
@@ -117,13 +144,13 @@ function parseBasisFile(BasisFile, data, options) {
117
144
 
118
145
  /**
119
146
  * Parse the particular level image of a basis file
120
- * @param {*} basisFile
121
- * @param {*} imageIndex
122
- * @param {*} levelIndex
123
- * @param {*} options
147
+ * @param basisFile
148
+ * @param imageIndex
149
+ * @param levelIndex
150
+ * @param options
124
151
  * @returns compressed texture data
125
152
  */
126
- function transcodeImage(basisFile, imageIndex, levelIndex, options) {
153
+ function transcodeImage(basisFile, imageIndex, levelIndex, options): TextureLevel {
127
154
  const width = basisFile.getImageWidth(imageIndex, levelIndex);
128
155
  const height = basisFile.getImageHeight(imageIndex, levelIndex);
129
156
 
@@ -137,7 +164,7 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
137
164
  const decodedData = new Uint8Array(decodedSize);
138
165
 
139
166
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
140
- return null;
167
+ throw new Error('failed to start Basis transcoding');
141
168
  }
142
169
 
143
170
  return {
@@ -146,37 +173,37 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
146
173
  height,
147
174
  data: decodedData,
148
175
  compressed,
176
+ format,
149
177
 
150
178
  // Additional fields
151
179
  // Add levelSize field.
152
- hasAlpha,
153
- format
180
+ hasAlpha
154
181
  };
155
182
  }
156
183
 
157
184
  /**
158
185
  * Parse *.ktx2 file data
159
- * @param {*} KTX2File
160
- * @param {*} data
161
- * @param {*} options
186
+ * @param KTX2File
187
+ * @param data
188
+ * @param options
162
189
  * @returns compressed texture data
163
190
  */
164
- function parseKTX2File(KTX2File, data, options) {
191
+ function parseKTX2File(KTX2File, data: ArrayBuffer, options): TextureLevel[][] {
165
192
  const ktx2File = new KTX2File(new Uint8Array(data));
166
193
 
167
194
  try {
168
195
  if (!ktx2File.startTranscoding()) {
169
- return null;
196
+ throw new Error('failed to start KTX2 transcoding');
170
197
  }
171
198
  const levelsCount = ktx2File.getLevels();
172
- const levels: any[] = [];
199
+ const levels: TextureLevel[] = [];
173
200
 
174
201
  for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
175
202
  levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
176
203
  break; // texture app can only show one level for some reason
177
204
  }
178
205
 
179
- return levels;
206
+ return [levels];
180
207
  } finally {
181
208
  ktx2File.close();
182
209
  ktx2File.delete();
@@ -185,12 +212,12 @@ function parseKTX2File(KTX2File, data, options) {
185
212
 
186
213
  /**
187
214
  * Parse the particular level image of a ktx2 file
188
- * @param {*} ktx2File
189
- * @param {*} levelIndex
190
- * @param {*} options
215
+ * @param ktx2File
216
+ * @param levelIndex
217
+ * @param options
191
218
  * @returns
192
219
  */
193
- function transcodeKTX2Image(ktx2File, levelIndex, options) {
220
+ function transcodeKTX2Image(ktx2File, levelIndex: number, options): TextureLevel {
194
221
  const {alphaFlag, height, width} = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
195
222
 
196
223
  // Check options for output format etc
@@ -216,7 +243,7 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
216
243
  -1 /* channel1 */
217
244
  )
218
245
  ) {
219
- return null;
246
+ throw new Error('Failed to transcode KTX2 image');
220
247
  }
221
248
 
222
249
  return {
@@ -228,18 +255,18 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
228
255
 
229
256
  // Additional fields
230
257
  // Add levelSize field.
231
- alphaFlag,
258
+ hasAlpha: alphaFlag,
232
259
  format
233
260
  };
234
261
  }
235
262
 
236
263
  /**
237
264
  * Get BasisFormat by loader format option
238
- * @param {*} options
239
- * @param {*} hasAlpha
265
+ * @param options
266
+ * @param hasAlpha
240
267
  * @returns BasisFormat data
241
268
  */
242
- function getBasisOptions(options, hasAlpha) {
269
+ function getBasisOptions(options, hasAlpha: boolean): BasisOutputOptions {
243
270
  let format = options && options.basis && options.basis.format;
244
271
  if (format === 'auto') {
245
272
  format = selectSupportedBasisFormat();
@@ -255,7 +282,12 @@ function getBasisOptions(options, hasAlpha) {
255
282
  * Select transcode format from the list of supported formats
256
283
  * @returns key for OutputFormat map
257
284
  */
258
- export function selectSupportedBasisFormat() {
285
+ export function selectSupportedBasisFormat():
286
+ | BasisFormat
287
+ | {
288
+ alpha: BasisFormat;
289
+ noAlpha: BasisFormat;
290
+ } {
259
291
  const supportedFormats = getSupportedGPUTextureFormats();
260
292
  if (supportedFormats.has('astc')) {
261
293
  return 'astc-4x4';
@@ -1,4 +1,4 @@
1
- import type {TextureLevel} from '../../types';
1
+ import type {TextureLevel} from '@loaders.gl/schema';
2
2
  import {isKTX, parseKTX} from './parse-ktx';
3
3
  import {isDDS, parseDDS} from './parse-dds';
4
4
  import {isPVR, parsePVR} from './parse-pvr';
@@ -1,4 +1,4 @@
1
- import type {TextureLevel} from '../../types';
1
+ import type {TextureLevel} from '@loaders.gl/schema';
2
2
  import {loadCrunchModule} from './crunch-module-loader';
3
3
  import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
4
4
  import {assert} from '@loaders.gl/loader-utils';
@@ -17,19 +17,20 @@ const CRN_FORMAT = {
17
17
  // Crunch supports more formats than this.
18
18
  };
19
19
 
20
- // Mapping of Crunch formats to DXT formats.
21
- const DXT_FORMAT_MAP = {};
22
- DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT1] = {
23
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
24
- sizeFunction: getDxt1LevelSize
25
- };
26
- DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = {
27
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
28
- sizeFunction: getDxtXLevelSize
29
- };
30
- DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = {
31
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
32
- sizeFunction: getDxtXLevelSize
20
+ /** Mapping of Crunch formats to DXT formats. */
21
+ const DXT_FORMAT_MAP = {
22
+ [CRN_FORMAT.cCRNFmtDXT1]: {
23
+ pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
24
+ sizeFunction: getDxt1LevelSize
25
+ },
26
+ [CRN_FORMAT.cCRNFmtDXT3]: {
27
+ pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
28
+ sizeFunction: getDxtXLevelSize
29
+ },
30
+ [CRN_FORMAT.cCRNFmtDXT5]: {
31
+ pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
32
+ sizeFunction: getDxtXLevelSize
33
+ }
33
34
  };
34
35
 
35
36
  let cachedDstSize = 0;
@@ -1,4 +1,4 @@
1
- import type {TextureLevel} from '../../types';
1
+ import type {TextureLevel} from '@loaders.gl/schema';
2
2
  import {assert} from '@loaders.gl/loader-utils';
3
3
  import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
4
4
  import {extractMipmapImages} from '../utils/extract-mipmap-images';
@@ -1,3 +1,4 @@
1
+ import type {TextureLevel} from '@loaders.gl/schema';
1
2
  import {read} from 'ktx-parse';
2
3
  import {extractMipmapImages} from '../utils/extract-mipmap-images';
3
4
  import {mapVkFormatToWebGL} from '../utils/ktx-format-helper';
@@ -29,7 +30,7 @@ export function isKTX(data: ArrayBuffer) {
29
30
  return !notKTX;
30
31
  }
31
32
 
32
- export function parseKTX(arrayBuffer: ArrayBuffer) {
33
+ export function parseKTX(arrayBuffer: ArrayBuffer): TextureLevel[] {
33
34
  const uint8Array = new Uint8Array(arrayBuffer);
34
35
  const ktx = read(uint8Array);
35
36
  const mipMapLevels = Math.max(1, ktx.levels.length);
@@ -1,3 +1,5 @@
1
+ // import type {TextureLevel} from '@loaders.gl/schema';
2
+
1
3
  type NumpyHeader = {descr: string; shape: number[]};
2
4
 
3
5
  function systemIsLittleEndian() {
@@ -1,7 +1,8 @@
1
- import {TextureLevel} from '../../types';
2
1
  /* eslint-disable camelcase */
3
2
  // Forked from PicoGL: https://github.com/tsherif/picogl.js/blob/master/examples/utils/utils.js
4
3
  // Copyright (c) 2017 Tarek Sherif, The MIT License (MIT)
4
+
5
+ import type {TextureLevel} from '@loaders.gl/schema';
5
6
  import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
6
7
  import {extractMipmapImages} from '../utils/extract-mipmap-images';
7
8
 
@@ -1,4 +1,12 @@
1
- import {CompressedTextureExtractOptions, TextureLevel} from '../../types';
1
+ import type {TextureLevel} from '@loaders.gl/schema';
2
+
3
+ export type CompressedTextureExtractOptions = {
4
+ mipMapLevels: number;
5
+ width: number;
6
+ height: number;
7
+ sizeFunction: Function;
8
+ internalFormat: number;
9
+ };
2
10
 
3
11
  /**
4
12
  * Extract mipmap images from compressed texture buffer
@@ -1,4 +1,4 @@
1
- import type {GPUTextureFormat} from '../../types';
1
+ import type {GPUTextureFormat} from '@loaders.gl/schema';
2
2
 
3
3
  const BROWSER_PREFIXES = ['', 'WEBKIT_', 'MOZ_'];
4
4
 
@@ -1,4 +1,5 @@
1
1
  // Version constant cannot be imported, it needs to correspond to the build version of **this** module.
2
2
  // __VERSION__ is injected by babel-plugin-version-inline
3
+ // TODO: use 'latest' instead of 'beta' when 3.0.0 version is released as 'latest'
3
4
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
4
- export const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
5
+ export const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';
package/src/types.ts CHANGED
@@ -1,30 +0,0 @@
1
- /**
2
- * These represent the main compressed texture formats
3
- * Each format typically has a number of more specific subformats
4
- */
5
- export type GPUTextureFormat =
6
- | 'dxt'
7
- | 'dxt-srgb'
8
- | 'etc1'
9
- | 'etc2'
10
- | 'pvrtc'
11
- | 'atc'
12
- | 'astc'
13
- | 'rgtc';
14
-
15
- export interface TextureLevel {
16
- compressed: boolean;
17
- format: number;
18
- data: Uint8Array;
19
- witdh: number;
20
- height: number;
21
- levelSize?: number;
22
- }
23
-
24
- export interface CompressedTextureExtractOptions {
25
- mipMapLevels: number;
26
- width: number;
27
- height: number;
28
- sizeFunction: Function;
29
- internalFormat: number;
30
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports._TypecheckBasisLoader = exports._TypecheckBasisWorkerLoader = exports.BasisLoader = exports.BasisWorkerLoader = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _version = require("./lib/utils/version");
13
-
14
- var _parseBasis = _interopRequireDefault(require("./lib/parsers/parse-basis"));
15
-
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
17
-
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
19
-
20
- var BasisWorkerLoader = {
21
- name: 'Basis',
22
- id: 'basis',
23
- module: 'textures',
24
- version: _version.VERSION,
25
- worker: true,
26
- extensions: ['basis', 'ktx2'],
27
- mimeTypes: ['application/octet-stream', 'image/ktx2'],
28
- tests: ['sB'],
29
- binary: true,
30
- options: {
31
- basis: {
32
- format: 'auto',
33
- libraryPath: 'libs/',
34
- containerFormat: 'auto',
35
- module: 'transcoder'
36
- }
37
- }
38
- };
39
- exports.BasisWorkerLoader = BasisWorkerLoader;
40
-
41
- var BasisLoader = _objectSpread(_objectSpread({}, BasisWorkerLoader), {}, {
42
- parse: _parseBasis.default
43
- });
44
-
45
- exports.BasisLoader = BasisLoader;
46
- var _TypecheckBasisWorkerLoader = BasisWorkerLoader;
47
- exports._TypecheckBasisWorkerLoader = _TypecheckBasisWorkerLoader;
48
- var _TypecheckBasisLoader = BasisLoader;
49
- exports._TypecheckBasisLoader = _TypecheckBasisLoader;
50
- //# sourceMappingURL=basis-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/basis-loader.ts"],"names":["BasisWorkerLoader","name","id","module","version","VERSION","worker","extensions","mimeTypes","tests","binary","options","basis","format","libraryPath","containerFormat","BasisLoader","parse","parseBasis","_TypecheckBasisWorkerLoader","_TypecheckBasisLoader"],"mappings":";;;;;;;;;;;AACA;;AACA;;;;;;AAKO,IAAMA,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,OADyB;AAE/BC,EAAAA,EAAE,EAAE,OAF2B;AAG/BC,EAAAA,MAAM,EAAE,UAHuB;AAI/BC,EAAAA,OAAO,EAAEC,gBAJsB;AAK/BC,EAAAA,MAAM,EAAE,IALuB;AAM/BC,EAAAA,UAAU,EAAE,CAAC,OAAD,EAAU,MAAV,CANmB;AAO/BC,EAAAA,SAAS,EAAE,CAAC,0BAAD,EAA6B,YAA7B,CAPoB;AAQ/BC,EAAAA,KAAK,EAAE,CAAC,IAAD,CARwB;AAS/BC,EAAAA,MAAM,EAAE,IATuB;AAU/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,KAAK,EAAE;AACLC,MAAAA,MAAM,EAAE,MADH;AAELC,MAAAA,WAAW,EAAE,OAFR;AAGLC,MAAAA,eAAe,EAAE,MAHZ;AAILZ,MAAAA,MAAM,EAAE;AAJH;AADA;AAVsB,CAA1B;;;AAuBA,IAAMa,WAAW,mCACnBhB,iBADmB;AAEtBiB,EAAAA,KAAK,EAAEC;AAFe,EAAjB;;;AAMA,IAAMC,2BAAmC,GAAGnB,iBAA5C;;AACA,IAAMoB,qBAAuC,GAAGJ,WAAhD","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport parseBasis from './lib/parsers/parse-basis';\n\n/**\n * Worker loader for Basis super compressed textures\n */\nexport const BasisWorkerLoader = {\n name: 'Basis',\n id: 'basis',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['basis', 'ktx2'],\n mimeTypes: ['application/octet-stream', 'image/ktx2'],\n tests: ['sB'],\n binary: true,\n options: {\n basis: {\n format: 'auto', // gl context doesn't exist on a worker thread\n libraryPath: 'libs/',\n containerFormat: 'auto', // 'basis' || 'ktx2' || 'auto'\n module: 'transcoder' // 'transcoder' || 'encoder'\n }\n }\n};\n\n/**\n * Loader for Basis super compressed textures\n */\nexport const BasisLoader = {\n ...BasisWorkerLoader,\n parse: parseBasis\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckBasisWorkerLoader: Loader = BasisWorkerLoader;\nexport const _TypecheckBasisLoader: LoaderWithParser = BasisLoader;\n"],"file":"basis-loader.js"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- var moduleExports = require('./index');
4
-
5
- globalThis.loaders = globalThis.loaders || {};
6
- module.exports = Object.assign(globalThis.loaders, moduleExports);
7
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
@@ -1,96 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports._TypecheckCompressedTextureLoader = exports._TypecheckCompressedTextureWorkerLoader = exports.CompressedTextureLoader = exports.CompressedTextureWorkerLoader = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _version = require("./lib/utils/version");
17
-
18
- var _parseCompressedTexture = require("./lib/parsers/parse-compressed-texture");
19
-
20
- var _parseBasis = _interopRequireDefault(require("./lib/parsers/parse-basis"));
21
-
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
23
-
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
-
26
- var DEFAULT_TEXTURE_LOADER_OPTIONS = {
27
- 'compressed-texture': {
28
- libraryPath: 'libs/',
29
- useBasis: false
30
- }
31
- };
32
- var CompressedTextureWorkerLoader = {
33
- name: 'Texture Containers',
34
- id: 'compressed-texture',
35
- module: 'textures',
36
- version: _version.VERSION,
37
- worker: true,
38
- extensions: ['ktx', 'ktx2', 'dds', 'pvr'],
39
- mimeTypes: ['image/ktx2', 'image/ktx', 'image/vnd-ms.dds', 'image/x-dds', 'application/octet-stream'],
40
- binary: true,
41
- options: DEFAULT_TEXTURE_LOADER_OPTIONS
42
- };
43
- exports.CompressedTextureWorkerLoader = CompressedTextureWorkerLoader;
44
-
45
- var CompressedTextureLoader = _objectSpread(_objectSpread({}, CompressedTextureWorkerLoader), {}, {
46
- parse: function () {
47
- var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
48
- return _regenerator.default.wrap(function _callee$(_context) {
49
- while (1) {
50
- switch (_context.prev = _context.next) {
51
- case 0:
52
- if (!options['compressed-texture'].useBasis) {
53
- _context.next = 5;
54
- break;
55
- }
56
-
57
- options.basis = _objectSpread(_objectSpread({
58
- format: {
59
- alpha: 'BC3',
60
- noAlpha: 'BC1'
61
- }
62
- }, options.basis), {}, {
63
- containerFormat: 'ktx2',
64
- module: 'encoder'
65
- });
66
- _context.next = 4;
67
- return (0, _parseBasis.default)(arrayBuffer, options);
68
-
69
- case 4:
70
- return _context.abrupt("return", _context.sent);
71
-
72
- case 5:
73
- return _context.abrupt("return", (0, _parseCompressedTexture.parseCompressedTexture)(arrayBuffer));
74
-
75
- case 6:
76
- case "end":
77
- return _context.stop();
78
- }
79
- }
80
- }, _callee);
81
- }));
82
-
83
- function parse(_x, _x2) {
84
- return _parse.apply(this, arguments);
85
- }
86
-
87
- return parse;
88
- }()
89
- });
90
-
91
- exports.CompressedTextureLoader = CompressedTextureLoader;
92
- var _TypecheckCompressedTextureWorkerLoader = CompressedTextureWorkerLoader;
93
- exports._TypecheckCompressedTextureWorkerLoader = _TypecheckCompressedTextureWorkerLoader;
94
- var _TypecheckCompressedTextureLoader = CompressedTextureLoader;
95
- exports._TypecheckCompressedTextureLoader = _TypecheckCompressedTextureLoader;
96
- //# sourceMappingURL=compressed-texture-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/compressed-texture-loader.ts"],"names":["DEFAULT_TEXTURE_LOADER_OPTIONS","libraryPath","useBasis","CompressedTextureWorkerLoader","name","id","module","version","VERSION","worker","extensions","mimeTypes","binary","options","CompressedTextureLoader","parse","arrayBuffer","basis","format","alpha","noAlpha","containerFormat","_TypecheckCompressedTextureWorkerLoader","_TypecheckCompressedTextureLoader"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;AASA,IAAMA,8BAA8B,GAAG;AACrC,wBAAsB;AACpBC,IAAAA,WAAW,EAAE,OADO;AAEpBC,IAAAA,QAAQ,EAAE;AAFU;AADe,CAAvC;AAUO,IAAMC,6BAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAE,oBADqC;AAE3CC,EAAAA,EAAE,EAAE,oBAFuC;AAG3CC,EAAAA,MAAM,EAAE,UAHmC;AAI3CC,EAAAA,OAAO,EAAEC,gBAJkC;AAK3CC,EAAAA,MAAM,EAAE,IALmC;AAM3CC,EAAAA,UAAU,EAAE,CACV,KADU,EAEV,MAFU,EAGV,KAHU,EAIV,KAJU,CAN+B;AAY3CC,EAAAA,SAAS,EAAE,CACT,YADS,EAET,WAFS,EAGT,kBAHS,EAIT,aAJS,EAKT,0BALS,CAZgC;AAmB3CC,EAAAA,MAAM,EAAE,IAnBmC;AAoB3CC,EAAAA,OAAO,EAAEb;AApBkC,CAAtC;;;AA0BA,IAAMc,uBAAuB,mCAC/BX,6BAD+B;AAElCY,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBH,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,mBACDA,OAAO,CAAC,oBAAD,CAAP,CAA8BX,QAD7B;AAAA;AAAA;AAAA;;AAEHW,cAAAA,OAAO,CAACI,KAAR;AACEC,gBAAAA,MAAM,EAAE;AACNC,kBAAAA,KAAK,EAAE,KADD;AAENC,kBAAAA,OAAO,EAAE;AAFH;AADV,iBAKKP,OAAO,CAACI,KALb;AAMEI,gBAAAA,eAAe,EAAE,MANnB;AAOEf,gBAAAA,MAAM,EAAE;AAPV;AAFG;AAAA,qBAWU,yBAAWU,WAAX,EAAwBH,OAAxB,CAXV;;AAAA;AAAA;;AAAA;AAAA,+CAaE,oDAAuBG,WAAvB,CAbF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAF6B,EAA7B;;;AAoBA,IAAMM,uCAA+C,GAAGnB,6BAAxD;;AACA,IAAMoB,iCAAmD,GAAGT,uBAA5D","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseCompressedTexture} from './lib/parsers/parse-compressed-texture';\nimport parseBasis from './lib/parsers/parse-basis';\n\nexport type TextureLoaderOptions = {\n 'compressed-texture'?: {\n libraryPath?: string;\n useBasis?: boolean;\n };\n};\n\nconst DEFAULT_TEXTURE_LOADER_OPTIONS = {\n 'compressed-texture': {\n libraryPath: 'libs/',\n useBasis: false\n }\n};\n\n/**\n * Worker Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureWorkerLoader = {\n name: 'Texture Containers',\n id: 'compressed-texture',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: [\n 'ktx',\n 'ktx2',\n 'dds', // WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_atc\n 'pvr' // WEBGL_compressed_texture_pvrtc\n ],\n mimeTypes: [\n 'image/ktx2',\n 'image/ktx',\n 'image/vnd-ms.dds',\n 'image/x-dds',\n 'application/octet-stream'\n ],\n binary: true,\n options: DEFAULT_TEXTURE_LOADER_OPTIONS\n};\n\n/**\n * Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureLoader = {\n ...CompressedTextureWorkerLoader,\n parse: async (arrayBuffer, options) => {\n if (options['compressed-texture'].useBasis) {\n options.basis = {\n format: {\n alpha: 'BC3',\n noAlpha: 'BC1'\n },\n ...options.basis,\n containerFormat: 'ktx2',\n module: 'encoder'\n };\n return await parseBasis(arrayBuffer, options);\n }\n return parseCompressedTexture(arrayBuffer);\n }\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCompressedTextureWorkerLoader: Loader = CompressedTextureWorkerLoader;\nexport const _TypecheckCompressedTextureLoader: LoaderWithParser = CompressedTextureLoader;\n"],"file":"compressed-texture-loader.js"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports._TypecheckCompressedTextureWriter = exports.CompressedTextureWriter = void 0;
7
-
8
- var _version = require("./lib/utils/version");
9
-
10
- var _encodeTexture = require("./lib/encoders/encode-texture");
11
-
12
- var CompressedTextureWriter = {
13
- name: 'DDS Texture Container',
14
- id: 'dds',
15
- module: 'textures',
16
- version: _version.VERSION,
17
- extensions: ['dds'],
18
- options: {
19
- texture: {
20
- format: 'auto',
21
- compression: 'auto',
22
- quality: 'auto',
23
- mipmap: false,
24
- flipY: false,
25
- toolFlags: ''
26
- }
27
- },
28
- encodeURLtoURL: _encodeTexture.encodeImageURLToCompressedTextureURL
29
- };
30
- exports.CompressedTextureWriter = CompressedTextureWriter;
31
- var _TypecheckCompressedTextureWriter = CompressedTextureWriter;
32
- exports._TypecheckCompressedTextureWriter = _TypecheckCompressedTextureWriter;
33
- //# sourceMappingURL=compressed-texture-writer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/compressed-texture-writer.ts"],"names":["CompressedTextureWriter","name","id","module","version","VERSION","extensions","options","texture","format","compression","quality","mipmap","flipY","toolFlags","encodeURLtoURL","encodeImageURLToCompressedTextureURL","_TypecheckCompressedTextureWriter"],"mappings":";;;;;;;AACA;;AACA;;AAKO,IAAMA,uBAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,EAAE,EAAE,KAFiC;AAGrCC,EAAAA,MAAM,EAAE,UAH6B;AAIrCC,EAAAA,OAAO,EAAEC,gBAJ4B;AAMrCC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANyB;AAQrCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAE;AACPC,MAAAA,MAAM,EAAE,MADD;AAEPC,MAAAA,WAAW,EAAE,MAFN;AAGPC,MAAAA,OAAO,EAAE,MAHF;AAIPC,MAAAA,MAAM,EAAE,KAJD;AAKPC,MAAAA,KAAK,EAAE,KALA;AAMPC,MAAAA,SAAS,EAAE;AANJ;AADF,GAR4B;AAmBrCC,EAAAA,cAAc,EAAEC;AAnBqB,CAAhC;;AAuBA,IAAMC,iCAAyC,GAAGjB,uBAAlD","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {encodeImageURLToCompressedTextureURL} from './lib/encoders/encode-texture';\n\n/**\n * DDS Texture Container Exporter\n */\nexport const CompressedTextureWriter = {\n name: 'DDS Texture Container',\n id: 'dds',\n module: 'textures',\n version: VERSION,\n\n extensions: ['dds'],\n\n options: {\n texture: {\n format: 'auto',\n compression: 'auto',\n quality: 'auto',\n mipmap: false,\n flipY: false,\n toolFlags: ''\n }\n },\n\n encodeURLtoURL: encodeImageURLToCompressedTextureURL\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCompressedTextureWriter: Writer = CompressedTextureWriter;\n"],"file":"compressed-texture-writer.js"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports._TypecheckCrunchLoader = exports.CrunchLoader = void 0;
7
-
8
- var _version = require("./lib/utils/version");
9
-
10
- var CrunchLoader = {
11
- id: 'crunch',
12
- name: 'Crunch',
13
- module: 'textures',
14
- version: _version.VERSION,
15
- worker: true,
16
- extensions: ['crn'],
17
- mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],
18
- binary: true,
19
- options: {
20
- crunch: {
21
- libraryPath: 'libs/'
22
- }
23
- }
24
- };
25
- exports.CrunchLoader = CrunchLoader;
26
- var _TypecheckCrunchLoader = CrunchLoader;
27
- exports._TypecheckCrunchLoader = _TypecheckCrunchLoader;
28
- //# sourceMappingURL=crunch-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crunch-loader.ts"],"names":["CrunchLoader","id","name","module","version","VERSION","worker","extensions","mimeTypes","binary","options","crunch","libraryPath","_TypecheckCrunchLoader"],"mappings":";;;;;;;AACA;;AAKO,IAAMA,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAE,QADsB;AAE1BC,EAAAA,IAAI,EAAE,QAFoB;AAG1BC,EAAAA,MAAM,EAAE,UAHkB;AAI1BC,EAAAA,OAAO,EAAEC,gBAJiB;AAK1BC,EAAAA,MAAM,EAAE,IALkB;AAM1BC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANc;AAO1BC,EAAAA,SAAS,EAAE,CAAC,WAAD,EAAc,aAAd,EAA6B,0BAA7B,CAPe;AAQ1BC,EAAAA,MAAM,EAAE,IARkB;AAS1BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,MAAM,EAAE;AACNC,MAAAA,WAAW,EAAE;AADP;AADD;AATiB,CAArB;;AAmBA,IAAMC,sBAA8B,GAAGb,YAAvC","sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\n\n/**\n * Worker loader for the Crunch compressed texture container format\n */\nexport const CrunchLoader = {\n id: 'crunch',\n name: 'Crunch',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['crn'],\n mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],\n binary: true,\n options: {\n crunch: {\n libraryPath: 'libs/'\n }\n }\n};\n\n// We avoid bundling crunch - rare format, only offer worker loader\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCrunchLoader: Loader = CrunchLoader;\n"],"file":"crunch-loader.js"}