@loaders.gl/textures 4.4.0-alpha.2 → 4.4.0

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 (234) hide show
  1. package/README.md +197 -1
  2. package/dist/basis-loader.d.ts +15 -10
  3. package/dist/basis-loader.d.ts.map +1 -1
  4. package/dist/basis-loader.js +1 -1
  5. package/dist/basis-loader.js.map +1 -0
  6. package/dist/basis-worker-node.js +932 -10040
  7. package/dist/basis-worker.d.ts +2 -0
  8. package/dist/basis-worker.d.ts.map +1 -0
  9. package/dist/basis-worker.js +337 -151
  10. package/dist/basis-worker.js.map +1 -0
  11. package/dist/compressed-texture-loader.d.ts +2 -5
  12. package/dist/compressed-texture-loader.d.ts.map +1 -1
  13. package/dist/compressed-texture-loader.js +2 -3
  14. package/dist/compressed-texture-loader.js.map +1 -0
  15. package/dist/compressed-texture-worker.d.ts +2 -0
  16. package/dist/compressed-texture-worker.d.ts.map +1 -0
  17. package/dist/compressed-texture-worker.js +1148 -365
  18. package/dist/compressed-texture-worker.js.map +1 -0
  19. package/dist/compressed-texture-writer.js +1 -0
  20. package/dist/compressed-texture-writer.js.map +1 -0
  21. package/dist/crunch-loader.d.ts +1 -5
  22. package/dist/crunch-loader.d.ts.map +1 -1
  23. package/dist/crunch-loader.js +2 -3
  24. package/dist/crunch-loader.js.map +1 -0
  25. package/dist/crunch-worker.d.ts +2 -0
  26. package/dist/crunch-worker.d.ts.map +1 -0
  27. package/dist/crunch-worker.js +204 -92
  28. package/dist/crunch-worker.js.map +1 -0
  29. package/dist/dist.dev.js +2687 -677
  30. package/dist/dist.min.js +1 -2
  31. package/dist/index.cjs +1644 -428
  32. package/dist/index.cjs.map +4 -4
  33. package/dist/index.d.ts +13 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +7 -3
  36. package/dist/index.js.map +1 -0
  37. package/dist/ktx2-basis-writer-worker-node.js +574 -9832
  38. package/dist/ktx2-basis-writer-worker.d.ts +2 -0
  39. package/dist/ktx2-basis-writer-worker.d.ts.map +1 -0
  40. package/dist/ktx2-basis-writer-worker.js +45 -7
  41. package/dist/ktx2-basis-writer-worker.js.map +1 -0
  42. package/dist/ktx2-basis-writer.js +1 -0
  43. package/dist/ktx2-basis-writer.js.map +1 -0
  44. package/dist/lib/composite-image/image-texture-cube.d.ts +47 -0
  45. package/dist/lib/composite-image/image-texture-cube.d.ts.map +1 -0
  46. package/dist/lib/composite-image/image-texture-cube.js +42 -0
  47. package/dist/lib/composite-image/image-texture-cube.js.map +1 -0
  48. package/dist/lib/composite-image/parse-composite-image.d.ts +43 -0
  49. package/dist/lib/composite-image/parse-composite-image.d.ts.map +1 -0
  50. package/dist/lib/composite-image/parse-composite-image.js +437 -0
  51. package/dist/lib/composite-image/parse-composite-image.js.map +1 -0
  52. package/dist/lib/encoders/encode-ktx.d.ts +1 -1
  53. package/dist/lib/encoders/encode-ktx.d.ts.map +1 -1
  54. package/dist/lib/encoders/encode-ktx.js +1 -0
  55. package/dist/lib/encoders/encode-ktx.js.map +1 -0
  56. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts +2 -1
  57. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
  58. package/dist/lib/encoders/encode-ktx2-basis-texture.js +3 -1
  59. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  60. package/dist/lib/encoders/encode-texture.js +1 -0
  61. package/dist/lib/encoders/encode-texture.js.map +1 -0
  62. package/dist/lib/gl-extensions.d.ts +166 -58
  63. package/dist/lib/gl-extensions.d.ts.map +1 -1
  64. package/dist/lib/gl-extensions.js +178 -66
  65. package/dist/lib/gl-extensions.js.map +1 -0
  66. package/dist/lib/gl-types.d.ts +4 -0
  67. package/dist/lib/gl-types.d.ts.map +1 -0
  68. package/dist/lib/gl-types.js +5 -0
  69. package/dist/lib/gl-types.js.map +1 -0
  70. package/dist/lib/parsers/basis-module-loader.d.ts +3 -2
  71. package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -1
  72. package/dist/lib/parsers/basis-module-loader.js +1 -0
  73. package/dist/lib/parsers/basis-module-loader.js.map +1 -0
  74. package/dist/lib/parsers/crunch-module-loader.d.ts +2 -2
  75. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
  76. package/dist/lib/parsers/crunch-module-loader.js +1 -0
  77. package/dist/lib/parsers/crunch-module-loader.js.map +1 -0
  78. package/dist/lib/parsers/parse-basis.d.ts +34 -2
  79. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  80. package/dist/lib/parsers/parse-basis.js +265 -64
  81. package/dist/lib/parsers/parse-basis.js.map +1 -0
  82. package/dist/lib/parsers/parse-compressed-texture.js +1 -0
  83. package/dist/lib/parsers/parse-compressed-texture.js.map +1 -0
  84. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  85. package/dist/lib/parsers/parse-crunch.js +7 -6
  86. package/dist/lib/parsers/parse-crunch.js.map +1 -0
  87. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  88. package/dist/lib/parsers/parse-dds.js +11 -11
  89. package/dist/lib/parsers/parse-dds.js.map +1 -0
  90. package/dist/lib/parsers/parse-hdr.d.ts +21 -0
  91. package/dist/lib/parsers/parse-hdr.d.ts.map +1 -0
  92. package/dist/lib/parsers/parse-hdr.js +305 -0
  93. package/dist/lib/parsers/parse-hdr.js.map +1 -0
  94. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  95. package/dist/lib/parsers/parse-ktx.js +11 -3
  96. package/dist/lib/parsers/parse-ktx.js.map +1 -0
  97. package/dist/lib/parsers/parse-npy.js +1 -0
  98. package/dist/lib/parsers/parse-npy.js.map +1 -0
  99. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  100. package/dist/lib/parsers/parse-pvr.js +32 -74
  101. package/dist/lib/parsers/parse-pvr.js.map +1 -0
  102. package/dist/lib/texture-api/async-deep-map.js +1 -0
  103. package/dist/lib/texture-api/async-deep-map.js.map +1 -0
  104. package/dist/lib/texture-api/deep-load.js +1 -0
  105. package/dist/lib/texture-api/deep-load.js.map +1 -0
  106. package/dist/lib/texture-api/generate-url.d.ts.map +1 -1
  107. package/dist/lib/texture-api/generate-url.js +3 -10
  108. package/dist/lib/texture-api/generate-url.js.map +1 -0
  109. package/dist/lib/texture-api/load-image-array.d.ts +6 -3
  110. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -1
  111. package/dist/lib/texture-api/load-image-array.js +6 -3
  112. package/dist/lib/texture-api/load-image-array.js.map +1 -0
  113. package/dist/lib/texture-api/load-image-cube.d.ts +7 -11
  114. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  115. package/dist/lib/texture-api/load-image-cube.js +9 -20
  116. package/dist/lib/texture-api/load-image-cube.js.map +1 -0
  117. package/dist/lib/texture-api/load-image.d.ts +6 -3
  118. package/dist/lib/texture-api/load-image.d.ts.map +1 -1
  119. package/dist/lib/texture-api/load-image.js +9 -4
  120. package/dist/lib/texture-api/load-image.js.map +1 -0
  121. package/dist/lib/texture-api/texture-api-types.d.ts +13 -0
  122. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  123. package/dist/lib/texture-api/texture-api-types.js +1 -0
  124. package/dist/lib/texture-api/texture-api-types.js.map +1 -0
  125. package/dist/lib/utils/detect-supported-texture-formats.d.ts +14 -0
  126. package/dist/lib/utils/detect-supported-texture-formats.d.ts.map +1 -0
  127. package/dist/lib/utils/detect-supported-texture-formats.js +197 -0
  128. package/dist/lib/utils/detect-supported-texture-formats.js.map +1 -0
  129. package/dist/lib/utils/extract-mipmap-images.d.ts +6 -2
  130. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  131. package/dist/lib/utils/extract-mipmap-images.js +14 -2
  132. package/dist/lib/utils/extract-mipmap-images.js.map +1 -0
  133. package/dist/lib/utils/ktx-format-helper.d.ts +9 -1
  134. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
  135. package/dist/lib/utils/ktx-format-helper.js +77 -109
  136. package/dist/lib/utils/ktx-format-helper.js.map +1 -0
  137. package/dist/lib/utils/texture-format-map.d.ts +10 -0
  138. package/dist/lib/utils/texture-format-map.d.ts.map +1 -0
  139. package/dist/lib/utils/texture-format-map.js +87 -0
  140. package/dist/lib/utils/texture-format-map.js.map +1 -0
  141. package/dist/lib/utils/version.js +2 -1
  142. package/dist/lib/utils/version.js.map +1 -0
  143. package/dist/libs/libs/README.md +9 -0
  144. package/dist/libs/libs/basis_encoder.js +21 -0
  145. package/dist/libs/libs/basis_encoder.wasm +0 -0
  146. package/dist/libs/libs/basis_transcoder.js +22 -0
  147. package/dist/libs/libs/basis_transcoder.wasm +0 -0
  148. package/dist/libs/libs/crunch.js +136 -0
  149. package/dist/npy-loader.d.ts +2 -2
  150. package/dist/npy-loader.js +1 -0
  151. package/dist/npy-loader.js.map +1 -0
  152. package/dist/npy-worker.d.ts +2 -0
  153. package/dist/npy-worker.d.ts.map +1 -0
  154. package/dist/npy-worker.js +5 -2
  155. package/dist/npy-worker.js.map +1 -0
  156. package/dist/radiance-hdr-loader.d.ts +25 -0
  157. package/dist/radiance-hdr-loader.d.ts.map +1 -0
  158. package/dist/radiance-hdr-loader.js +23 -0
  159. package/dist/radiance-hdr-loader.js.map +1 -0
  160. package/dist/texture-array-loader.d.ts +25 -0
  161. package/dist/texture-array-loader.d.ts.map +1 -0
  162. package/dist/texture-array-loader.js +24 -0
  163. package/dist/texture-array-loader.js.map +1 -0
  164. package/dist/texture-cube-array-loader.d.ts +25 -0
  165. package/dist/texture-cube-array-loader.d.ts.map +1 -0
  166. package/dist/texture-cube-array-loader.js +24 -0
  167. package/dist/texture-cube-array-loader.js.map +1 -0
  168. package/dist/texture-cube-loader.d.ts +25 -0
  169. package/dist/texture-cube-loader.d.ts.map +1 -0
  170. package/dist/texture-cube-loader.js +24 -0
  171. package/dist/texture-cube-loader.js.map +1 -0
  172. package/dist/texture-loader.d.ts +25 -0
  173. package/dist/texture-loader.d.ts.map +1 -0
  174. package/dist/texture-loader.js +24 -0
  175. package/dist/texture-loader.js.map +1 -0
  176. package/dist/workers/basis-worker-node.js +1 -0
  177. package/dist/workers/basis-worker-node.js.map +1 -0
  178. package/dist/workers/basis-worker.js +1 -0
  179. package/dist/workers/basis-worker.js.map +1 -0
  180. package/dist/workers/compressed-texture-worker.js +1 -1
  181. package/dist/workers/compressed-texture-worker.js.map +1 -0
  182. package/dist/workers/crunch-worker.d.ts +1 -3
  183. package/dist/workers/crunch-worker.d.ts.map +1 -1
  184. package/dist/workers/crunch-worker.js +1 -0
  185. package/dist/workers/crunch-worker.js.map +1 -0
  186. package/dist/workers/ktx2-basis-writer-worker-node.js +1 -0
  187. package/dist/workers/ktx2-basis-writer-worker-node.js.map +1 -0
  188. package/dist/workers/ktx2-basis-writer-worker.js +1 -0
  189. package/dist/workers/ktx2-basis-writer-worker.js.map +1 -0
  190. package/dist/workers/npy-worker.js +1 -0
  191. package/dist/workers/npy-worker.js.map +1 -0
  192. package/package.json +27 -6
  193. package/src/basis-loader.ts +19 -9
  194. package/src/basis-worker.ts +7 -0
  195. package/src/compressed-texture-loader.ts +3 -7
  196. package/src/compressed-texture-worker.ts +6 -0
  197. package/src/crunch-loader.ts +1 -5
  198. package/src/crunch-worker.ts +6 -0
  199. package/src/index.ts +21 -4
  200. package/src/ktx2-basis-writer-worker.ts +6 -0
  201. package/src/lib/composite-image/image-texture-cube.ts +49 -0
  202. package/src/lib/composite-image/parse-composite-image.ts +699 -0
  203. package/src/lib/encoders/encode-ktx.ts +1 -1
  204. package/src/lib/encoders/encode-ktx2-basis-texture.ts +4 -2
  205. package/src/lib/gl-extensions.ts +188 -81
  206. package/src/lib/gl-types.ts +136 -0
  207. package/src/lib/parsers/basis-module-loader.ts +5 -5
  208. package/src/lib/parsers/crunch-module-loader.ts +4 -4
  209. package/src/lib/parsers/parse-basis.ts +358 -66
  210. package/src/lib/parsers/parse-crunch.ts +11 -8
  211. package/src/lib/parsers/parse-dds.ts +11 -12
  212. package/src/lib/parsers/parse-hdr.ts +426 -0
  213. package/src/lib/parsers/parse-ktx.ts +13 -3
  214. package/src/lib/parsers/parse-pvr.ts +33 -75
  215. package/src/lib/texture-api/generate-url.ts +2 -12
  216. package/src/lib/texture-api/load-image-array.ts +15 -6
  217. package/src/lib/texture-api/load-image-cube.ts +20 -34
  218. package/src/lib/texture-api/load-image.ts +19 -8
  219. package/src/lib/texture-api/texture-api-types.ts +15 -0
  220. package/src/lib/utils/detect-supported-texture-formats.ts +210 -0
  221. package/src/lib/utils/extract-mipmap-images.ts +23 -4
  222. package/src/lib/utils/ktx-format-helper.ts +135 -111
  223. package/src/lib/utils/texture-format-map.ts +162 -0
  224. package/src/npy-worker.ts +6 -0
  225. package/src/radiance-hdr-loader.ts +36 -0
  226. package/src/texture-array-loader.ts +46 -0
  227. package/src/texture-cube-array-loader.ts +49 -0
  228. package/src/texture-cube-loader.ts +46 -0
  229. package/src/texture-loader.ts +49 -0
  230. package/src/workers/compressed-texture-worker.ts +0 -1
  231. package/dist/lib/utils/texture-formats.d.ts +0 -8
  232. package/dist/lib/utils/texture-formats.d.ts.map +0 -1
  233. package/dist/lib/utils/texture-formats.js +0 -50
  234. package/src/lib/utils/texture-formats.ts +0 -59
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=basis-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-worker.d.ts","sourceRoot":"","sources":["../src/basis-worker.ts"],"names":[],"mappings":""}
@@ -20,8 +20,9 @@
20
20
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
21
21
  );
