@loaders.gl/textures 4.4.0-alpha.9 → 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 (164) 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 +0 -1
  5. package/dist/basis-loader.js.map +1 -1
  6. package/dist/basis-worker-node.js +797 -9971
  7. package/dist/basis-worker.js +300 -145
  8. package/dist/compressed-texture-loader.d.ts +0 -4
  9. package/dist/compressed-texture-loader.d.ts.map +1 -1
  10. package/dist/compressed-texture-loader.js +0 -1
  11. package/dist/compressed-texture-loader.js.map +1 -1
  12. package/dist/compressed-texture-worker.js +1110 -358
  13. package/dist/crunch-loader.d.ts +1 -5
  14. package/dist/crunch-loader.d.ts.map +1 -1
  15. package/dist/crunch-loader.js +1 -3
  16. package/dist/crunch-loader.js.map +1 -1
  17. package/dist/crunch-worker.js +168 -87
  18. package/dist/dist.dev.js +2647 -670
  19. package/dist/dist.min.js +1 -2
  20. package/dist/index.cjs +1642 -428
  21. package/dist/index.cjs.map +4 -4
  22. package/dist/index.d.ts +13 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +6 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/ktx2-basis-writer-worker-node.js +444 -9763
  27. package/dist/ktx2-basis-writer-worker.js +13 -3
  28. package/dist/lib/composite-image/image-texture-cube.d.ts +47 -0
  29. package/dist/lib/composite-image/image-texture-cube.d.ts.map +1 -0
  30. package/dist/lib/composite-image/image-texture-cube.js +42 -0
  31. package/dist/lib/composite-image/image-texture-cube.js.map +1 -0
  32. package/dist/lib/composite-image/parse-composite-image.d.ts +43 -0
  33. package/dist/lib/composite-image/parse-composite-image.d.ts.map +1 -0
  34. package/dist/lib/composite-image/parse-composite-image.js +437 -0
  35. package/dist/lib/composite-image/parse-composite-image.js.map +1 -0
  36. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
  37. package/dist/lib/encoders/encode-ktx2-basis-texture.js +2 -1
  38. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  39. package/dist/lib/gl-extensions.d.ts +166 -58
  40. package/dist/lib/gl-extensions.d.ts.map +1 -1
  41. package/dist/lib/gl-extensions.js +177 -66
  42. package/dist/lib/gl-extensions.js.map +1 -1
  43. package/dist/lib/gl-types.d.ts +4 -0
  44. package/dist/lib/gl-types.d.ts.map +1 -0
  45. package/dist/lib/gl-types.js +5 -0
  46. package/dist/lib/gl-types.js.map +1 -0
  47. package/dist/lib/parsers/crunch-module-loader.d.ts +2 -2
  48. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
  49. package/dist/lib/parsers/crunch-module-loader.js.map +1 -1
  50. package/dist/lib/parsers/parse-basis.d.ts +24 -2
  51. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  52. package/dist/lib/parsers/parse-basis.js +262 -64
  53. package/dist/lib/parsers/parse-basis.js.map +1 -1
  54. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  55. package/dist/lib/parsers/parse-crunch.js +6 -6
  56. package/dist/lib/parsers/parse-crunch.js.map +1 -1
  57. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  58. package/dist/lib/parsers/parse-dds.js +10 -11
  59. package/dist/lib/parsers/parse-dds.js.map +1 -1
  60. package/dist/lib/parsers/parse-hdr.d.ts +21 -0
  61. package/dist/lib/parsers/parse-hdr.d.ts.map +1 -0
  62. package/dist/lib/parsers/parse-hdr.js +305 -0
  63. package/dist/lib/parsers/parse-hdr.js.map +1 -0
  64. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  65. package/dist/lib/parsers/parse-ktx.js +10 -3
  66. package/dist/lib/parsers/parse-ktx.js.map +1 -1
  67. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  68. package/dist/lib/parsers/parse-pvr.js +31 -74
  69. package/dist/lib/parsers/parse-pvr.js.map +1 -1
  70. package/dist/lib/texture-api/generate-url.d.ts.map +1 -1
  71. package/dist/lib/texture-api/generate-url.js +2 -10
  72. package/dist/lib/texture-api/generate-url.js.map +1 -1
  73. package/dist/lib/texture-api/load-image-array.d.ts +6 -3
  74. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -1
  75. package/dist/lib/texture-api/load-image-array.js +5 -3
  76. package/dist/lib/texture-api/load-image-array.js.map +1 -1
  77. package/dist/lib/texture-api/load-image-cube.d.ts +7 -11
  78. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  79. package/dist/lib/texture-api/load-image-cube.js +8 -20
  80. package/dist/lib/texture-api/load-image-cube.js.map +1 -1
  81. package/dist/lib/texture-api/load-image.d.ts +6 -3
  82. package/dist/lib/texture-api/load-image.d.ts.map +1 -1
  83. package/dist/lib/texture-api/load-image.js +8 -4
  84. package/dist/lib/texture-api/load-image.js.map +1 -1
  85. package/dist/lib/texture-api/texture-api-types.d.ts +13 -0
  86. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  87. package/dist/lib/utils/detect-supported-texture-formats.d.ts +14 -0
  88. package/dist/lib/utils/detect-supported-texture-formats.d.ts.map +1 -0
  89. package/dist/lib/utils/detect-supported-texture-formats.js +197 -0
  90. package/dist/lib/utils/detect-supported-texture-formats.js.map +1 -0
  91. package/dist/lib/utils/extract-mipmap-images.d.ts +6 -2
  92. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  93. package/dist/lib/utils/extract-mipmap-images.js +13 -2
  94. package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
  95. package/dist/lib/utils/ktx-format-helper.d.ts +9 -1
  96. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
  97. package/dist/lib/utils/ktx-format-helper.js +76 -109
  98. package/dist/lib/utils/ktx-format-helper.js.map +1 -1
  99. package/dist/lib/utils/texture-format-map.d.ts +10 -0
  100. package/dist/lib/utils/texture-format-map.d.ts.map +1 -0
  101. package/dist/lib/utils/texture-format-map.js +87 -0
  102. package/dist/lib/utils/texture-format-map.js.map +1 -0
  103. package/dist/lib/utils/version.js +1 -1
  104. package/dist/lib/utils/version.js.map +1 -1
  105. package/dist/npy-loader.d.ts +2 -2
  106. package/dist/npy-worker.js +1 -1
  107. package/dist/radiance-hdr-loader.d.ts +25 -0
  108. package/dist/radiance-hdr-loader.d.ts.map +1 -0
  109. package/dist/radiance-hdr-loader.js +23 -0
  110. package/dist/radiance-hdr-loader.js.map +1 -0
  111. package/dist/texture-array-loader.d.ts +25 -0
  112. package/dist/texture-array-loader.d.ts.map +1 -0
  113. package/dist/texture-array-loader.js +24 -0
  114. package/dist/texture-array-loader.js.map +1 -0
  115. package/dist/texture-cube-array-loader.d.ts +25 -0
  116. package/dist/texture-cube-array-loader.d.ts.map +1 -0
  117. package/dist/texture-cube-array-loader.js +24 -0
  118. package/dist/texture-cube-array-loader.js.map +1 -0
  119. package/dist/texture-cube-loader.d.ts +25 -0
  120. package/dist/texture-cube-loader.d.ts.map +1 -0
  121. package/dist/texture-cube-loader.js +24 -0
  122. package/dist/texture-cube-loader.js.map +1 -0
  123. package/dist/texture-loader.d.ts +25 -0
  124. package/dist/texture-loader.d.ts.map +1 -0
  125. package/dist/texture-loader.js +24 -0
  126. package/dist/texture-loader.js.map +1 -0
  127. package/dist/workers/crunch-worker.d.ts +1 -3
  128. package/dist/workers/crunch-worker.d.ts.map +1 -1
  129. package/package.json +6 -6
  130. package/src/basis-loader.ts +19 -9
  131. package/src/compressed-texture-loader.ts +0 -3
  132. package/src/crunch-loader.ts +1 -5
  133. package/src/index.ts +21 -4
  134. package/src/lib/composite-image/image-texture-cube.ts +49 -0
  135. package/src/lib/composite-image/parse-composite-image.ts +699 -0
  136. package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -1
  137. package/src/lib/gl-extensions.ts +188 -81
  138. package/src/lib/gl-types.ts +136 -0
  139. package/src/lib/parsers/crunch-module-loader.ts +4 -4
  140. package/src/lib/parsers/parse-basis.ts +326 -62
  141. package/src/lib/parsers/parse-crunch.ts +11 -8
  142. package/src/lib/parsers/parse-dds.ts +11 -12
  143. package/src/lib/parsers/parse-hdr.ts +426 -0
  144. package/src/lib/parsers/parse-ktx.ts +13 -3
  145. package/src/lib/parsers/parse-pvr.ts +33 -75
  146. package/src/lib/texture-api/generate-url.ts +2 -12
  147. package/src/lib/texture-api/load-image-array.ts +15 -6
  148. package/src/lib/texture-api/load-image-cube.ts +20 -34
  149. package/src/lib/texture-api/load-image.ts +19 -8
  150. package/src/lib/texture-api/texture-api-types.ts +15 -0
  151. package/src/lib/utils/detect-supported-texture-formats.ts +210 -0
  152. package/src/lib/utils/extract-mipmap-images.ts +23 -4
  153. package/src/lib/utils/ktx-format-helper.ts +135 -111
  154. package/src/lib/utils/texture-format-map.ts +162 -0
  155. package/src/radiance-hdr-loader.ts +36 -0
  156. package/src/texture-array-loader.ts +46 -0
  157. package/src/texture-cube-array-loader.ts +49 -0
  158. package/src/texture-cube-loader.ts +46 -0
  159. package/src/texture-loader.ts +49 -0
  160. package/dist/lib/utils/texture-formats.d.ts +0 -8
  161. package/dist/lib/utils/texture-formats.d.ts.map +0 -1
  162. package/dist/lib/utils/texture-formats.js +0 -51
  163. package/dist/lib/utils/texture-formats.js.map +0 -1
  164. package/src/lib/utils/texture-formats.ts +0 -59
