@loaders.gl/textures 4.0.0-alpha.17 → 4.0.0-alpha.19
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 +70 -71
- package/dist/basis-worker.js +46 -30
- package/dist/compressed-texture-worker.js +46 -30
- package/dist/crunch-worker.js +33 -17
- package/dist/dist.min.js +74 -37
- package/dist/es5/index.js +14 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/ktx2-basis-writer.js +4 -2
- 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/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/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ktx2-basis-writer.js +6 -4
- 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/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/index.js +6 -1
- package/dist/ktx2-basis-writer-worker-node.js +73 -67
- package/dist/ktx2-basis-writer-worker.js +49 -26
- package/dist/ktx2-basis-writer.d.ts +8 -6
- package/dist/ktx2-basis-writer.d.ts.map +1 -1
- package/dist/ktx2-basis-writer.js +6 -4
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +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/basis-module-loader.js +21 -17
- 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/parsers/crunch-module-loader.js +6 -2
- package/dist/lib/parsers/parse-basis.js +2 -2
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
- package/dist/lib/texture-api/deep-load.js +0 -1
- package/dist/npy-worker.js +1 -1
- package/package.json +7 -7
- package/src/index.ts +4 -0
- package/src/ktx2-basis-writer.ts +14 -10
- 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/ktx2-basis-writer-worker-node.ts +2 -2
- package/src/workers/ktx2-basis-writer-worker.ts +2 -2
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
export declare const BASIS_EXTERNAL_LIBRARIES: {
|
|
2
|
+
/** Basis transcoder, javascript wrapper part */
|
|
3
|
+
TRANSCODER: string;
|
|
4
|
+
/** Basis transcoder, compiled web assembly part */
|
|
5
|
+
TRANSCODER_WASM: string;
|
|
6
|
+
/** Basis encoder, javascript wrapper part */
|
|
7
|
+
ENCODER: string;
|
|
8
|
+
/** Basis encoder, compiled web assembly part */
|
|
9
|
+
ENCODER_WASM: string;
|
|
10
|
+
};
|
|
1
11
|
/**
|
|
2
12
|
* Loads wasm transcoder module
|
|
3
13
|
* @param options
|
|
4
14
|
* @returns {BasisFile} promise
|
|
5
15
|
*/
|
|
6
|
-
export declare function
|
|
16
|
+
export declare function loadBasisTranscoderModule(options: any): Promise<any>;
|
|
7
17
|
/**
|
|
8
18
|
* Loads wasm encoder module
|
|
9
19
|
* @param options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basis-module-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/basis-module-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"basis-module-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/basis-module-loader.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB;IACnC,gDAAgD;;IAEhD,mDAAmD;;IAEnD,6CAA6C;;IAE7C,gDAAgD;;CAEjD,CAAC;AAIF;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,KAAA,gBAQtD;AA+CD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,KAAA,gBAQnD"}
|
|
@@ -1,44 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadBasisEncoderModule = exports.
|
|
4
|
-
// __VERSION__ is injected by babel-plugin-version-inline
|
|
5
|
-
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
6
|
-
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';
|
|
7
|
-
// @ts-nocheck
|
|
3
|
+
exports.loadBasisEncoderModule = exports.loadBasisTranscoderModule = exports.BASIS_EXTERNAL_LIBRARIES = void 0;
|
|
8
4
|
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
exports.BASIS_EXTERNAL_LIBRARIES = {
|
|
6
|
+
/** Basis transcoder, javascript wrapper part */
|
|
7
|
+
TRANSCODER: 'basis_transcoder.js',
|
|
8
|
+
/** Basis transcoder, compiled web assembly part */
|
|
9
|
+
TRANSCODER_WASM: 'basis_transcoder.wasm',
|
|
10
|
+
/** Basis encoder, javascript wrapper part */
|
|
11
|
+
ENCODER: 'basis_encoder.js',
|
|
12
|
+
/** Basis encoder, compiled web assembly part */
|
|
13
|
+
ENCODER_WASM: 'basis_encoder.wasm'
|
|
14
|
+
};
|
|
11
15
|
let loadBasisTranscoderPromise;
|
|
12
16
|
/**
|
|
13
17
|
* Loads wasm transcoder module
|
|
14
18
|
* @param options
|
|
15
19
|
* @returns {BasisFile} promise
|
|
16
20
|
*/
|
|
17
|
-
async function
|
|
21
|
+
async function loadBasisTranscoderModule(options) {
|
|
18
22
|
const modules = options.modules || {};
|
|
19
23
|
if (modules.basis) {
|
|
20
24
|
return modules.basis;
|
|
21
25
|
}
|
|
22
|
-
loadBasisTranscoderPromise = loadBasisTranscoderPromise ||
|
|
26
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
|
|
23
27
|
return await loadBasisTranscoderPromise;
|
|
24
28
|
}
|
|
25
|
-
exports.
|
|
29
|
+
exports.loadBasisTranscoderModule = loadBasisTranscoderModule;
|
|
26
30
|
/**
|
|
27
31
|
* Loads wasm transcoder module
|
|
28
32
|
* @param options
|
|
29
33
|
* @returns {BasisFile} promise
|
|
30
34
|
*/
|
|
31
|
-
async function
|
|
35
|
+
async function loadBasisTranscoder(options) {
|
|
32
36
|
let BASIS = null;
|
|
33
37
|
let wasmBinary = null;
|
|
34
38
|
[BASIS, wasmBinary] = await Promise.all([
|
|
35
|
-
await (0, worker_utils_1.loadLibrary)(
|
|
36
|
-
await (0, worker_utils_1.loadLibrary)(
|
|
39
|
+
await (0, worker_utils_1.loadLibrary)(exports.BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'textures', options),
|
|
40
|
+
await (0, worker_utils_1.loadLibrary)(exports.BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, 'textures', options)
|
|
37
41
|
]);
|
|
38
42
|
// Depends on how import happened...
|
|
39
43
|
// @ts-ignore TS2339: Property does not exist on type
|
|
40
44
|
BASIS = BASIS || globalThis.BASIS;
|
|
41
|
-
return await
|
|
45
|
+
return await initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
48
|
* Initialize wasm transcoder module
|
|
@@ -46,7 +50,7 @@ async function loadBasisTrascoder(options) {
|
|
|
46
50
|
* @param wasmBinary - wasm part of the module
|
|
47
51
|
* @returns {BasisFile} promise
|
|
48
52
|
*/
|
|
49
|
-
function
|
|
53
|
+
function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
|
|
50
54
|
const options = {};
|
|
51
55
|
if (wasmBinary) {
|
|
52
56
|
options.wasmBinary = wasmBinary;
|
|
@@ -84,8 +88,8 @@ async function loadBasisEncoder(options) {
|
|
|
84
88
|
let BASIS_ENCODER = null;
|
|
85
89
|
let wasmBinary = null;
|
|
86
90
|
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
87
|
-
await (0, worker_utils_1.loadLibrary)(
|
|
88
|
-
await (0, worker_utils_1.loadLibrary)(
|
|
91
|
+
await (0, worker_utils_1.loadLibrary)(exports.BASIS_EXTERNAL_LIBRARIES.ENCODER, 'textures', options),
|
|
92
|
+
await (0, worker_utils_1.loadLibrary)(exports.BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'textures', options)
|
|
89
93
|
]);
|
|
90
94
|
// Depends on how import happened...
|
|
91
95
|
// @ts-ignore TS2339: Property does not exist on type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crunch-module-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/crunch-module-loader.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC,CAO5D"}
|
|
1
|
+
{"version":3,"file":"crunch-module-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/crunch-module-loader.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB;IACpC,wEAAwE;;CAEzE,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC,CAO5D"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadCrunchModule = void 0;
|
|
3
|
+
exports.loadCrunchModule = exports.CRUNCH_EXTERNAL_LIBRARIES = void 0;
|
|
4
4
|
// @ts-nocheck
|
|
5
5
|
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
6
|
+
exports.CRUNCH_EXTERNAL_LIBRARIES = {
|
|
7
|
+
/** Crunch decoder library. It is used as dynamically imported script */
|
|
8
|
+
DECODER: 'crunch.js'
|
|
9
|
+
};
|
|
6
10
|
/**
|
|
7
11
|
* Load crunch decoder module
|
|
8
12
|
* @param options - loader options
|
|
@@ -26,7 +30,7 @@ async function loadCrunch(options) {
|
|
|
26
30
|
if (crunchModule) {
|
|
27
31
|
return crunchModule;
|
|
28
32
|
}
|
|
29
|
-
let loadCrunchDecoder = await (0, worker_utils_1.loadLibrary)(
|
|
33
|
+
let loadCrunchDecoder = await (0, worker_utils_1.loadLibrary)(exports.CRUNCH_EXTERNAL_LIBRARIES.DECODER, 'textures', options);
|
|
30
34
|
// Depends on how import happened...
|
|
31
35
|
// @ts-ignore TS2339: Property does not exist on type
|
|
32
36
|
loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
|
|
@@ -60,7 +60,7 @@ async function parseBasis(data, options) {
|
|
|
60
60
|
const fileConstructors = await (0, basis_module_loader_1.loadBasisEncoderModule)(options);
|
|
61
61
|
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
62
62
|
}
|
|
63
|
-
const { BasisFile } = await (0, basis_module_loader_1.
|
|
63
|
+
const { BasisFile } = await (0, basis_module_loader_1.loadBasisTranscoderModule)(options);
|
|
64
64
|
return parseBasisFile(BasisFile, data, options);
|
|
65
65
|
}
|
|
66
66
|
switch (options.basis.module) {
|
|
@@ -75,7 +75,7 @@ async function parseBasis(data, options) {
|
|
|
75
75
|
}
|
|
76
76
|
case 'transcoder':
|
|
77
77
|
default:
|
|
78
|
-
const { BasisFile } = await (0, basis_module_loader_1.
|
|
78
|
+
const { BasisFile } = await (0, basis_module_loader_1.loadBasisTranscoderModule)(options);
|
|
79
79
|
return parseBasisFile(BasisFile, data, options);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-load.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/deep-load.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAErF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,oBAEhF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"deep-load.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/deep-load.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAErF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,oBAEhF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAI7F"}
|
|
@@ -8,7 +8,6 @@ async function deepLoad(urlTree, load, options) {
|
|
|
8
8
|
}
|
|
9
9
|
exports.deepLoad = deepLoad;
|
|
10
10
|
async function shallowLoad(url, load, options) {
|
|
11
|
-
// console.error('loading', url);
|
|
12
11
|
const response = await fetch(url, options.fetch);
|
|
13
12
|
const arrayBuffer = await response.arrayBuffer();
|
|
14
13
|
return await load(arrayBuffer, options);
|
package/dist/npy-worker.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/textures",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.19",
|
|
4
4
|
"description": "Framework-independent loaders for compressed and super compressed (basis) textures ",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -45,15 +45,15 @@
|
|
|
45
45
|
"build-crunch-worker": "esbuild src/workers/crunch-worker.ts --outfile=dist/crunch-worker.js --target=esnext --bundle --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@loaders.gl/images": "4.0.0-alpha.
|
|
49
|
-
"@loaders.gl/loader-utils": "4.0.0-alpha.
|
|
50
|
-
"@loaders.gl/schema": "4.0.0-alpha.
|
|
51
|
-
"@loaders.gl/worker-utils": "4.0.0-alpha.
|
|
48
|
+
"@loaders.gl/images": "4.0.0-alpha.19",
|
|
49
|
+
"@loaders.gl/loader-utils": "4.0.0-alpha.19",
|
|
50
|
+
"@loaders.gl/schema": "4.0.0-alpha.19",
|
|
51
|
+
"@loaders.gl/worker-utils": "4.0.0-alpha.19",
|
|
52
52
|
"ktx-parse": "^0.0.4",
|
|
53
53
|
"texture-compressor": "^1.0.2"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@loaders.gl/polyfills": "4.0.0-alpha.
|
|
56
|
+
"@loaders.gl/polyfills": "4.0.0-alpha.19"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "2ca50ec4e1d312c124eb7c93c60ab6fd17ee833e"
|
|
59
59
|
}
|
package/src/index.ts
CHANGED
|
@@ -10,6 +10,10 @@ export {CompressedTextureLoader, CompressedTextureWorkerLoader} from './compress
|
|
|
10
10
|
export {CrunchLoader} from './crunch-loader';
|
|
11
11
|
export {NPYLoader, NPYWorkerLoader} from './npy-loader';
|
|
12
12
|
|
|
13
|
+
// Module constants
|
|
14
|
+
export {BASIS_EXTERNAL_LIBRARIES} from './lib/parsers/basis-module-loader';
|
|
15
|
+
export {CRUNCH_EXTERNAL_LIBRARIES} from './lib/parsers/crunch-module-loader';
|
|
16
|
+
|
|
13
17
|
// Writers
|
|
14
18
|
export {CompressedTextureWriter} from './compressed-texture-writer';
|
|
15
19
|
export {KTX2BasisWriter} from './ktx2-basis-writer';
|
package/src/ktx2-basis-writer.ts
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
// loaders.gl, MIT license
|
|
2
2
|
|
|
3
|
-
import type {Writer} from '@loaders.gl/loader-utils';
|
|
3
|
+
import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
|
|
4
4
|
import {VERSION} from './lib/utils/version';
|
|
5
5
|
import type {ImageDataType} from '@loaders.gl/images';
|
|
6
6
|
import {encodeKTX2BasisTexture} from './lib/encoders/encode-ktx2-basis-texture';
|
|
7
7
|
|
|
8
8
|
/** @todo should be in basis sub-object */
|
|
9
|
-
export type KTX2BasisWriterOptions = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
export type KTX2BasisWriterOptions = WriterOptions & {
|
|
10
|
+
['ktx2-basis-writer']: {
|
|
11
|
+
useSRGB?: boolean;
|
|
12
|
+
qualityLevel?: number;
|
|
13
|
+
encodeUASTC?: boolean;
|
|
14
|
+
mipmaps?: boolean;
|
|
15
|
+
};
|
|
14
16
|
};
|
|
15
17
|
|
|
16
18
|
/**
|
|
@@ -25,10 +27,12 @@ export const KTX2BasisWriter: Writer<ImageDataType, unknown, KTX2BasisWriterOpti
|
|
|
25
27
|
|
|
26
28
|
extensions: ['ktx2'],
|
|
27
29
|
options: {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
['ktx2-basis-writer']: {
|
|
31
|
+
useSRGB: false,
|
|
32
|
+
qualityLevel: 10,
|
|
33
|
+
encodeUASTC: false,
|
|
34
|
+
mipmaps: false
|
|
35
|
+
}
|
|
32
36
|
},
|
|
33
37
|
|
|
34
38
|
encode: encodeKTX2BasisTexture
|
|
@@ -13,7 +13,12 @@ export async function encodeKTX2BasisTexture(
|
|
|
13
13
|
options: any = {}
|
|
14
14
|
): Promise<ArrayBuffer> {
|
|
15
15
|
// TODO remove default values after writer options will be normalized like it done in load module.
|
|
16
|
-
const {
|
|
16
|
+
const {
|
|
17
|
+
useSRGB = false,
|
|
18
|
+
qualityLevel = 10,
|
|
19
|
+
encodeUASTC = false,
|
|
20
|
+
mipmaps = false
|
|
21
|
+
} = options?.['ktx2-basis-writer'] || {};
|
|
17
22
|
const {BasisEncoder} = await loadBasisEncoderModule(options);
|
|
18
23
|
const basisEncoder = new BasisEncoder();
|
|
19
24
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
// __VERSION__ is injected by babel-plugin-version-inline
|
|
2
|
-
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
3
|
-
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';
|
|
4
|
-
|
|
5
|
-
// @ts-nocheck
|
|
6
1
|
import {loadLibrary} from '@loaders.gl/worker-utils';
|
|
7
2
|
|
|
8
|
-
const
|
|
9
|
-
|
|
3
|
+
export const BASIS_EXTERNAL_LIBRARIES = {
|
|
4
|
+
/** Basis transcoder, javascript wrapper part */
|
|
5
|
+
TRANSCODER: 'basis_transcoder.js',
|
|
6
|
+
/** Basis transcoder, compiled web assembly part */
|
|
7
|
+
TRANSCODER_WASM: 'basis_transcoder.wasm',
|
|
8
|
+
/** Basis encoder, javascript wrapper part */
|
|
9
|
+
ENCODER: 'basis_encoder.js',
|
|
10
|
+
/** Basis encoder, compiled web assembly part */
|
|
11
|
+
ENCODER_WASM: 'basis_encoder.wasm'
|
|
12
|
+
};
|
|
10
13
|
|
|
11
14
|
let loadBasisTranscoderPromise;
|
|
12
15
|
|
|
@@ -15,13 +18,13 @@ let loadBasisTranscoderPromise;
|
|
|
15
18
|
* @param options
|
|
16
19
|
* @returns {BasisFile} promise
|
|
17
20
|
*/
|
|
18
|
-
export async function
|
|
21
|
+
export async function loadBasisTranscoderModule(options) {
|
|
19
22
|
const modules = options.modules || {};
|
|
20
23
|
if (modules.basis) {
|
|
21
24
|
return modules.basis;
|
|
22
25
|
}
|
|
23
26
|
|
|
24
|
-
loadBasisTranscoderPromise = loadBasisTranscoderPromise ||
|
|
27
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
|
|
25
28
|
return await loadBasisTranscoderPromise;
|
|
26
29
|
}
|
|
27
30
|
|
|
@@ -30,19 +33,19 @@ export async function loadBasisTrascoderModule(options) {
|
|
|
30
33
|
* @param options
|
|
31
34
|
* @returns {BasisFile} promise
|
|
32
35
|
*/
|
|
33
|
-
async function
|
|
36
|
+
async function loadBasisTranscoder(options) {
|
|
34
37
|
let BASIS = null;
|
|
35
38
|
let wasmBinary = null;
|
|
36
39
|
|
|
37
40
|
[BASIS, wasmBinary] = await Promise.all([
|
|
38
|
-
await loadLibrary(
|
|
39
|
-
await loadLibrary(
|
|
41
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'textures', options),
|
|
42
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, 'textures', options)
|
|
40
43
|
]);
|
|
41
44
|
|
|
42
45
|
// Depends on how import happened...
|
|
43
46
|
// @ts-ignore TS2339: Property does not exist on type
|
|
44
47
|
BASIS = BASIS || globalThis.BASIS;
|
|
45
|
-
return await
|
|
48
|
+
return await initializeBasisTranscoderModule(BASIS, wasmBinary);
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
/**
|
|
@@ -51,7 +54,7 @@ async function loadBasisTrascoder(options) {
|
|
|
51
54
|
* @param wasmBinary - wasm part of the module
|
|
52
55
|
* @returns {BasisFile} promise
|
|
53
56
|
*/
|
|
54
|
-
function
|
|
57
|
+
function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
|
|
55
58
|
const options: {wasmBinary?} = {};
|
|
56
59
|
|
|
57
60
|
if (wasmBinary) {
|
|
@@ -95,8 +98,8 @@ async function loadBasisEncoder(options) {
|
|
|
95
98
|
let wasmBinary = null;
|
|
96
99
|
|
|
97
100
|
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
98
|
-
await loadLibrary(
|
|
99
|
-
await loadLibrary(
|
|
101
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, 'textures', options),
|
|
102
|
+
await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'textures', options)
|
|
100
103
|
]);
|
|
101
104
|
|
|
102
105
|
// Depends on how import happened...
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
import {loadLibrary} from '@loaders.gl/worker-utils';
|
|
3
3
|
|
|
4
|
+
export const CRUNCH_EXTERNAL_LIBRARIES = {
|
|
5
|
+
/** Crunch decoder library. It is used as dynamically imported script */
|
|
6
|
+
DECODER: 'crunch.js'
|
|
7
|
+
};
|
|
8
|
+
|
|
4
9
|
/**
|
|
5
10
|
* Load crunch decoder module
|
|
6
11
|
* @param options - loader options
|
|
@@ -27,7 +32,7 @@ async function loadCrunch(options) {
|
|
|
27
32
|
return crunchModule;
|
|
28
33
|
}
|
|
29
34
|
|
|
30
|
-
let loadCrunchDecoder = await loadLibrary(
|
|
35
|
+
let loadCrunchDecoder = await loadLibrary(CRUNCH_EXTERNAL_LIBRARIES.DECODER, 'textures', options);
|
|
31
36
|
|
|
32
37
|
// Depends on how import happened...
|
|
33
38
|
// @ts-ignore TS2339: Property does not exist on type
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable indent */
|
|
2
2
|
import type {TextureLevel} from '@loaders.gl/schema';
|
|
3
|
-
import {loadBasisEncoderModule,
|
|
3
|
+
import {loadBasisEncoderModule, loadBasisTranscoderModule} from './basis-module-loader';
|
|
4
4
|
import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';
|
|
5
5
|
import {getSupportedGPUTextureFormats} from '../utils/texture-formats';
|
|
6
6
|
import {isKTX} from './parse-ktx';
|
|
@@ -86,7 +86,7 @@ export default async function parseBasis(data: ArrayBuffer, options): Promise<Te
|
|
|
86
86
|
const fileConstructors = await loadBasisEncoderModule(options);
|
|
87
87
|
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
88
88
|
}
|
|
89
|
-
const {BasisFile} = await
|
|
89
|
+
const {BasisFile} = await loadBasisTranscoderModule(options);
|
|
90
90
|
return parseBasisFile(BasisFile, data, options);
|
|
91
91
|
}
|
|
92
92
|
switch (options.basis.module) {
|
|
@@ -101,7 +101,7 @@ export default async function parseBasis(data: ArrayBuffer, options): Promise<Te
|
|
|
101
101
|
}
|
|
102
102
|
case 'transcoder':
|
|
103
103
|
default:
|
|
104
|
-
const {BasisFile} = await
|
|
104
|
+
const {BasisFile} = await loadBasisTranscoderModule(options);
|
|
105
105
|
return parseBasisFile(BasisFile, data, options);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -9,7 +9,6 @@ export async function deepLoad(urlTree: unknown, load: Load, options: LoadOption
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export async function shallowLoad(url: string, load: Load, options: LoadOptions): Promise<any> {
|
|
12
|
-
// console.error('loading', url);
|
|
13
12
|
const response = await fetch(url, options.fetch);
|
|
14
13
|
const arrayBuffer = await response.arrayBuffer();
|
|
15
14
|
return await load(arrayBuffer, options);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Polyfills increases the bundle size significantly. Use it for NodeJS worker only
|
|
2
2
|
import '@loaders.gl/polyfills';
|
|
3
3
|
import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';
|
|
4
|
-
import {KTX2BasisWriter} from '../ktx2-basis-writer';
|
|
4
|
+
import {KTX2BasisWriter, KTX2BasisWriterOptions} from '../ktx2-basis-writer';
|
|
5
5
|
|
|
6
6
|
(() => {
|
|
7
7
|
// Check that we are actually in a worker thread
|
|
@@ -14,7 +14,7 @@ import {KTX2BasisWriter} from '../ktx2-basis-writer';
|
|
|
14
14
|
case 'process':
|
|
15
15
|
try {
|
|
16
16
|
const {input, options} = payload;
|
|
17
|
-
const result = await KTX2BasisWriter.encode?.(input, options);
|
|
17
|
+
const result = await KTX2BasisWriter.encode?.(input, options as KTX2BasisWriterOptions);
|
|
18
18
|
WorkerBody.postMessage('done', {result});
|
|
19
19
|
} catch (error) {
|
|
20
20
|
const message = error instanceof Error ? error.message : '';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';
|
|
2
|
-
import {KTX2BasisWriter} from '../ktx2-basis-writer';
|
|
2
|
+
import {KTX2BasisWriter, KTX2BasisWriterOptions} from '../ktx2-basis-writer';
|
|
3
3
|
|
|
4
4
|
(() => {
|
|
5
5
|
// Check that we are actually in a worker thread
|
|
@@ -12,7 +12,7 @@ import {KTX2BasisWriter} from '../ktx2-basis-writer';
|
|
|
12
12
|
case 'process':
|
|
13
13
|
try {
|
|
14
14
|
const {input, options} = payload;
|
|
15
|
-
const result = await KTX2BasisWriter.encode?.(input, options);
|
|
15
|
+
const result = await KTX2BasisWriter.encode?.(input, options as KTX2BasisWriterOptions);
|
|
16
16
|
WorkerBody.postMessage('done', {result});
|
|
17
17
|
} catch (error) {
|
|
18
18
|
const message = error instanceof Error ? error.message : '';
|