22
22
  globalThis._loadersgl_.version = NPM_TAG;
23
+ warningIssued = true;
23
24
  } else {
24
- globalThis._loadersgl_.version = "4.4.0-alpha.1";
25
+ globalThis._loadersgl_.version = "4.4.0";
25
26
  }
26
27
  }
27
28
  return globalThis._loadersgl_.version;
@@ -175,6 +176,16 @@
175
176
 
176
177
  // ../worker-utils/src/lib/library-utils/library-utils.ts
177
178
  var loadLibraryPromises = {};
179
+ function extractLoadLibraryOptions(options = {}) {
180
+ const useLocalLibraries = options.useLocalLibraries ?? options.core?.useLocalLibraries;
181
+ const CDN = options.CDN ?? options.core?.CDN;
182
+ const modules = options.modules;
183
+ return {
184
+ ...useLocalLibraries !== void 0 ? { useLocalLibraries } : {},
185
+ ...CDN !== void 0 ? { CDN } : {},
186
+ ...modules !== void 0 ? { modules } : {}
187
+ };
188
+ }
178
189
  async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
179
190
  if (moduleName) {
180
191
  libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
@@ -184,6 +195,9 @@
184
195
  return await loadLibraryPromises[libraryUrl];
185
196
  }
186
197
  function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
