@loaders.gl/textures 4.0.0-alpha.9 → 4.0.0-beta.2
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-worker-node.js +392 -340
- package/dist/basis-worker.js +66 -38
- package/dist/compressed-texture-loader.d.ts +2 -35
- package/dist/compressed-texture-loader.d.ts.map +1 -1
- package/dist/compressed-texture-worker.js +75 -47
- package/dist/crunch-loader.d.ts +9 -17
- package/dist/crunch-loader.d.ts.map +1 -1
- package/dist/crunch-worker.js +53 -25
- package/dist/dist.min.js +99 -55
- package/dist/es5/compressed-texture-loader.js +15 -17
- package/dist/es5/compressed-texture-loader.js.map +1 -1
- package/dist/es5/crunch-loader.js +1 -3
- package/dist/es5/crunch-loader.js.map +1 -1
- package/dist/es5/index.js +14 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/ktx2-basis-writer.js +5 -5
- package/dist/es5/ktx2-basis-writer.js.map +1 -1
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +6 -5
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/es5/lib/parsers/basis-module-loader.js +26 -21
- package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/crunch-module-loader.js +6 -1
- package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/parse-basis.js +7 -7
- package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
- package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/workers/compressed-texture-worker.js.map +1 -1
- package/dist/es5/workers/ktx2-basis-writer-worker-node.js.map +1 -1
- package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -1
- package/dist/esm/compressed-texture-loader.js +10 -11
- package/dist/esm/compressed-texture-loader.js.map +1 -1
- package/dist/esm/crunch-loader.js +0 -1
- package/dist/esm/crunch-loader.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ktx2-basis-writer.js +6 -5
- package/dist/esm/ktx2-basis-writer.js.map +1 -1
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +1 -1
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/esm/lib/parsers/basis-module-loader.js +13 -10
- package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/crunch-module-loader.js +4 -1
- package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/parse-basis.js +3 -3
- package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
- package/dist/esm/lib/texture-api/deep-load.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/workers/compressed-texture-worker.js.map +1 -1
- package/dist/esm/workers/ktx2-basis-writer-worker-node.js.map +1 -1
- package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/ktx2-basis-writer-worker-node.js +387 -333
- package/dist/ktx2-basis-writer-worker.js +61 -31
- package/dist/ktx2-basis-writer.d.ts +8 -7
- package/dist/ktx2-basis-writer.d.ts.map +1 -1
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
- package/dist/lib/parsers/basis-module-loader.d.ts +11 -1
- package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -1
- package/dist/lib/parsers/crunch-module-loader.d.ts +4 -0
- package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
- package/dist/npy-worker.js +9 -4
- package/dist/workers/crunch-worker.d.ts +13 -9
- package/dist/workers/crunch-worker.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/compressed-texture-loader.ts +14 -17
- package/src/crunch-loader.ts +10 -7
- package/src/index.ts +4 -0
- package/src/ktx2-basis-writer.ts +14 -13
- package/src/lib/encoders/encode-ktx2-basis-texture.ts +6 -1
- package/src/lib/parsers/basis-module-loader.ts +19 -16
- package/src/lib/parsers/crunch-module-loader.ts +6 -1
- package/src/lib/parsers/parse-basis.ts +3 -3
- package/src/lib/texture-api/deep-load.ts +0 -1
- package/src/workers/compressed-texture-worker.ts +1 -0
- package/src/workers/ktx2-basis-writer-worker-node.ts +2 -2
- package/src/workers/ktx2-basis-writer-worker.ts +2 -2
- package/dist/basis-loader.js +0 -37
- package/dist/bundle.js +0 -5
- package/dist/compressed-texture-loader.js +0 -64
- package/dist/compressed-texture-writer.js +0 -34
- package/dist/crunch-loader.js +0 -25
- package/dist/index.js +0 -52
- package/dist/ktx2-basis-writer.js +0 -26
- package/dist/lib/encoders/encode-ktx.js +0 -10
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +0 -41
- package/dist/lib/encoders/encode-texture.js +0 -27
- package/dist/lib/gl-extensions.js +0 -72
- package/dist/lib/parsers/basis-module-loader.js +0 -114
- package/dist/lib/parsers/crunch-module-loader.js +0 -35
- package/dist/lib/parsers/parse-basis.js +0 -245
- package/dist/lib/parsers/parse-compressed-texture.js +0 -26
- package/dist/lib/parsers/parse-crunch.js +0 -106
- package/dist/lib/parsers/parse-dds.js +0 -108
- package/dist/lib/parsers/parse-ktx.js +0 -46
- package/dist/lib/parsers/parse-npy.js +0 -81
- package/dist/lib/parsers/parse-pvr.js +0 -250
- package/dist/lib/texture-api/async-deep-map.js +0 -41
- package/dist/lib/texture-api/deep-load.js +0 -16
- package/dist/lib/texture-api/generate-url.js +0 -17
- package/dist/lib/texture-api/load-image-array.js +0 -21
- package/dist/lib/texture-api/load-image-cube.js +0 -47
- package/dist/lib/texture-api/load-image.js +0 -43
- package/dist/lib/texture-api/texture-api-types.js +0 -3
- package/dist/lib/utils/extract-mipmap-images.js +0 -50
- package/dist/lib/utils/ktx-format-helper.js +0 -125
- package/dist/lib/utils/texture-formats.js +0 -51
- package/dist/lib/utils/version.js +0 -8
- package/dist/npy-loader.js +0 -31
- package/dist/types.js +0 -1
- package/dist/workers/basis-worker-node.js +0 -7
- package/dist/workers/basis-worker.js +0 -5
- package/dist/workers/compressed-texture-worker.js +0 -5
- package/dist/workers/crunch-worker.js +0 -14
- package/dist/workers/ktx2-basis-writer-worker-node.js +0 -28
- package/dist/workers/ktx2-basis-writer-worker.js +0 -26
- package/dist/workers/npy-worker.js +0 -5
package/dist/basis-worker.js
CHANGED
|
@@ -28,10 +28,19 @@
|
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
function getVersion() {
|
|
32
|
+
if (!globalThis._loadersgl_?.version) {
|
|
33
|
+
globalThis._loadersgl_ = globalThis._loadersgl_ || {};
|
|
34
|
+
if (false) {
|
|
35
|
+
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
36
|
+
globalThis._loadersgl_.version = NPM_TAG;
|
|
37
|
+
} else {
|
|
38
|
+
globalThis._loadersgl_.version = "4.0.0-beta.2";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return globalThis._loadersgl_.version;
|
|
34
42
|
}
|
|
43
|
+
var VERSION = getVersion();
|
|
35
44
|
|
|
36
45
|
// ../worker-utils/src/lib/env-utils/assert.ts
|
|
37
46
|
function assert(condition, message) {
|
|
@@ -168,40 +177,38 @@
|
|
|
168
177
|
|
|
169
178
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
170
179
|
var node = __toModule(require_require_utils());
|
|
171
|
-
var LATEST = "beta";
|
|
172
|
-
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
173
180
|
var loadLibraryPromises = {};
|
|
174
|
-
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
181
|
+
async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
|
|
175
182
|
if (moduleName) {
|
|
176
|
-
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
|
|
183
|
+
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
|
|
177
184
|
}
|
|
178
185
|
loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
|
|
179
186
|
return await loadLibraryPromises[libraryUrl];
|
|
180
187
|
}
|
|
181
|
-
function getLibraryUrl(library, moduleName, options) {
|
|
182
|
-
if (library.startsWith("http")) {
|
|
188
|
+
function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
|
|
189
|
+
if (!options.useLocalLibraries && library.startsWith("http")) {
|
|
183
190
|
return library;
|
|
184
191
|
}
|
|
192
|
+
libraryName = libraryName || library;
|
|
185
193
|
const modules = options.modules || {};
|
|
186
|
-
if (modules[
|
|
187
|
-
return modules[
|
|
194
|
+
if (modules[libraryName]) {
|
|
195
|
+
return modules[libraryName];
|
|
188
196
|
}
|
|
189
197
|
if (!isBrowser) {
|
|
190
|
-
return `modules/${moduleName}/dist/libs/${
|
|
198
|
+
return `modules/${moduleName}/dist/libs/${libraryName}`;
|
|
191
199
|
}
|
|
192
200
|
if (options.CDN) {
|
|
193
201
|
assert(options.CDN.startsWith("http"));
|
|
194
|
-
return `${options.CDN}/${moduleName}@${
|
|
202
|
+
return `${options.CDN}/${moduleName}@${VERSION}/dist/libs/${libraryName}`;
|
|
195
203
|
}
|
|
196
204
|
if (isWorker) {
|
|
197
|
-
return `../src/libs/${
|
|
205
|
+
return `../src/libs/${libraryName}`;
|
|
198
206
|
}
|
|
199
|
-
return `modules/${moduleName}/src/libs/${
|
|
207
|
+
return `modules/${moduleName}/src/libs/${libraryName}`;
|
|
200
208
|
}
|
|
201
209
|
async function loadLibraryFromFile(libraryUrl) {
|
|
202
210
|
if (libraryUrl.endsWith("wasm")) {
|
|
203
|
-
|
|
204
|
-
return await response2.arrayBuffer();
|
|
211
|
+
return await loadAsArrayBuffer(libraryUrl);
|
|
205
212
|
}
|
|
206
213
|
if (!isBrowser) {
|
|
207
214
|
try {
|
|
@@ -213,8 +220,7 @@
|
|
|
213
220
|
if (isWorker) {
|
|
214
221
|
return importScripts(libraryUrl);
|
|
215
222
|
}
|
|
216
|
-
const
|
|
217
|
-
const scriptSource = await response.text();
|
|
223
|
+
const scriptSource = await loadAsText(libraryUrl);
|
|
218
224
|
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
219
225
|
}
|
|
220
226
|
function loadLibraryFromString(scriptSource, id) {
|
|
@@ -235,6 +241,20 @@
|
|
|
235
241
|
document.body.appendChild(script);
|
|
236
242
|
return null;
|
|
237
243
|
}
|
|
244
|
+
async function loadAsArrayBuffer(url) {
|
|
245
|
+
if (!node.readFileAsArrayBuffer || url.startsWith("http")) {
|
|
246
|
+
const response = await fetch(url);
|
|
247
|
+
return await response.arrayBuffer();
|
|
248
|
+
}
|
|
249
|
+
return await node.readFileAsArrayBuffer(url);
|
|
250
|
+
}
|
|
251
|
+
async function loadAsText(url) {
|
|
252
|
+
if (!node.readFileAsText || url.startsWith("http")) {
|
|
253
|
+
const response = await fetch(url);
|
|
254
|
+
return await response.text();
|
|
255
|
+
}
|
|
256
|
+
return await node.readFileAsText(url);
|
|
257
|
+
}
|
|
238
258
|
|
|
239
259
|
// ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
|
|
240
260
|
var requestId = 0;
|
|
@@ -253,7 +273,7 @@
|
|
|
253
273
|
options,
|
|
254
274
|
context: {
|
|
255
275
|
...context,
|
|
256
|
-
|
|
276
|
+
_parse: parseOnMainThread
|
|
257
277
|
}
|
|
258
278
|
});
|
|
259
279
|
WorkerBody.postMessage("done", { result });
|
|
@@ -266,7 +286,7 @@
|
|
|
266
286
|
}
|
|
267
287
|
};
|
|
268
288
|
}
|
|
269
|
-
function parseOnMainThread(arrayBuffer, options) {
|
|
289
|
+
function parseOnMainThread(arrayBuffer, loader, options, context) {
|
|
270
290
|
return new Promise((resolve, reject) => {
|
|
271
291
|
const id = requestId++;
|
|
272
292
|
const onMessage = (type, payload2) => {
|
|
@@ -290,7 +310,12 @@
|
|
|
290
310
|
WorkerBody.postMessage("process", payload);
|
|
291
311
|
});
|
|
292
312
|
}
|
|
293
|
-
async function parseData({
|
|
313
|
+
async function parseData({
|
|
314
|
+
loader,
|
|
315
|
+
arrayBuffer,
|
|
316
|
+
options,
|
|
317
|
+
context
|
|
318
|
+
}) {
|
|
294
319
|
let data;
|
|
295
320
|
let parser;
|
|
296
321
|
if (loader.parseSync || loader.parse) {
|
|
@@ -312,32 +337,35 @@
|
|
|
312
337
|
}
|
|
313
338
|
|
|
314
339
|
// src/lib/utils/version.ts
|
|
315
|
-
var
|
|
340
|
+
var VERSION2 = true ? "4.0.0-beta.2" : "beta";
|
|
316
341
|
|
|
317
342
|
// src/lib/parsers/basis-module-loader.ts
|
|
318
|
-
var
|
|
319
|
-
|
|
320
|
-
|
|
343
|
+
var BASIS_EXTERNAL_LIBRARIES = {
|
|
344
|
+
TRANSCODER: "basis_transcoder.js",
|
|
345
|
+
TRANSCODER_WASM: "basis_transcoder.wasm",
|
|
346
|
+
ENCODER: "basis_encoder.js",
|
|
347
|
+
ENCODER_WASM: "basis_encoder.wasm"
|
|
348
|
+
};
|
|
321
349
|
var loadBasisTranscoderPromise;
|
|
322
|
-
async function
|
|
350
|
+
async function loadBasisTranscoderModule(options) {
|
|
323
351
|
const modules = options.modules || {};
|
|
324
352
|
if (modules.basis) {
|
|
325
353
|
return modules.basis;
|
|
326
354
|
}
|
|
327
|
-
loadBasisTranscoderPromise = loadBasisTranscoderPromise ||
|
|
355
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
|
|
328
356
|
return await loadBasisTranscoderPromise;
|
|
329
357
|
}
|
|
330
|
-
async function
|
|
358
|
+
async function loadBasisTranscoder(options) {
|
|
331
359
|
let BASIS = null;
|
|
332
360
|
let wasmBinary = null;
|
|
333
361
|
[BASIS, wasmBinary] = await Promise.all([
|
|
334
|
-
await loadLibrary(
|
|
335
|
-
await loadLibrary(
|
|
362
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options),
|
|
363
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)
|
|
336
364
|
]);
|
|
337
365
|
BASIS = BASIS || globalThis.BASIS;
|
|
338
|
-
return await
|
|
366
|
+
return await initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
339
367
|
}
|
|
340
|
-
function
|
|
368
|
+
function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
|
|
341
369
|
const options = {};
|
|
342
370
|
if (wasmBinary) {
|
|
343
371
|
options.wasmBinary = wasmBinary;
|
|
@@ -363,8 +391,8 @@
|
|
|
363
391
|
let BASIS_ENCODER = null;
|
|
364
392
|
let wasmBinary = null;
|
|
365
393
|
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
366
|
-
await loadLibrary(
|
|
367
|
-
await loadLibrary(
|
|
394
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options),
|
|
395
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)
|
|
368
396
|
]);
|
|
369
397
|
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
370
398
|
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
@@ -581,7 +609,7 @@
|
|
|
581
609
|
const fileConstructors = await loadBasisEncoderModule(options);
|
|
582
610
|
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
583
611
|
}
|
|
584
|
-
const { BasisFile } = await
|
|
612
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
585
613
|
return parseBasisFile(BasisFile, data, options);
|
|
586
614
|
}
|
|
587
615
|
switch (options.basis.module) {
|
|
@@ -596,7 +624,7 @@
|
|
|
596
624
|
}
|
|
597
625
|
case "transcoder":
|
|
598
626
|
default:
|
|
599
|
-
const { BasisFile } = await
|
|
627
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
600
628
|
return parseBasisFile(BasisFile, data, options);
|
|
601
629
|
}
|
|
602
630
|
}
|
|
@@ -715,7 +743,7 @@
|
|
|
715
743
|
name: "Basis",
|
|
716
744
|
id: "basis",
|
|
717
745
|
module: "textures",
|
|
718
|
-
version:
|
|
746
|
+
version: VERSION2,
|
|
719
747
|
worker: true,
|
|
720
748
|
extensions: ["basis", "ktx2"],
|
|
721
749
|
mimeTypes: ["application/octet-stream", "image/ktx2"],
|
|
@@ -8,42 +8,9 @@ export type TextureLoaderOptions = {
|
|
|
8
8
|
/**
|
|
9
9
|
* Worker Loader for KTX, DDS, and PVR texture container formats
|
|
10
10
|
*/
|
|
11
|
-
export declare const CompressedTextureWorkerLoader:
|
|
12
|
-
name: string;
|
|
13
|
-
id: string;
|
|
14
|
-
module: string;
|
|
15
|
-
version: any;
|
|
16
|
-
worker: boolean;
|
|
17
|
-
extensions: string[];
|
|
18
|
-
mimeTypes: string[];
|
|
19
|
-
binary: boolean;
|
|
20
|
-
options: {
|
|
21
|
-
'compressed-texture': {
|
|
22
|
-
libraryPath: string;
|
|
23
|
-
useBasis: boolean;
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
};
|
|
11
|
+
export declare const CompressedTextureWorkerLoader: Loader<any, never, TextureLoaderOptions>;
|
|
27
12
|
/**
|
|
28
13
|
* Loader for KTX, DDS, and PVR texture container formats
|
|
29
14
|
*/
|
|
30
|
-
export declare const CompressedTextureLoader:
|
|
31
|
-
parse: (arrayBuffer: any, options: any) => Promise<import("@loaders.gl/schema").TextureLevel[]>;
|
|
32
|
-
name: string;
|
|
33
|
-
id: string;
|
|
34
|
-
module: string;
|
|
35
|
-
version: any;
|
|
36
|
-
worker: boolean;
|
|
37
|
-
extensions: string[];
|
|
38
|
-
mimeTypes: string[];
|
|
39
|
-
binary: boolean;
|
|
40
|
-
options: {
|
|
41
|
-
'compressed-texture': {
|
|
42
|
-
libraryPath: string;
|
|
43
|
-
useBasis: boolean;
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
export declare const _TypecheckCompressedTextureWorkerLoader: Loader;
|
|
48
|
-
export declare const _TypecheckCompressedTextureLoader: LoaderWithParser;
|
|
15
|
+
export declare const CompressedTextureLoader: LoaderWithParser<any, never, TextureLoaderOptions>;
|
|
49
16
|
//# sourceMappingURL=compressed-texture-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,oBAAoB,GAAG;IACjC,oBAAoB,CAAC,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,oBAAoB,GAAG;IACjC,oBAAoB,CAAC,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAoB,CA0BlF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAoB,CAoBtF,CAAC"}
|
|
@@ -35,10 +35,19 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
function getVersion() {
|
|
39
|
+
if (!globalThis._loadersgl_?.version) {
|
|
40
|
+
globalThis._loadersgl_ = globalThis._loadersgl_ || {};
|
|
41
|
+
if (false) {
|
|
42
|
+
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
43
|
+
globalThis._loadersgl_.version = NPM_TAG;
|
|
44
|
+
} else {
|
|
45
|
+
globalThis._loadersgl_.version = "4.0.0-beta.2";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return globalThis._loadersgl_.version;
|
|
41
49
|
}
|
|
50
|
+
var VERSION = getVersion();
|
|
42
51
|
|
|
43
52
|
// ../worker-utils/src/lib/env-utils/assert.ts
|
|
44
53
|
function assert2(condition, message) {
|
|
@@ -175,40 +184,38 @@
|
|
|
175
184
|
|
|
176
185
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
177
186
|
var node = __toModule(require_require_utils());
|
|
178
|
-
var LATEST = "beta";
|
|
179
|
-
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
180
187
|
var loadLibraryPromises = {};
|
|
181
|
-
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
188
|
+
async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
|
|
182
189
|
if (moduleName) {
|
|
183
|
-
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
|
|
190
|
+
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
|
|
184
191
|
}
|
|
185
192
|
loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
|
|
186
193
|
return await loadLibraryPromises[libraryUrl];
|
|
187
194
|
}
|
|
188
|
-
function getLibraryUrl(library, moduleName, options) {
|
|
189
|
-
if (library.startsWith("http")) {
|
|
195
|
+
function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
|
|
196
|
+
if (!options.useLocalLibraries && library.startsWith("http")) {
|
|
190
197
|
return library;
|
|
191
198
|
}
|
|
199
|
+
libraryName = libraryName || library;
|
|
192
200
|
const modules = options.modules || {};
|
|
193
|
-
if (modules[
|
|
194
|
-
return modules[
|
|
201
|
+
if (modules[libraryName]) {
|
|
202
|
+
return modules[libraryName];
|
|
195
203
|
}
|
|
196
204
|
if (!isBrowser) {
|
|
197
|
-
return `modules/${moduleName}/dist/libs/${
|
|
205
|
+
return `modules/${moduleName}/dist/libs/${libraryName}`;
|
|
198
206
|
}
|
|
199
207
|
if (options.CDN) {
|
|
200
208
|
assert2(options.CDN.startsWith("http"));
|
|
201
|
-
return `${options.CDN}/${moduleName}@${
|
|
209
|
+
return `${options.CDN}/${moduleName}@${VERSION}/dist/libs/${libraryName}`;
|
|
202
210
|
}
|
|
203
211
|
if (isWorker) {
|
|
204
|
-
return `../src/libs/${
|
|
212
|
+
return `../src/libs/${libraryName}`;
|
|
205
213
|
}
|
|
206
|
-
return `modules/${moduleName}/src/libs/${
|
|
214
|
+
return `modules/${moduleName}/src/libs/${libraryName}`;
|
|
207
215
|
}
|
|
208
216
|
async function loadLibraryFromFile(libraryUrl) {
|
|
209
217
|
if (libraryUrl.endsWith("wasm")) {
|
|
210
|
-
|
|
211
|
-
return await response2.arrayBuffer();
|
|
218
|
+
return await loadAsArrayBuffer(libraryUrl);
|
|
212
219
|
}
|
|
213
220
|
if (!isBrowser) {
|
|
214
221
|
try {
|
|
@@ -220,8 +227,7 @@
|
|
|
220
227
|
if (isWorker) {
|
|
221
228
|
return importScripts(libraryUrl);
|
|
222
229
|
}
|
|
223
|
-
const
|
|
224
|
-
const scriptSource = await response.text();
|
|
230
|
+
const scriptSource = await loadAsText(libraryUrl);
|
|
225
231
|
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
226
232
|
}
|
|
227
233
|
function loadLibraryFromString(scriptSource, id) {
|
|
@@ -242,6 +248,20 @@
|
|
|
242
248
|
document.body.appendChild(script);
|
|
243
249
|
return null;
|
|
244
250
|
}
|
|
251
|
+
async function loadAsArrayBuffer(url) {
|
|
252
|
+
if (!node.readFileAsArrayBuffer || url.startsWith("http")) {
|
|
253
|
+
const response = await fetch(url);
|
|
254
|
+
return await response.arrayBuffer();
|
|
255
|
+
}
|
|
256
|
+
return await node.readFileAsArrayBuffer(url);
|
|
257
|
+
}
|
|
258
|
+
async function loadAsText(url) {
|
|
259
|
+
if (!node.readFileAsText || url.startsWith("http")) {
|
|
260
|
+
const response = await fetch(url);
|
|
261
|
+
return await response.text();
|
|
262
|
+
}
|
|
263
|
+
return await node.readFileAsText(url);
|
|
264
|
+
}
|
|
245
265
|
|
|
246
266
|
// ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
|
|
247
267
|
var requestId = 0;
|
|
@@ -260,7 +280,7 @@
|
|
|
260
280
|
options,
|
|
261
281
|
context: {
|
|
262
282
|
...context,
|
|
263
|
-
|
|
283
|
+
_parse: parseOnMainThread
|
|
264
284
|
}
|
|
265
285
|
});
|
|
266
286
|
WorkerBody.postMessage("done", { result });
|
|
@@ -273,7 +293,7 @@
|
|
|
273
293
|
}
|
|
274
294
|
};
|
|
275
295
|
}
|
|
276
|
-
function parseOnMainThread(arrayBuffer, options) {
|
|
296
|
+
function parseOnMainThread(arrayBuffer, loader, options, context) {
|
|
277
297
|
return new Promise((resolve, reject) => {
|
|
278
298
|
const id = requestId++;
|
|
279
299
|
const onMessage = (type, payload2) => {
|
|
@@ -297,7 +317,12 @@
|
|
|
297
317
|
WorkerBody.postMessage("process", payload);
|
|
298
318
|
});
|
|
299
319
|
}
|
|
300
|
-
async function parseData({
|
|
320
|
+
async function parseData({
|
|
321
|
+
loader,
|
|
322
|
+
arrayBuffer,
|
|
323
|
+
options,
|
|
324
|
+
context
|
|
325
|
+
}) {
|
|
301
326
|
let data;
|
|
302
327
|
let parser;
|
|
303
328
|
if (loader.parseSync || loader.parse) {
|
|
@@ -319,7 +344,7 @@
|
|
|
319
344
|
}
|
|
320
345
|
|
|
321
346
|
// src/lib/utils/version.ts
|
|
322
|
-
var
|
|
347
|
+
var VERSION2 = true ? "4.0.0-beta.2" : "beta";
|
|
323
348
|
|
|
324
349
|
// ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
|
|
325
350
|
var t = new Uint8Array([0]);
|
|
@@ -907,29 +932,32 @@
|
|
|
907
932
|
}
|
|
908
933
|
|
|
909
934
|
// src/lib/parsers/basis-module-loader.ts
|
|
910
|
-
var
|
|
911
|
-
|
|
912
|
-
|
|
935
|
+
var BASIS_EXTERNAL_LIBRARIES = {
|
|
936
|
+
TRANSCODER: "basis_transcoder.js",
|
|
937
|
+
TRANSCODER_WASM: "basis_transcoder.wasm",
|
|
938
|
+
ENCODER: "basis_encoder.js",
|
|
939
|
+
ENCODER_WASM: "basis_encoder.wasm"
|
|
940
|
+
};
|
|
913
941
|
var loadBasisTranscoderPromise;
|
|
914
|
-
async function
|
|
942
|
+
async function loadBasisTranscoderModule(options) {
|
|
915
943
|
const modules = options.modules || {};
|
|
916
944
|
if (modules.basis) {
|
|
917
945
|
return modules.basis;
|
|
918
946
|
}
|
|
919
|
-
loadBasisTranscoderPromise = loadBasisTranscoderPromise ||
|
|
947
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
|
|
920
948
|
return await loadBasisTranscoderPromise;
|
|
921
949
|
}
|
|
922
|
-
async function
|
|
950
|
+
async function loadBasisTranscoder(options) {
|
|
923
951
|
let BASIS = null;
|
|
924
952
|
let wasmBinary = null;
|
|
925
953
|
[BASIS, wasmBinary] = await Promise.all([
|
|
926
|
-
await loadLibrary(
|
|
927
|
-
await loadLibrary(
|
|
954
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options),
|
|
955
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)
|
|
928
956
|
]);
|
|
929
957
|
BASIS = BASIS || globalThis.BASIS;
|
|
930
|
-
return await
|
|
958
|
+
return await initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
931
959
|
}
|
|
932
|
-
function
|
|
960
|
+
function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
|
|
933
961
|
const options = {};
|
|
934
962
|
if (wasmBinary) {
|
|
935
963
|
options.wasmBinary = wasmBinary;
|
|
@@ -955,8 +983,8 @@
|
|
|
955
983
|
let BASIS_ENCODER = null;
|
|
956
984
|
let wasmBinary = null;
|
|
957
985
|
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
958
|
-
await loadLibrary(
|
|
959
|
-
await loadLibrary(
|
|
986
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options),
|
|
987
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)
|
|
960
988
|
]);
|
|
961
989
|
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
962
990
|
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
@@ -1062,7 +1090,7 @@
|
|
|
1062
1090
|
const fileConstructors = await loadBasisEncoderModule(options);
|
|
1063
1091
|
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
1064
1092
|
}
|
|
1065
|
-
const { BasisFile } = await
|
|
1093
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
1066
1094
|
return parseBasisFile(BasisFile, data, options);
|
|
1067
1095
|
}
|
|
1068
1096
|
switch (options.basis.module) {
|
|
@@ -1077,7 +1105,7 @@
|
|
|
1077
1105
|
}
|
|
1078
1106
|
case "transcoder":
|
|
1079
1107
|
default:
|
|
1080
|
-
const { BasisFile } = await
|
|
1108
|
+
const { BasisFile } = await loadBasisTranscoderModule(options);
|
|
1081
1109
|
return parseBasisFile(BasisFile, data, options);
|
|
1082
1110
|
}
|
|
1083
1111
|
}
|
|
@@ -1192,17 +1220,11 @@
|
|
|
1192
1220
|
}
|
|
1193
1221
|
|
|
1194
1222
|
// src/compressed-texture-loader.ts
|
|
1195
|
-
var DEFAULT_TEXTURE_LOADER_OPTIONS = {
|
|
1196
|
-
"compressed-texture": {
|
|
1197
|
-
libraryPath: "libs/",
|
|
1198
|
-
useBasis: false
|
|
1199
|
-
}
|
|
1200
|
-
};
|
|
1201
1223
|
var CompressedTextureWorkerLoader = {
|
|
1202
1224
|
name: "Texture Containers",
|
|
1203
1225
|
id: "compressed-texture",
|
|
1204
1226
|
module: "textures",
|
|
1205
|
-
version:
|
|
1227
|
+
version: VERSION2,
|
|
1206
1228
|
worker: true,
|
|
1207
1229
|
extensions: [
|
|
1208
1230
|
"ktx",
|
|
@@ -1218,12 +1240,17 @@
|
|
|
1218
1240
|
"application/octet-stream"
|
|
1219
1241
|
],
|
|
1220
1242
|
binary: true,
|
|
1221
|
-
options:
|
|
1243
|
+
options: {
|
|
1244
|
+
"compressed-texture": {
|
|
1245
|
+
libraryPath: "libs/",
|
|
1246
|
+
useBasis: false
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1222
1249
|
};
|
|
1223
1250
|
var CompressedTextureLoader = {
|
|
1224
1251
|
...CompressedTextureWorkerLoader,
|
|
1225
1252
|
parse: async (arrayBuffer, options) => {
|
|
1226
|
-
if (options["compressed-texture"]
|
|
1253
|
+
if (options?.["compressed-texture"]?.useBasis) {
|
|
1227
1254
|
options.basis = {
|
|
1228
1255
|
format: {
|
|
1229
1256
|
alpha: "BC3",
|
|
@@ -1233,7 +1260,8 @@
|
|
|
1233
1260
|
containerFormat: "ktx2",
|
|
1234
1261
|
module: "encoder"
|
|
1235
1262
|
};
|
|
1236
|
-
|
|
1263
|
+
const result = await parseBasis(arrayBuffer, options);
|
|
1264
|
+
return result[0];
|
|
1237
1265
|
}
|
|
1238
1266
|
return parseCompressedTexture(arrayBuffer);
|
|
1239
1267
|
}
|
package/dist/crunch-loader.d.ts
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
import type { Loader } from '@loaders.gl/loader-utils';
|
|
1
|
+
import type { Loader, LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
|
+
import type { TextureLevel } from '@loaders.gl/schema';
|
|
3
|
+
export type CrunchLoaderOptions = LoaderOptions & {
|
|
4
|
+
crunch?: {
|
|
5
|
+
libraryPath?: string;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
2
8
|
/**
|
|
3
9
|
* Worker loader for the Crunch compressed texture container format
|
|
10
|
+
* @note We avoid bundling crunch - it is a rare format and large lib, so we only offer worker loader
|
|
4
11
|
*/
|
|
5
|
-
export declare const CrunchLoader:
|
|
6
|
-
id: string;
|
|
7
|
-
name: string;
|
|
8
|
-
module: string;
|
|
9
|
-
version: any;
|
|
10
|
-
worker: boolean;
|
|
11
|
-
extensions: string[];
|
|
12
|
-
mimeTypes: string[];
|
|
13
|
-
binary: boolean;
|
|
14
|
-
options: {
|
|
15
|
-
crunch: {
|
|
16
|
-
libraryPath: string;
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
export declare const _TypecheckCrunchLoader: Loader;
|
|
12
|
+
export declare const CrunchLoader: Loader<TextureLevel[], never, CrunchLoaderOptions>;
|
|
21
13
|
//# sourceMappingURL=crunch-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crunch-loader.d.ts","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAGrD
|
|
1
|
+
{"version":3,"file":"crunch-loader.d.ts","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGrD,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAc3E,CAAC"}
|