@@ -4,8 +4,6 @@ import type { TextureLevel } from '@loaders.gl/schema';
4
4
  export type CrunchLoaderOptions = LoaderOptions & {
5
5
  /** CrunchLoader options */
6
6
  crunch?: {
7
- /** @deprecated Specify where to load the Crunch decoder library */
8
- libraryPath?: string;
9
7
  /** Override the URL to the worker bundle (by default loads from unpkg.com) */
10
8
  workerUrl?: string;
11
9
  };
@@ -26,9 +24,7 @@ export declare const CrunchLoader: {
26
24
  readonly mimeTypes: ["image/crn", "image/x-crn", "application/octet-stream"];
27
25
  readonly binary: true;
28
26
  readonly options: {
29
- readonly crunch: {
30
- readonly libraryPath: "libs/";
31
- };
27
+ readonly crunch: {};
32
28
  };
33
29
  };
34
30
  //# sourceMappingURL=crunch-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crunch-loader.d.ts","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGrD,2BAA2B;AAC3B,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,2BAA2B;IAC3B,MAAM,CAAC,EAAE;QACP,mEAAmE;QACnE,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY;uBACM,YAAY,EAAE;wBACxB,KAAK;;;;;;;;;;;;;;CAe6C,CAAC"}
1
+ {"version":3,"file":"crunch-loader.d.ts","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGrD,2BAA2B;AAC3B,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,2BAA2B;IAC3B,MAAM,CAAC,EAAE;QACP,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY;uBACM,YAAY,EAAE;wBACxB,KAAK;;;;;;;;;;;;CAa6C,CAAC"}
@@ -18,9 +18,7 @@ export const CrunchLoader = {
18
18
  mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],
19
19
  binary: true,
20
20
  options: {
21
- crunch: {
22
- libraryPath: 'libs/'
23
- }
21
+ crunch: {}
24
22
  }
25
23
  };
