@loaders.gl/textures 4.2.0-alpha.6 → 4.2.0-beta.1
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.
- package/dist/basis-loader.d.ts +61 -3
- package/dist/basis-loader.d.ts.map +1 -1
- package/dist/basis-loader.js +5 -3
- package/dist/basis-worker-node.js +167 -210
- package/dist/basis-worker.js +29 -48
- package/dist/compressed-texture-loader.d.ts +43 -4
- package/dist/compressed-texture-loader.d.ts.map +1 -1
- package/dist/compressed-texture-loader.js +2 -0
- package/dist/compressed-texture-worker.js +30 -46
- package/dist/compressed-texture-writer.d.ts +24 -2
- package/dist/compressed-texture-writer.d.ts.map +1 -1
- package/dist/compressed-texture-writer.js +0 -8
- package/dist/crunch-loader.d.ts +23 -2
- package/dist/crunch-loader.d.ts.map +1 -1
- package/dist/crunch-loader.js +2 -0
- package/dist/crunch-worker.js +30 -46
- package/dist/dist.dev.js +96 -81
- package/dist/dist.min.js +2 -2
- package/dist/index.cjs +23 -15
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/ktx2-basis-writer-worker-node.js +148 -203
- package/dist/ktx2-basis-writer-worker.js +12 -42
- package/dist/ktx2-basis-writer.d.ts +18 -3
- package/dist/ktx2-basis-writer.d.ts.map +1 -1
- package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -1
- package/dist/lib/parsers/basis-module-loader.js +6 -4
- package/dist/lib/parsers/crunch-module-loader.d.ts +2 -1
- package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
- package/dist/lib/parsers/crunch-module-loader.js +6 -4
- package/dist/lib/utils/version.js +1 -1
- package/dist/npy-loader.d.ts +40 -5
- package/dist/npy-loader.d.ts.map +1 -1
- package/dist/npy-loader.js +2 -0
- package/dist/npy-worker.js +3 -1
- package/dist/workers/crunch-worker.d.ts +15 -17
- package/dist/workers/crunch-worker.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/basis-loader.ts +27 -7
- package/src/compressed-texture-loader.ts +14 -6
- package/src/compressed-texture-writer.ts +5 -15
- package/src/crunch-loader.ts +10 -2
- package/src/index.ts +10 -1
- package/src/ktx2-basis-writer.ts +2 -2
- package/src/lib/parsers/basis-module-loader.ts +6 -4
- package/src/lib/parsers/crunch-module-loader.ts +8 -6
- package/src/npy-loader.ts +13 -5
package/dist/dist.dev.js
CHANGED
|
@@ -45,13 +45,6 @@ var __exports__ = (() => {
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
// (disabled):../worker-utils/src/lib/node/require-utils.node
|
|
49
|
-
var require_require_utils = __commonJS({
|
|
50
|
-
"(disabled):../worker-utils/src/lib/node/require-utils.node"() {
|
|
51
|
-
"use strict";
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
|
|
55
48
|
// (disabled):../worker-utils/src/lib/process-utils/child-process-proxy
|
|
56
49
|
var require_child_process_proxy = __commonJS({
|
|
57
50
|
"(disabled):../worker-utils/src/lib/process-utils/child-process-proxy"() {
|
|
@@ -87,6 +80,42 @@ var __exports__ = (() => {
|
|
|
87
80
|
// src/lib/utils/version.ts
|
|
88
81
|
var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
89
82
|
|
|
83
|
+
// ../loader-utils/src/lib/env-utils/assert.ts
|
|
84
|
+
function assert(condition, message) {
|
|
85
|
+
if (!condition) {
|
|
86
|
+
throw new Error(message || "loader assertion failed.");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ../loader-utils/src/lib/env-utils/globals.ts
|
|
91
|
+
var globals = {
|
|
92
|
+
self: typeof self !== "undefined" && self,
|
|
93
|
+
window: typeof window !== "undefined" && window,
|
|
94
|
+
global: typeof global !== "undefined" && global,
|
|
95
|
+
document: typeof document !== "undefined" && document
|
|
96
|
+
};
|
|
97
|
+
var self_ = globals.self || globals.window || globals.global || {};
|
|
98
|
+
var window_ = globals.window || globals.self || globals.global || {};
|
|
99
|
+
var global_ = globals.global || globals.self || globals.window || {};
|
|
100
|
+
var document_ = globals.document || {};
|
|
101
|
+
var isBrowser = (
|
|
102
|
+
// @ts-ignore process does not exist on browser
|
|
103
|
+
Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser)
|
|
104
|
+
);
|
|
105
|
+
var matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
106
|
+
var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
107
|
+
|
|
108
|
+
// ../loader-utils/src/lib/module-utils/js-module-utils.ts
|
|
109
|
+
function registerJSModules(modules) {
|
|
110
|
+
globalThis.loaders ||= {};
|
|
111
|
+
globalThis.loaders.modules ||= {};
|
|
112
|
+
Object.assign(globalThis.loaders.modules, modules);
|
|
113
|
+
}
|
|
114
|
+
function getJSModuleOrNull(name) {
|
|
115
|
+
const module = globalThis.loaders?.modules?.[name];
|
|
116
|
+
return module || null;
|
|
117
|
+
}
|
|
118
|
+
|
|
90
119
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
91
120
|
var NPM_TAG = "latest";
|
|
92
121
|
function getVersion() {
|
|
@@ -106,34 +135,33 @@ var __exports__ = (() => {
|
|
|
106
135
|
var VERSION2 = getVersion();
|
|
107
136
|
|
|
108
137
|
// ../worker-utils/src/lib/env-utils/assert.ts
|
|
109
|
-
function
|
|
138
|
+
function assert2(condition, message) {
|
|
110
139
|
if (!condition) {
|
|
111
140
|
throw new Error(message || "loaders.gl assertion failed.");
|
|
112
141
|
}
|
|
113
142
|
}
|
|
114
143
|
|
|
115
144
|
// ../worker-utils/src/lib/env-utils/globals.ts
|
|
116
|
-
var
|
|
145
|
+
var globals2 = {
|
|
117
146
|
self: typeof self !== "undefined" && self,
|
|
118
147
|
window: typeof window !== "undefined" && window,
|
|
119
148
|
global: typeof global !== "undefined" && global,
|
|
120
149
|
document: typeof document !== "undefined" && document
|
|
121
150
|
};
|
|
122
|
-
var
|
|
123
|
-
var
|
|
124
|
-
var
|
|
125
|
-
var
|
|
126
|
-
var
|
|
151
|
+
var self_2 = globals2.self || globals2.window || globals2.global || {};
|
|
152
|
+
var window_2 = globals2.window || globals2.self || globals2.global || {};
|
|
153
|
+
var global_2 = globals2.global || globals2.self || globals2.window || {};
|
|
154
|
+
var document_2 = globals2.document || {};
|
|
155
|
+
var isBrowser2 = (
|
|
127
156
|
// @ts-ignore process.browser
|
|
128
157
|
typeof process !== "object" || String(process) !== "[object process]" || process.browser
|
|
129
158
|
);
|
|
130
159
|
var isWorker = typeof importScripts === "function";
|
|
131
160
|
var isMobile = typeof window !== "undefined" && typeof window.orientation !== "undefined";
|
|
132
|
-
var
|
|
133
|
-
var
|
|
161
|
+
var matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
162
|
+
var nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
|
|
134
163
|
|
|
135
164
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
136
|
-
var node = __toESM(require_require_utils(), 1);
|
|
137
165
|
var loadLibraryPromises = {};
|
|
138
166
|
async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
|
|
139
167
|
if (moduleName) {
|
|
@@ -152,11 +180,11 @@ var __exports__ = (() => {
|
|
|
152
180
|
if (modules[libraryName]) {
|
|
153
181
|
return modules[libraryName];
|
|
154
182
|
}
|
|
155
|
-
if (!
|
|
183
|
+
if (!isBrowser2) {
|
|
156
184
|
return `modules/${moduleName}/dist/libs/${libraryName}`;
|
|
157
185
|
}
|
|
158
186
|
if (options.CDN) {
|
|
159
|
-
|
|
187
|
+
assert2(options.CDN.startsWith("http"));
|
|
160
188
|
return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${libraryName}`;
|
|
161
189
|
}
|
|
162
190
|
if (isWorker) {
|
|
@@ -168,9 +196,10 @@ var __exports__ = (() => {
|
|
|
168
196
|
if (libraryUrl.endsWith("wasm")) {
|
|
169
197
|
return await loadAsArrayBuffer(libraryUrl);
|
|
170
198
|
}
|
|
171
|
-
if (!
|
|
199
|
+
if (!isBrowser2) {
|
|
172
200
|
try {
|
|
173
|
-
|
|
201
|
+
const { requireFromFile } = globalThis.loaders || {};
|
|
202
|
+
return await requireFromFile?.(libraryUrl);
|
|
174
203
|
} catch (error) {
|
|
175
204
|
console.error(error);
|
|
176
205
|
return null;
|
|
@@ -183,8 +212,9 @@ var __exports__ = (() => {
|
|
|
183
212
|
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
184
213
|
}
|
|
185
214
|
function loadLibraryFromString(scriptSource, id) {
|
|
186
|
-
if (!
|
|
187
|
-
|
|
215
|
+
if (!isBrowser2) {
|
|
216
|
+
const { requireFromString } = globalThis.loaders || {};
|
|
217
|
+
return requireFromString?.(scriptSource, id);
|
|
188
218
|
}
|
|
189
219
|
if (isWorker) {
|
|
190
220
|
eval.call(globalThis, scriptSource);
|
|
@@ -201,23 +231,41 @@ var __exports__ = (() => {
|
|
|
201
231
|
return null;
|
|
202
232
|
}
|
|
203
233
|
async function loadAsArrayBuffer(url) {
|
|
204
|
-
|
|
234
|
+
const { readFileAsArrayBuffer } = globalThis.loaders || {};
|
|
235
|
+
if (isBrowser2 || !readFileAsArrayBuffer || url.startsWith("http")) {
|
|
205
236
|
const response = await fetch(url);
|
|
206
237
|
return await response.arrayBuffer();
|
|
207
238
|
}
|
|
208
|
-
return await (
|
|
239
|
+
return await readFileAsArrayBuffer(url);
|
|
209
240
|
}
|
|
210
241
|
async function loadAsText(url) {
|
|
211
|
-
|
|
242
|
+
const { readFileAsText } = globalThis.loaders || {};
|
|
243
|
+
if (isBrowser2 || !readFileAsText || url.startsWith("http")) {
|
|
212
244
|
const response = await fetch(url);
|
|
213
245
|
return await response.text();
|
|
214
246
|
}
|
|
215
|
-
return await (
|
|
247
|
+
return await readFileAsText(url);
|
|
216
248
|
}
|
|
217
249
|
|
|
218
250
|
// ../worker-utils/src/index.ts
|
|
219
251
|
var import_child_process_proxy = __toESM(require_child_process_proxy(), 1);
|
|
220
252
|
|
|
253
|
+
// ../loader-utils/src/lib/path-utils/file-aliases.ts
|
|
254
|
+
var pathPrefix = "";
|
|
255
|
+
var fileAliases = {};
|
|
256
|
+
function resolvePath(filename) {
|
|
257
|
+
for (const alias in fileAliases) {
|
|
258
|
+
if (filename.startsWith(alias)) {
|
|
259
|
+
const replacement = fileAliases[alias];
|
|
260
|
+
filename = filename.replace(alias, replacement);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (!filename.startsWith("http://") && !filename.startsWith("https://")) {
|
|
264
|
+
filename = `${pathPrefix}${filename}`;
|
|
265
|
+
}
|
|
266
|
+
return filename;
|
|
267
|
+
}
|
|
268
|
+
|
|
221
269
|
// src/lib/parsers/basis-module-loader.ts
|
|
222
270
|
var BASIS_EXTERNAL_LIBRARIES = {
|
|
223
271
|
/** Basis transcoder, javascript wrapper part */
|
|
@@ -231,11 +279,12 @@ var __exports__ = (() => {
|
|
|
231
279
|
};
|
|
232
280
|
var loadBasisTranscoderPromise;
|
|
233
281
|
async function loadBasisTranscoderModule(options) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
282
|
+
registerJSModules(options.modules);
|
|
283
|
+
const basis = getJSModuleOrNull("basis");
|
|
284
|
+
if (basis) {
|
|
285
|
+
return basis;
|
|
237
286
|
}
|
|
238
|
-
loadBasisTranscoderPromise
|
|
287
|
+
loadBasisTranscoderPromise ||= loadBasisTranscoder(options);
|
|
239
288
|
return await loadBasisTranscoderPromise;
|
|
240
289
|
}
|
|
241
290
|
async function loadBasisTranscoder(options) {
|
|
@@ -901,6 +950,8 @@ var __exports__ = (() => {
|
|
|
901
950
|
|
|
902
951
|
// src/basis-loader.ts
|
|
903
952
|
var BasisWorkerLoader = {
|
|
953
|
+
dataType: null,
|
|
954
|
+
batchType: null,
|
|
904
955
|
name: "Basis",
|
|
905
956
|
id: "basis",
|
|
906
957
|
module: "textures",
|
|
@@ -913,12 +964,9 @@ var __exports__ = (() => {
|
|
|
913
964
|
options: {
|
|
914
965
|
basis: {
|
|
915
966
|
format: "auto",
|
|
916
|
-
// gl context doesn't exist on a worker thread
|
|
917
967
|
libraryPath: "libs/",
|
|
918
968
|
containerFormat: "auto",
|
|
919
|
-
// 'basis' || 'ktx2' || 'auto'
|
|
920
969
|
module: "transcoder"
|
|
921
|
-
// 'transcoder' || 'encoder'
|
|
922
970
|
}
|
|
923
971
|
}
|
|
924
972
|
};
|
|
@@ -927,47 +975,6 @@ var __exports__ = (() => {
|
|
|
927
975
|
parse: parseBasis
|
|
928
976
|
};
|
|
929
977
|
|
|
930
|
-
// ../loader-utils/src/lib/env-utils/assert.ts
|
|
931
|
-
function assert2(condition, message) {
|
|
932
|
-
if (!condition) {
|
|
933
|
-
throw new Error(message || "loader assertion failed.");
|
|
934
|
-
}
|
|
935
|
-
}
|
|
936
|
-
|
|
937
|
-
// ../loader-utils/src/lib/env-utils/globals.ts
|
|
938
|
-
var globals2 = {
|
|
939
|
-
self: typeof self !== "undefined" && self,
|
|
940
|
-
window: typeof window !== "undefined" && window,
|
|
941
|
-
global: typeof global !== "undefined" && global,
|
|
942
|
-
document: typeof document !== "undefined" && document
|
|
943
|
-
};
|
|
944
|
-
var self_2 = globals2.self || globals2.window || globals2.global || {};
|
|
945
|
-
var window_2 = globals2.window || globals2.self || globals2.global || {};
|
|
946
|
-
var global_2 = globals2.global || globals2.self || globals2.window || {};
|
|
947
|
-
var document_2 = globals2.document || {};
|
|
948
|
-
var isBrowser2 = (
|
|
949
|
-
// @ts-ignore process does not exist on browser
|
|
950
|
-
Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser)
|
|
951
|
-
);
|
|
952
|
-
var matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
953
|
-
var nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
|
|
954
|
-
|
|
955
|
-
// ../loader-utils/src/lib/path-utils/file-aliases.ts
|
|
956
|
-
var pathPrefix = "";
|
|
957
|
-
var fileAliases = {};
|
|
958
|
-
function resolvePath(filename) {
|
|
959
|
-
for (const alias in fileAliases) {
|
|
960
|
-
if (filename.startsWith(alias)) {
|
|
961
|
-
const replacement = fileAliases[alias];
|
|
962
|
-
filename = filename.replace(alias, replacement);
|
|
963
|
-
}
|
|
964
|
-
}
|
|
965
|
-
if (!filename.startsWith("http://") && !filename.startsWith("https://")) {
|
|
966
|
-
filename = `${pathPrefix}${filename}`;
|
|
967
|
-
}
|
|
968
|
-
return filename;
|
|
969
|
-
}
|
|
970
|
-
|
|
971
978
|
// src/lib/parsers/parse-dds.ts
|
|
972
979
|
var DDS_CONSTANTS = {
|
|
973
980
|
MAGIC_NUMBER: 542327876,
|
|
@@ -1010,14 +1017,14 @@ var __exports__ = (() => {
|
|
|
1010
1017
|
function parseDDS(data) {
|
|
1011
1018
|
const header = new Int32Array(data, 0, DDS_CONSTANTS.HEADER_LENGTH);
|
|
1012
1019
|
const pixelFormatNumber = header[DDS_CONSTANTS.HEADER_PF_FOURCC_INDEX];
|
|
1013
|
-
|
|
1020
|
+
assert(
|
|
1014
1021
|
Boolean(header[DDS_CONSTANTS.HEADER_PF_FLAGS_INDEX] & DDS_CONSTANTS.DDPF_FOURCC),
|
|
1015
1022
|
"DDS: Unsupported format, must contain a FourCC code"
|
|
1016
1023
|
);
|
|
1017
1024
|
const fourCC = int32ToFourCC(pixelFormatNumber);
|
|
1018
1025
|
const internalFormat = DDS_PIXEL_FORMATS[fourCC];
|
|
1019
1026
|
const sizeFunction = DDS_SIZE_FUNCTIONS[fourCC];
|
|
1020
|
-
|
|
1027
|
+
assert(internalFormat && sizeFunction, `DDS: Unknown pixel format ${pixelFormatNumber}`);
|
|
1021
1028
|
let mipMapLevels = 1;
|
|
1022
1029
|
if (header[DDS_CONSTANTS.HEADER_FLAGS_INDEX] & DDS_CONSTANTS.DDSD_MIPMAPCOUNT) {
|
|
1023
1030
|
mipMapLevels = Math.max(1, header[DDS_CONSTANTS.MIPMAPCOUNT_INDEX]);
|
|
@@ -1260,6 +1267,8 @@ var __exports__ = (() => {
|
|
|
1260
1267
|
|
|
1261
1268
|
// src/compressed-texture-loader.ts
|
|
1262
1269
|
var CompressedTextureWorkerLoader = {
|
|
1270
|
+
dataType: null,
|
|
1271
|
+
batchType: null,
|
|
1263
1272
|
name: "Texture Containers",
|
|
1264
1273
|
id: "compressed-texture",
|
|
1265
1274
|
module: "textures",
|
|
@@ -1311,6 +1320,8 @@ var __exports__ = (() => {
|
|
|
1311
1320
|
|
|
1312
1321
|
// src/crunch-loader.ts
|
|
1313
1322
|
var CrunchLoader = {
|
|
1323
|
+
dataType: null,
|
|
1324
|
+
batchType: null,
|
|
1314
1325
|
id: "crunch",
|
|
1315
1326
|
name: "Crunch",
|
|
1316
1327
|
module: "textures",
|
|
@@ -1388,6 +1399,8 @@ var __exports__ = (() => {
|
|
|
1388
1399
|
// src/npy-loader.ts
|
|
1389
1400
|
var NPY_MAGIC_NUMBER = new Uint8Array([147, 78, 85, 77, 80, 89]);
|
|
1390
1401
|
var NPYWorkerLoader = {
|
|
1402
|
+
dataType: null,
|
|
1403
|
+
batchType: null,
|
|
1391
1404
|
name: "NPY",
|
|
1392
1405
|
id: "npy",
|
|
1393
1406
|
module: "textures",
|
|
@@ -1518,7 +1531,7 @@ var __exports__ = (() => {
|
|
|
1518
1531
|
var IMAGE_SUPPORTED = typeof Image !== "undefined";
|
|
1519
1532
|
var IMAGE_BITMAP_SUPPORTED = typeof ImageBitmap !== "undefined";
|
|
1520
1533
|
var NODE_IMAGE_SUPPORTED = Boolean(parseImageNode);
|
|
1521
|
-
var DATA_SUPPORTED =
|
|
1534
|
+
var DATA_SUPPORTED = isBrowser ? true : NODE_IMAGE_SUPPORTED;
|
|
1522
1535
|
function isImageTypeSupported(type) {
|
|
1523
1536
|
switch (type) {
|
|
1524
1537
|
case "auto":
|
|
@@ -1845,7 +1858,7 @@ var __exports__ = (() => {
|
|
|
1845
1858
|
async function parseToNodeImage(arrayBuffer, options) {
|
|
1846
1859
|
const { mimeType } = getBinaryImageMetadata(arrayBuffer) || {};
|
|
1847
1860
|
const parseImageNode2 = globalThis.loaders?.parseImageNode;
|
|
1848
|
-
|
|
1861
|
+
assert(parseImageNode2);
|
|
1849
1862
|
return await parseImageNode2(arrayBuffer, mimeType);
|
|
1850
1863
|
}
|
|
1851
1864
|
|
|
@@ -1868,7 +1881,7 @@ var __exports__ = (() => {
|
|
|
1868
1881
|
image = await parseToNodeImage(arrayBuffer, options);
|
|
1869
1882
|
break;
|
|
1870
1883
|
default:
|
|
1871
|
-
|
|
1884
|
+
assert(false);
|
|
1872
1885
|
}
|
|
1873
1886
|
if (imageType === "data") {
|
|
1874
1887
|
image = getImageData(image);
|
|
@@ -1907,6 +1920,8 @@ var __exports__ = (() => {
|
|
|
1907
1920
|
// imagebitmap: {} - passes (platform dependent) parameters to ImageBitmap constructor
|
|
1908
1921
|
};
|
|
1909
1922
|
var ImageLoader = {
|
|
1923
|
+
dataType: null,
|
|
1924
|
+
batchType: null,
|
|
1910
1925
|
id: "image",
|
|
1911
1926
|
module: "images",
|
|
1912
1927
|
name: "Images",
|
|
@@ -1990,7 +2005,7 @@ var __exports__ = (() => {
|
|
|
1990
2005
|
mipLevels = getMipLevels({ width, height });
|
|
1991
2006
|
urls.push(url);
|
|
1992
2007
|
}
|
|
1993
|
-
|
|
2008
|
+
assert(mipLevels > 0);
|
|
1994
2009
|
for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {
|
|
1995
2010
|
const url = generateUrl(getUrl, options, { ...urlOptions, lod: mipLevel });
|
|
1996
2011
|
urls.push(url);
|
package/dist/dist.min.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['loaders'] = factory();
|
|
6
6
|
else root['loaders'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var
|
|
8
|
-
`).forEach(_=>{let c=a.exec(_);c&&s.push(Number(c[1]))});let i=e;for(;s.includes(i);)i++;t(i)})})}var Je={command:"",arguments:[],port:5e3,autoPort:!0,wait:2e3,onSuccess:e=>{console.log(`Started ${e.props.command}`)}},O=class{id;props={...Je};childProcess=null;port=0;successTimer;constructor({id:t="browser-driver"}={}){this.id=t}async start(t){t={...Je,...t},this.props=t;let r=[...t.arguments];return this.port=Number(t.port),t.portArg&&(t.autoPort&&(this.port=await qe(t.port)),r.push(t.portArg,String(this.port))),await new Promise((o,s)=>{try{this._setTimeout(()=>{t.onSuccess&&t.onSuccess(this),o({})}),console.log(`Spawning ${t.command} ${t.arguments.join(" ")}`);let a=(void 0)(t.command,r,t.spawn);this.childProcess=a,a.stdout.on("data",i=>{console.log(i.toString())}),a.stderr.on("data",i=>{console.log(`Child process wrote to stderr: "${i}".`),t.ignoreStderr||(this._clearTimeout(),s(new Error(i)))}),a.on("error",i=>{console.log(`Child process errored with ${i}`),this._clearTimeout(),s(i)}),a.on("close",i=>{console.log(`Child process exited with ${i}`),this.childProcess=null,this._clearTimeout(),o({})})}catch(a){s(a)}})}async stop(){this.childProcess&&(this.childProcess.kill(),this.childProcess=null)}async exit(t=0){try{await this.stop(),process.exit(t)}catch(r){console.error(r.message||r),process.exit(1)}}_setTimeout(t){Number(this.props.wait)>0&&(this.successTimer=setTimeout(t,this.props.wait))}_clearTimeout(){this.successTimer&&clearTimeout(this.successTimer)}};var G={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},_e;async function fe(e){let t=e.modules||{};return t.basis?t.basis:(_e=_e||lr(e),await _e)}async function lr(e){let t=null,r=null;return[t,r]=await Promise.all([await w(G.TRANSCODER,"textures",e),await w(G.TRANSCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await Sr(t,r)}function Sr(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(o=>{e(r).then(s=>{let{BasisFile:a,initializeBasis:i}=s;i(),o({BasisFile:a})})})}var ce;async function U(e){let t=e.modules||{};return t.basisEncoder?t.basisEncoder:(ce=ce||Er(e),await ce)}async function Er(e){let t=null,r=null;return[t,r]=await Promise.all([await w(G.ENCODER,"textures",e),await w(G.ENCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await ur(t,r)}function ur(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(o=>{e(r).then(s=>{let{BasisFile:a,KTX2File:i,initializeBasis:_,BasisEncoder:c}=s;_(),o({BasisFile:a,KTX2File:i,BasisEncoder:c})})})}var n={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_RGBA8_ETC2_EAC:37493,COMPRESSED_SRGB8_ETC2:37494,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37495,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37496,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37497,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGB_ATC_WEBGL:35986,COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:35987,COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:34798,COMPRESSED_RGBA_ASTC_4X4_KHR:37808,COMPRESSED_RGBA_ASTC_5X4_KHR:37809,COMPRESSED_RGBA_ASTC_5X5_KHR:37810,COMPRESSED_RGBA_ASTC_6X5_KHR:37811,COMPRESSED_RGBA_ASTC_6X6_KHR:37812,COMPRESSED_RGBA_ASTC_8X5_KHR:37813,COMPRESSED_RGBA_ASTC_8X6_KHR:37814,COMPRESSED_RGBA_ASTC_8X8_KHR:37815,COMPRESSED_RGBA_ASTC_10X5_KHR:37816,COMPRESSED_RGBA_ASTC_10X6_KHR:37817,COMPRESSED_RGBA_ASTC_10X8_KHR:37818,COMPRESSED_RGBA_ASTC_10X10_KHR:37819,COMPRESSED_RGBA_ASTC_12X10_KHR:37820,COMPRESSED_RGBA_ASTC_12X12_KHR:37821,COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR:37840,COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR:37841,COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR:37842,COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR:37843,COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR:37844,COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR:37845,COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR:37846,COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR:37847,COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR:37848,COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR:37849,COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR:37850,COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR:37851,COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR:37852,COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR:37853,COMPRESSED_RED_RGTC1_EXT:36283,COMPRESSED_SIGNED_RED_RGTC1_EXT:36284,COMPRESSED_RED_GREEN_RGTC2_EXT:36285,COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:36286,COMPRESSED_SRGB_S3TC_DXT1_EXT:35916,COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:35917,COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:35918,COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:35919};var mr=["","WEBKIT_","MOZ_"],et={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"},$=null;function j(e){if(!$){e=e||pr()||void 0,$=new Set;for(let t of mr)for(let r in et)if(e&&e.getExtension(`${t}${r}`)){let o=et[r];$.add(o)}}return $}function pr(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var un=new Uint8Array([0]),S=[171,75,84,88,32,50,48,187,13,10,26,10],le,Se,Ee,Z,tt,ue,rt,ot;(function(e){e[e.NONE=0]="NONE",e[e.BASISLZ=1]="BASISLZ",e[e.ZSTD=2]="ZSTD",e[e.ZLIB=3]="ZLIB"})(le||(le={})),function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(Se||(Se={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Ee||(Ee={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}(Z||(Z={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.LINEAR=1]="LINEAR",e[e.SRGB=2]="SRGB",e[e.ITU=3]="ITU",e[e.NTSC=4]="NTSC",e[e.SLOG=5]="SLOG",e[e.SLOG2=6]="SLOG2"}(tt||(tt={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(ue||(ue={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}(rt||(rt={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(ot||(ot={}));var me=class{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=le.NONE,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:Se.BASICFORMAT,versionNumber:2,descriptorBlockSize:40,colorModel:Ee.UNSPECIFIED,colorPrimaries:Z.SRGB,transferFunction:Z.SRGB,flags:ue.ALPHA_STRAIGHT,texelBlockDimension:{x:4,y:4,z:1,w:1},bytesPlane:[],samples:[]}],this.keyValue={},this.globalData=null}},B=class{constructor(t,r,o,s){this._dataView=new DataView(t.buffer,t.byteOffset+r,o),this._littleEndian=s,this._offset=0}_nextUint8(){let t=this._dataView.getUint8(this._offset);return this._offset+=1,t}_nextUint16(){let t=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,t}_nextUint32(){let t=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,t}_nextUint64(){let t=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,t}_skip(t){return this._offset+=t,this}_scan(t,r=0){let o=this._offset,s=0;for(;this._dataView.getUint8(this._offset)!==r&&s<t;)s++,this._offset++;return s<t&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+o,s)}};function nt(e){return typeof TextDecoder<"u"?new TextDecoder().decode(e):Buffer.from(e).toString("utf8")}function st(e){let t=new Uint8Array(e.buffer,e.byteOffset,S.length);if(t[0]!==S[0]||t[1]!==S[1]||t[2]!==S[2]||t[3]!==S[3]||t[4]!==S[4]||t[5]!==S[5]||t[6]!==S[6]||t[7]!==S[7]||t[8]!==S[8]||t[9]!==S[9]||t[10]!==S[10]||t[11]!==S[11])throw new Error("Missing KTX 2.0 identifier.");let r=new me,o=17*Uint32Array.BYTES_PER_ELEMENT,s=new B(e,S.length,o,!0);r.vkFormat=s._nextUint32(),r.typeSize=s._nextUint32(),r.pixelWidth=s._nextUint32(),r.pixelHeight=s._nextUint32(),r.pixelDepth=s._nextUint32(),r.layerCount=s._nextUint32(),r.faceCount=s._nextUint32();let a=s._nextUint32();r.supercompressionScheme=s._nextUint32();let i=s._nextUint32(),_=s._nextUint32(),c=s._nextUint32(),l=s._nextUint32(),E=s._nextUint64(),h=s._nextUint64(),oe=new B(e,S.length+o,3*a*8,!0);for(let u=0;u<a;u++)r.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+oe._nextUint64(),oe._nextUint64()),uncompressedByteLength:oe._nextUint64()});let f=new B(e,i,_,!0),ne={vendorId:f._skip(4)._nextUint16(),descriptorType:f._nextUint16(),versionNumber:f._nextUint16(),descriptorBlockSize:f._nextUint16(),colorModel:f._nextUint8(),colorPrimaries:f._nextUint8(),transferFunction:f._nextUint8(),flags:f._nextUint8(),texelBlockDimension:{x:f._nextUint8()+1,y:f._nextUint8()+1,z:f._nextUint8()+1,w:f._nextUint8()+1},bytesPlane:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],samples:[]},kt=(ne.descriptorBlockSize/4-6)/4;for(let u=0;u<kt;u++)ne.samples[u]={bitOffset:f._nextUint16(),bitLength:f._nextUint8(),channelID:f._nextUint8(),samplePosition:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],sampleLower:f._nextUint32(),sampleUpper:f._nextUint32()};r.dataFormatDescriptor.length=0,r.dataFormatDescriptor.push(ne);let b=new B(e,c,l,!0);for(;b._offset<l;){let u=b._nextUint32(),Fe=b._scan(u),Ke=nt(Fe),ve=b._scan(u-Fe.byteLength);r.keyValue[Ke]=Ke.match(/^ktx/i)?nt(ve):ve,u%4&&b._skip(4-u%4)}if(h<=0)return r;let A=new B(e,E,h,!0),Wt=A._nextUint16(),zt=A._nextUint16(),Ie=A._nextUint32(),be=A._nextUint32(),Ue=A._nextUint32(),$t=A._nextUint32(),Le=[];for(let u=0;u<a;u++)Le.push({imageFlags:A._nextUint32(),rgbSliceByteOffset:A._nextUint32(),rgbSliceByteLength:A._nextUint32(),alphaSliceByteOffset:A._nextUint32(),alphaSliceByteLength:A._nextUint32()});let He=E+A._offset,Xe=He+Ie,Ne=Xe+be,jt=Ne+Ue,Zt=new Uint8Array(e.buffer,e.byteOffset+He,Ie),Yt=new Uint8Array(e.buffer,e.byteOffset+Xe,be),qt=new Uint8Array(e.buffer,e.byteOffset+Ne,Ue),Jt=new Uint8Array(e.buffer,e.byteOffset+jt,$t);return r.globalData={endpointCount:Wt,selectorCount:zt,imageDescs:Le,endpointsData:Zt,selectorsData:Yt,tablesData:qt,extendedData:Jt},r}function y(e,t){let r=new Array(t.mipMapLevels),o=t.width,s=t.height,a=0;for(let i=0;i<t.mipMapLevels;++i){let _=Rr(t,o,s,e,i),c=dr(e,i,a,_);r[i]={compressed:!0,format:t.internalFormat,data:c,width:o,height:s,levelSize:_},o=Math.max(1,o>>1),s=Math.max(1,s>>1),a+=_}return r}function dr(e,t,r,o){return Array.isArray(e)?e[t].levelData:new Uint8Array(e.buffer,e.byteOffset+r,o)}function Rr(e,t,r,o,s){return Array.isArray(o)?e.sizeFunction(o[s]):e.sizeFunction(t,r)}var Ar={131:n.COMPRESSED_RGB_S3TC_DXT1_EXT,132:n.COMPRESSED_SRGB_S3TC_DXT1_EXT,133:n.COMPRESSED_RGBA_S3TC_DXT1_EXT,134:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,135:n.COMPRESSED_RGBA_S3TC_DXT3_EXT,136:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,137:n.COMPRESSED_RGBA_S3TC_DXT5_EXT,138:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,139:n.COMPRESSED_RED_RGTC1_EXT,140:n.COMPRESSED_SIGNED_RED_RGTC1_EXT,141:n.COMPRESSED_RED_GREEN_RGTC2_EXT,142:n.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,147:n.COMPRESSED_RGB8_ETC2,148:n.COMPRESSED_SRGB8_ETC2,149:n.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,150:n.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,151:n.COMPRESSED_RGBA8_ETC2_EAC,152:n.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,153:n.COMPRESSED_R11_EAC,154:n.COMPRESSED_SIGNED_R11_EAC,155:n.COMPRESSED_RG11_EAC,156:n.COMPRESSED_SIGNED_RG11_EAC,157:n.COMPRESSED_RGBA_ASTC_4x4_KHR,158:n.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,159:n.COMPRESSED_RGBA_ASTC_5x4_KHR,160:n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,161:n.COMPRESSED_RGBA_ASTC_5x5_KHR,162:n.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,163:n.COMPRESSED_RGBA_ASTC_6x5_KHR,164:n.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,165:n.COMPRESSED_RGBA_ASTC_6x6_KHR,166:n.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,167:n.COMPRESSED_RGBA_ASTC_8x5_KHR,168:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,169:n.COMPRESSED_RGBA_ASTC_8x6_KHR,170:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,171:n.COMPRESSED_RGBA_ASTC_8x8_KHR,172:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,173:n.COMPRESSED_RGBA_ASTC_10x5_KHR,174:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,175:n.COMPRESSED_RGBA_ASTC_10x6_KHR,176:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,177:n.COMPRESSED_RGBA_ASTC_10x8_KHR,178:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,179:n.COMPRESSED_RGBA_ASTC_10x10_KHR,180:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,181:n.COMPRESSED_RGBA_ASTC_12x10_KHR,182:n.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,183:n.COMPRESSED_RGBA_ASTC_12x12_KHR,184:n.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,1000054e3:n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,1000054001:n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,1000066e3:n.COMPRESSED_RGBA_ASTC_4x4_KHR,1000066001:n.COMPRESSED_RGBA_ASTC_5x4_KHR,1000066002:n.COMPRESSED_RGBA_ASTC_5x5_KHR,1000066003:n.COMPRESSED_RGBA_ASTC_6x5_KHR,1000066004:n.COMPRESSED_RGBA_ASTC_6x6_KHR,1000066005:n.COMPRESSED_RGBA_ASTC_8x5_KHR,1000066006:n.COMPRESSED_RGBA_ASTC_8x6_KHR,1000066007:n.COMPRESSED_RGBA_ASTC_8x8_KHR,1000066008:n.COMPRESSED_RGBA_ASTC_10x5_KHR,1000066009:n.COMPRESSED_RGBA_ASTC_10x6_KHR,1000066010:n.COMPRESSED_RGBA_ASTC_10x8_KHR,1000066011:n.COMPRESSED_RGBA_ASTC_10x10_KHR,1000066012:n.COMPRESSED_RGBA_ASTC_12x10_KHR,1000066013:n.COMPRESSED_RGBA_ASTC_12x12_KHR};function at(e){return Ar[e]}var d=[171,75,84,88,32,50,48,187,13,10,26,10];function Y(e){let t=new Uint8Array(e);return!(t.byteLength<d.length||t[0]!==d[0]||t[1]!==d[1]||t[2]!==d[2]||t[3]!==d[3]||t[4]!==d[4]||t[5]!==d[5]||t[6]!==d[6]||t[7]!==d[7]||t[8]!==d[8]||t[9]!==d[9]||t[10]!==d[10]||t[11]!==d[11])}function it(e){let t=new Uint8Array(e),r=st(t),o=Math.max(1,r.levels.length),s=r.pixelWidth,a=r.pixelHeight,i=at(r.vkFormat);return y(r.levels,{mipMapLevels:o,width:s,height:a,sizeFunction:_=>_.uncompressedByteLength,internalFormat:i})}var xr={etc1:{basisFormat:0,compressed:!0,format:n.COMPRESSED_RGB_ETC1_WEBGL},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:n.COMPRESSED_RGB_S3TC_DXT1_EXT},bc3:{basisFormat:3,compressed:!0,format:n.COMPRESSED_RGBA_S3TC_DXT5_EXT},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},"astc-4x4":{basisFormat:10,compressed:!0,format:n.COMPRESSED_RGBA_ASTC_4X4_KHR},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};async function L(e,t){if(t.basis.containerFormat==="auto"){if(Y(e)){let o=await U(t);return _t(o.KTX2File,e,t)}let{BasisFile:r}=await fe(t);return pe(r,e,t)}switch(t.basis.module){case"encoder":let r=await U(t);switch(t.basis.containerFormat){case"ktx2":return _t(r.KTX2File,e,t);case"basis":default:return pe(r.BasisFile,e,t)}case"transcoder":default:let{BasisFile:o}=await fe(t);return pe(o,e,t)}}function pe(e,t,r){let o=new e(new Uint8Array(t));try{if(!o.startTranscoding())throw new Error("Failed to start basis transcoding");let s=o.getNumImages(),a=[];for(let i=0;i<s;i++){let _=o.getNumLevels(i),c=[];for(let l=0;l<_;l++)c.push(Tr(o,i,l,r));a.push(c)}return a}finally{o.close(),o.delete()}}function Tr(e,t,r,o){let s=e.getImageWidth(t,r),a=e.getImageHeight(t,r),i=e.getHasAlpha(),{compressed:_,format:c,basisFormat:l}=ct(o,i),E=e.getImageTranscodedSizeInBytes(t,r,l),h=new Uint8Array(E);if(!e.transcodeImage(h,t,r,l,0,0))throw new Error("failed to start Basis transcoding");return{width:s,height:a,data:h,compressed:_,format:c,hasAlpha:i}}function _t(e,t,r){let o=new e(new Uint8Array(t));try{if(!o.startTranscoding())throw new Error("failed to start KTX2 transcoding");let s=o.getLevels(),a=[];for(let i=0;i<s;i++){a.push(Cr(o,i,r));break}return[a]}finally{o.close(),o.delete()}}function Cr(e,t,r){let{alphaFlag:o,height:s,width:a}=e.getImageLevelInfo(t,0,0),{compressed:i,format:_,basisFormat:c}=ct(r,o),l=e.getImageTranscodedSizeInBytes(t,0,0,c),E=new Uint8Array(l);if(!e.transcodeImage(E,t,0,0,c,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{width:a,height:s,data:E,compressed:i,levelSize:l,hasAlpha:o,format:_}}function ct(e,t){let r=e&&e.basis&&e.basis.format;return r==="auto"&&(r=de()),typeof r=="object"&&(r=t?r.alpha:r.noAlpha),r=r.toLowerCase(),xr[r]}function de(){let e=j();return e.has("astc")?"astc-4x4":e.has("dxt")?{alpha:"bc3",noAlpha:"bc1"}:e.has("pvrtc")?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:e.has("etc1")?"etc1":e.has("etc2")?"etc2":"rgb565"}var Re={name:"Basis",id:"basis",module:"textures",version:m,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",libraryPath:"libs/",containerFormat:"auto",module:"transcoder"}}},ft={...Re,parse:L};function C(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var g={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},gr=g.self||g.window||g.global||{},Dr=g.window||g.self||g.global||{},hr=g.global||g.self||g.window||{},Pr=g.document||{};var Ae=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var lt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Br=lt&&parseFloat(lt[1])||0;var Mr="",St={};function xe(e){for(let t in St)if(e.startsWith(t)){let r=St[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Mr}${e}`),e}var R={MAGIC_NUMBER:542327876,HEADER_LENGTH:31,MAGIC_NUMBER_INDEX:0,HEADER_SIZE_INDEX:1,HEADER_FLAGS_INDEX:2,HEADER_HEIGHT_INDEX:3,HEADER_WIDTH_INDEX:4,MIPMAPCOUNT_INDEX:7,HEADER_PF_FLAGS_INDEX:20,HEADER_PF_FOURCC_INDEX:21,DDSD_MIPMAPCOUNT:131072,DDPF_FOURCC:4},wr={DXT1:n.COMPRESSED_RGB_S3TC_DXT1_EXT,DXT3:n.COMPRESSED_RGBA_S3TC_DXT3_EXT,DXT5:n.COMPRESSED_RGBA_S3TC_DXT5_EXT,"ATC ":n.COMPRESSED_RGB_ATC_WEBGL,ATCA:n.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,ATCI:n.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL},Or=mt,Gr=q,yr=q,Ir={DXT1:mt,DXT3:q,DXT5:q,"ATC ":Or,ATCA:Gr,ATCI:yr};function Et(e){return new Uint32Array(e,0,R.HEADER_LENGTH)[R.MAGIC_NUMBER_INDEX]===R.MAGIC_NUMBER}function ut(e){let t=new Int32Array(e,0,R.HEADER_LENGTH),r=t[R.HEADER_PF_FOURCC_INDEX];C(Boolean(t[R.HEADER_PF_FLAGS_INDEX]&R.DDPF_FOURCC),"DDS: Unsupported format, must contain a FourCC code");let o=br(r),s=wr[o],a=Ir[o];C(s&&a,`DDS: Unknown pixel format ${r}`);let i=1;t[R.HEADER_FLAGS_INDEX]&R.DDSD_MIPMAPCOUNT&&(i=Math.max(1,t[R.MIPMAPCOUNT_INDEX]));let _=t[R.HEADER_WIDTH_INDEX],c=t[R.HEADER_HEIGHT_INDEX],l=t[R.HEADER_SIZE_INDEX]+4,E=new Uint8Array(e,l);return y(E,{mipMapLevels:i,width:_,height:c,sizeFunction:a,internalFormat:s})}function mt(e,t){return(e+3>>2)*(t+3>>2)*8}function q(e,t){return(e+3>>2)*(t+3>>2)*16}function br(e){return String.fromCharCode(e&255,e>>8&255,e>>16&255,e>>24&255)}var x={MAGIC_NUMBER:55727696,MAGIC_NUMBER_EXTRA:1347834371,HEADER_LENGTH:13,HEADER_SIZE:52,MAGIC_NUMBER_INDEX:0,PIXEL_FORMAT_INDEX:2,COLOUR_SPACE_INDEX:4,HEIGHT_INDEX:6,WIDTH_INDEX:7,MIPMAPCOUNT_INDEX:11,METADATA_SIZE_INDEX:12},Ur={0:[n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],1:[n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],2:[n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],3:[n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],6:[n.COMPRESSED_RGB_ETC1_WEBGL],7:[n.COMPRESSED_RGB_S3TC_DXT1_EXT],9:[n.COMPRESSED_RGBA_S3TC_DXT3_EXT],11:[n.COMPRESSED_RGBA_S3TC_DXT5_EXT],22:[n.COMPRESSED_RGB8_ETC2],23:[n.COMPRESSED_RGBA8_ETC2_EAC],24:[n.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],25:[n.COMPRESSED_R11_EAC],26:[n.COMPRESSED_RG11_EAC],27:[n.COMPRESSED_RGBA_ASTC_4X4_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],28:[n.COMPRESSED_RGBA_ASTC_5X4_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],29:[n.COMPRESSED_RGBA_ASTC_5X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],30:[n.COMPRESSED_RGBA_ASTC_6X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],31:[n.COMPRESSED_RGBA_ASTC_6X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],32:[n.COMPRESSED_RGBA_ASTC_8X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],33:[n.COMPRESSED_RGBA_ASTC_8X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],34:[n.COMPRESSED_RGBA_ASTC_8X8_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],35:[n.COMPRESSED_RGBA_ASTC_10X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],36:[n.COMPRESSED_RGBA_ASTC_10X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],37:[n.COMPRESSED_RGBA_ASTC_10X8_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],38:[n.COMPRESSED_RGBA_ASTC_10X10_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],39:[n.COMPRESSED_RGBA_ASTC_12X10_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],40:[n.COMPRESSED_RGBA_ASTC_12X12_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]},Lr={0:pt,1:pt,2:dt,3:dt,6:H,7:H,9:X,11:X,22:H,23:X,24:H,25:H,26:X,27:X,28:Hr,29:Xr,30:Nr,31:Fr,32:Kr,33:vr,34:Vr,35:kr,36:Wr,37:zr,38:$r,39:jr,40:Zr};function Rt(e){let r=new Uint32Array(e,0,x.HEADER_LENGTH)[x.MAGIC_NUMBER_INDEX];return r===x.MAGIC_NUMBER||r===x.MAGIC_NUMBER_EXTRA}function At(e){let t=new Uint32Array(e,0,x.HEADER_LENGTH),r=t[x.PIXEL_FORMAT_INDEX],o=t[x.COLOUR_SPACE_INDEX],s=Ur[r]||[],a=s.length>1&&o?s[1]:s[0],i=Lr[r],_=t[x.MIPMAPCOUNT_INDEX],c=t[x.WIDTH_INDEX],l=t[x.HEIGHT_INDEX],E=x.HEADER_SIZE+t[x.METADATA_SIZE_INDEX],h=new Uint8Array(e,E);return y(h,{mipMapLevels:_,width:c,height:l,sizeFunction:i,internalFormat:a})}function pt(e,t){return e=Math.max(e,16),t=Math.max(t,8),e*t/4}function dt(e,t){return e=Math.max(e,8),t=Math.max(t,8),e*t/2}function H(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8}function X(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16}function Hr(e,t){return Math.floor((e+4)/5)*Math.floor((t+3)/4)*16}function Xr(e,t){return Math.floor((e+4)/5)*Math.floor((t+4)/5)*16}function Nr(e,t){return Math.floor((e+5)/6)*Math.floor((t+4)/5)*16}function Fr(e,t){return Math.floor((e+5)/6)*Math.floor((t+5)/6)*16}function Kr(e,t){return Math.floor((e+7)/8)*Math.floor((t+4)/5)*16}function vr(e,t){return Math.floor((e+7)/8)*Math.floor((t+5)/6)*16}function Vr(e,t){return Math.floor((e+7)/8)*Math.floor((t+7)/8)*16}function kr(e,t){return Math.floor((e+9)/10)*Math.floor((t+4)/5)*16}function Wr(e,t){return Math.floor((e+9)/10)*Math.floor((t+5)/6)*16}function zr(e,t){return Math.floor((e+9)/10)*Math.floor((t+7)/8)*16}function $r(e,t){return Math.floor((e+9)/10)*Math.floor((t+9)/10)*16}function jr(e,t){return Math.floor((e+11)/12)*Math.floor((t+9)/10)*16}function Zr(e,t){return Math.floor((e+11)/12)*Math.floor((t+11)/12)*16}function xt(e){if(Y(e))return it(e);if(Et(e))return ut(e);if(Rt(e))return At(e);throw new Error("Texture container format not recognized")}var Te={name:"Texture Containers",id:"compressed-texture",module:"textures",version:m,worker:!0,extensions:["ktx","ktx2","dds","pvr"],mimeTypes:["image/ktx2","image/ktx","image/vnd-ms.dds","image/x-dds","application/octet-stream"],binary:!0,options:{"compressed-texture":{libraryPath:"libs/",useBasis:!1}}},Tt={...Te,parse:async(e,t)=>t?.["compressed-texture"]?.useBasis?(t.basis={format:{alpha:"BC3",noAlpha:"BC1"},...t.basis,containerFormat:"ktx2",module:"encoder"},(await L(e,t))[0]):xt(e)};var Ce={id:"crunch",name:"Crunch",module:"textures",version:m,worker:!0,extensions:["crn"],mimeTypes:["image/crn","image/x-crn","application/octet-stream"],binary:!0,options:{crunch:{libraryPath:"libs/"}}};var ge=new Uint32Array([305419896]),Yr=new Uint8Array(ge.buffer,ge.byteOffset,ge.byteLength),qr=Yr[0]!==18,Ct=qr,Jr={u1:Uint8Array,i1:Int8Array,u2:Uint16Array,i2:Int16Array,u4:Uint32Array,i4:Int32Array,f4:Float32Array,f8:Float64Array};function De(e,t){let r=new DataView(e),{header:o,headerEndOffset:s}=Qr(r),a=o.descr,i=Jr[a.slice(1,3)];if(!i)throw new Error(`Unimplemented type ${a}`);let c=o.shape?.reduce((E,h)=>E*h)*i.BYTES_PER_ELEMENT;if(e.byteLength<s+c)throw new Error("Buffer overflow");let l=new i(e.slice(s,s+c));if(a[0]===">"&&Ct||a[0]==="<"&&!Ct)throw new Error("Incorrect endianness");return{data:l,header:o}}function Qr(e){let t=e.getUint8(6),r=8,o;t>=2?(o=e.getUint32(r,!0),r+=4):(o=e.getUint16(r,!0),r+=2);let s=t<=2?"latin1":"utf-8",a=new TextDecoder(s),i=new Uint8Array(e.buffer,r,o),_=a.decode(i);return r+=o,{header:JSON.parse(_.replace(/'/g,'"').replace("False","false").replace("(","[").replace(/,*\),*/g,"]")),headerEndOffset:r}}var eo=new Uint8Array([147,78,85,77,80,89]),he={name:"NPY",id:"npy",module:"textures",version:m,worker:!0,extensions:["npy"],mimeTypes:[],tests:[eo.buffer],options:{npy:{}}},gt={...he,parseSync:De,parse:async(e,t)=>De(e,t)};var Dt={DECODER:"crunch.js"};async function ht(e,t,r){let o=["texture-compressor","--type","s3tc","--compression","DXT1","--quality","normal","--input",e,"--output",t];return await new O().start({command:"npx",arguments:o,spawn:r}),t}var Pt={name:"DDS Texture Container",id:"dds",module:"textures",version:m,extensions:["dds"],options:{texture:{format:"auto",compression:"auto",quality:"auto",mipmap:!1,flipY:!1,toolFlags:""}},encodeURLtoURL:ht,encode(){throw new Error("Not implemented")}};async function Bt(e,t={}){let{useSRGB:r=!1,qualityLevel:o=10,encodeUASTC:s=!1,mipmaps:a=!1}=t?.["ktx2-basis-writer"]||{},{BasisEncoder:i}=await U(t),_=new i;try{let c=new Uint8Array(e.width*e.height*4);_.setCreateKTX2File(!0),_.setKTX2UASTCSupercompression(!0),_.setKTX2SRGBTransferFunc(!0),_.setSliceSourceImage(0,e.data,e.width,e.height,!1),_.setPerceptual(r),_.setMipSRGB(r),_.setQualityLevel(o),_.setUASTC(s),_.setMipGen(a);let l=_.encode(c);return c.subarray(0,l).buffer}catch(c){throw console.error("Basis Universal Supercompressed GPU Texture encoder Error: ",c),c}finally{_.delete()}}var Mt={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:m,extensions:["ktx2"],options:{["ktx2-basis-writer"]:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}},encode:Bt};var wt="4.2.0-alpha.5";var to=globalThis.loaders?.parseImageNode,Pe=typeof Image<"u",Be=typeof ImageBitmap<"u",ro=Boolean(to),Me=Ae?!0:ro;function Ot(e){switch(e){case"auto":return Be||Pe||Me;case"imagebitmap":return Be;case"image":return Pe;case"data":return Me;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function Gt(){if(Be)return"imagebitmap";if(Pe)return"image";if(Me)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function yt(e){let t=oo(e);if(!t)throw new Error("Not an image");return t}function we(e){return J(e)}function J(e){switch(yt(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),r=t.getContext("2d");if(!r)throw new Error("getImageData");return t.width=e.width,t.height=e.height,r.drawImage(e,0,0),r.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function oo(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var no=/^data:image\/svg\+xml/,so=/\.svg((\?|#).*)?$/;function Q(e){return e&&(no.test(e)||so.test(e))}function It(e,t){if(Q(t)){let o=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(o=unescape(encodeURIComponent(o)))}catch(a){throw new Error(a.message)}return`data:image/svg+xml;base64,${btoa(o)}`}return Oe(e,t)}function Oe(e,t){if(Q(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function ee(e,t,r){let o=It(e,r),s=self.URL||self.webkitURL,a=typeof o!="string"&&s.createObjectURL(o);try{return await ao(a||o,t)}finally{a&&s.revokeObjectURL(a)}}async function ao(e,t){let r=new Image;return r.src=e,t.image&&t.image.decode&&r.decode?(await r.decode(),r):await new Promise((o,s)=>{try{r.onload=()=>o(r),r.onerror=a=>{let i=a instanceof Error?a.message:"error";s(new Error(i))}}catch(a){s(a)}})}var io={},bt=!0;async function Ut(e,t,r){let o;Q(r)?o=await ee(e,t,r):o=Oe(e,r);let s=t&&t.imagebitmap;return await _o(o,s)}async function _o(e,t=null){if((co(t)||!bt)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),bt=!1}return await createImageBitmap(e)}function co(e){for(let t in e||io)return!1;return!0}function Lt(e){return!Eo(e,"ftyp",4)||!(e[8]&96)?null:fo(e)}function fo(e){switch(lo(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function lo(e,t,r){return String.fromCharCode(...e.slice(t,r))}function So(e){return[...e].map(t=>t.charCodeAt(0))}function Eo(e,t,r=0){let o=So(t);for(let s=0;s<o.length;++s)if(o[s]!==e[s+r])return!1;return!0}var D=!1,N=!0;function te(e){let t=F(e);return mo(t)||Ao(t)||po(t)||Ro(t)||uo(t)}function uo(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),r=Lt(t);return r?{mimeType:r.mimeType,width:0,height:0}:null}function mo(e){let t=F(e);return t.byteLength>=24&&t.getUint32(0,D)===2303741511?{mimeType:"image/png",width:t.getUint32(16,D),height:t.getUint32(20,D)}:null}function po(e){let t=F(e);return t.byteLength>=10&&t.getUint32(0,D)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,N),height:t.getUint16(8,N)}:null}function Ro(e){let t=F(e);return t.byteLength>=14&&t.getUint16(0,D)===16973&&t.getUint32(2,N)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,N),height:t.getUint32(22,N)}:null}function Ao(e){let t=F(e);if(!(t.byteLength>=3&&t.getUint16(0,D)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:o,sofMarkers:s}=xo(),a=2;for(;a+9<t.byteLength;){let i=t.getUint16(a,D);if(s.has(i))return{mimeType:"image/jpeg",height:t.getUint16(a+5,D),width:t.getUint16(a+7,D)};if(!o.has(i))return null;a+=2,a+=t.getUint16(a,D)}return null}function xo(){let e=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)e.add(r);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function F(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function Ht(e,t){let{mimeType:r}=te(e)||{},o=globalThis.loaders?.parseImageNode;return C(o),await o(e,r)}async function Xt(e,t,r){t=t||{};let s=(t.image||{}).type||"auto",{url:a}=r||{},i=To(s),_;switch(i){case"imagebitmap":_=await Ut(e,t,a);break;case"image":_=await ee(e,t,a);break;case"data":_=await Ht(e,t);break;default:C(!1)}return s==="data"&&(_=J(_)),_}function To(e){switch(e){case"auto":case"data":return Gt();default:return Ot(e),e}}var Co=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],go=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Do={image:{type:"auto",decode:!0}},P={id:"image",module:"images",name:"Images",version:wt,mimeTypes:go,extensions:Co,parse:Xt,tests:[e=>Boolean(te(new DataView(e)))],options:Do};function re(e,t,r){let o=typeof e=="function"?e({...t,...r}):e,s=t.baseUrl;return s&&(o=s[s.length-1]==="/"?`${s}${o}`:`${s}/${o}`),xe(o)}var ho=e=>e&&typeof e=="object";async function Nt(e,t,r={}){return await Ge(e,t,r)}async function Ge(e,t,r){return Array.isArray(e)?await Bo(e,t,r):ho(e)?await Po(e,t,r):await t(e,r)}async function Po(e,t,r){let o=[],s={};for(let a in e){let i=e[a],_=Ge(i,t,r).then(c=>{s[a]=c});o.push(_)}return await Promise.all(o),s}async function Bo(e,t,r={}){let o=e.map(s=>Ge(s,t,r));return await Promise.all(o)}async function I(e,t,r){return await Nt(e,o=>ye(o,t,r))}async function ye(e,t,r){let s=await(await fetch(e,r.fetch)).arrayBuffer();return await t(s,r)}async function Ft(e,t={}){let r=await K(e,t);return await I(r,P.parse,t)}async function K(e,t,r={}){let o=t&&t.image&&t.image.mipLevels||0;return o!==0?await Mo(e,o,t,r):re(e,t,r)}async function Mo(e,t,r,o){let s=[];if(t==="auto"){let a=re(e,r,{...o,lod:0}),i=await ye(a,P.parse,r),{width:_,height:c}=we(i);t=wo({width:_,height:c}),s.push(a)}C(t>0);for(let a=s.length;a<t;++a){let i=re(e,r,{...o,lod:a});s.push(i)}return s}function wo(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}async function Kt(e,t,r={}){let o=await Oo(e,t,r);return await I(o,P.parse,r)}async function Oo(e,t,r={}){let o=[];for(let s=0;s<e;s++){let a=K(t,r,{index:s});o.push(a)}return await Promise.all(o)}var Go=34069,yo=34070,Io=34071,bo=34072,Uo=34073,Lo=34074,vt=[{face:Go,direction:"right",axis:"x",sign:"positive"},{face:yo,direction:"left",axis:"x",sign:"negative"},{face:Io,direction:"top",axis:"y",sign:"positive"},{face:bo,direction:"bottom",axis:"y",sign:"negative"},{face:Uo,direction:"front",axis:"z",sign:"positive"},{face:Lo,direction:"back",axis:"z",sign:"negative"}];async function Ho(e,t){let r={},o=[],s=0;for(let a=0;a<vt.length;++a){let i=vt[s],_=K(e,t,{...i,index:s++}).then(c=>{r[i.face]=c});o.push(_)}return await Promise.all(o),r}async function Vt(e,t={}){let r=await Ho(e,t);return await I(r,P.parse,t)}var Xo={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:m,extensions:["ktx2"],worker:!0,options:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}};return sr(v);})();
|
|
7
|
+
"use strict";var __exports__=(()=>{var er=Object.create;var V=Object.defineProperty;var tr=Object.getOwnPropertyDescriptor;var rr=Object.getOwnPropertyNames;var or=Object.getPrototypeOf,nr=Object.prototype.hasOwnProperty;var Ve=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),sr=(e,t)=>{for(var r in t)V(e,r,{get:t[r],enumerable:!0})},v=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of rr(t))!nr.call(e,s)&&s!==r&&V(e,s,{get:()=>t[s],enumerable:!(o=tr(t,s))||o.enumerable});return e},k=(e,t,r)=>(v(e,t,"default"),r&&v(r,t,"default")),ne=(e,t,r)=>(r=e!=null?er(or(e)):{},v(t||!e||!e.__esModule?V(r,"default",{value:e,enumerable:!0}):r,e)),ar=e=>v(V({},"__esModule",{value:!0}),e);var We=Ve((Ko,ke)=>{ke.exports=globalThis.loaders});var _e=Ve(()=>{});var K={};sr(K,{BASIS_EXTERNAL_LIBRARIES:()=>y,BasisLoader:()=>ut,BasisWorkerLoader:()=>xe,CRUNCH_EXTERNAL_LIBRARIES:()=>Dt,CompressedTextureLoader:()=>Ct,CompressedTextureWorkerLoader:()=>Te,CompressedTextureWriter:()=>Bt,CrunchLoader:()=>Ce,CrunchWorkerLoader:()=>Ce,GL_EXTENSIONS_CONSTANTS:()=>n,KTX2BasisWriter:()=>wt,KTX2BasisWriterWorker:()=>No,NPYLoader:()=>ht,NPYWorkerLoader:()=>De,getSupportedGPUTextureFormats:()=>$,loadImageTexture:()=>Kt,loadImageTextureArray:()=>vt,loadImageTextureCube:()=>kt,selectSupportedBasisFormat:()=>Ae});k(K,ne(We(),1));var m="4.2.0-alpha.6";function x(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var T={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},ir=T.self||T.window||T.global||{},cr=T.window||T.self||T.global||{},_r=T.global||T.self||T.window||{},lr=T.document||{};var se=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var ze=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),fr=ze&&parseFloat(ze[1])||0;function ae(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}function ie(e){return globalThis.loaders?.modules?.[e]||null}function Sr(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.2.0-alpha.6"),globalThis._loadersgl_.version}var $e=Sr();function je(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}var C={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},jo=C.self||C.window||C.global||{},Jo=C.window||C.self||C.global||{},Zo=C.global||C.self||C.window||{},Yo=C.document||{};var B=typeof process!="object"||String(process)!=="[object process]"||process.browser,W=typeof importScripts=="function",qo=typeof window<"u"&&typeof window.orientation<"u",Je=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Qo=Je&&parseFloat(Je[1])||0;var ce={};async function M(e,t=null,r={},o=null){return t&&(e=Ze(e,t,r,o)),ce[e]=ce[e]||ur(e),await ce[e]}function Ze(e,t,r={},o=null){if(!r.useLocalLibraries&&e.startsWith("http"))return e;o=o||e;let s=r.modules||{};return s[o]?s[o]:B?r.CDN?(je(r.CDN.startsWith("http")),`${r.CDN}/${t}@${$e}/dist/libs/${o}`):W?`../src/libs/${o}`:`modules/${t}/src/libs/${o}`:`modules/${t}/dist/libs/${o}`}async function ur(e){if(e.endsWith("wasm"))return await mr(e);if(!B)try{let{requireFromFile:r}=globalThis.loaders||{};return await r?.(e)}catch(r){return console.error(r),null}if(W)return importScripts(e);let t=await pr(e);return Er(t,e)}function Er(e,t){if(!B){let{requireFromString:o}=globalThis.loaders||{};return o?.(e,t)}if(W)return eval.call(globalThis,e),null;let r=document.createElement("script");r.id=t;try{r.appendChild(document.createTextNode(e))}catch{r.text=e}return document.body.appendChild(r),null}async function mr(e){let{readFileAsArrayBuffer:t}=globalThis.loaders||{};return B||!t||e.startsWith("http")?await(await fetch(e)).arrayBuffer():await t(e)}async function pr(e){let{readFileAsText:t}=globalThis.loaders||{};return B||!t||e.startsWith("http")?await(await fetch(e)).text():await t(e)}var et=ne(_e(),1);var Ye=ne(_e(),1);function qe(e=3e3){return new Promise(t=>{Ye.default.exec("lsof -i -P -n | grep LISTEN",(r,o)=>{if(r){t(e);return}let s=[],a=/:(\d+) \(LISTEN\)/;o.split(`
|
|
8
|
+
`).forEach(c=>{let _=a.exec(c);_&&s.push(Number(_[1]))});let i=e;for(;s.includes(i);)i++;t(i)})})}var Qe={command:"",arguments:[],port:5e3,autoPort:!0,wait:2e3,onSuccess:e=>{console.log(`Started ${e.props.command}`)}},w=class{id;props={...Qe};childProcess=null;port=0;successTimer;constructor({id:t="browser-driver"}={}){this.id=t}async start(t){t={...Qe,...t},this.props=t;let r=[...t.arguments];return this.port=Number(t.port),t.portArg&&(t.autoPort&&(this.port=await qe(t.port)),r.push(t.portArg,String(this.port))),await new Promise((o,s)=>{try{this._setTimeout(()=>{t.onSuccess&&t.onSuccess(this),o({})}),console.log(`Spawning ${t.command} ${t.arguments.join(" ")}`);let a=(void 0)(t.command,r,t.spawn);this.childProcess=a,a.stdout.on("data",i=>{console.log(i.toString())}),a.stderr.on("data",i=>{console.log(`Child process wrote to stderr: "${i}".`),t.ignoreStderr||(this._clearTimeout(),s(new Error(i)))}),a.on("error",i=>{console.log(`Child process errored with ${i}`),this._clearTimeout(),s(i)}),a.on("close",i=>{console.log(`Child process exited with ${i}`),this.childProcess=null,this._clearTimeout(),o({})})}catch(a){s(a)}})}async stop(){this.childProcess&&(this.childProcess.kill(),this.childProcess=null)}async exit(t=0){try{await this.stop(),process.exit(t)}catch(r){console.error(r.message||r),process.exit(1)}}_setTimeout(t){Number(this.props.wait)>0&&(this.successTimer=setTimeout(t,this.props.wait))}_clearTimeout(){this.successTimer&&clearTimeout(this.successTimer)}};var dr="",tt={};function le(e){for(let t in tt)if(e.startsWith(t)){let r=tt[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${dr}${e}`),e}var y={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},rt;async function Se(e){ae(e.modules);let t=ie("basis");return t||(rt||=Rr(e),await rt)}async function Rr(e){let t=null,r=null;return[t,r]=await Promise.all([await M(y.TRANSCODER,"textures",e),await M(y.TRANSCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await Ar(t,r)}function Ar(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(o=>{e(r).then(s=>{let{BasisFile:a,initializeBasis:i}=s;i(),o({BasisFile:a})})})}var fe;async function b(e){let t=e.modules||{};return t.basisEncoder?t.basisEncoder:(fe=fe||xr(e),await fe)}async function xr(e){let t=null,r=null;return[t,r]=await Promise.all([await M(y.ENCODER,"textures",e),await M(y.ENCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await Tr(t,r)}function Tr(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(o=>{e(r).then(s=>{let{BasisFile:a,KTX2File:i,initializeBasis:c,BasisEncoder:_}=s;c(),o({BasisFile:a,KTX2File:i,BasisEncoder:_})})})}var n={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_RGBA8_ETC2_EAC:37493,COMPRESSED_SRGB8_ETC2:37494,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37495,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37496,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37497,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGB_ATC_WEBGL:35986,COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:35987,COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:34798,COMPRESSED_RGBA_ASTC_4X4_KHR:37808,COMPRESSED_RGBA_ASTC_5X4_KHR:37809,COMPRESSED_RGBA_ASTC_5X5_KHR:37810,COMPRESSED_RGBA_ASTC_6X5_KHR:37811,COMPRESSED_RGBA_ASTC_6X6_KHR:37812,COMPRESSED_RGBA_ASTC_8X5_KHR:37813,COMPRESSED_RGBA_ASTC_8X6_KHR:37814,COMPRESSED_RGBA_ASTC_8X8_KHR:37815,COMPRESSED_RGBA_ASTC_10X5_KHR:37816,COMPRESSED_RGBA_ASTC_10X6_KHR:37817,COMPRESSED_RGBA_ASTC_10X8_KHR:37818,COMPRESSED_RGBA_ASTC_10X10_KHR:37819,COMPRESSED_RGBA_ASTC_12X10_KHR:37820,COMPRESSED_RGBA_ASTC_12X12_KHR:37821,COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR:37840,COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR:37841,COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR:37842,COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR:37843,COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR:37844,COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR:37845,COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR:37846,COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR:37847,COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR:37848,COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR:37849,COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR:37850,COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR:37851,COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR:37852,COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR:37853,COMPRESSED_RED_RGTC1_EXT:36283,COMPRESSED_SIGNED_RED_RGTC1_EXT:36284,COMPRESSED_RED_GREEN_RGTC2_EXT:36285,COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:36286,COMPRESSED_SRGB_S3TC_DXT1_EXT:35916,COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:35917,COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:35918,COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:35919};var Cr=["","WEBKIT_","MOZ_"],ot={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"},z=null;function $(e){if(!z){e=e||gr()||void 0,z=new Set;for(let t of Cr)for(let r in ot)if(e&&e.getExtension(`${t}${r}`)){let o=ot[r];z.add(o)}}return z}function gr(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var On=new Uint8Array([0]),S=[171,75,84,88,32,50,48,187,13,10,26,10],ue,Ee,me,j,nt,pe,st,at;(function(e){e[e.NONE=0]="NONE",e[e.BASISLZ=1]="BASISLZ",e[e.ZSTD=2]="ZSTD",e[e.ZLIB=3]="ZLIB"})(ue||(ue={})),function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(Ee||(Ee={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(me||(me={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}(j||(j={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.LINEAR=1]="LINEAR",e[e.SRGB=2]="SRGB",e[e.ITU=3]="ITU",e[e.NTSC=4]="NTSC",e[e.SLOG=5]="SLOG",e[e.SLOG2=6]="SLOG2"}(nt||(nt={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(pe||(pe={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}(st||(st={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(at||(at={}));var de=class{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=ue.NONE,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:Ee.BASICFORMAT,versionNumber:2,descriptorBlockSize:40,colorModel:me.UNSPECIFIED,colorPrimaries:j.SRGB,transferFunction:j.SRGB,flags:pe.ALPHA_STRAIGHT,texelBlockDimension:{x:4,y:4,z:1,w:1},bytesPlane:[],samples:[]}],this.keyValue={},this.globalData=null}},P=class{constructor(t,r,o,s){this._dataView=new DataView(t.buffer,t.byteOffset+r,o),this._littleEndian=s,this._offset=0}_nextUint8(){let t=this._dataView.getUint8(this._offset);return this._offset+=1,t}_nextUint16(){let t=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,t}_nextUint32(){let t=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,t}_nextUint64(){let t=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,t}_skip(t){return this._offset+=t,this}_scan(t,r=0){let o=this._offset,s=0;for(;this._dataView.getUint8(this._offset)!==r&&s<t;)s++,this._offset++;return s<t&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+o,s)}};function it(e){return typeof TextDecoder<"u"?new TextDecoder().decode(e):Buffer.from(e).toString("utf8")}function ct(e){let t=new Uint8Array(e.buffer,e.byteOffset,S.length);if(t[0]!==S[0]||t[1]!==S[1]||t[2]!==S[2]||t[3]!==S[3]||t[4]!==S[4]||t[5]!==S[5]||t[6]!==S[6]||t[7]!==S[7]||t[8]!==S[8]||t[9]!==S[9]||t[10]!==S[10]||t[11]!==S[11])throw new Error("Missing KTX 2.0 identifier.");let r=new de,o=17*Uint32Array.BYTES_PER_ELEMENT,s=new P(e,S.length,o,!0);r.vkFormat=s._nextUint32(),r.typeSize=s._nextUint32(),r.pixelWidth=s._nextUint32(),r.pixelHeight=s._nextUint32(),r.pixelDepth=s._nextUint32(),r.layerCount=s._nextUint32(),r.faceCount=s._nextUint32();let a=s._nextUint32();r.supercompressionScheme=s._nextUint32();let i=s._nextUint32(),c=s._nextUint32(),_=s._nextUint32(),f=s._nextUint32(),u=s._nextUint64(),h=s._nextUint64(),re=new P(e,S.length+o,3*a*8,!0);for(let E=0;E<a;E++)r.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+re._nextUint64(),re._nextUint64()),uncompressedByteLength:re._nextUint64()});let l=new P(e,i,c,!0),oe={vendorId:l._skip(4)._nextUint16(),descriptorType:l._nextUint16(),versionNumber:l._nextUint16(),descriptorBlockSize:l._nextUint16(),colorModel:l._nextUint8(),colorPrimaries:l._nextUint8(),transferFunction:l._nextUint8(),flags:l._nextUint8(),texelBlockDimension:{x:l._nextUint8()+1,y:l._nextUint8()+1,z:l._nextUint8()+1,w:l._nextUint8()+1},bytesPlane:[l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8()],samples:[]},Wt=(oe.descriptorBlockSize/4-6)/4;for(let E=0;E<Wt;E++)oe.samples[E]={bitOffset:l._nextUint16(),bitLength:l._nextUint8(),channelID:l._nextUint8(),samplePosition:[l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8()],sampleLower:l._nextUint32(),sampleUpper:l._nextUint32()};r.dataFormatDescriptor.length=0,r.dataFormatDescriptor.push(oe);let I=new P(e,_,f,!0);for(;I._offset<f;){let E=I._nextUint32(),Fe=I._scan(E),Ke=it(Fe),ve=I._scan(E-Fe.byteLength);r.keyValue[Ke]=Ke.match(/^ktx/i)?it(ve):ve,E%4&&I._skip(4-E%4)}if(h<=0)return r;let R=new P(e,u,h,!0),zt=R._nextUint16(),$t=R._nextUint16(),Ie=R._nextUint32(),be=R._nextUint32(),Ue=R._nextUint32(),jt=R._nextUint32(),Le=[];for(let E=0;E<a;E++)Le.push({imageFlags:R._nextUint32(),rgbSliceByteOffset:R._nextUint32(),rgbSliceByteLength:R._nextUint32(),alphaSliceByteOffset:R._nextUint32(),alphaSliceByteLength:R._nextUint32()});let He=u+R._offset,Xe=He+Ie,Ne=Xe+be,Jt=Ne+Ue,Zt=new Uint8Array(e.buffer,e.byteOffset+He,Ie),Yt=new Uint8Array(e.buffer,e.byteOffset+Xe,be),qt=new Uint8Array(e.buffer,e.byteOffset+Ne,Ue),Qt=new Uint8Array(e.buffer,e.byteOffset+Jt,jt);return r.globalData={endpointCount:zt,selectorCount:$t,imageDescs:Le,endpointsData:Zt,selectorsData:Yt,tablesData:qt,extendedData:Qt},r}function O(e,t){let r=new Array(t.mipMapLevels),o=t.width,s=t.height,a=0;for(let i=0;i<t.mipMapLevels;++i){let c=Dr(t,o,s,e,i),_=hr(e,i,a,c);r[i]={compressed:!0,format:t.internalFormat,data:_,width:o,height:s,levelSize:c},o=Math.max(1,o>>1),s=Math.max(1,s>>1),a+=c}return r}function hr(e,t,r,o){return Array.isArray(e)?e[t].levelData:new Uint8Array(e.buffer,e.byteOffset+r,o)}function Dr(e,t,r,o,s){return Array.isArray(o)?e.sizeFunction(o[s]):e.sizeFunction(t,r)}var Pr={131:n.COMPRESSED_RGB_S3TC_DXT1_EXT,132:n.COMPRESSED_SRGB_S3TC_DXT1_EXT,133:n.COMPRESSED_RGBA_S3TC_DXT1_EXT,134:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,135:n.COMPRESSED_RGBA_S3TC_DXT3_EXT,136:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,137:n.COMPRESSED_RGBA_S3TC_DXT5_EXT,138:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,139:n.COMPRESSED_RED_RGTC1_EXT,140:n.COMPRESSED_SIGNED_RED_RGTC1_EXT,141:n.COMPRESSED_RED_GREEN_RGTC2_EXT,142:n.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,147:n.COMPRESSED_RGB8_ETC2,148:n.COMPRESSED_SRGB8_ETC2,149:n.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,150:n.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,151:n.COMPRESSED_RGBA8_ETC2_EAC,152:n.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,153:n.COMPRESSED_R11_EAC,154:n.COMPRESSED_SIGNED_R11_EAC,155:n.COMPRESSED_RG11_EAC,156:n.COMPRESSED_SIGNED_RG11_EAC,157:n.COMPRESSED_RGBA_ASTC_4x4_KHR,158:n.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,159:n.COMPRESSED_RGBA_ASTC_5x4_KHR,160:n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,161:n.COMPRESSED_RGBA_ASTC_5x5_KHR,162:n.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,163:n.COMPRESSED_RGBA_ASTC_6x5_KHR,164:n.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,165:n.COMPRESSED_RGBA_ASTC_6x6_KHR,166:n.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,167:n.COMPRESSED_RGBA_ASTC_8x5_KHR,168:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,169:n.COMPRESSED_RGBA_ASTC_8x6_KHR,170:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,171:n.COMPRESSED_RGBA_ASTC_8x8_KHR,172:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,173:n.COMPRESSED_RGBA_ASTC_10x5_KHR,174:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,175:n.COMPRESSED_RGBA_ASTC_10x6_KHR,176:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,177:n.COMPRESSED_RGBA_ASTC_10x8_KHR,178:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,179:n.COMPRESSED_RGBA_ASTC_10x10_KHR,180:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,181:n.COMPRESSED_RGBA_ASTC_12x10_KHR,182:n.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,183:n.COMPRESSED_RGBA_ASTC_12x12_KHR,184:n.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,1000054e3:n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,1000054001:n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,1000066e3:n.COMPRESSED_RGBA_ASTC_4x4_KHR,1000066001:n.COMPRESSED_RGBA_ASTC_5x4_KHR,1000066002:n.COMPRESSED_RGBA_ASTC_5x5_KHR,1000066003:n.COMPRESSED_RGBA_ASTC_6x5_KHR,1000066004:n.COMPRESSED_RGBA_ASTC_6x6_KHR,1000066005:n.COMPRESSED_RGBA_ASTC_8x5_KHR,1000066006:n.COMPRESSED_RGBA_ASTC_8x6_KHR,1000066007:n.COMPRESSED_RGBA_ASTC_8x8_KHR,1000066008:n.COMPRESSED_RGBA_ASTC_10x5_KHR,1000066009:n.COMPRESSED_RGBA_ASTC_10x6_KHR,1000066010:n.COMPRESSED_RGBA_ASTC_10x8_KHR,1000066011:n.COMPRESSED_RGBA_ASTC_10x10_KHR,1000066012:n.COMPRESSED_RGBA_ASTC_12x10_KHR,1000066013:n.COMPRESSED_RGBA_ASTC_12x12_KHR};function _t(e){return Pr[e]}var p=[171,75,84,88,32,50,48,187,13,10,26,10];function J(e){let t=new Uint8Array(e);return!(t.byteLength<p.length||t[0]!==p[0]||t[1]!==p[1]||t[2]!==p[2]||t[3]!==p[3]||t[4]!==p[4]||t[5]!==p[5]||t[6]!==p[6]||t[7]!==p[7]||t[8]!==p[8]||t[9]!==p[9]||t[10]!==p[10]||t[11]!==p[11])}function lt(e){let t=new Uint8Array(e),r=ct(t),o=Math.max(1,r.levels.length),s=r.pixelWidth,a=r.pixelHeight,i=_t(r.vkFormat);return O(r.levels,{mipMapLevels:o,width:s,height:a,sizeFunction:c=>c.uncompressedByteLength,internalFormat:i})}var Br={etc1:{basisFormat:0,compressed:!0,format:n.COMPRESSED_RGB_ETC1_WEBGL},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:n.COMPRESSED_RGB_S3TC_DXT1_EXT},bc3:{basisFormat:3,compressed:!0,format:n.COMPRESSED_RGBA_S3TC_DXT5_EXT},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},"astc-4x4":{basisFormat:10,compressed:!0,format:n.COMPRESSED_RGBA_ASTC_4X4_KHR},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};async function U(e,t){if(t.basis.containerFormat==="auto"){if(J(e)){let o=await b(t);return ft(o.KTX2File,e,t)}let{BasisFile:r}=await Se(t);return Re(r,e,t)}switch(t.basis.module){case"encoder":let r=await b(t);switch(t.basis.containerFormat){case"ktx2":return ft(r.KTX2File,e,t);case"basis":default:return Re(r.BasisFile,e,t)}case"transcoder":default:let{BasisFile:o}=await Se(t);return Re(o,e,t)}}function Re(e,t,r){let o=new e(new Uint8Array(t));try{if(!o.startTranscoding())throw new Error("Failed to start basis transcoding");let s=o.getNumImages(),a=[];for(let i=0;i<s;i++){let c=o.getNumLevels(i),_=[];for(let f=0;f<c;f++)_.push(Mr(o,i,f,r));a.push(_)}return a}finally{o.close(),o.delete()}}function Mr(e,t,r,o){let s=e.getImageWidth(t,r),a=e.getImageHeight(t,r),i=e.getHasAlpha(),{compressed:c,format:_,basisFormat:f}=St(o,i),u=e.getImageTranscodedSizeInBytes(t,r,f),h=new Uint8Array(u);if(!e.transcodeImage(h,t,r,f,0,0))throw new Error("failed to start Basis transcoding");return{width:s,height:a,data:h,compressed:c,format:_,hasAlpha:i}}function ft(e,t,r){let o=new e(new Uint8Array(t));try{if(!o.startTranscoding())throw new Error("failed to start KTX2 transcoding");let s=o.getLevels(),a=[];for(let i=0;i<s;i++){a.push(wr(o,i,r));break}return[a]}finally{o.close(),o.delete()}}function wr(e,t,r){let{alphaFlag:o,height:s,width:a}=e.getImageLevelInfo(t,0,0),{compressed:i,format:c,basisFormat:_}=St(r,o),f=e.getImageTranscodedSizeInBytes(t,0,0,_),u=new Uint8Array(f);if(!e.transcodeImage(u,t,0,0,_,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{width:a,height:s,data:u,compressed:i,levelSize:f,hasAlpha:o,format:c}}function St(e,t){let r=e&&e.basis&&e.basis.format;return r==="auto"&&(r=Ae()),typeof r=="object"&&(r=t?r.alpha:r.noAlpha),r=r.toLowerCase(),Br[r]}function Ae(){let e=$();return e.has("astc")?"astc-4x4":e.has("dxt")?{alpha:"bc3",noAlpha:"bc1"}:e.has("pvrtc")?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:e.has("etc1")?"etc1":e.has("etc2")?"etc2":"rgb565"}var xe={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:m,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",libraryPath:"libs/",containerFormat:"auto",module:"transcoder"}}},ut={...xe,parse:U};var d={MAGIC_NUMBER:542327876,HEADER_LENGTH:31,MAGIC_NUMBER_INDEX:0,HEADER_SIZE_INDEX:1,HEADER_FLAGS_INDEX:2,HEADER_HEIGHT_INDEX:3,HEADER_WIDTH_INDEX:4,MIPMAPCOUNT_INDEX:7,HEADER_PF_FLAGS_INDEX:20,HEADER_PF_FOURCC_INDEX:21,DDSD_MIPMAPCOUNT:131072,DDPF_FOURCC:4},yr={DXT1:n.COMPRESSED_RGB_S3TC_DXT1_EXT,DXT3:n.COMPRESSED_RGBA_S3TC_DXT3_EXT,DXT5:n.COMPRESSED_RGBA_S3TC_DXT5_EXT,"ATC ":n.COMPRESSED_RGB_ATC_WEBGL,ATCA:n.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,ATCI:n.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL},Or=pt,Gr=Z,Ir=Z,br={DXT1:pt,DXT3:Z,DXT5:Z,"ATC ":Or,ATCA:Gr,ATCI:Ir};function Et(e){return new Uint32Array(e,0,d.HEADER_LENGTH)[d.MAGIC_NUMBER_INDEX]===d.MAGIC_NUMBER}function mt(e){let t=new Int32Array(e,0,d.HEADER_LENGTH),r=t[d.HEADER_PF_FOURCC_INDEX];x(Boolean(t[d.HEADER_PF_FLAGS_INDEX]&d.DDPF_FOURCC),"DDS: Unsupported format, must contain a FourCC code");let o=Ur(r),s=yr[o],a=br[o];x(s&&a,`DDS: Unknown pixel format ${r}`);let i=1;t[d.HEADER_FLAGS_INDEX]&d.DDSD_MIPMAPCOUNT&&(i=Math.max(1,t[d.MIPMAPCOUNT_INDEX]));let c=t[d.HEADER_WIDTH_INDEX],_=t[d.HEADER_HEIGHT_INDEX],f=t[d.HEADER_SIZE_INDEX]+4,u=new Uint8Array(e,f);return O(u,{mipMapLevels:i,width:c,height:_,sizeFunction:a,internalFormat:s})}function pt(e,t){return(e+3>>2)*(t+3>>2)*8}function Z(e,t){return(e+3>>2)*(t+3>>2)*16}function Ur(e){return String.fromCharCode(e&255,e>>8&255,e>>16&255,e>>24&255)}var A={MAGIC_NUMBER:55727696,MAGIC_NUMBER_EXTRA:1347834371,HEADER_LENGTH:13,HEADER_SIZE:52,MAGIC_NUMBER_INDEX:0,PIXEL_FORMAT_INDEX:2,COLOUR_SPACE_INDEX:4,HEIGHT_INDEX:6,WIDTH_INDEX:7,MIPMAPCOUNT_INDEX:11,METADATA_SIZE_INDEX:12},Lr={0:[n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],1:[n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],2:[n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],3:[n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],6:[n.COMPRESSED_RGB_ETC1_WEBGL],7:[n.COMPRESSED_RGB_S3TC_DXT1_EXT],9:[n.COMPRESSED_RGBA_S3TC_DXT3_EXT],11:[n.COMPRESSED_RGBA_S3TC_DXT5_EXT],22:[n.COMPRESSED_RGB8_ETC2],23:[n.COMPRESSED_RGBA8_ETC2_EAC],24:[n.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],25:[n.COMPRESSED_R11_EAC],26:[n.COMPRESSED_RG11_EAC],27:[n.COMPRESSED_RGBA_ASTC_4X4_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],28:[n.COMPRESSED_RGBA_ASTC_5X4_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],29:[n.COMPRESSED_RGBA_ASTC_5X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],30:[n.COMPRESSED_RGBA_ASTC_6X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],31:[n.COMPRESSED_RGBA_ASTC_6X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],32:[n.COMPRESSED_RGBA_ASTC_8X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],33:[n.COMPRESSED_RGBA_ASTC_8X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],34:[n.COMPRESSED_RGBA_ASTC_8X8_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],35:[n.COMPRESSED_RGBA_ASTC_10X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],36:[n.COMPRESSED_RGBA_ASTC_10X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],37:[n.COMPRESSED_RGBA_ASTC_10X8_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],38:[n.COMPRESSED_RGBA_ASTC_10X10_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],39:[n.COMPRESSED_RGBA_ASTC_12X10_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],40:[n.COMPRESSED_RGBA_ASTC_12X12_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]},Hr={0:dt,1:dt,2:Rt,3:Rt,6:L,7:L,9:H,11:H,22:L,23:H,24:L,25:L,26:H,27:H,28:Xr,29:Nr,30:Fr,31:Kr,32:vr,33:Vr,34:kr,35:Wr,36:zr,37:$r,38:jr,39:Jr,40:Zr};function At(e){let r=new Uint32Array(e,0,A.HEADER_LENGTH)[A.MAGIC_NUMBER_INDEX];return r===A.MAGIC_NUMBER||r===A.MAGIC_NUMBER_EXTRA}function xt(e){let t=new Uint32Array(e,0,A.HEADER_LENGTH),r=t[A.PIXEL_FORMAT_INDEX],o=t[A.COLOUR_SPACE_INDEX],s=Lr[r]||[],a=s.length>1&&o?s[1]:s[0],i=Hr[r],c=t[A.MIPMAPCOUNT_INDEX],_=t[A.WIDTH_INDEX],f=t[A.HEIGHT_INDEX],u=A.HEADER_SIZE+t[A.METADATA_SIZE_INDEX],h=new Uint8Array(e,u);return O(h,{mipMapLevels:c,width:_,height:f,sizeFunction:i,internalFormat:a})}function dt(e,t){return e=Math.max(e,16),t=Math.max(t,8),e*t/4}function Rt(e,t){return e=Math.max(e,8),t=Math.max(t,8),e*t/2}function L(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8}function H(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16}function Xr(e,t){return Math.floor((e+4)/5)*Math.floor((t+3)/4)*16}function Nr(e,t){return Math.floor((e+4)/5)*Math.floor((t+4)/5)*16}function Fr(e,t){return Math.floor((e+5)/6)*Math.floor((t+4)/5)*16}function Kr(e,t){return Math.floor((e+5)/6)*Math.floor((t+5)/6)*16}function vr(e,t){return Math.floor((e+7)/8)*Math.floor((t+4)/5)*16}function Vr(e,t){return Math.floor((e+7)/8)*Math.floor((t+5)/6)*16}function kr(e,t){return Math.floor((e+7)/8)*Math.floor((t+7)/8)*16}function Wr(e,t){return Math.floor((e+9)/10)*Math.floor((t+4)/5)*16}function zr(e,t){return Math.floor((e+9)/10)*Math.floor((t+5)/6)*16}function $r(e,t){return Math.floor((e+9)/10)*Math.floor((t+7)/8)*16}function jr(e,t){return Math.floor((e+9)/10)*Math.floor((t+9)/10)*16}function Jr(e,t){return Math.floor((e+11)/12)*Math.floor((t+9)/10)*16}function Zr(e,t){return Math.floor((e+11)/12)*Math.floor((t+11)/12)*16}function Tt(e){if(J(e))return lt(e);if(Et(e))return mt(e);if(At(e))return xt(e);throw new Error("Texture container format not recognized")}var Te={dataType:null,batchType:null,name:"Texture Containers",id:"compressed-texture",module:"textures",version:m,worker:!0,extensions:["ktx","ktx2","dds","pvr"],mimeTypes:["image/ktx2","image/ktx","image/vnd-ms.dds","image/x-dds","application/octet-stream"],binary:!0,options:{"compressed-texture":{libraryPath:"libs/",useBasis:!1}}},Ct={...Te,parse:async(e,t)=>t?.["compressed-texture"]?.useBasis?(t.basis={format:{alpha:"BC3",noAlpha:"BC1"},...t.basis,containerFormat:"ktx2",module:"encoder"},(await U(e,t))[0]):Tt(e)};var Ce={dataType:null,batchType:null,id:"crunch",name:"Crunch",module:"textures",version:m,worker:!0,extensions:["crn"],mimeTypes:["image/crn","image/x-crn","application/octet-stream"],binary:!0,options:{crunch:{libraryPath:"libs/"}}};var ge=new Uint32Array([305419896]),Yr=new Uint8Array(ge.buffer,ge.byteOffset,ge.byteLength),qr=Yr[0]!==18,gt=qr,Qr={u1:Uint8Array,i1:Int8Array,u2:Uint16Array,i2:Int16Array,u4:Uint32Array,i4:Int32Array,f4:Float32Array,f8:Float64Array};function he(e,t){let r=new DataView(e),{header:o,headerEndOffset:s}=eo(r),a=o.descr,i=Qr[a.slice(1,3)];if(!i)throw new Error(`Unimplemented type ${a}`);let _=o.shape?.reduce((u,h)=>u*h)*i.BYTES_PER_ELEMENT;if(e.byteLength<s+_)throw new Error("Buffer overflow");let f=new i(e.slice(s,s+_));if(a[0]===">"&>||a[0]==="<"&&!gt)throw new Error("Incorrect endianness");return{data:f,header:o}}function eo(e){let t=e.getUint8(6),r=8,o;t>=2?(o=e.getUint32(r,!0),r+=4):(o=e.getUint16(r,!0),r+=2);let s=t<=2?"latin1":"utf-8",a=new TextDecoder(s),i=new Uint8Array(e.buffer,r,o),c=a.decode(i);return r+=o,{header:JSON.parse(c.replace(/'/g,'"').replace("False","false").replace("(","[").replace(/,*\),*/g,"]")),headerEndOffset:r}}var to=new Uint8Array([147,78,85,77,80,89]),De={dataType:null,batchType:null,name:"NPY",id:"npy",module:"textures",version:m,worker:!0,extensions:["npy"],mimeTypes:[],tests:[to.buffer],options:{npy:{}}},ht={...De,parseSync:he,parse:async(e,t)=>he(e,t)};var Dt={DECODER:"crunch.js"};async function Pt(e,t,r){let o=["texture-compressor","--type","s3tc","--compression","DXT1","--quality","normal","--input",e,"--output",t];return await new w().start({command:"npx",arguments:o,spawn:r}),t}var Bt={name:"DDS Texture Container",id:"dds",module:"textures",version:m,extensions:["dds"],options:{texture:{format:"auto",compression:"auto",quality:"auto",mipmap:!1,flipY:!1,toolFlags:""}},encodeURLtoURL:Pt,encode(){throw new Error("Not implemented")}};async function Mt(e,t={}){let{useSRGB:r=!1,qualityLevel:o=10,encodeUASTC:s=!1,mipmaps:a=!1}=t?.["ktx2-basis-writer"]||{},{BasisEncoder:i}=await b(t),c=new i;try{let _=new Uint8Array(e.width*e.height*4);c.setCreateKTX2File(!0),c.setKTX2UASTCSupercompression(!0),c.setKTX2SRGBTransferFunc(!0),c.setSliceSourceImage(0,e.data,e.width,e.height,!1),c.setPerceptual(r),c.setMipSRGB(r),c.setQualityLevel(o),c.setUASTC(s),c.setMipGen(a);let f=c.encode(_);return _.subarray(0,f).buffer}catch(_){throw console.error("Basis Universal Supercompressed GPU Texture encoder Error: ",_),_}finally{c.delete()}}var wt={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:m,extensions:["ktx2"],options:{["ktx2-basis-writer"]:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}},encode:Mt};var yt="4.2.0-alpha.6";var ro=globalThis.loaders?.parseImageNode,Pe=typeof Image<"u",Be=typeof ImageBitmap<"u",oo=Boolean(ro),Me=se?!0:oo;function Ot(e){switch(e){case"auto":return Be||Pe||Me;case"imagebitmap":return Be;case"image":return Pe;case"data":return Me;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function Gt(){if(Be)return"imagebitmap";if(Pe)return"image";if(Me)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function It(e){let t=no(e);if(!t)throw new Error("Not an image");return t}function we(e){return Y(e)}function Y(e){switch(It(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),r=t.getContext("2d");if(!r)throw new Error("getImageData");return t.width=e.width,t.height=e.height,r.drawImage(e,0,0),r.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function no(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var so=/^data:image\/svg\+xml/,ao=/\.svg((\?|#).*)?$/;function q(e){return e&&(so.test(e)||ao.test(e))}function bt(e,t){if(q(t)){let o=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(o=unescape(encodeURIComponent(o)))}catch(a){throw new Error(a.message)}return`data:image/svg+xml;base64,${btoa(o)}`}return ye(e,t)}function ye(e,t){if(q(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function Q(e,t,r){let o=bt(e,r),s=self.URL||self.webkitURL,a=typeof o!="string"&&s.createObjectURL(o);try{return await io(a||o,t)}finally{a&&s.revokeObjectURL(a)}}async function io(e,t){let r=new Image;return r.src=e,t.image&&t.image.decode&&r.decode?(await r.decode(),r):await new Promise((o,s)=>{try{r.onload=()=>o(r),r.onerror=a=>{let i=a instanceof Error?a.message:"error";s(new Error(i))}}catch(a){s(a)}})}var co={},Ut=!0;async function Lt(e,t,r){let o;q(r)?o=await Q(e,t,r):o=ye(e,r);let s=t&&t.imagebitmap;return await _o(o,s)}async function _o(e,t=null){if((lo(t)||!Ut)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),Ut=!1}return await createImageBitmap(e)}function lo(e){for(let t in e||co)return!1;return!0}function Ht(e){return!Eo(e,"ftyp",4)||!(e[8]&96)?null:fo(e)}function fo(e){switch(So(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function So(e,t,r){return String.fromCharCode(...e.slice(t,r))}function uo(e){return[...e].map(t=>t.charCodeAt(0))}function Eo(e,t,r=0){let o=uo(t);for(let s=0;s<o.length;++s)if(o[s]!==e[s+r])return!1;return!0}var g=!1,X=!0;function ee(e){let t=N(e);return po(t)||xo(t)||Ro(t)||Ao(t)||mo(t)}function mo(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),r=Ht(t);return r?{mimeType:r.mimeType,width:0,height:0}:null}function po(e){let t=N(e);return t.byteLength>=24&&t.getUint32(0,g)===2303741511?{mimeType:"image/png",width:t.getUint32(16,g),height:t.getUint32(20,g)}:null}function Ro(e){let t=N(e);return t.byteLength>=10&&t.getUint32(0,g)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,X),height:t.getUint16(8,X)}:null}function Ao(e){let t=N(e);return t.byteLength>=14&&t.getUint16(0,g)===16973&&t.getUint32(2,X)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,X),height:t.getUint32(22,X)}:null}function xo(e){let t=N(e);if(!(t.byteLength>=3&&t.getUint16(0,g)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:o,sofMarkers:s}=To(),a=2;for(;a+9<t.byteLength;){let i=t.getUint16(a,g);if(s.has(i))return{mimeType:"image/jpeg",height:t.getUint16(a+5,g),width:t.getUint16(a+7,g)};if(!o.has(i))return null;a+=2,a+=t.getUint16(a,g)}return null}function To(){let e=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)e.add(r);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function N(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function Xt(e,t){let{mimeType:r}=ee(e)||{},o=globalThis.loaders?.parseImageNode;return x(o),await o(e,r)}async function Nt(e,t,r){t=t||{};let s=(t.image||{}).type||"auto",{url:a}=r||{},i=Co(s),c;switch(i){case"imagebitmap":c=await Lt(e,t,a);break;case"image":c=await Q(e,t,a);break;case"data":c=await Xt(e,t);break;default:x(!1)}return s==="data"&&(c=Y(c)),c}function Co(e){switch(e){case"auto":case"data":return Gt();default:return Ot(e),e}}var go=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],ho=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Do={image:{type:"auto",decode:!0}},D={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:yt,mimeTypes:ho,extensions:go,parse:Nt,tests:[e=>Boolean(ee(new DataView(e)))],options:Do};function te(e,t,r){let o=typeof e=="function"?e({...t,...r}):e,s=t.baseUrl;return s&&(o=s[s.length-1]==="/"?`${s}${o}`:`${s}/${o}`),le(o)}var Po=e=>e&&typeof e=="object";async function Ft(e,t,r={}){return await Oe(e,t,r)}async function Oe(e,t,r){return Array.isArray(e)?await Mo(e,t,r):Po(e)?await Bo(e,t,r):await t(e,r)}async function Bo(e,t,r){let o=[],s={};for(let a in e){let i=e[a],c=Oe(i,t,r).then(_=>{s[a]=_});o.push(c)}return await Promise.all(o),s}async function Mo(e,t,r={}){let o=e.map(s=>Oe(s,t,r));return await Promise.all(o)}async function G(e,t,r){return await Ft(e,o=>Ge(o,t,r))}async function Ge(e,t,r){let s=await(await fetch(e,r.fetch)).arrayBuffer();return await t(s,r)}async function Kt(e,t={}){let r=await F(e,t);return await G(r,D.parse,t)}async function F(e,t,r={}){let o=t&&t.image&&t.image.mipLevels||0;return o!==0?await wo(e,o,t,r):te(e,t,r)}async function wo(e,t,r,o){let s=[];if(t==="auto"){let a=te(e,r,{...o,lod:0}),i=await Ge(a,D.parse,r),{width:c,height:_}=we(i);t=yo({width:c,height:_}),s.push(a)}x(t>0);for(let a=s.length;a<t;++a){let i=te(e,r,{...o,lod:a});s.push(i)}return s}function yo(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}async function vt(e,t,r={}){let o=await Oo(e,t,r);return await G(o,D.parse,r)}async function Oo(e,t,r={}){let o=[];for(let s=0;s<e;s++){let a=F(t,r,{index:s});o.push(a)}return await Promise.all(o)}var Go=34069,Io=34070,bo=34071,Uo=34072,Lo=34073,Ho=34074,Vt=[{face:Go,direction:"right",axis:"x",sign:"positive"},{face:Io,direction:"left",axis:"x",sign:"negative"},{face:bo,direction:"top",axis:"y",sign:"positive"},{face:Uo,direction:"bottom",axis:"y",sign:"negative"},{face:Lo,direction:"front",axis:"z",sign:"positive"},{face:Ho,direction:"back",axis:"z",sign:"negative"}];async function Xo(e,t){let r={},o=[],s=0;for(let a=0;a<Vt.length;++a){let i=Vt[s],c=F(e,t,{...i,index:s++}).then(_=>{r[i.face]=_});o.push(c)}return await Promise.all(o),r}async function kt(e,t={}){let r=await Xo(e,t);return await G(r,D.parse,t)}var No={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:m,extensions:["ktx2"],worker:!0,options:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}};return ar(K);})();
|
|
9
9
|
return __exports__;
|
|
10
10
|
});
|