@loaders.gl/textures 4.4.0-alpha.15 → 4.4.0-alpha.17

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 (74) hide show
  1. package/README.md +44 -0
  2. package/dist/basis-loader.d.ts +17 -8
  3. package/dist/basis-loader.d.ts.map +1 -1
  4. package/dist/basis-loader.js.map +1 -1
  5. package/dist/basis-worker-node.js +317 -188
  6. package/dist/basis-worker.js +252 -123
  7. package/dist/compressed-texture-worker.js +1035 -326
  8. package/dist/crunch-worker.js +141 -82
  9. package/dist/dist.dev.js +1220 -334
  10. package/dist/dist.min.js +1 -2
  11. package/dist/index.cjs +657 -317
  12. package/dist/index.cjs.map +4 -4
  13. package/dist/index.d.ts +2 -4
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -3
  16. package/dist/index.js.map +1 -1
  17. package/dist/ktx2-basis-writer-worker-node.js +2 -2
  18. package/dist/ktx2-basis-writer-worker.js +2 -2
  19. package/dist/lib/gl-extensions.d.ts +164 -58
  20. package/dist/lib/gl-extensions.d.ts.map +1 -1
  21. package/dist/lib/gl-extensions.js +175 -66
  22. package/dist/lib/gl-extensions.js.map +1 -1
  23. package/dist/lib/parsers/parse-basis.d.ts +16 -1
  24. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  25. package/dist/lib/parsers/parse-basis.js +216 -43
  26. package/dist/lib/parsers/parse-basis.js.map +1 -1
  27. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  28. package/dist/lib/parsers/parse-crunch.js +4 -4
  29. package/dist/lib/parsers/parse-crunch.js.map +1 -1
  30. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  31. package/dist/lib/parsers/parse-dds.js +7 -7
  32. package/dist/lib/parsers/parse-dds.js.map +1 -1
  33. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  34. package/dist/lib/parsers/parse-ktx.js +7 -0
  35. package/dist/lib/parsers/parse-ktx.js.map +1 -1
  36. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  37. package/dist/lib/parsers/parse-pvr.js +28 -70
  38. package/dist/lib/parsers/parse-pvr.js.map +1 -1
  39. package/dist/lib/utils/detect-supported-texture-formats.d.ts +14 -0
  40. package/dist/lib/utils/detect-supported-texture-formats.d.ts.map +1 -0
  41. package/dist/lib/utils/detect-supported-texture-formats.js +197 -0
  42. package/dist/lib/utils/detect-supported-texture-formats.js.map +1 -0
  43. package/dist/lib/utils/extract-mipmap-images.d.ts +2 -2
  44. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  45. package/dist/lib/utils/extract-mipmap-images.js +12 -2
  46. package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
  47. package/dist/lib/utils/ktx-format-helper.d.ts +2 -1
  48. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
  49. package/dist/lib/utils/ktx-format-helper.js +67 -109
  50. package/dist/lib/utils/ktx-format-helper.js.map +1 -1
  51. package/dist/lib/utils/texture-format-map.d.ts +3 -0
  52. package/dist/lib/utils/texture-format-map.d.ts.map +1 -0
  53. package/dist/lib/utils/texture-format-map.js +71 -0
  54. package/dist/lib/utils/texture-format-map.js.map +1 -0
  55. package/dist/lib/utils/version.js +1 -1
  56. package/dist/npy-worker.js +1 -1
  57. package/package.json +6 -6
  58. package/src/basis-loader.ts +21 -8
  59. package/src/index.ts +2 -4
  60. package/src/lib/gl-extensions.ts +186 -81
  61. package/src/lib/parsers/parse-basis.ts +274 -40
  62. package/src/lib/parsers/parse-crunch.ts +13 -6
  63. package/src/lib/parsers/parse-dds.ts +16 -9
  64. package/src/lib/parsers/parse-ktx.ts +12 -2
  65. package/src/lib/parsers/parse-pvr.ts +72 -72
  66. package/src/lib/utils/detect-supported-texture-formats.ts +210 -0
  67. package/src/lib/utils/extract-mipmap-images.ts +15 -4
  68. package/src/lib/utils/ktx-format-helper.ts +124 -111
  69. package/src/lib/utils/texture-format-map.ts +135 -0
  70. package/dist/lib/utils/texture-formats.d.ts +0 -8
  71. package/dist/lib/utils/texture-formats.d.ts.map +0 -1
  72. package/dist/lib/utils/texture-formats.js +0 -51
  73. package/dist/lib/utils/texture-formats.js.map +0 -1
  74. package/src/lib/utils/texture-formats.ts +0 -59
package/dist/index.cjs CHANGED
@@ -29,21 +29,87 @@ __export(dist_exports, {
29
29
  CompressedTextureWriter: () => CompressedTextureWriter,
30
30
  CrunchLoader: () => CrunchLoader,
31
31
  CrunchWorkerLoader: () => CrunchLoader,
32
+ GL_COMPRESSED_R11_EAC: () => GL_COMPRESSED_R11_EAC,
33
+ GL_COMPRESSED_RED_GREEN_RGTC2_EXT: () => GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
34
+ GL_COMPRESSED_RED_RGTC1_EXT: () => GL_COMPRESSED_RED_RGTC1_EXT,
35
+ GL_COMPRESSED_RG11_EAC: () => GL_COMPRESSED_RG11_EAC,
36
+ GL_COMPRESSED_RGB8_ETC2: () => GL_COMPRESSED_RGB8_ETC2,
37
+ GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: () => GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
38
+ GL_COMPRESSED_RGBA8_ETC2_EAC: () => GL_COMPRESSED_RGBA8_ETC2_EAC,
39
+ GL_COMPRESSED_RGBA_ASTC_10x10_KHR: () => GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
40
+ GL_COMPRESSED_RGBA_ASTC_10x5_KHR: () => GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
41
+ GL_COMPRESSED_RGBA_ASTC_10x6_KHR: () => GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
42
+ GL_COMPRESSED_RGBA_ASTC_10x8_KHR: () => GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
43
+ GL_COMPRESSED_RGBA_ASTC_12x10_KHR: () => GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
44
+ GL_COMPRESSED_RGBA_ASTC_12x12_KHR: () => GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
45
+ GL_COMPRESSED_RGBA_ASTC_4x4_KHR: () => GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
46
+ GL_COMPRESSED_RGBA_ASTC_5x4_KHR: () => GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
47
+ GL_COMPRESSED_RGBA_ASTC_5x5_KHR: () => GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
48
+ GL_COMPRESSED_RGBA_ASTC_6x5_KHR: () => GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
49
+ GL_COMPRESSED_RGBA_ASTC_6x6_KHR: () => GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
50
+ GL_COMPRESSED_RGBA_ASTC_8x5_KHR: () => GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
51
+ GL_COMPRESSED_RGBA_ASTC_8x6_KHR: () => GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
52
+ GL_COMPRESSED_RGBA_ASTC_8x8_KHR: () => GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
53
+ GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: () => GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
54
+ GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: () => GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,
55
+ GL_COMPRESSED_RGBA_BPTC_UNORM_EXT: () => GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
56
+ GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: () => GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
57
+ GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: () => GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
58
+ GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: () => GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
59
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: () => GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
60
+ GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: () => GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
61
+ GL_COMPRESSED_RGB_ATC_WEBGL: () => GL_COMPRESSED_RGB_ATC_WEBGL,
62
+ GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: () => GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,
63
+ GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: () => GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,
64
+ GL_COMPRESSED_RGB_ETC1_WEBGL: () => GL_COMPRESSED_RGB_ETC1_WEBGL,
65
+ GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG: () => GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG,
66
+ GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG: () => GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
67
+ GL_COMPRESSED_RGB_S3TC_DXT1_EXT: () => GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
68
+ GL_COMPRESSED_SIGNED_R11_EAC: () => GL_COMPRESSED_SIGNED_R11_EAC,
69
+ GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: () => GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
70
+ GL_COMPRESSED_SIGNED_RED_RGTC1_EXT: () => GL_COMPRESSED_SIGNED_RED_RGTC1_EXT,
71
+ GL_COMPRESSED_SIGNED_RG11_EAC: () => GL_COMPRESSED_SIGNED_RG11_EAC,
72
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
73
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
74
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
75
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
76
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
77
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
78
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
79
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
80
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
81
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
82
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
83
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
84
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
85
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: () => GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
86
+ GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: () => GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
87
+ GL_COMPRESSED_SRGB8_ETC2: () => GL_COMPRESSED_SRGB8_ETC2,
88
+ GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: () => GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
89
+ GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: () => GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,
90
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: () => GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
91
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: () => GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
92
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: () => GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
93
+ GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: () => GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
32
94
  GL_EXTENSIONS_CONSTANTS: () => GL_EXTENSIONS_CONSTANTS,
95
+ GL_RGB: () => GL_RGB,
96
+ GL_RGB565: () => GL_RGB565,
97
+ GL_RGB5_A1: () => GL_RGB5_A1,
98
+ GL_RGBA: () => GL_RGBA,
99
+ GL_RGBA4: () => GL_RGBA4,
100
+ GL_RGBA8: () => GL_RGBA8,
33
101
  KTX2BasisWriter: () => KTX2BasisWriter,
34
102
  KTX2BasisWriterWorker: () => KTX2BasisWriterWorker,
35
103
  NPYLoader: () => NPYLoader,
36
104
  NPYWorkerLoader: () => NPYWorkerLoader,
37
- getSupportedGPUTextureFormats: () => getSupportedGPUTextureFormats,
38
105
  loadImageTexture: () => loadImageTexture,
39
106
  loadImageTextureArray: () => loadImageTextureArray,
40
- loadImageTextureCube: () => loadImageTextureCube,
41
- selectSupportedBasisFormat: () => selectSupportedBasisFormat
107
+ loadImageTextureCube: () => loadImageTextureCube
42
108
  });