26
24
  //# sourceMappingURL=crunch-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crunch-loader.js","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAa5C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,IAAiC;IAC3C,SAAS,EAAE,IAAa;IAExB,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,0BAA0B,CAAC;IACnE,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,MAAM,EAAE;YACN,WAAW,EAAE,OAAO;SACrB;KACF;CACoE,CAAC"}
1
+ {"version":3,"file":"crunch-loader.js","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAW5C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,IAAiC;IAC3C,SAAS,EAAE,IAAa;IAExB,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,0BAA0B,CAAC;IACnE,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,MAAM,EAAE,EAAE;KACX;CACoE,CAAC"}
@@ -29,7 +29,7 @@
29
29
  globalThis._loadersgl_.version = NPM_TAG;
30
30
  warningIssued = true;
31
31
  } else {
32
- globalThis._loadersgl_.version = "4.4.0-alpha.9";
32
+ globalThis._loadersgl_.version = "4.4.0";
33
33
  }
34
34
  }
35
35
  return globalThis._loadersgl_.version;
@@ -183,6 +183,16 @@
183
183
 
184
184
  // ../worker-utils/src/lib/library-utils/library-utils.ts
185
185
  var loadLibraryPromises = {};
186
+ function extractLoadLibraryOptions(options = {}) {
187
+ const useLocalLibraries = options.useLocalLibraries ?? options.core?.useLocalLibraries;
188
+ const CDN = options.CDN ?? options.core?.CDN;
189
+ const modules = options.modules;
190
+ return {
191
+ ...useLocalLibraries !== void 0 ? { useLocalLibraries } : {},
192
+ ...CDN !== void 0 ? { CDN } : {},
193
+ ...modules !== void 0 ? { modules } : {}
194
+ };
195
+ }
186
196
  async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
