{"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\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,CAAA;AACJ,MAAM,UAAgD,EAAC,CAAA;AAEvD,SAAS,eAAe,iBACxB,EAAA;AACI,EAAA,IAAI,CAAC,WACL,EAAA;AACI,IAAc,WAAA,GAAA,IAAIA,gBAAc,CAAA,MAAA,CAAA;AAEhC,IAAY,WAAA,CAAA,SAAA,GAAY,CAAC,YACzB,KAAA;AACI,MAAA,MAAM,EAAE,OAAA,EAAS,GAAK,EAAA,cAAA,KAAmB,YAAa,CAAA,IAAA,CAAA;AAEtD,MAAA,IAAI,CAAC,OACL,EAAA;AACI,QAAQ,OAAA,CAAA,IAAA,CAAK,gCAAgC,GAAG,CAAA,CAAA;AAAA,OACpD;AAEA,MAAQ,OAAA,CAAA,GAAG,EAAE,cAAc,CAAA,CAAA;AAAA,KAC/B,CAAA;AAEA,IAAA,WAAA,CAAY,WAAY,CAAA;AAAA,MACpB,IAAM,EAAA,MAAA;AAAA,MACN,OAAO,mBAAoB,CAAA,KAAA;AAAA,MAC3B,SAAS,mBAAoB,CAAA,OAAA;AAAA,MAC7B,iBAAA;AAAA,KACH,CAAA,CAAA;AAAA,GACL;AAEA,EAAO,OAAA,WAAA,CAAA;AACX,CAAA;AAEgB,SAAA,iBAAA,CACZ,KACA,iBAEJ,EAAA;AACI,EAAM,MAAA,SAAA,GAAY,eAAe,iBAAiB,CAAA,CAAA;AAElD,EAAO,OAAA,IAAI,OAAQ,CAAA,CAAC,OACpB,KAAA;AACI,IAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,OAAA,CAAA;AAEf,IAAA,SAAA,CAAU,WAAY,CAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,KAAK,CAAA,CAAA;AAAA,GAC9C,CAAA,CAAA;AACL;;;;"}