43
109
  module.exports = __toCommonJS(dist_exports);
44
110
 
45
111
  // dist/lib/utils/version.js
46
- var VERSION = true ? "4.4.0-alpha.15" : "latest";
112
+ var VERSION = true ? "4.4.0-alpha.17" : "latest";
47
113
 
48
114
  // dist/lib/parsers/basis-module-loader.js
49
115
  var import_loader_utils = require("@loaders.gl/loader-utils");
@@ -125,104 +191,269 @@ function initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {
125
191
  }
126
192
 
127
193
  // dist/lib/gl-extensions.js
194
+ var GL_RGB = 6407;
195
+ var GL_RGBA = 6408;
196
+ var GL_RGBA4 = 32854;
197
+ var GL_RGB5_A1 = 32855;
198
+ var GL_RGBA8 = 32856;
199
+ var GL_RGB565 = 36194;
200
+ var GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 33776;
201
+ var GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777;
202
+ var GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778;
203
+ var GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779;
204
+ var GL_COMPRESSED_R11_EAC = 37488;
205
+ var GL_COMPRESSED_SIGNED_R11_EAC = 37489;
206
+ var GL_COMPRESSED_RG11_EAC = 37490;
207
+ var GL_COMPRESSED_SIGNED_RG11_EAC = 37491;
208
+ var GL_COMPRESSED_RGB8_ETC2 = 37492;
209
+ var GL_COMPRESSED_RGBA8_ETC2_EAC = 37493;
210
+ var GL_COMPRESSED_SRGB8_ETC2 = 37494;
211
+ var GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37495;
212
+ var GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37496;
213
+ var GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37497;
214
+ var GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840;
215
+ var GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841;
216
+ var GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842;
217
+ var GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843;
218
+ var GL_COMPRESSED_RGB_ETC1_WEBGL = 36196;
219
+ var GL_COMPRESSED_RGB_ATC_WEBGL = 35986;
220
+ var GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987;
221
+ var GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798;
222
+ var GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 37808;
223
+ var GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 37809;
224
+ var GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 37810;
225
+ var GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 37811;
226
+ var GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 37812;
227
+ var GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 37813;
228
+ var GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 37814;
229
+ var GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 37815;
230
+ var GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 37816;
231
+ var GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 37817;
232
+ var GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 37818;
233
+ var GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 37819;
234
+ var GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 37820;
235
+ var GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 37821;
236
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 37840;
237
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 37841;
238
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 37842;
239
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 37843;
240
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 37844;
241
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 37845;
242
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 37846;
243
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 37847;
244
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 37848;
245
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 37849;
246
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 37850;
247
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 37851;
248
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 37852;
249
+ var GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 37853;
250
+ var GL_COMPRESSED_RED_RGTC1_EXT = 36283;
251
+ var GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 36284;
252
+ var GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 36285;
253
+ var GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 36286;
254
+ var GL_COMPRESSED_RGBA_BPTC_UNORM_EXT = 36492;
255
+ var GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 36493;
256
+ var GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT = 36494;
257
+ var GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 36495;
258
+ var GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916;
259
+ var GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917;
260
+ var GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918;
261
+ var GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919;
128
262
  var GL_EXTENSIONS_CONSTANTS = {
129
- // WEBGL_compressed_texture_s3tc
130
- COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
131
- COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
132
- COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
133
- COMPRESSED_RGBA_S3TC_DXT5_EXT: 33779,
134
- // WEBGL_compressed_texture_es3
135
- COMPRESSED_R11_EAC: 37488,
136
- COMPRESSED_SIGNED_R11_EAC: 37489,
137
- COMPRESSED_RG11_EAC: 37490,
138
- COMPRESSED_SIGNED_RG11_EAC: 37491,
139
- COMPRESSED_RGB8_ETC2: 37492,
140
- COMPRESSED_RGBA8_ETC2_EAC: 37493,
141
- COMPRESSED_SRGB8_ETC2: 37494,
142
- COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 37495,
143
- COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37496,
144
- COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37497,
145
- // WEBGL_compressed_texture_pvrtc
146
- COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 35840,
147
- COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 35842,
148
- COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 35841,
149
- COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 35843,
150
- // WEBGL_compressed_texture_etc1
151
- COMPRESSED_RGB_ETC1_WEBGL: 36196,
152
- // WEBGL_compressed_texture_atc
153
- COMPRESSED_RGB_ATC_WEBGL: 35986,
154
- COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 35987,
155
- COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 34798,
156
- // WEBGL_compressed_texture_astc
157
- COMPRESSED_RGBA_ASTC_4X4_KHR: 37808,
158
- COMPRESSED_RGBA_ASTC_5X4_KHR: 37809,
159
- COMPRESSED_RGBA_ASTC_5X5_KHR: 37810,
160
- COMPRESSED_RGBA_ASTC_6X5_KHR: 37811,
161
- COMPRESSED_RGBA_ASTC_6X6_KHR: 37812,
162
- COMPRESSED_RGBA_ASTC_8X5_KHR: 37813,
163
- COMPRESSED_RGBA_ASTC_8X6_KHR: 37814,
164
- COMPRESSED_RGBA_ASTC_8X8_KHR: 37815,
165
- COMPRESSED_RGBA_ASTC_10X5_KHR: 37816,
166
- COMPRESSED_RGBA_ASTC_10X6_KHR: 37817,
167
- COMPRESSED_RGBA_ASTC_10X8_KHR: 37818,
168
- COMPRESSED_RGBA_ASTC_10X10_KHR: 37819,
169
- COMPRESSED_RGBA_ASTC_12X10_KHR: 37820,
170
- COMPRESSED_RGBA_ASTC_12X12_KHR: 37821,
171
- COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 37840,
172
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 37841,
173
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 37842,
174
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 37843,
175
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 37844,
176
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 37845,
177
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 37846,
178
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 37847,
179
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 37848,
180
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 37849,
181
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 37850,
182
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 37851,
183
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 37852,
184
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 37853,
185
- // EXT_texture_compression_rgtc
186
- COMPRESSED_RED_RGTC1_EXT: 36283,
187
- COMPRESSED_SIGNED_RED_RGTC1_EXT: 36284,
188
- COMPRESSED_RED_GREEN_RGTC2_EXT: 36285,
189
- COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 36286,
190
- // WEBGL_compressed_texture_s3tc_srgb
191
- COMPRESSED_SRGB_S3TC_DXT1_EXT: 35916,
192
- COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 35917,
193
- COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 35918,
194
- COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
263
+ RGB: GL_RGB,
264
+ RGBA: GL_RGBA,
265
+ RGBA4: GL_RGBA4,
266
+ RGB5_A1: GL_RGB5_A1,
267
+ RGBA8: GL_RGBA8,
268
+ RGB565: GL_RGB565,
269
+ COMPRESSED_RGB_S3TC_DXT1_EXT: GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
270
+ COMPRESSED_RGBA_S3TC_DXT1_EXT: GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
271
+ COMPRESSED_RGBA_S3TC_DXT3_EXT: GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
272
+ COMPRESSED_RGBA_S3TC_DXT5_EXT: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
273
+ COMPRESSED_R11_EAC: GL_COMPRESSED_R11_EAC,
274
+ COMPRESSED_SIGNED_R11_EAC: GL_COMPRESSED_SIGNED_R11_EAC,
275
+ COMPRESSED_RG11_EAC: GL_COMPRESSED_RG11_EAC,
276
+ COMPRESSED_SIGNED_RG11_EAC: GL_COMPRESSED_SIGNED_RG11_EAC,
277
+ COMPRESSED_RGB8_ETC2: GL_COMPRESSED_RGB8_ETC2,
278
+ COMPRESSED_RGBA8_ETC2_EAC: GL_COMPRESSED_RGBA8_ETC2_EAC,
279
+ COMPRESSED_SRGB8_ETC2: GL_COMPRESSED_SRGB8_ETC2,
280
+ COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
281
+ COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
282
+ COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
283
+ COMPRESSED_RGB_PVRTC_4BPPV1_IMG: GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
284
+ COMPRESSED_RGB_PVRTC_2BPPV1_IMG: GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG,
285
+ COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
286
+ COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
287
+ COMPRESSED_RGB_ETC1_WEBGL: GL_COMPRESSED_RGB_ETC1_WEBGL,
288
+ COMPRESSED_RGB_ATC_WEBGL: GL_COMPRESSED_RGB_ATC_WEBGL,
289
+ COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
290
+ COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,
291
+ COMPRESSED_RGBA_ASTC_4x4_KHR: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
292
+ COMPRESSED_RGBA_ASTC_5x4_KHR: GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
293
+ COMPRESSED_RGBA_ASTC_5x5_KHR: GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
294
+ COMPRESSED_RGBA_ASTC_6x5_KHR: GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
295
+ COMPRESSED_RGBA_ASTC_6x6_KHR: GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
296
+ COMPRESSED_RGBA_ASTC_8x5_KHR: GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
297
+ COMPRESSED_RGBA_ASTC_8x6_KHR: GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
298
+ COMPRESSED_RGBA_ASTC_8x8_KHR: GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
299
+ COMPRESSED_RGBA_ASTC_10x5_KHR: GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
300
+ COMPRESSED_RGBA_ASTC_10x6_KHR: GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
301
+ COMPRESSED_RGBA_ASTC_10x8_KHR: GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
302
+ COMPRESSED_RGBA_ASTC_10x10_KHR: GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
303
+ COMPRESSED_RGBA_ASTC_12x10_KHR: GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
304
+ COMPRESSED_RGBA_ASTC_12x12_KHR: GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
305
+ COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
306
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
307
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
308
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
309
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
310
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
311
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
312
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
313
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
314
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
315
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
316
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
317
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
318
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
319
+ COMPRESSED_RED_RGTC1_EXT: GL_COMPRESSED_RED_RGTC1_EXT,
320
+ COMPRESSED_SIGNED_RED_RGTC1_EXT: GL_COMPRESSED_SIGNED_RED_RGTC1_EXT,
321
+ COMPRESSED_RED_GREEN_RGTC2_EXT: GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
322
+ COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
323
+ COMPRESSED_RGBA_BPTC_UNORM_EXT: GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
324
+ COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,
325
+ COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,
326
+ COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,
327
+ COMPRESSED_SRGB_S3TC_DXT1_EXT: GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
328
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
329
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
330
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
331
+ // Deprecated legacy aliases with non-standard ASTC casing.
332
+ COMPRESSED_RGBA_ASTC_4X4_KHR: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
333
+ COMPRESSED_RGBA_ASTC_5X4_KHR: GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
334
+ COMPRESSED_RGBA_ASTC_5X5_KHR: GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
335
+ COMPRESSED_RGBA_ASTC_6X5_KHR: GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
336
+ COMPRESSED_RGBA_ASTC_6X6_KHR: GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
337
+ COMPRESSED_RGBA_ASTC_8X5_KHR: GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
338
+ COMPRESSED_RGBA_ASTC_8X6_KHR: GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
339
+ COMPRESSED_RGBA_ASTC_8X8_KHR: GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
340
+ COMPRESSED_RGBA_ASTC_10X5_KHR: GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
341
+ COMPRESSED_RGBA_ASTC_10X6_KHR: GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
342
+ COMPRESSED_RGBA_ASTC_10X8_KHR: GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
343
+ COMPRESSED_RGBA_ASTC_10X10_KHR: GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
344
+ COMPRESSED_RGBA_ASTC_12X10_KHR: GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
345
+ COMPRESSED_RGBA_ASTC_12X12_KHR: GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
346
+ COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
347
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
348
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
349
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
350
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
351
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
352
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
353
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
354
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
355
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
356
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
357
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
358
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
359
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
195
360
  };