187
197
  if (moduleName) {
188
198
  libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
@@ -379,7 +389,7 @@
379
389
  }
380
390
 
381
391
  // src/lib/utils/version.ts
382
- var VERSION2 = true ? "4.4.0-alpha.9" : "latest";
392
+ var VERSION2 = true ? "4.4.0" : "latest";
383
393
 
384
394
  // src/crunch-loader.ts
385
395
  var CrunchLoader = {
@@ -394,9 +404,7 @@
394
404
  mimeTypes: ["image/crn", "image/x-crn", "application/octet-stream"],
395
405
  binary: true,
396
406
  options: {
397
- crunch: {
398
- libraryPath: "libs/"
399
- }
407
+ crunch: {}
400
408
  }
401
409
  };
402
410
 
@@ -425,92 +433,173 @@
425
433
  }
426
434
 
427
435
  // src/lib/gl-extensions.ts
428
- var GL_EXTENSIONS_CONSTANTS = {
429
- // WEBGL_compressed_texture_s3tc
430
- COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
431
- COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
432
- COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
433
- COMPRESSED_RGBA_S3TC_DXT5_EXT: 33779,
434
- // WEBGL_compressed_texture_es3
435
- COMPRESSED_R11_EAC: 37488,
436
- COMPRESSED_SIGNED_R11_EAC: 37489,
437
- COMPRESSED_RG11_EAC: 37490,
438
- COMPRESSED_SIGNED_RG11_EAC: 37491,
439
- COMPRESSED_RGB8_ETC2: 37492,
440
- COMPRESSED_RGBA8_ETC2_EAC: 37493,
441
- COMPRESSED_SRGB8_ETC2: 37494,
442
- COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 37495,
443
- COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37496,
444
- COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37497,
445
- // WEBGL_compressed_texture_pvrtc
446
- COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 35840,
447
- COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 35842,
448
- COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 35841,
449
- COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 35843,
450
- // WEBGL_compressed_texture_etc1
451
- COMPRESSED_RGB_ETC1_WEBGL: 36196,
452
- // WEBGL_compressed_texture_atc
453
- COMPRESSED_RGB_ATC_WEBGL: 35986,
454
- COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 35987,
455
- COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 34798,
456
- // WEBGL_compressed_texture_astc
457
- COMPRESSED_RGBA_ASTC_4X4_KHR: 37808,
458
- COMPRESSED_RGBA_ASTC_5X4_KHR: 37809,
459
- COMPRESSED_RGBA_ASTC_5X5_KHR: 37810,
460
- COMPRESSED_RGBA_ASTC_6X5_KHR: 37811,
461
- COMPRESSED_RGBA_ASTC_6X6_KHR: 37812,
462
- COMPRESSED_RGBA_ASTC_8X5_KHR: 37813,
463
- COMPRESSED_RGBA_ASTC_8X6_KHR: 37814,
464
- COMPRESSED_RGBA_ASTC_8X8_KHR: 37815,
465
- COMPRESSED_RGBA_ASTC_10X5_KHR: 37816,
466
- COMPRESSED_RGBA_ASTC_10X6_KHR: 37817,
467
- COMPRESSED_RGBA_ASTC_10X8_KHR: 37818,
468
- COMPRESSED_RGBA_ASTC_10X10_KHR: 37819,
469
- COMPRESSED_RGBA_ASTC_12X10_KHR: 37820,
470
- COMPRESSED_RGBA_ASTC_12X12_KHR: 37821,
471
- COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 37840,
472
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 37841,
473
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 37842,
474
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 37843,
475
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 37844,
476
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 37845,
477
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 37846,
478
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 37847,
479
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 37848,
480
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 37849,
481
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 37850,
482
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 37851,
483
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 37852,
484
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 37853,
485
- // EXT_texture_compression_rgtc
486
- COMPRESSED_RED_RGTC1_EXT: 36283,
487
- COMPRESSED_SIGNED_RED_RGTC1_EXT: 36284,
488
- COMPRESSED_RED_GREEN_RGTC2_EXT: 36285,
489
- COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 36286,
490
- // WEBGL_compressed_texture_s3tc_srgb
491
- COMPRESSED_SRGB_S3TC_DXT1_EXT: 35916,
492
- COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 35917,
493
- COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 35918,
494
- COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
436
+ var GL_RGBA32F = 34836;
437
+ var GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 33776;
438
+ var GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777;
439
+ var GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778;
440
+ var GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779;
441
+ var GL_COMPRESSED_R11_EAC = 37488;
442
+ var GL_COMPRESSED_SIGNED_R11_EAC = 37489;
443
+ var GL_COMPRESSED_RG11_EAC = 37490;
444
+ var GL_COMPRESSED_SIGNED_RG11_EAC = 37491;
445
+ var GL_COMPRESSED_RGB8_ETC2 = 37492;
446
+ var GL_COMPRESSED_RGBA8_ETC2_EAC = 37493;
447
+ var GL_COMPRESSED_SRGB8_ETC2 = 37494;
448
+ var GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37495;
449
+ var GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37496;
450
+ var GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37497;
451
+ var GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840;
452
+ var GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841;
453
+ var GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842;
454
+ var GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843;
455
+ var GL_COMPRESSED_RGB_ETC1_WEBGL = 36196;
456
+ var GL_COMPRESSED_RGB_ATC_WEBGL = 35986;
457
+ var GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987;
458
+ var GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798;
459
+ var GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 37808;
460
+ var GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 37809;
461
+ var GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 37810;
462
+ var GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 37811;
463
+ var GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 37812;
464
+ var GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 37813;
465
+ var GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 37814;
466
+ var GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 37815;
467
+ var GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 37816;
468
+ var GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 37817;
469
+ var GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 37818;
470
+ var GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 37819;
471
+ var GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 37820;
472
+ var GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 37821;
473
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 37840;
474
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 37841;
475
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 37842;
476
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 37843;
477
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 37844;
478
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 37845;
479
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 37846;
480
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 37847;
481
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 37848;
482
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 37849;
483
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 37850;
484
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 37851;
485
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 37852;
486
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 37853;
487
+ var GL_COMPRESSED_RED_RGTC1_EXT = 36283;
488
+ var GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 36284;
489
+ var GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 36285;
490
+ var GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 36286;
491
+ var GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916;
492
+ var GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917;
493
+ var GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918;
494
+ var GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919;
495
+
496
+ // src/lib/utils/texture-format-map.ts
497
+ var WEBGL_TO_TEXTURE_FORMAT = {
498
+ [GL_RGBA32F]: "rgba32float",
499
+ [GL_COMPRESSED_RGB_S3TC_DXT1_EXT]: "bc1-rgb-unorm-webgl",
500
+ [GL_COMPRESSED_SRGB_S3TC_DXT1_EXT]: "bc1-rgb-unorm-srgb-webgl",
501
+ [GL_COMPRESSED_RGBA_S3TC_DXT1_EXT]: "bc1-rgba-unorm",
502
+ [GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT]: "bc1-rgba-unorm-srgb",
503
+ [GL_COMPRESSED_RGBA_S3TC_DXT3_EXT]: "bc2-rgba-unorm",
504
+ [GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT]: "bc2-rgba-unorm-srgb",
505
+ [GL_COMPRESSED_RGBA_S3TC_DXT5_EXT]: "bc3-rgba-unorm",
506
+ [GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT]: "bc3-rgba-unorm-srgb",
507
+ [GL_COMPRESSED_RED_RGTC1_EXT]: "bc4-r-unorm",
508
+ [GL_COMPRESSED_SIGNED_RED_RGTC1_EXT]: "bc4-r-snorm",
509
+ [GL_COMPRESSED_RED_GREEN_RGTC2_EXT]: "bc5-rg-unorm",
510
+ [GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT]: "bc5-rg-snorm",
511
+ [GL_COMPRESSED_RGB8_ETC2]: "etc2-rgb8unorm",
512
+ [GL_COMPRESSED_SRGB8_ETC2]: "etc2-rgb8unorm-srgb",
513
+ [GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2]: "etc2-rgb8a1unorm",
514
+ [GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2]: "etc2-rgb8a1unorm-srgb",
515
+ [GL_COMPRESSED_RGBA8_ETC2_EAC]: "etc2-rgba8unorm",
516
+ [GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC]: "etc2-rgba8unorm-srgb",
517
+ [GL_COMPRESSED_R11_EAC]: "eac-r11unorm",
518
+ [GL_COMPRESSED_SIGNED_R11_EAC]: "eac-r11snorm",
519
+ [GL_COMPRESSED_RG11_EAC]: "eac-rg11unorm",
520
+ [GL_COMPRESSED_SIGNED_RG11_EAC]: "eac-rg11snorm",
521
+ [GL_COMPRESSED_RGBA_ASTC_4x4_KHR]: "astc-4x4-unorm",
522
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR]: "astc-4x4-unorm-srgb",
523
+ [GL_COMPRESSED_RGBA_ASTC_5x4_KHR]: "astc-5x4-unorm",
524
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR]: "astc-5x4-unorm-srgb",
525
+ [GL_COMPRESSED_RGBA_ASTC_5x5_KHR]: "astc-5x5-unorm",
526
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR]: "astc-5x5-unorm-srgb",
527
+ [GL_COMPRESSED_RGBA_ASTC_6x5_KHR]: "astc-6x5-unorm",
528
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR]: "astc-6x5-unorm-srgb",
529
+ [GL_COMPRESSED_RGBA_ASTC_6x6_KHR]: "astc-6x6-unorm",
530
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR]: "astc-6x6-unorm-srgb",
531
+ [GL_COMPRESSED_RGBA_ASTC_8x5_KHR]: "astc-8x5-unorm",
532
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR]: "astc-8x5-unorm-srgb",
533
+ [GL_COMPRESSED_RGBA_ASTC_8x6_KHR]: "astc-8x6-unorm",
534
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR]: "astc-8x6-unorm-srgb",
535
+ [GL_COMPRESSED_RGBA_ASTC_8x8_KHR]: "astc-8x8-unorm",
536
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR]: "astc-8x8-unorm-srgb",
537
+ [GL_COMPRESSED_RGBA_ASTC_10x5_KHR]: "astc-10x5-unorm",
538
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR]: "astc-10x5-unorm-srgb",
539
+ [GL_COMPRESSED_RGBA_ASTC_10x6_KHR]: "astc-10x6-unorm",
540
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR]: "astc-10x6-unorm-srgb",
541
+ [GL_COMPRESSED_RGBA_ASTC_10x8_KHR]: "astc-10x8-unorm",
542
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR]: "astc-10x8-unorm-srgb",
543
+ [GL_COMPRESSED_RGBA_ASTC_10x10_KHR]: "astc-10x10-unorm",
544
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR]: "astc-10x10-unorm-srgb",
545
+ [GL_COMPRESSED_RGBA_ASTC_12x10_KHR]: "astc-12x10-unorm",
546
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR]: "astc-12x10-unorm-srgb",
547
+ [GL_COMPRESSED_RGBA_ASTC_12x12_KHR]: "astc-12x12-unorm",
548
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR]: "astc-12x12-unorm-srgb",
549
+ [GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG]: "pvrtc-rgb4unorm-webgl",
550
+ [GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG]: "pvrtc-rgba4unorm-webgl",
551
+ [GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG]: "pvrtc-rgb2unorm-webgl",
552
+ [GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG]: "pvrtc-rgba2unorm-webgl",
553
+ [GL_COMPRESSED_RGB_ETC1_WEBGL]: "etc1-rgb-unorm-webgl",
554
+ [GL_COMPRESSED_RGB_ATC_WEBGL]: "atc-rgb-unorm-webgl",
555
+ [GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL]: "atc-rgba-unorm-webgl",
556
+ [GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL]: "atc-rgbai-unorm-webgl"
495
557
  };
