{"version":3,"file":"loadBasisOnWorker.mjs","sources":["../../../../src/compressed-textures/basis/worker/loadBasisOnWorker.ts"],"sourcesContent":["import BasisWorker from 'worker:./basis.worker.ts';\nimport { basisTranscoderUrls } from '../utils/setBasisTranscoderPath';\n\nimport type { TEXTURE_FORMATS } from '../../../rendering/renderers/shared/texture/const';\nimport type { TextureSourceOptions } from '../../../rendering/renderers/shared/texture/sources/TextureSource';\n\nlet basisWorker: Worker;\nconst urlHash: Record<string, (value: any) => void> = {};\n\nfunction getBasisWorker(supportedTextures: TEXTURE_FORMATS[]): Worker\n{\n    if (!basisWorker)\n    {\n        basisWorker = new BasisWorker().worker;\n\n        basisWorker.onmessage = (messageEvent) =>\n        {\n            const { success, url, textureOptions } = messageEvent.data;\n\n            if (!success)\n            {\n                console.warn('Failed to load Basis texture', url);\n            }\n\n            urlHash[url](textureOptions);\n        };\n\n        basisWorker.postMessage({\n            type: 'init',\n            jsUrl: basisTranscoderUrls.jsUrl,\n            wasmUrl: basisTranscoderUrls.wasmUrl,\n            supportedTextures\n        });\n    }\n\n    return basisWorker;\n}\n\n/**\n * @param url\n * @param supportedTextures\n * @internal\n */\nexport function loadBasisOnWorker(\n    url: string,\n    supportedTextures: TEXTURE_FORMATS[]\n): Promise<TextureSourceOptions>\n{\n    const ktxWorker = getBasisWorker(supportedTextures);\n\n    return new Promise((resolve) =>\n    {\n        urlHash[url] = resolve;\n\n        ktxWorker.postMessage({ type: 'load', url });\n    });\n}\n"],"names":["BasisWorker"],"mappings":";;;;AAMA,IAAI,WAAA;AACJ,MAAM,UAAgD,EAAC;AAEvD,SAAS,eAAe,iBAAA,EACxB;AACI,EAAA,IAAI,CAAC,WAAA,EACL;AACI,IAAA,WAAA,GAAc,IAAIA,gBAAY,CAAE,MAAA;AAEhC,IAAA,WAAA,CAAY,SAAA,GAAY,CAAC,YAAA,KACzB;AACI,MAAA,MAAM,EAAE,OAAA,EAAS,GAAA,EAAK,cAAA,KAAmB,YAAA,CAAa,IAAA;AAEtD,MAAA,IAAI,CAAC,OAAA,EACL;AACI,QAAA,OAAA,CAAQ,IAAA,CAAK,gCAAgC,GAAG,CAAA;AAAA,MACpD;AAEA,MAAA,OAAA,CAAQ,GAAG,EAAE,cAAc,CAAA;AAAA,IAC/B,CAAA;AAEA,IAAA,WAAA,CAAY,WAAA,CAAY;AAAA,MACpB,IAAA,EAAM,MAAA;AAAA,MACN,OAAO,mBAAA,CAAoB,KAAA;AAAA,MAC3B,SAAS,mBAAA,CAAoB,OAAA;AAAA,MAC7B;AAAA,KACH,CAAA;AAAA,EACL;AAEA,EAAA,OAAO,WAAA;AACX;AAOO,SAAS,iBAAA,CACZ,KACA,iBAAA,EAEJ;AACI,EAAA,MAAM,SAAA,GAAY,eAAe,iBAAiB,CAAA;AAElD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KACpB;AACI,IAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,OAAA;AAEf,IAAA,SAAA,CAAU,WAAA,CAAY,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAK,CAAA;AAAA,EAC/C,CAAC,CAAA;AACL;;;;"}