196
361
 
197
- // dist/lib/utils/texture-formats.js
362
+ // dist/lib/utils/detect-supported-texture-formats.js
198
363
  var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
199
- var WEBGL_EXTENSIONS = {
364
+ var WEBGL_TEXTURE_FORMATS = {
200
365
  /* eslint-disable camelcase */
201
- WEBGL_compressed_texture_s3tc: "dxt",
202
- WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
203
- WEBGL_compressed_texture_etc1: "etc1",
204
- WEBGL_compressed_texture_etc: "etc2",
205
- WEBGL_compressed_texture_pvrtc: "pvrtc",
206
- WEBGL_compressed_texture_atc: "atc",
207
- WEBGL_compressed_texture_astc: "astc",
208
- EXT_texture_compression_rgtc: "rgtc"
366
+ WEBGL_compressed_texture_s3tc: [
367
+ "bc1-rgb-unorm-webgl",
368
+ "bc1-rgba-unorm",
369
+ "bc2-rgba-unorm",
370
+ "bc3-rgba-unorm"
371
+ ],
372
+ WEBGL_compressed_texture_s3tc_srgb: [
373
+ "bc1-rgb-unorm-srgb-webgl",
374
+ "bc1-rgba-unorm-srgb",
375
+ "bc2-rgba-unorm-srgb",
376
+ "bc3-rgba-unorm-srgb"
377
+ ],
378
+ EXT_texture_compression_rgtc: ["bc4-r-unorm", "bc4-r-snorm", "bc5-rg-unorm", "bc5-rg-snorm"],
379
+ EXT_texture_compression_bptc: [
380
+ "bc6h-rgb-ufloat",
381
+ "bc6h-rgb-float",
382
+ "bc7-rgba-unorm",
383
+ "bc7-rgba-unorm-srgb"
384
+ ],
385
+ WEBGL_compressed_texture_etc1: ["etc1-rbg-unorm-webgl"],
386
+ WEBGL_compressed_texture_etc: [
387
+ "etc2-rgb8unorm",
388
+ "etc2-rgb8unorm-srgb",
389
+ "etc2-rgb8a1unorm",
390
+ "etc2-rgb8a1unorm-srgb",
391
+ "etc2-rgba8unorm",
392
+ "etc2-rgba8unorm-srgb",
393
+ "eac-r11unorm",
394
+ "eac-r11snorm",
395
+ "eac-rg11unorm",
396
+ "eac-rg11snorm"
397
+ ],
398
+ WEBGL_compressed_texture_pvrtc: [
399
+ "pvrtc-rgb4unorm-webgl",
400
+ "pvrtc-rgba4unorm-webgl",
401
+ "pvrtc-rbg2unorm-webgl",
402
+ "pvrtc-rgba2unorm-webgl"
403
+ ],
404
+ WEBGL_compressed_texture_atc: [
405
+ "atc-rgb-unorm-webgl",
406
+ "atc-rgba-unorm-webgl",
407
+ "atc-rgbai-unorm-webgl"
408
+ ],
409
+ WEBGL_compressed_texture_astc: [
410
+ "astc-4x4-unorm",
411
+ "astc-4x4-unorm-srgb",
412
+ "astc-5x4-unorm",
413
+ "astc-5x4-unorm-srgb",
414
+ "astc-5x5-unorm",
415
+ "astc-5x5-unorm-srgb",
416
+ "astc-6x5-unorm",
417
+ "astc-6x5-unorm-srgb",
418
+ "astc-6x6-unorm",
419
+ "astc-6x6-unorm-srgb",
420
+ "astc-8x5-unorm",
421
+ "astc-8x5-unorm-srgb",
422
+ "astc-8x6-unorm",
423
+ "astc-8x6-unorm-srgb",
424
+ "astc-8x8-unorm",
425
+ "astc-8x8-unorm-srgb",
426
+ "astc-10x5-unorm",
427
+ "astc-10x5-unorm-srgb",
428
+ "astc-10x6-unorm",
429
+ "astc-10x6-unorm-srgb",
430
+ "astc-10x8-unorm",
431
+ "astc-10x8-unorm-srgb",
432
+ "astc-10x10-unorm",
433
+ "astc-10x10-unorm-srgb",
434
+ "astc-12x10-unorm",
435
+ "astc-12x10-unorm-srgb",
436
+ "astc-12x12-unorm",
437
+ "astc-12x12-unorm-srgb"
438
+ ]
209
439
  /* eslint-enable camelcase */
210
440
  };
211
- var formats = null;
212
- function getSupportedGPUTextureFormats(gl) {
213
- if (!formats) {
441
+ var textureFormats = null;
442
+ function detectSupportedTextureFormats(gl) {
443
+ if (!textureFormats) {
214
444
  gl = gl || getWebGLContext() || void 0;
215
- formats = /* @__PURE__ */ new Set();
445
+ textureFormats = /* @__PURE__ */ new Set();
216
446
  for (const prefix of BROWSER_PREFIXES) {
217
- for (const extension in WEBGL_EXTENSIONS) {
447
+ for (const extension in WEBGL_TEXTURE_FORMATS) {
218
448
  if (gl && gl.getExtension(`${prefix}${extension}`)) {
219
- const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
220
- formats.add(gpuTextureFormat);
449
+ for (const textureFormat of WEBGL_TEXTURE_FORMATS[extension]) {
450
+ textureFormats.add(textureFormat);
451
+ }
221
452
  }
222
453
  }
223
454
  }
224
455
  }
225
- return formats;
456
+ return textureFormats;
226
457
  }
227
458
  function getWebGLContext() {
228
459
  try {
@@ -234,25 +465,103 @@ function getWebGLContext() {
234
465
  }
235
466
 
236
467
  // dist/lib/parsers/parse-ktx.js
468
+ var import_loader_utils2 = require("@loaders.gl/loader-utils");
237
469
  var import_ktx_parse = require("ktx-parse");
238
470
 
471
+ // dist/lib/utils/texture-format-map.js
472
+ var WEBGL_TO_TEXTURE_FORMAT = {
473
+ [GL_COMPRESSED_RGB_S3TC_DXT1_EXT]: "bc1-rgb-unorm-webgl",
474
+ [GL_COMPRESSED_SRGB_S3TC_DXT1_EXT]: "bc1-rgb-unorm-srgb-webgl",
475
+ [GL_COMPRESSED_RGBA_S3TC_DXT1_EXT]: "bc1-rgba-unorm",
476
+ [GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT]: "bc1-rgba-unorm-srgb",
477
+ [GL_COMPRESSED_RGBA_S3TC_DXT3_EXT]: "bc2-rgba-unorm",
478
+ [GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT]: "bc2-rgba-unorm-srgb",
479
+ [GL_COMPRESSED_RGBA_S3TC_DXT5_EXT]: "bc3-rgba-unorm",
480
+ [GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT]: "bc3-rgba-unorm-srgb",
481
+ [GL_COMPRESSED_RED_RGTC1_EXT]: "bc4-r-unorm",
482
+ [GL_COMPRESSED_SIGNED_RED_RGTC1_EXT]: "bc4-r-snorm",
483
+ [GL_COMPRESSED_RED_GREEN_RGTC2_EXT]: "bc5-rg-unorm",
484
+ [GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT]: "bc5-rg-snorm",
485
+ [GL_COMPRESSED_RGB8_ETC2]: "etc2-rgb8unorm",
486
+ [GL_COMPRESSED_SRGB8_ETC2]: "etc2-rgb8unorm-srgb",
487
+ [GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2]: "etc2-rgb8a1unorm",
488
+ [GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2]: "etc2-rgb8a1unorm-srgb",
489
+ [GL_COMPRESSED_RGBA8_ETC2_EAC]: "etc2-rgba8unorm",
490
+ [GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC]: "etc2-rgba8unorm-srgb",
491
+ [GL_COMPRESSED_R11_EAC]: "eac-r11unorm",
492
+ [GL_COMPRESSED_SIGNED_R11_EAC]: "eac-r11snorm",
493
+ [GL_COMPRESSED_RG11_EAC]: "eac-rg11unorm",
494
+ [GL_COMPRESSED_SIGNED_RG11_EAC]: "eac-rg11snorm",
495
+ [GL_COMPRESSED_RGBA_ASTC_4x4_KHR]: "astc-4x4-unorm",
496
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR]: "astc-4x4-unorm-srgb",
497
+ [GL_COMPRESSED_RGBA_ASTC_5x4_KHR]: "astc-5x4-unorm",
498
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR]: "astc-5x4-unorm-srgb",
499
+ [GL_COMPRESSED_RGBA_ASTC_5x5_KHR]: "astc-5x5-unorm",
500
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR]: "astc-5x5-unorm-srgb",
501
+ [GL_COMPRESSED_RGBA_ASTC_6x5_KHR]: "astc-6x5-unorm",
502
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR]: "astc-6x5-unorm-srgb",
503
+ [GL_COMPRESSED_RGBA_ASTC_6x6_KHR]: "astc-6x6-unorm",
504
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR]: "astc-6x6-unorm-srgb",
505
+ [GL_COMPRESSED_RGBA_ASTC_8x5_KHR]: "astc-8x5-unorm",
506
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR]: "astc-8x5-unorm-srgb",
507
+ [GL_COMPRESSED_RGBA_ASTC_8x6_KHR]: "astc-8x6-unorm",
508
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR]: "astc-8x6-unorm-srgb",
509
+ [GL_COMPRESSED_RGBA_ASTC_8x8_KHR]: "astc-8x8-unorm",
510
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR]: "astc-8x8-unorm-srgb",
511
+ [GL_COMPRESSED_RGBA_ASTC_10x5_KHR]: "astc-10x5-unorm",
512
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR]: "astc-10x5-unorm-srgb",
513
+ [GL_COMPRESSED_RGBA_ASTC_10x6_KHR]: "astc-10x6-unorm",
514
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR]: "astc-10x6-unorm-srgb",
515
+ [GL_COMPRESSED_RGBA_ASTC_10x8_KHR]: "astc-10x8-unorm",
516
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR]: "astc-10x8-unorm-srgb",
517
+ [GL_COMPRESSED_RGBA_ASTC_10x10_KHR]: "astc-10x10-unorm",
518
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR]: "astc-10x10-unorm-srgb",
519
+ [GL_COMPRESSED_RGBA_ASTC_12x10_KHR]: "astc-12x10-unorm",
520
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR]: "astc-12x10-unorm-srgb",
521
+ [GL_COMPRESSED_RGBA_ASTC_12x12_KHR]: "astc-12x12-unorm",
522
+ [GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR]: "astc-12x12-unorm-srgb",
523
+ [GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG]: "pvrtc-rgb4unorm-webgl",
524
+ [GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG]: "pvrtc-rgba4unorm-webgl",
525
+ [GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG]: "pvrtc-rbg2unorm-webgl",
526
+ [GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG]: "pvrtc-rgba2unorm-webgl",
527
+ [GL_COMPRESSED_RGB_ETC1_WEBGL]: "etc1-rbg-unorm-webgl",
528
+ [GL_COMPRESSED_RGB_ATC_WEBGL]: "atc-rgb-unorm-webgl",
529
+ [GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL]: "atc-rgba-unorm-webgl",
530
+ [GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL]: "atc-rgbai-unorm-webgl"
531
+ };
532
+ function getTextureFormatFromWebGLFormat(format) {
533
+ if (format === void 0) {
534
+ return void 0;
535
+ }
536
+ return WEBGL_TO_TEXTURE_FORMAT[format];
537
+ }
538
+
239
539
  // dist/lib/utils/extract-mipmap-images.js