558
+ var TEXTURE_FORMAT_TO_WEBGL = Object.fromEntries(
559
+ Object.entries(WEBGL_TO_TEXTURE_FORMAT).map(([format, textureFormat]) => [
560
+ textureFormat,
561
+ Number(format)
562
+ ])
563
+ );
564
+ function getTextureFormatFromWebGLFormat(format) {
565
+ if (format === void 0) {
566
+ return void 0;
567
+ }
568
+ return WEBGL_TO_TEXTURE_FORMAT[format];
569
+ }
570
+ function getWebGLFormatFromTextureFormat(textureFormat) {
571
+ if (textureFormat === void 0) {
572
+ return void 0;
573
+ }
574
+ return TEXTURE_FORMAT_TO_WEBGL[textureFormat];
575
+ }
496
576
 
497
577
  // src/lib/utils/extract-mipmap-images.ts
498
578
  function extractMipmapImages(data, options) {
499
579
  const images = new Array(options.mipMapLevels);
580
+ const textureFormat = options.textureFormat || getTextureFormatFromWebGLFormat(options.internalFormat);
581
+ const format = options.internalFormat || getWebGLFormatFromTextureFormat(options.textureFormat);
500
582
  let levelWidth = options.width;
501
583
  let levelHeight = options.height;
502
584
  let offset = 0;
503
585
  for (let i = 0; i < options.mipMapLevels; ++i) {
504
586
  const levelSize = getLevelSize(options, levelWidth, levelHeight, data, i);
505
587
  const levelData = getLevelData(data, i, offset, levelSize);
506
- images[i] = {
588
+ const image = {
589
+ shape: "texture-level",
507
590
  compressed: true,
508
- format: options.internalFormat,
509
591
  data: levelData,
510
592
  width: levelWidth,
511
593
  height: levelHeight,
512
594
  levelSize
513
595
  };
596
+ if (format !== void 0) {
597
+ image.format = format;
598
+ }
599
+ if (textureFormat) {
600
+ image.textureFormat = textureFormat;
601
+ }
602
+ images[i] = image;
514
603
  levelWidth = Math.max(1, levelWidth >> 1);
515
604
  levelHeight = Math.max(1, levelHeight >> 1);
516
605
  offset += levelSize;
@@ -531,14 +620,6 @@
531
620
  }
532
621
 
533
622
  // src/lib/parsers/parse-dds.ts
534
- var DDS_PIXEL_FORMATS = {
535
- DXT1: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
536
- DXT3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
537
- DXT5: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
538
- "ATC ": GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ATC_WEBGL,
539
- ATCA: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
540
- ATCI: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
541
- };
542
623
  function getDxt1LevelSize(width, height) {
543
624
  return (width + 3 >> 2) * (height + 3 >> 2) * 8;
544
625
  }
@@ -557,22 +638,22 @@
557
638
  };
558
639
  var DXT_FORMAT_MAP = {
559
640
  [CRN_FORMAT.cCRNFmtDXT1]: {
560
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
641
+ textureFormat: "bc1-rgb-unorm-webgl",
561
642
  sizeFunction: getDxt1LevelSize
562
643
  },
563
644
  [CRN_FORMAT.cCRNFmtDXT3]: {
564
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
645
+ textureFormat: "bc2-rgba-unorm",
565
646
  sizeFunction: getDxtXLevelSize
566
647
  },
567
648
  [CRN_FORMAT.cCRNFmtDXT5]: {
568
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
649
+ textureFormat: "bc3-rgba-unorm",
569
650
  sizeFunction: getDxtXLevelSize
570
651
  }
571
652
  };
572
653
  var cachedDstSize = 0;
573
654
  var dst;
574
655
  async function parseCrunch(data, options) {
575
- const crunchModule2 = await loadCrunchModule(options);
656
+ const crunchModule2 = await loadCrunchModule(extractLoadLibraryOptions(options));
576
657
  const srcSize = data.byteLength;
577
658
  const bytes = new Uint8Array(data);
578
659
  const src = crunchModule2._malloc(srcSize);
@@ -602,7 +683,7 @@
602
683
  width,
603
684
  height,
604
685
  sizeFunction,
605
- internalFormat: DXT_FORMAT_MAP[format].pixelFormat
686
+ textureFormat: DXT_FORMAT_MAP[format].textureFormat
606
687
  });
607
688
  }
608
689
  function arrayBufferCopy(srcData, dstData, dstByteOffset, numBytes) {