198
+ if (options?.core) {
199
+ throw new Error("loadLibrary: options.core must be pre-normalized");
200
+ }
187
201
  if (!options.useLocalLibraries && library.startsWith("http")) {
188
202
  return library;
189
203
  }
@@ -209,10 +223,20 @@
209
223
  return await loadAsArrayBuffer(libraryUrl);
210
224
  }
211
225
  if (!isBrowser) {
226
+ const { requireFromFile } = globalThis.loaders || {};
212
227
  try {
213
- const { requireFromFile } = globalThis.loaders || {};
214
- return await requireFromFile?.(libraryUrl);
228
+ const result = await requireFromFile?.(libraryUrl);
229
+ if (result || !libraryUrl.includes("/dist/libs/")) {
230
+ return result;
231
+ }
232
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
215
233
  } catch (error) {
234
+ if (libraryUrl.includes("/dist/libs/")) {
235
+ try {
236
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
237
+ } catch {
238
+ }
239
+ }
216
240
  console.error(error);
217
241
  return null;
218
242
  }
@@ -248,7 +272,14 @@
248
272
  const response = await fetch(url);
249
273
  return await response.arrayBuffer();
250
274
  }
251
- return await readFileAsArrayBuffer(url);
275
+ try {
276
+ return await readFileAsArrayBuffer(url);
277
+ } catch {
278
+ if (url.includes("/dist/libs/")) {
279
+ return await readFileAsArrayBuffer(url.replace("/dist/libs/", "/src/libs/"));
280
+ }
281
+ throw new Error(`Failed to load ArrayBuffer from ${url}`);
282
+ }
252
283
  }
