pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
44 lines (40 loc) • 1.24 kB
JavaScript
;
var ktx_worker = require('../../../_virtual/ktx.worker.js');
var setKTXTranscoderPath = require('../utils/setKTXTranscoderPath.js');
;
let ktxWorker;
const urlHash = {};
const errorHash = {};
function getKTX2Worker(supportedTextures) {
if (!ktxWorker) {
ktxWorker = new ktx_worker.default().worker;
ktxWorker.onmessage = (messageEvent) => {
const { err, success, url, textureOptions } = messageEvent.data;
if (err) {
errorHash[url](err);
return;
}
if (!success) {
console.warn("Failed to load KTX texture", url);
}
urlHash[url](textureOptions);
};
ktxWorker.postMessage({
type: "init",
jsUrl: setKTXTranscoderPath.ktxTranscoderUrls.jsUrl,
wasmUrl: setKTXTranscoderPath.ktxTranscoderUrls.wasmUrl,
supportedTextures
});
}
return ktxWorker;
}
function loadKTX2onWorker(url, supportedTextures) {
const ktxWorker2 = getKTX2Worker(supportedTextures);
return new Promise((resolve, reject) => {
urlHash[url] = resolve;
errorHash[url] = reject;
ktxWorker2.postMessage({ type: "load", url });
});
}
exports.loadKTX2onWorker = loadKTX2onWorker;
//# sourceMappingURL=loadKTX2onWorker.js.map