1 line
3.1 KiB
Plaintext
1 line
3.1 KiB
Plaintext
{"version":3,"file":"loadKTX.mjs","sources":["../../../src/compressed-textures/ktx/loadKTX.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { parseKTX } from './parseKTX';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX textures! */\nexport const loadKTX = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadKTX',\n },\n\n name: 'loadKTX',\n\n test(url: string): boolean\n {\n return checkExtension(url, '.ktx');\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const ktxResponse = await fetch(url);\n\n const ktxArrayBuffer = await ktxResponse.arrayBuffer();\n\n const textureOptions = parseKTX(ktxArrayBuffer, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n unload(texture: Texture | Texture[]): void\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n\n"],"names":[],"mappings":";;;;;;;;;AAeO,MAAM,OAAU,GAAA;AAAA,EACnB,SAAW,EAAA;AAAA,IACP,MAAM,aAAc,CAAA,UAAA;AAAA,IACpB,UAAU,oBAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,SAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAO,OAAA,cAAA,CAAe,KAAK,MAAM,CAAA,CAAA;AAAA,GACrC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAM,0BAA2B,EAAA,CAAA;AAE3D,IAAM,MAAA,WAAA,GAAc,MAAM,KAAA,CAAM,GAAG,CAAA,CAAA;AAEnC,IAAM,MAAA,cAAA,GAAiB,MAAM,WAAA,CAAY,WAAY,EAAA,CAAA;AAErD,IAAM,MAAA,cAAA,GAAiB,QAAS,CAAA,cAAA,EAAgB,iBAAiB,CAAA,CAAA;AAEjE,IAAM,MAAA,uBAAA,GAA0B,IAAI,gBAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAA,aAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"} |