253
284
  async function loadAsText(url) {
254
285
  const { readFileAsText } = globalThis.loaders || {};
@@ -256,7 +287,14 @@
256
287
  const response = await fetch(url);
257
288
  return await response.text();
258
289
  }
259
- return await readFileAsText(url);
290
+ try {
291
+ return await readFileAsText(url);
292
+ } catch {
293
+ if (url.includes("/dist/libs/")) {
294
+ return await readFileAsText(url.replace("/dist/libs/", "/src/libs/"));
295
+ }
296
+ throw new Error(`Failed to load text from ${url}`);
297
+ }
260
298
  }
261
299
 
262
300
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
@@ -335,13 +373,16 @@
335
373
  options = {
336
374
  ...options,
337
375
  modules: loader && loader.options && loader.options.modules || {},
338
- worker: false
376
+ core: {
377
+ ...options.core,
378
+ worker: false
379
+ }
339
380
  };
340
381
  return await parser(data, { ...options }, context, loader);
341
382
  }
342
383
 
343
384
  // src/lib/utils/version.ts
344
- var VERSION2 = true ? "4.4.0-alpha.1" : "latest";
385
+ var VERSION2 = true ? "4.4.0" : "latest";
345
386
 
346
387
  // src/lib/parsers/basis-module-loader.ts
347
388
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -421,104 +462,117 @@
421
462
  }
422
463
 
423
464
  // src/lib/gl-extensions.ts
424
- var GL_EXTENSIONS_CONSTANTS = {
425
- // WEBGL_compressed_texture_s3tc
426
- COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
427
- COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
428
- COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
429
- COMPRESSED_RGBA_S3TC_DXT5_EXT: 33779,
430
- // WEBGL_compressed_texture_es3
431
- COMPRESSED_R11_EAC: 37488,
432
- COMPRESSED_SIGNED_R11_EAC: 37489,
433
- COMPRESSED_RG11_EAC: 37490,
434
- COMPRESSED_SIGNED_RG11_EAC: 37491,
435
- COMPRESSED_RGB8_ETC2: 37492,
436
- COMPRESSED_RGBA8_ETC2_EAC: 37493,
437
- COMPRESSED_SRGB8_ETC2: 37494,
438
- COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 37495,
439
- COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37496,
440
- COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37497,
441
- // WEBGL_compressed_texture_pvrtc
442
- COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 35840,
443
- COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 35842,
444
- COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 35841,
445
- COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 35843,
446
- // WEBGL_compressed_texture_etc1
447
- COMPRESSED_RGB_ETC1_WEBGL: 36196,
448
- // WEBGL_compressed_texture_atc
449
- COMPRESSED_RGB_ATC_WEBGL: 35986,
450
- COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 35987,
451
- COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 34798,
452
- // WEBGL_compressed_texture_astc
453
- COMPRESSED_RGBA_ASTC_4X4_KHR: 37808,
454
- COMPRESSED_RGBA_ASTC_5X4_KHR: 37809,
455
- COMPRESSED_RGBA_ASTC_5X5_KHR: 37810,
456
- COMPRESSED_RGBA_ASTC_6X5_KHR: 37811,
457
- COMPRESSED_RGBA_ASTC_6X6_KHR: 37812,
458
- COMPRESSED_RGBA_ASTC_8X5_KHR: 37813,
459
- COMPRESSED_RGBA_ASTC_8X6_KHR: 37814,
460
- COMPRESSED_RGBA_ASTC_8X8_KHR: 37815,
461
- COMPRESSED_RGBA_ASTC_10X5_KHR: 37816,
462
- COMPRESSED_RGBA_ASTC_10X6_KHR: 37817,
463
- COMPRESSED_RGBA_ASTC_10X8_KHR: 37818,
464
- COMPRESSED_RGBA_ASTC_10X10_KHR: 37819,
465
- COMPRESSED_RGBA_ASTC_12X10_KHR: 37820,
466
- COMPRESSED_RGBA_ASTC_12X12_KHR: 37821,
467
- COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 37840,
468
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 37841,
469
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 37842,
470
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 37843,
471
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 37844,
472
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 37845,
473
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 37846,
474
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 37847,
475
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 37848,
476
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 37849,
477
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 37850,
478
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 37851,
479
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 37852,
480
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 37853,
481
- // EXT_texture_compression_rgtc
482
- COMPRESSED_RED_RGTC1_EXT: 36283,
483
- COMPRESSED_SIGNED_RED_RGTC1_EXT: 36284,
484
- COMPRESSED_RED_GREEN_RGTC2_EXT: 36285,
485
- COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 36286,
486
- // WEBGL_compressed_texture_s3tc_srgb
487
- COMPRESSED_SRGB_S3TC_DXT1_EXT: 35916,
488
- COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 35917,
489
- COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 35918,
490
- COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
491
- };
465
+ var GL_RGBA4 = 32854;
466
+ var GL_RGBA8 = 32856;
467
+ var GL_RGB565 = 36194;
468
+ var GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 33776;
469
+ var GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779;
470
+ var GL_COMPRESSED_RGBA8_ETC2_EAC = 37493;
471
+ var GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840;
472
+ var GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842;
473
+ var GL_COMPRESSED_RGB_ETC1_WEBGL = 36196;
474
+ var GL_COMPRESSED_RGB_ATC_WEBGL = 35986;
475
+ var GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798;
476
+ var GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 37808;
477
+ var GL_COMPRESSED_RED_RGTC1_EXT = 36283;
478
+ var GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 36285;
479
+ var GL_COMPRESSED_RGBA_BPTC_UNORM_EXT = 36492;
492
480
 
