pixi.js
Version:
PixiJS — The HTML5 Creation Engine =============
36 lines (33 loc) • 1.03 kB
JavaScript
import WorkerInstance from '../../../_virtual/ktx.worker.mjs';
import { ktxTranscoderUrls } from '../utils/setKTXTranscoderPath.mjs';
;
let ktxWorker;
const urlHash = {};
function getKTX2Worker(supportedTextures) {
if (!ktxWorker) {
ktxWorker = new WorkerInstance().worker;
ktxWorker.onmessage = (messageEvent) => {
const { success, url, textureOptions } = messageEvent.data;
if (!success) {
console.warn("Failed to load KTX texture", url);
}
urlHash[url](textureOptions);
};
ktxWorker.postMessage({
type: "init",
jsUrl: ktxTranscoderUrls.jsUrl,
wasmUrl: ktxTranscoderUrls.wasmUrl,
supportedTextures
});
}
return ktxWorker;
}
function loadKTX2onWorker(url, supportedTextures) {
const ktxWorker2 = getKTX2Worker(supportedTextures);
return new Promise((resolve) => {
urlHash[url] = resolve;
ktxWorker2.postMessage({ type: "load", url });
});
}
export { loadKTX2onWorker };
//# sourceMappingURL=loadKTX2onWorker.mjs.map