240
540
  function extractMipmapImages(data, options) {
241
541
  const images = new Array(options.mipMapLevels);
542
+ const format = options.internalFormat;
543
+ const textureFormat = format === void 0 ? void 0 : getTextureFormatFromWebGLFormat(format);
242
544
  let levelWidth = options.width;
243
545
  let levelHeight = options.height;
244
546
  let offset = 0;
245
547
  for (let i = 0; i < options.mipMapLevels; ++i) {
246
548
  const levelSize = getLevelSize(options, levelWidth, levelHeight, data, i);
247
549
  const levelData = getLevelData(data, i, offset, levelSize);
248
- images[i] = {
550
+ const image = {
551
+ shape: "texture-level",
249
552
  compressed: true,
250
- format: options.internalFormat,
251
553
  data: levelData,
252
554
  width: levelWidth,
253
555
  height: levelHeight,
254
556
  levelSize
255
557
  };
558
+ if (format !== void 0) {
559
+ image.format = format;
560
+ }
561
+ if (textureFormat) {
562
+ image.textureFormat = textureFormat;
563
+ }
564
+ images[i] = image;
256
565
  levelWidth = Math.max(1, levelWidth >> 1);
257
566
  levelHeight = Math.max(1, levelHeight >> 1);
258
567
  offset += levelSize;
@@ -274,114 +583,72 @@ function getLevelSize(options, levelWidth, levelHeight, data, index) {
274
583
 
275
584
  // dist/lib/utils/ktx-format-helper.js
276
585
  var VULKAN_TO_WEBGL_FORMAT_MAP = {
277
- 131: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
278
- 132: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_S3TC_DXT1_EXT,
279
- 133: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
280
- 134: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
281
- 135: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
282
- 136: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
283
- 137: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
284
- 138: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
285
- 139: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_RGTC1_EXT,
286
- 140: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_RGTC1_EXT,
287
- 141: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_GREEN_RGTC2_EXT,
288
- 142: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
289
- 147: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2,
290
- 148: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ETC2,
291
- 149: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
292
- 150: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
293
- 151: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC,
294
- 152: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
295
- 153: GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC,
296
- 154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,
297
- 155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,
298
- 156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,
299
- // @ts-ignore
300
- 157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
301
- // @ts-ignore
302
- 158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
303
- // @ts-ignore
304
- 159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
305
- // @ts-ignore
306
- 160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,
307
- // @ts-ignore
308
- 161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
309
- // @ts-ignore
310
- 162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
311
- // @ts-ignore
312
- 163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
313
- // @ts-ignore
314
- 164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
315
- // @ts-ignore
316
- 165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
317
- // @ts-ignore
318
- 166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
319
- // @ts-ignore
320
- 167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
321
- // @ts-ignore
322
- 168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
323
- // @ts-ignore
324
- 169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
325
- // @ts-ignore
326
- 170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
327
- // @ts-ignore
328
- 171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
329
- // @ts-ignore
330
- 172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
331
- // @ts-ignore
332
- 173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
333
- // @ts-ignore
334
- 174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
335
- // @ts-ignore
336
- 175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
337
- // @ts-ignore
338
- 176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
339
- // @ts-ignore
340
- 177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
341
- // @ts-ignore
342
- 178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
343
- // @ts-ignore
344
- 179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
345
- // @ts-ignore
346
- 180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
347
- // @ts-ignore
348
- 181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
349
- // @ts-ignore
350
- 182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
351
- // @ts-ignore
352
- 183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,
353
- // @ts-ignore
354
- 184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
355
- 1000054e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
356
- 1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
357
- // @ts-ignore
358
- 1000066e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
359
- // @ts-ignore
360
- 1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
361
- // @ts-ignore
362
- 1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
363
- // @ts-ignore
364
- 1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
365
- // @ts-ignore
366
- 1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
367
- // @ts-ignore
368
- 1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
369
- // @ts-ignore
370
- 1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
371
- // @ts-ignore
372
- 1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
373
- // @ts-ignore
374
- 1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
375
- // @ts-ignore
376
- 1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
377
- // @ts-ignore
378
- 1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
379
- // @ts-ignore
380
- 1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
381
- // @ts-ignore
382
- 1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
383
- // @ts-ignore
384
- 1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR
586
+ 131: GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
587
+ 132: GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
588
+ 133: GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
589
+ 134: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
590
+ 135: GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
591
+ 136: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
592
+ 137: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
593
+ 138: GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
594
+ 139: GL_COMPRESSED_RED_RGTC1_EXT,
595
+ 140: GL_COMPRESSED_SIGNED_RED_RGTC1_EXT,
596
+ 141: GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
597
+ 142: GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
598
+ 147: GL_COMPRESSED_RGB8_ETC2,
599
+ 148: GL_COMPRESSED_SRGB8_ETC2,
600
+ 149: GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
601
+ 150: GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
602
+ 151: GL_COMPRESSED_RGBA8_ETC2_EAC,
603
+ 152: GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
604
+ 153: GL_COMPRESSED_R11_EAC,
605
+ 154: GL_COMPRESSED_SIGNED_R11_EAC,
606
+ 155: GL_COMPRESSED_RG11_EAC,
607
+ 156: GL_COMPRESSED_SIGNED_RG11_EAC,
608
+ 157: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
609
+ 158: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
610
+ 159: GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
611
+ 160: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
612
+ 161: GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
613
+ 162: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
614
+ 163: GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
615
+ 164: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
616
+ 165: GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
617
+ 166: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
618
+ 167: GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
619
+ 168: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
620
+ 169: GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
621
+ 170: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
622
+ 171: GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
623
+ 172: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
624
+ 173: GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
625
+ 174: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
626
+ 175: GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
627
+ 176: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
628
+ 177: GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
629
+ 178: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
630
+ 179: GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
631
+ 180: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
632
+ 181: GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
633
+ 182: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
634
+ 183: GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
635
+ 184: GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
636
+ 1000054e3: GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
637
+ 1000054001: GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
638
+ 1000066e3: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
639
+ 1000066001: GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
640
+ 1000066002: GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
641
+ 1000066003: GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
642
+ 1000066004: GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
643
+ 1000066005: GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
644
+ 1000066006: GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
645
+ 1000066007: GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
646
+ 1000066008: GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
647
+ 1000066009: GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
648
+ 1000066010: GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
649
+ 1000066011: GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
650
+ 1000066012: GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
651
+ 1000066013: GL_COMPRESSED_RGBA_ASTC_12x12_KHR
385
652
  };
386
653
  function mapVkFormatToWebGL(vkFormat) {
387
654
  return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];
@@ -426,6 +693,9 @@ function parseKTX(arrayBuffer) {
426
693
  const width = ktx.pixelWidth;
427
694
  const height = ktx.pixelHeight;
428
695
  const internalFormat = mapVkFormatToWebGL(ktx.vkFormat);
696
+ if (internalFormat === void 0) {
697
+ import_loader_utils2.log.warn(`KTX2 container vkFormat ${ktx.vkFormat} does not map to a known WebGL format; returning texture levels without format metadata.`)();
698
+ }
429
699
  return extractMipmapImages(ktx.levels, {
430
700
  mipMapLevels,
431
701
  width,
@@ -436,49 +706,111 @@ function parseKTX(arrayBuffer) {
436
706
  }
437
707
 
438
708
  // dist/lib/parsers/parse-basis.js
439
- var OutputFormat = {
709
+ var BASIS_FORMAT_TO_OUTPUT_OPTIONS = {
440
710
  etc1: {
441
711
  basisFormat: 0,
442
712
  compressed: true,
443
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
713
+ format: GL_COMPRESSED_RGB_ETC1_WEBGL,
714
+ textureFormat: "etc1-rbg-unorm-webgl"
715
+ },
716
+ etc2: {
717
+ basisFormat: 1,
718
+ compressed: true,
719
+ format: GL_COMPRESSED_RGBA8_ETC2_EAC,
720
+ textureFormat: "etc2-rgba8unorm"
444
721
  },
445
- etc2: { basisFormat: 1, compressed: true },
446
722
  bc1: {
447
723
  basisFormat: 2,
448
724
  compressed: true,
449
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
725
+ format: GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
726
+ textureFormat: "bc1-rgb-unorm-webgl"
450
727
  },
451
728
  bc3: {
452
729
  basisFormat: 3,
453
730
  compressed: true,
454
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
731
+ format: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
732
+ textureFormat: "bc3-rgba-unorm"
733
+ },
734
+ bc4: {
735
+ basisFormat: 4,
736
+ compressed: true,
737
+ format: GL_COMPRESSED_RED_RGTC1_EXT,
738
+ textureFormat: "bc4-r-unorm"
739
+ },
740
+ bc5: {
741
+ basisFormat: 5,
742
+ compressed: true,
743
+ format: GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
744
+ textureFormat: "bc5-rg-unorm"
745
+ },
746
+ "bc7-m6-opaque-only": {
747
+ basisFormat: 6,
748
+ compressed: true,
749
+ format: GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
750
+ textureFormat: "bc7-rgba-unorm"
751
+ },
752
+ "bc7-m5": {
753
+ basisFormat: 7,
754
+ compressed: true,
755
+ format: GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
756
+ textureFormat: "bc7-rgba-unorm"
455
757
  },
456
- bc4: { basisFormat: 4, compressed: true },
457
- bc5: { basisFormat: 5, compressed: true },
458
- "bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
459
- "bc7-m5": { basisFormat: 7, compressed: true },
460
758
  "pvrtc1-4-rgb": {
461
759
  basisFormat: 8,
462
760
  compressed: true,
463
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
761
+ format: GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
762
+ textureFormat: "pvrtc-rgb4unorm-webgl"
464
763
  },
465
764
  "pvrtc1-4-rgba": {
466
765
  basisFormat: 9,
467
766
  compressed: true,
468
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
767
+ format: GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
768
+ textureFormat: "pvrtc-rgba4unorm-webgl"
469
769
  },
470
770
  "astc-4x4": {
471
771
  basisFormat: 10,
472
772
  compressed: true,
473
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
773
+ format: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
774
+ textureFormat: "astc-4x4-unorm"
775
+ },
776
+ "atc-rgb": {
777
+ basisFormat: 11,
778
+ compressed: true,
779
+ format: GL_COMPRESSED_RGB_ATC_WEBGL,
780
+ textureFormat: "atc-rgb-unorm-webgl"
781
+ },
782
+ "atc-rgba-interpolated-alpha": {
783
+ basisFormat: 12,
784
+ compressed: true,
785
+ format: GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,
786
+ textureFormat: "atc-rgbai-unorm-webgl"
787
+ },
788
+ rgba32: {
789
+ basisFormat: 13,
790
+ compressed: false,
791
+ format: GL_RGBA8,
792
+ textureFormat: "rgba8unorm"
793
+ },
794
+ rgb565: {
795
+ basisFormat: 14,
796
+ compressed: false,
797
+ format: GL_RGB565,
798
+ textureFormat: "rgb565unorm-webgl"
799
+ },
800
+ bgr565: {
801
+ basisFormat: 15,
802
+ compressed: false,
803
+ format: GL_RGB565,
804
+ textureFormat: "rgb565unorm-webgl"
474
805
  },
475
- "atc-rgb": { basisFormat: 11, compressed: true },
476
- "atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
477
- rgba32: { basisFormat: 13, compressed: false },
478
- rgb565: { basisFormat: 14, compressed: false },
479
- bgr565: { basisFormat: 15, compressed: false },
480
- rgba4444: { basisFormat: 16, compressed: false }
806
+ rgba4444: {
807
+ basisFormat: 16,
808
+ compressed: false,
809
+ format: GL_RGBA4,
810
+ textureFormat: "rgba4unorm-webgl"
811
+ }
481
812
  };
813
+ var BASIS_FORMATS = Object.freeze(Object.keys(BASIS_FORMAT_TO_OUTPUT_OPTIONS));
482
814
  async function parseBasis(data, options = {}) {
483
815
  var _a;
484
816
  if (!((_a = options.basis) == null ? void 0 : _a.containerFormat) || options.basis.containerFormat === "auto") {
@@ -533,7 +865,7 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
533
865
  const hasAlpha = basisFile.getHasAlpha(
534
866
  /* imageIndex, levelIndex */
535
867
  );
536
- const { compressed, format, basisFormat } = getBasisOptions(options, hasAlpha);
868
+ const { compressed, format, basisFormat, textureFormat } = getBasisOptions(options, hasAlpha);
537
869
  const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
538
870
  const decodedData = new Uint8Array(decodedSize);
539
871
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
@@ -541,11 +873,13 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
541
873
  }
542
874
  return {
543
875
  // standard loaders.gl image category payload
876
+ shape: "texture-level",
544
877
  width,
545
878
  height,
546
879
  data: decodedData,
547
880
  compressed,
548
- format,
881
+ ...format !== void 0 ? { format } : {},
882
+ ...textureFormat !== void 0 ? { textureFormat } : {},
549
883
  // Additional fields
550
884
  // Add levelSize field.
551
885
  hasAlpha
@@ -570,7 +904,7 @@ function parseKTX2File(KTX2File, data, options) {
570
904
  }
571
905
  function transcodeKTX2Image(ktx2File, levelIndex, options) {
572
906
  const { alphaFlag, height, width } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
573
- const { compressed, format, basisFormat } = getBasisOptions(options, alphaFlag);
907
+ const { compressed, format, basisFormat, textureFormat } = getBasisOptions(options, alphaFlag);
574
908
  const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
575
909
  const decodedData = new Uint8Array(decodedSize);
576
910
  if (!ktx2File.transcodeImage(
@@ -588,49 +922,97 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
588
922
  }
589
923
  return {
590
924
  // standard loaders.gl image category payload
925
+ shape: "texture-level",
591
926
  width,
592
927
  height,
593
928
  data: decodedData,
594
929
  compressed,
930
+ ...format !== void 0 ? { format } : {},
931
+ ...textureFormat !== void 0 ? { textureFormat } : {},
595
932
  // Additional fields
596
933
  levelSize: decodedSize,
597
- hasAlpha: alphaFlag,
598
- format
934
+ hasAlpha: alphaFlag
599
935
  };
600
936
  }
601
937
  function getBasisOptions(options, hasAlpha) {
602
- var _a;
603
- let format = (_a = options.basis) == null ? void 0 : _a.format;
938
+ var _a, _b;
939
+ let format = ((_a = options.basis) == null ? void 0 : _a.format) || "auto";
604
940
  if (format === "auto") {
605
- format = selectSupportedBasisFormat();
941
+ format = ((_b = options.basis) == null ? void 0 : _b.supportedTextureFormats) ? selectSupportedBasisFormat(options.basis.supportedTextureFormats) : selectSupportedBasisFormat();
606
942
  }
607
943
  if (typeof format === "object") {
608
944
  format = hasAlpha ? format.alpha : format.noAlpha;
609
945
  }
610
- format = format.toLowerCase();
611
- return OutputFormat[format];
946
+ const normalizedFormat = format.toLowerCase();
947
+ const basisOutputOptions = BASIS_FORMAT_TO_OUTPUT_OPTIONS[normalizedFormat];
948
+ if (!basisOutputOptions) {
949
+ throw new Error(`Unknown Basis format ${format}`);
950
+ }
951
+ return basisOutputOptions;
612
952
  }
613
- function selectSupportedBasisFormat() {
614
- const supportedFormats = getSupportedGPUTextureFormats();
615
- if (supportedFormats.has("astc")) {
953
+ function selectSupportedBasisFormat(supportedTextureFormats = detectSupportedTextureFormats()) {
954
+ const textureFormats2 = new Set(supportedTextureFormats);
955
+ if (hasSupportedTextureFormat(textureFormats2, ["astc-4x4-unorm", "astc-4x4-unorm-srgb"])) {
616
956
  return "astc-4x4";
617
- } else if (supportedFormats.has("dxt")) {
957
+ } else if (hasSupportedTextureFormat(textureFormats2, ["bc7-rgba-unorm", "bc7-rgba-unorm-srgb"])) {
958
+ return {
959
+ alpha: "bc7-m5",
960
+ noAlpha: "bc7-m6-opaque-only"
961
+ };
962
+ } else if (hasSupportedTextureFormat(textureFormats2, [
963
+ "bc1-rgb-unorm-webgl",
964
+ "bc1-rgb-unorm-srgb-webgl",
965
+ "bc1-rgba-unorm",
966
+ "bc1-rgba-unorm-srgb",
967
+ "bc2-rgba-unorm",
968
+ "bc2-rgba-unorm-srgb",
969
+ "bc3-rgba-unorm",
970
+ "bc3-rgba-unorm-srgb"
971
+ ])) {
618
972
  return {
619
973
  alpha: "bc3",
620
974
  noAlpha: "bc1"
621
975
  };
622
- } else if (supportedFormats.has("pvrtc")) {
976
+ } else if (hasSupportedTextureFormat(textureFormats2, [
977
+ "pvrtc-rgb4unorm-webgl",
978
+ "pvrtc-rgba4unorm-webgl",
979
+ "pvrtc-rbg2unorm-webgl",
980
+ "pvrtc-rgba2unorm-webgl"
981
+ ])) {
623
982
  return {
624
983
  alpha: "pvrtc1-4-rgba",
625
984
  noAlpha: "pvrtc1-4-rgb"
626
985
  };
627
- } else if (supportedFormats.has("etc1")) {
628
- return "etc1";
629
- } else if (supportedFormats.has("etc2")) {
986
+ } else if (hasSupportedTextureFormat(textureFormats2, [
987
+ "etc2-rgb8unorm",
988
+ "etc2-rgb8unorm-srgb",
989
+ "etc2-rgb8a1unorm",
990
+ "etc2-rgb8a1unorm-srgb",
991
+ "etc2-rgba8unorm",
992
+ "etc2-rgba8unorm-srgb",
993
+ "eac-r11unorm",
994
+ "eac-r11snorm",
995
+ "eac-rg11unorm",
996
+ "eac-rg11snorm"
997
+ ])) {
630
998
  return "etc2";
999
+ } else if (textureFormats2.has("etc1-rbg-unorm-webgl")) {
1000
+ return "etc1";
1001
+ } else if (hasSupportedTextureFormat(textureFormats2, [
1002
+ "atc-rgb-unorm-webgl",
1003
+ "atc-rgba-unorm-webgl",
1004
+ "atc-rgbai-unorm-webgl"
1005
+ ])) {
1006
+ return {
1007
+ alpha: "atc-rgba-interpolated-alpha",
1008
+ noAlpha: "atc-rgb"
1009
+ };
631
1010
  }
632
1011
  return "rgb565";
633
1012
  }
1013
+ function hasSupportedTextureFormat(supportedTextureFormats, candidateTextureFormats) {
1014
+ return candidateTextureFormats.some((textureFormat) => supportedTextureFormats.has(textureFormat));
1015
+ }
634
1016
 
635
1017
  // dist/basis-loader.js
636
1018
  var BasisWorkerLoader = {
@@ -660,7 +1042,7 @@ var BasisLoader = {
660
1042
  };
661
1043
 
662
1044
  // dist/lib/parsers/parse-dds.js
663
- var import_loader_utils2 = require("@loaders.gl/loader-utils");
1045
+ var import_loader_utils3 = require("@loaders.gl/loader-utils");
664
1046
  var DDS_CONSTANTS = {
665
1047
  MAGIC_NUMBER: 542327876,
666
1048
  HEADER_LENGTH: 31,
@@ -676,12 +1058,12 @@ var DDS_CONSTANTS = {
676
1058
  DDPF_FOURCC: 4
677
1059
  };
678
1060
  var DDS_PIXEL_FORMATS = {
679
- DXT1: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
680
- DXT3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
681
- DXT5: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
682
- "ATC ": GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ATC_WEBGL,
683
- ATCA: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
684
- ATCI: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
1061
+ DXT1: GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
1062
+ DXT3: GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
1063
+ DXT5: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
1064
+ "ATC ": GL_COMPRESSED_RGB_ATC_WEBGL,
1065
+ ATCA: GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
1066
+ ATCI: GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
685
1067
  };
686
1068
  var getATCLevelSize = getDxt1LevelSize;
687
1069
  var getATCALevelSize = getDxtXLevelSize;
@@ -702,11 +1084,11 @@ function isDDS(data) {
702
1084
  function parseDDS(data) {
703
1085
  const header = new Int32Array(data, 0, DDS_CONSTANTS.HEADER_LENGTH);
704
1086
  const pixelFormatNumber = header[DDS_CONSTANTS.HEADER_PF_FOURCC_INDEX];
705
- (0, import_loader_utils2.assert)(Boolean(header[DDS_CONSTANTS.HEADER_PF_FLAGS_INDEX] & DDS_CONSTANTS.DDPF_FOURCC), "DDS: Unsupported format, must contain a FourCC code");
1087
+ (0, import_loader_utils3.assert)(Boolean(header[DDS_CONSTANTS.HEADER_PF_FLAGS_INDEX] & DDS_CONSTANTS.DDPF_FOURCC), "DDS: Unsupported format, must contain a FourCC code");
706
1088
  const fourCC = int32ToFourCC(pixelFormatNumber);
707
1089
  const internalFormat = DDS_PIXEL_FORMATS[fourCC];
708
1090
  const sizeFunction = DDS_SIZE_FUNCTIONS[fourCC];
709
- (0, import_loader_utils2.assert)(internalFormat && sizeFunction, `DDS: Unknown pixel format ${pixelFormatNumber}`);
1091
+ (0, import_loader_utils3.assert)(internalFormat && sizeFunction, `DDS: Unknown pixel format ${pixelFormatNumber}`);
710
1092
  let mipMapLevels = 1;
711
1093
  if (header[DDS_CONSTANTS.HEADER_FLAGS_INDEX] & DDS_CONSTANTS.DDSD_MIPMAPCOUNT) {
712
1094
  mipMapLevels = Math.max(1, header[DDS_CONSTANTS.MIPMAPCOUNT_INDEX]);
@@ -748,75 +1130,33 @@ var PVR_CONSTANTS = {
748
1130
  METADATA_SIZE_INDEX: 12
749
1131
  };
750
1132
  var PVR_PIXEL_FORMATS = {
751
- 0: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
752
- 1: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
753
- 2: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
754
- 3: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
755
- 6: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],
756
- 7: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],
757
- 9: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],
758
- 11: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],
759
- 22: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],
760
- 23: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],
761
- 24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
762
- 25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],
763
- 26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],
764
- 27: [
765
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR,
766
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR
767
- ],
768
- 28: [
769
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR,
770
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR
771
- ],
772
- 29: [
773
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR,
774
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR
775
- ],
776
- 30: [
777
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR,
778
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR
779
- ],
780
- 31: [
781
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR,
782
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR
783
- ],
784
- 32: [
785
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR,
786
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR
787
- ],
788
- 33: [
789
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR,
790
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR
791
- ],
792
- 34: [
793
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR,
794
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR
795
- ],
796
- 35: [
797
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR,
798
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR
799
- ],
800
- 36: [
801
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR,
802
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR
803
- ],
804
- 37: [
805
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR,
806
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR
807
- ],
808
- 38: [
809
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR,
810
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR
811
- ],
812
- 39: [
813
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR,
814
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR
815
- ],
816
- 40: [
817
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR,
818
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR
819
- ]
1133
+ 0: [GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
1134
+ 1: [GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
1135
+ 2: [GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
1136
+ 3: [GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
1137
+ 6: [GL_COMPRESSED_RGB_ETC1_WEBGL],
1138
+ 7: [GL_COMPRESSED_RGB_S3TC_DXT1_EXT],
1139
+ 9: [GL_COMPRESSED_RGBA_S3TC_DXT3_EXT],
1140
+ 11: [GL_COMPRESSED_RGBA_S3TC_DXT5_EXT],
1141
+ 22: [GL_COMPRESSED_RGB8_ETC2],
1142
+ 23: [GL_COMPRESSED_RGBA8_ETC2_EAC],
1143
+ 24: [GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
1144
+ 25: [GL_COMPRESSED_R11_EAC],
1145
+ 26: [GL_COMPRESSED_RG11_EAC],
1146
+ 27: [GL_COMPRESSED_RGBA_ASTC_4x4_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR],
1147
+ 28: [GL_COMPRESSED_RGBA_ASTC_5x4_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR],
1148
+ 29: [GL_COMPRESSED_RGBA_ASTC_5x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR],
1149
+ 30: [GL_COMPRESSED_RGBA_ASTC_6x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR],
1150
+ 31: [GL_COMPRESSED_RGBA_ASTC_6x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR],
1151
+ 32: [GL_COMPRESSED_RGBA_ASTC_8x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR],
1152
+ 33: [GL_COMPRESSED_RGBA_ASTC_8x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR],
1153
+ 34: [GL_COMPRESSED_RGBA_ASTC_8x8_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR],
1154
+ 35: [GL_COMPRESSED_RGBA_ASTC_10x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR],
1155
+ 36: [GL_COMPRESSED_RGBA_ASTC_10x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR],
1156
+ 37: [GL_COMPRESSED_RGBA_ASTC_10x8_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR],
1157
+ 38: [GL_COMPRESSED_RGBA_ASTC_10x10_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR],
1158
+ 39: [GL_COMPRESSED_RGBA_ASTC_12x10_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR],
1159
+ 40: [GL_COMPRESSED_RGBA_ASTC_12x12_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR]
820
1160
  };
821
1161
  var PVR_SIZE_FUNCTIONS = {
822
1162
  0: pvrtc2bppSize,
@@ -1097,7 +1437,7 @@ var NPYLoader = {
1097
1437
  };
1098
1438
 
1099
1439
  // dist/lib/parsers/crunch-module-loader.js
1100
- var import_loader_utils3 = require("@loaders.gl/loader-utils");
1440
+ var import_loader_utils4 = require("@loaders.gl/loader-utils");
1101
1441
  var import_worker_utils2 = require("@loaders.gl/worker-utils");
1102
1442
  var CRUNCH_EXTERNAL_LIBRARIES = {
1103
1443
  /** Crunch decoder library. It is used as dynamically imported script */
@@ -1201,18 +1541,18 @@ var KTX2BasisWriter = {
1201
1541
  };
1202
1542
 
1203
1543
  // dist/lib/texture-api/load-image.js
1204
- var import_loader_utils5 = require("@loaders.gl/loader-utils");
1544
+ var import_loader_utils6 = require("@loaders.gl/loader-utils");
1205
1545
  var import_images = require("@loaders.gl/images");
1206
1546
 
1207
1547
  // dist/lib/texture-api/generate-url.js
1208
- var import_loader_utils4 = require("@loaders.gl/loader-utils");
1548
+ var import_loader_utils5 = require("@loaders.gl/loader-utils");
1209
1549
  function generateUrl(getUrl, options, urlOptions) {
1210
1550
  let url = typeof getUrl === "function" ? getUrl({ ...options, ...urlOptions }) : getUrl;
1211
1551
  const baseUrl = options.baseUrl;
1212
1552
  if (baseUrl) {
1213
1553
  url = baseUrl[baseUrl.length - 1] === "/" ? `${baseUrl}${url}` : `${baseUrl}/${url}`;
1214
1554
  }
1215
- return (0, import_loader_utils4.resolvePath)(url);
1555
+ return (0, import_loader_utils5.resolvePath)(url);
1216
1556
  }
1217
1557
 
1218
1558
  // dist/lib/texture-api/async-deep-map.js
@@ -1276,7 +1616,7 @@ async function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {
1276
1616
  mipLevels = getMipLevels({ width, height });
1277
1617
  urls.push(url);
1278
1618
  }
1279
- (0, import_loader_utils5.assert)(mipLevels > 0);
1619
+ (0, import_loader_utils6.assert)(mipLevels > 0);
1280
1620
  for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {
1281
1621
  const url = generateUrl(getUrl, options, { ...urlOptions, lod: mipLevel });
1282
1622
  urls.push(url);