@kibeo/loaders.gl-textures
Version:
Framework-independent loaders for compressed and super compressed (basis) textures
42 lines (36 loc) • 1.1 kB
JavaScript
import { loadLibrary } from '@kibeo/loaders.gl-worker-utils';
let loadBasisPromise;
export async function loadBasisModule(options) {
const modules = options.modules || {};
if (modules.basis) {
return modules.basis;
}
loadBasisPromise = loadBasisPromise || loadBasis(options);
return await loadBasisPromise;
}
async function loadBasis(options) {
let BASIS = null;
let wasmBinary = null;
[BASIS, wasmBinary] = await Promise.all([await loadLibrary('basis_transcoder.js', 'textures', options), await loadLibrary('basis_transcoder.wasm', 'textures', options)]);
BASIS = BASIS || globalThis.BASIS;
return await initializeBasisModule(BASIS, wasmBinary);
}
function initializeBasisModule(BasisModule, wasmBinary) {
const options = {};
if (wasmBinary) {
options.wasmBinary = wasmBinary;
}
return new Promise(resolve => {
BasisModule(options).then(module => {
const {
BasisFile,
initializeBasis
} = module;
initializeBasis();
resolve({
BasisFile
});
});
});
}
//# sourceMappingURL=basis-module-loader.js.map