@kibeo/loaders.gl-textures
Version:
Framework-independent loaders for compressed and super compressed (basis) textures
127 lines (102 loc) • 3.74 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.loadBasisModule = loadBasisModule;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _loaders = require("@kibeo/loaders.gl-worker-utils");
var loadBasisPromise;
function loadBasisModule(_x) {
return _loadBasisModule.apply(this, arguments);
}
function _loadBasisModule() {
_loadBasisModule = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
var modules;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
modules = options.modules || {};
if (!modules.basis) {
_context.next = 3;
break;
}
return _context.abrupt("return", modules.basis);
case 3:
loadBasisPromise = loadBasisPromise || loadBasis(options);
_context.next = 6;
return loadBasisPromise;
case 6:
return _context.abrupt("return", _context.sent);
case 7:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return _loadBasisModule.apply(this, arguments);
}
function loadBasis(_x2) {
return _loadBasis.apply(this, arguments);
}
function _loadBasis() {
_loadBasis = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(options) {
var BASIS, wasmBinary, _yield$Promise$all, _yield$Promise$all2;
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
BASIS = null;
wasmBinary = null;
_context2.t0 = Promise;
_context2.next = 5;
return (0, _loaders.loadLibrary)('basis_transcoder.js', 'textures', options);
case 5:
_context2.t1 = _context2.sent;
_context2.next = 8;
return (0, _loaders.loadLibrary)('basis_transcoder.wasm', 'textures', options);
case 8:
_context2.t2 = _context2.sent;
_context2.t3 = [_context2.t1, _context2.t2];
_context2.next = 12;
return _context2.t0.all.call(_context2.t0, _context2.t3);
case 12:
_yield$Promise$all = _context2.sent;
_yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 2);
BASIS = _yield$Promise$all2[0];
wasmBinary = _yield$Promise$all2[1];
BASIS = BASIS || globalThis.BASIS;
_context2.next = 19;
return initializeBasisModule(BASIS, wasmBinary);
case 19:
return _context2.abrupt("return", _context2.sent);
case 20:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return _loadBasis.apply(this, arguments);
}
function initializeBasisModule(BasisModule, wasmBinary) {
var options = {};
if (wasmBinary) {
options.wasmBinary = wasmBinary;
}
return new Promise(function (resolve) {
BasisModule(options).then(function (module) {
var BasisFile = module.BasisFile,
initializeBasis = module.initializeBasis;
initializeBasis();
resolve({
BasisFile: BasisFile
});
});
});
}
//# sourceMappingURL=basis-module-loader.js.map