493
- // src/lib/utils/texture-formats.ts
481
+ // src/lib/utils/detect-supported-texture-formats.ts
494
482
  var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
495
- var WEBGL_EXTENSIONS = {
483
+ var WEBGL_TEXTURE_FORMATS = {
496
484
  /* eslint-disable camelcase */
497
- WEBGL_compressed_texture_s3tc: "dxt",
498
- WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
499
- WEBGL_compressed_texture_etc1: "etc1",
500
- WEBGL_compressed_texture_etc: "etc2",
501
- WEBGL_compressed_texture_pvrtc: "pvrtc",
502
- WEBGL_compressed_texture_atc: "atc",
503
- WEBGL_compressed_texture_astc: "astc",
504
- EXT_texture_compression_rgtc: "rgtc"
485
+ WEBGL_compressed_texture_s3tc: [
486
+ "bc1-rgb-unorm-webgl",
487
+ "bc1-rgba-unorm",
488
+ "bc2-rgba-unorm",
489
+ "bc3-rgba-unorm"
490
+ ],
491
+ WEBGL_compressed_texture_s3tc_srgb: [
492
+ "bc1-rgb-unorm-srgb-webgl",
493
+ "bc1-rgba-unorm-srgb",
494
+ "bc2-rgba-unorm-srgb",
495
+ "bc3-rgba-unorm-srgb"
496
+ ],
497
+ EXT_texture_compression_rgtc: ["bc4-r-unorm", "bc4-r-snorm", "bc5-rg-unorm", "bc5-rg-snorm"],
498
+ EXT_texture_compression_bptc: [
499
+ "bc6h-rgb-ufloat",
500
+ "bc6h-rgb-float",
501
+ "bc7-rgba-unorm",
502
+ "bc7-rgba-unorm-srgb"
503
+ ],
504
+ WEBGL_compressed_texture_etc1: ["etc1-rgb-unorm-webgl"],
505
+ WEBGL_compressed_texture_etc: [
506
+ "etc2-rgb8unorm",
507
+ "etc2-rgb8unorm-srgb",
508
+ "etc2-rgb8a1unorm",
509
+ "etc2-rgb8a1unorm-srgb",
510
+ "etc2-rgba8unorm",
511
+ "etc2-rgba8unorm-srgb",
512
+ "eac-r11unorm",
513
+ "eac-r11snorm",
514
+ "eac-rg11unorm",
515
+ "eac-rg11snorm"
516
+ ],
517
+ WEBGL_compressed_texture_pvrtc: [
518
+ "pvrtc-rgb4unorm-webgl",
519
+ "pvrtc-rgba4unorm-webgl",
520
+ "pvrtc-rgb2unorm-webgl",
521
+ "pvrtc-rgba2unorm-webgl"
522
+ ],
523
+ WEBGL_compressed_texture_atc: [
524
+ "atc-rgb-unorm-webgl",
525
+ "atc-rgba-unorm-webgl",
526
+ "atc-rgbai-unorm-webgl"
527
+ ],
528
+ WEBGL_compressed_texture_astc: [
529
+ "astc-4x4-unorm",
530
+ "astc-4x4-unorm-srgb",
531
+ "astc-5x4-unorm",
532
+ "astc-5x4-unorm-srgb",
533
+ "astc-5x5-unorm",
534
+ "astc-5x5-unorm-srgb",
535
+ "astc-6x5-unorm",
536
+ "astc-6x5-unorm-srgb",
537
+ "astc-6x6-unorm",
538
+ "astc-6x6-unorm-srgb",
539
+ "astc-8x5-unorm",
540
+ "astc-8x5-unorm-srgb",
541
+ "astc-8x6-unorm",
542
+ "astc-8x6-unorm-srgb",
543
+ "astc-8x8-unorm",
544
+ "astc-8x8-unorm-srgb",
545
+ "astc-10x5-unorm",
546
+ "astc-10x5-unorm-srgb",
547
+ "astc-10x6-unorm",
548
+ "astc-10x6-unorm-srgb",
549
+ "astc-10x8-unorm",
550
+ "astc-10x8-unorm-srgb",
551
+ "astc-10x10-unorm",
552
+ "astc-10x10-unorm-srgb",
553
+ "astc-12x10-unorm",
554
+ "astc-12x10-unorm-srgb",
555
+ "astc-12x12-unorm",
556
+ "astc-12x12-unorm-srgb"
557
+ ]
505
558
  /* eslint-enable camelcase */
506
559
  };
507
- var formats = null;
508
- function getSupportedGPUTextureFormats(gl) {
509
- if (!formats) {
560
+ var textureFormats = null;
561
+ function detectSupportedTextureFormats(gl) {
562
+ if (!textureFormats) {
510
563
  gl = gl || getWebGLContext() || void 0;
511
- formats = /* @__PURE__ */ new Set();
564
+ textureFormats = /* @__PURE__ */ new Set();
512
565
  for (const prefix of BROWSER_PREFIXES) {
513
- for (const extension in WEBGL_EXTENSIONS) {
566
+ for (const extension in WEBGL_TEXTURE_FORMATS) {
514
567
  if (gl && gl.getExtension(`${prefix}${extension}`)) {
515
- const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
516
- formats.add(gpuTextureFormat);
568
+ for (const textureFormat of WEBGL_TEXTURE_FORMATS[extension]) {
569
+ textureFormats.add(textureFormat);
570
+ }
517
571
  }
518
572
  }
519
573
  }
520
574
  }
521
- return formats;
575
+ return textureFormats;
522
576
  }
523
577
  function getWebGLContext() {
524
578
  try {
@@ -563,73 +617,154 @@
563
617
  }
564
618
 
565
619
  // src/lib/parsers/parse-basis.ts
566
- var OutputFormat = {
620
+ var basisTranscodingLock = Promise.resolve();
621
+ var BASIS_FORMAT_TO_OUTPUT_OPTIONS = {
567
622
  etc1: {
568
623
  basisFormat: 0,
569
624
  compressed: true,
570
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
625
+ format: GL_COMPRESSED_RGB_ETC1_WEBGL,
626
+ textureFormat: "etc1-rgb-unorm-webgl"
627
+ },
628
+ etc2: {
629
+ basisFormat: 1,
630
+ compressed: true,
631
+ format: GL_COMPRESSED_RGBA8_ETC2_EAC,
632
+ textureFormat: "etc2-rgba8unorm"
571
633
  },
572
- etc2: { basisFormat: 1, compressed: true },
573
634
  bc1: {
574
635
  basisFormat: 2,
575
636
  compressed: true,
576
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
637
+ format: GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
638
+ textureFormat: "bc1-rgb-unorm-webgl"
577
639
  },
578
640
  bc3: {
579
641
  basisFormat: 3,
580
642
  compressed: true,
581
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
643
+ format: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
644
+ textureFormat: "bc3-rgba-unorm"
645
+ },
646
+ bc4: {
647
+ basisFormat: 4,
648
+ compressed: true,
649
+ format: GL_COMPRESSED_RED_RGTC1_EXT,
650
+ textureFormat: "bc4-r-unorm"
651
+ },
652
+ bc5: {
653
+ basisFormat: 5,
654
+ compressed: true,
655
+ format: GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
656
+ textureFormat: "bc5-rg-unorm"
657
+ },
658
+ "bc7-m6-opaque-only": {
659
+ basisFormat: 6,
660
+ compressed: true,
661
+ format: GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
662
+ textureFormat: "bc7-rgba-unorm"
663
+ },
664
+ "bc7-m5": {
665
+ basisFormat: 7,
666
+ compressed: true,
667
+ format: GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
668
+ textureFormat: "bc7-rgba-unorm"
582
669
  },
583
- bc4: { basisFormat: 4, compressed: true },
584
- bc5: { basisFormat: 5, compressed: true },
585
- "bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
586
- "bc7-m5": { basisFormat: 7, compressed: true },
587
670
  "pvrtc1-4-rgb": {
588
671
  basisFormat: 8,
589
672
  compressed: true,
590
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
673
+ format: GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
674
+ textureFormat: "pvrtc-rgb4unorm-webgl"
591
675
  },
592
676
  "pvrtc1-4-rgba": {
593
677
  basisFormat: 9,
594
678
  compressed: true,
595
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
679
+ format: GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
680
+ textureFormat: "pvrtc-rgba4unorm-webgl"
596
681
  },
597
682
  "astc-4x4": {
598
683
  basisFormat: 10,
599
684
  compressed: true,
600
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
685
+ format: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
686
+ textureFormat: "astc-4x4-unorm"
601
687
  },
602
- "atc-rgb": { basisFormat: 11, compressed: true },
603
- "atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
604
- rgba32: { basisFormat: 13, compressed: false },
605
- rgb565: { basisFormat: 14, compressed: false },
606
- bgr565: { basisFormat: 15, compressed: false },
607
- rgba4444: { basisFormat: 16, compressed: false }
688
+ "atc-rgb": {
689
+ basisFormat: 11,
690
+ compressed: true,
691
+ format: GL_COMPRESSED_RGB_ATC_WEBGL,
692
+ textureFormat: "atc-rgb-unorm-webgl"
693
+ },
694
+ "atc-rgba-interpolated-alpha": {
695
+ basisFormat: 12,
696
+ compressed: true,
697
+ format: GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,
698
+ textureFormat: "atc-rgbai-unorm-webgl"
699
+ },
700
+ rgba32: {
701
+ basisFormat: 13,
702
+ compressed: false,
703
+ format: GL_RGBA8,
704
+ textureFormat: "rgba8unorm"
705
+ },
706
+ rgb565: {
707
+ basisFormat: 14,
708
+ compressed: false,
709
+ format: GL_RGB565,
710
+ textureFormat: "rgb565unorm-webgl"
711
+ },
712
+ bgr565: {
713
+ basisFormat: 15,
714
+ compressed: false,
715
+ format: GL_RGB565,
716
+ textureFormat: "rgb565unorm-webgl"
717
+ },
718
+ rgba4444: {
719
+ basisFormat: 16,
720
+ compressed: false,
721
+ format: GL_RGBA4,
722
+ textureFormat: "rgba4unorm-webgl"
723
+ }
608
724
  };
609
- async function parseBasis(data, options) {
610
- if (options.basis.containerFormat === "auto") {
611
- if (isKTX(data)) {
612
- const fileConstructors = await loadBasisEncoderModule(options);
613
- return parseKTX2File(fileConstructors.KTX2File, data, options);
614
- }
615
- const { BasisFile } = await loadBasisTranscoderModule(options);
616
- return parseBasisFile(BasisFile, data, options);
617
- }
618
- switch (options.basis.module) {
619
- case "encoder":
620
- const fileConstructors = await loadBasisEncoderModule(options);
621
- switch (options.basis.containerFormat) {
622
- case "ktx2":
623
- return parseKTX2File(fileConstructors.KTX2File, data, options);
624
- case "basis":
625
- default:
626
- return parseBasisFile(fileConstructors.BasisFile, data, options);
725
+ var BASIS_FORMATS = Object.freeze(
726
+ Object.keys(BASIS_FORMAT_TO_OUTPUT_OPTIONS)
727
+ );
728
+ async function withBasisTranscodingLock(transcode) {
729
+ const previousLock = basisTranscodingLock;
730
+ let releaseLock;
731
+ basisTranscodingLock = new Promise((resolve) => {
732
+ releaseLock = resolve;
733
+ });
734
+ await previousLock;
735
+ try {
736
+ return await transcode();
737
+ } finally {
738
+ releaseLock();
739
+ }
740
+ }
741
+ async function parseBasis(data, options = {}) {
742
+ const loadLibraryOptions = extractLoadLibraryOptions(options);
743
+ return await withBasisTranscodingLock(async () => {
744
+ if (!options.basis?.containerFormat || options.basis.containerFormat === "auto") {
745
+ if (isKTX(data)) {
746
+ const fileConstructors = await loadBasisEncoderModule(loadLibraryOptions);
747
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
627
748
  }
628
- case "transcoder":
629
- default:
630
- const { BasisFile } = await loadBasisTranscoderModule(options);
749
+ const { BasisFile } = await loadBasisTranscoderModule(loadLibraryOptions);
631
750
  return parseBasisFile(BasisFile, data, options);
632
- }
751
+ }
752
+ switch (options.basis.module) {
753
+ case "encoder":
754
+ const fileConstructors = await loadBasisEncoderModule(loadLibraryOptions);
755
+ switch (options.basis.containerFormat) {
756
+ case "ktx2":
757
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
758
+ case "basis":
759
+ default:
760
+ return parseBasisFile(fileConstructors.BasisFile, data, options);
761
+ }
762
+ case "transcoder":
763
+ default:
764
+ const { BasisFile } = await loadBasisTranscoderModule(loadLibraryOptions);
765
+ return parseBasisFile(BasisFile, data, options);
766
+ }
767
+ });
633
768
  }
634
769
  function parseBasisFile(BasisFile, data, options) {
635
770
  const basisFile = new BasisFile(new Uint8Array(data));
@@ -659,7 +794,7 @@
659
794
  const hasAlpha = basisFile.getHasAlpha(
660
795
  /* imageIndex, levelIndex */
661
796
  );
662
- const { compressed, format, basisFormat } = getBasisOptions(options, hasAlpha);
797
+ const { compressed, format, basisFormat, textureFormat } = getBasisOptions(options, hasAlpha);
663
798
  const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
664
799
  const decodedData = new Uint8Array(decodedSize);
665
800
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
@@ -667,11 +802,13 @@
667
802
  }
668
803
  return {
669
804
  // standard loaders.gl image category payload
805
+ shape: "texture-level",
670
806
  width,
671
807
  height,
672
808
  data: decodedData,
673
809
  compressed,
674
- format,
810
+ ...format !== void 0 ? { format } : {},
811
+ ...textureFormat !== void 0 ? { textureFormat } : {},
675
812
  // Additional fields
676
813
  // Add levelSize field.
677
814
  hasAlpha
@@ -696,7 +833,7 @@
696
833
  }
697
834
  function transcodeKTX2Image(ktx2File, levelIndex, options) {
698
835
  const { alphaFlag, height, width } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
699
- const { compressed, format, basisFormat } = getBasisOptions(options, alphaFlag);
836
+ const { compressed, format, basisFormat, textureFormat } = getBasisOptions(options, alphaFlag);
700
837
  const decodedSize = ktx2File.getImageTranscodedSizeInBytes(
701
838
  levelIndex,
702
839
  0,
@@ -719,48 +856,98 @@
719
856
  }
720
857
  return {
721
858
  // standard loaders.gl image category payload
859
+ shape: "texture-level",
722
860
  width,
723
861
  height,
724
862
  data: decodedData,
725
863
  compressed,
864
+ ...format !== void 0 ? { format } : {},
865
+ ...textureFormat !== void 0 ? { textureFormat } : {},
726
866
  // Additional fields
727
867
  levelSize: decodedSize,
728
- hasAlpha: alphaFlag,
729
- format
868
+ hasAlpha: alphaFlag
730
869
  };
731
870
  }
732
871
  function getBasisOptions(options, hasAlpha) {
733
- let format = options && options.basis && options.basis.format;
872
+ let format = options.basis?.format || "auto";
734
873
  if (format === "auto") {
735
- format = selectSupportedBasisFormat();
874
+ format = options.basis?.supportedTextureFormats ? selectSupportedBasisFormat(options.basis.supportedTextureFormats) : selectSupportedBasisFormat();
736
875
  }
737
876
  if (typeof format === "object") {
738
877
  format = hasAlpha ? format.alpha : format.noAlpha;
739
878
  }
740
- format = format.toLowerCase();
741
- return OutputFormat[format];
879
+ const normalizedFormat = format.toLowerCase();
880
+ const basisOutputOptions = BASIS_FORMAT_TO_OUTPUT_OPTIONS[normalizedFormat];
881
+ if (!basisOutputOptions) {
882
+ throw new Error(`Unknown Basis format ${format}`);
883
+ }
884
+ return basisOutputOptions;
742
885
  }
743
- function selectSupportedBasisFormat() {
744
- const supportedFormats = getSupportedGPUTextureFormats();
745
- if (supportedFormats.has("astc")) {
886
+ function selectSupportedBasisFormat(supportedTextureFormats = detectSupportedTextureFormats()) {
887
+ const textureFormats2 = new Set(supportedTextureFormats);
888
+ if (hasSupportedTextureFormat(textureFormats2, ["astc-4x4-unorm", "astc-4x4-unorm-srgb"])) {
746
889
  return "astc-4x4";
747
- } else if (supportedFormats.has("dxt")) {
890
+ } else if (hasSupportedTextureFormat(textureFormats2, ["bc7-rgba-unorm", "bc7-rgba-unorm-srgb"])) {
891
+ return {
892
+ alpha: "bc7-m5",
893
+ noAlpha: "bc7-m6-opaque-only"
894
+ };
895
+ } else if (hasSupportedTextureFormat(textureFormats2, [
896
+ "bc1-rgb-unorm-webgl",
897
+ "bc1-rgb-unorm-srgb-webgl",
898
+ "bc1-rgba-unorm",
899
+ "bc1-rgba-unorm-srgb",
900
+ "bc2-rgba-unorm",
901
+ "bc2-rgba-unorm-srgb",
902
+ "bc3-rgba-unorm",
903
+ "bc3-rgba-unorm-srgb"
904
+ ])) {
748
905
  return {
749
906
  alpha: "bc3",
750
907
  noAlpha: "bc1"
751
908
  };
752
- } else if (supportedFormats.has("pvrtc")) {
909
+ } else if (hasSupportedTextureFormat(textureFormats2, [
910
+ "pvrtc-rgb4unorm-webgl",
911
+ "pvrtc-rgba4unorm-webgl",
912
+ "pvrtc-rgb2unorm-webgl",
913
+ "pvrtc-rgba2unorm-webgl"
914
+ ])) {
753
915
  return {
754
916
  alpha: "pvrtc1-4-rgba",
755
917
  noAlpha: "pvrtc1-4-rgb"
756
918
  };
757
- } else if (supportedFormats.has("etc1")) {
758
- return "etc1";
759
- } else if (supportedFormats.has("etc2")) {
919
+ } else if (hasSupportedTextureFormat(textureFormats2, [
920
+ "etc2-rgb8unorm",
921
+ "etc2-rgb8unorm-srgb",
922
+ "etc2-rgb8a1unorm",
923
+ "etc2-rgb8a1unorm-srgb",
924
+ "etc2-rgba8unorm",
925
+ "etc2-rgba8unorm-srgb",
926
+ "eac-r11unorm",
927
+ "eac-r11snorm",
928
+ "eac-rg11unorm",
929
+ "eac-rg11snorm"
930
+ ])) {
760
931
  return "etc2";
932
+ } else if (textureFormats2.has("etc1-rgb-unorm-webgl")) {
933
+ return "etc1";
934
+ } else if (hasSupportedTextureFormat(textureFormats2, [
935
+ "atc-rgb-unorm-webgl",
936
+ "atc-rgba-unorm-webgl",
937
+ "atc-rgbai-unorm-webgl"
938
+ ])) {
939
+ return {
940
+ alpha: "atc-rgba-interpolated-alpha",
941
+ noAlpha: "atc-rgb"
942
+ };
761
943
  }
762
944
  return "rgb565";
763
945
  }
946
+ function hasSupportedTextureFormat(supportedTextureFormats, candidateTextureFormats) {
947
+ return candidateTextureFormats.some(
948
+ (textureFormat) => supportedTextureFormats.has(textureFormat)
949
+ );
950
+ }
764
951
 
765
952
  // src/basis-loader.ts
766
953
  var BasisWorkerLoader = {
@@ -778,7 +965,6 @@
778
965
  options: {
779
966
  basis: {
780
967
  format: "auto",
781
- libraryPath: "libs/",
782
968
  containerFormat: "auto",
783
969
  module: "transcoder"
784
970
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-worker.js","sourceRoot":"","sources":["../src/basis-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,6EAA6E;AAC7E,gFAAgF;AAChF,MAAM,CAAC,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC"}