1 line
3.3 KiB
Plaintext
1 line
3.3 KiB
Plaintext
{"version":3,"file":"loadKTX.mjs","sources":["../../src/loaders/loadKTX.ts"],"sourcesContent":["import { checkExtension, createTexture, LoaderParserPriority } from '@pixi/assets';\nimport { ALPHA_MODES, BaseTexture, extensions, ExtensionType, MIPMAP_MODES, settings, utils } from '@pixi/core';\nimport { parseKTX } from '../parsers';\n\nimport type { Loader, LoaderParser, ResolvedAsset } from '@pixi/assets';\nimport type { IBaseTextureOptions, Texture } from '@pixi/core';\n\n/** Loads KTX textures! */\nexport const loadKTX = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\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 // get an array buffer...\n const response = await settings.ADAPTER.fetch(url);\n\n const arrayBuffer = await response.arrayBuffer();\n\n const { compressed, uncompressed, kvData } = parseKTX(url, arrayBuffer);\n\n const resources = compressed ?? uncompressed;\n\n const options = {\n mipmap: MIPMAP_MODES.OFF,\n alphaMode: ALPHA_MODES.NO_PREMULTIPLIED_ALPHA,\n resolution: utils.getResolutionOfUrl(url),\n ...asset.data,\n };\n\n const textures = resources.map((resource) =>\n {\n if (resources === uncompressed)\n {\n Object.assign(options, {\n type: (resource as typeof uncompressed[0]).type,\n format: (resource as typeof uncompressed[0]).format,\n });\n }\n\n const res = (resource as typeof uncompressed[0]).resource ?? (resource as typeof compressed[0]);\n\n const base = new BaseTexture(res, options);\n\n base.ktxKeyValueData = kvData;\n\n return createTexture(base, loader, url);\n });\n\n return textures.length === 1 ? textures[0] : textures;\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} as LoaderParser<Texture | Texture[], IBaseTextureOptions>;\n\nextensions.add(loadKTX);\n"],"names":[],"mappings":";;;;AAQO,MAAM,UAAU;AAAA,EACnB,WAAW;AAAA,IACP,MAAM,cAAc;AAAA,IACpB,UAAU,qBAAqB;AAAA,EACnC;AAAA,EAEA,MAAM;AAAA,EAEN,KAAK,KACL;AACW,WAAA,eAAe,KAAK,MAAM;AAAA,EACrC;AAAA,EAEA,MAAM,KAAK,KAAa,OAAsB,QAC9C;AAIU,UAAA,cAAc,OAFH,MAAM,SAAS,QAAQ,MAAM,GAAG,GAEd,YAAA,GAE7B,EAAE,YAAY,cAAc,OAAA,IAAW,SAAS,KAAK,WAAW,GAEhE,YAAY,cAAc,cAE1B,UAAU;AAAA,MACZ,QAAQ,aAAa;AAAA,MACrB,WAAW,YAAY;AAAA,MACvB,YAAY,MAAM,mBAAmB,GAAG;AAAA,MACxC,GAAG,MAAM;AAAA,IAGP,GAAA,WAAW,UAAU,IAAI,CAAC,aAChC;AACQ,oBAAc,gBAEd,OAAO,OAAO,SAAS;AAAA,QACnB,MAAO,SAAoC;AAAA,QAC3C,QAAS,SAAoC;AAAA,MAAA,CAChD;AAGC,YAAA,MAAO,SAAoC,YAAa,UAExD,OAAO,IAAI,YAAY,KAAK,OAAO;AAEzC,aAAA,KAAK,kBAAkB,QAEhB,cAAc,MAAM,QAAQ,GAAG;AAAA,IAAA,CACzC;AAED,WAAO,SAAS,WAAW,IAAI,SAAS,CAAC,IAAI;AAAA,EACjD;AAAA,EAEA,OAAO,SACP;AACQ,UAAM,QAAQ,OAAO,IAErB,QAAQ,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAI,CAAC,IAItC,QAAQ,QAAQ,EAAI;AAAA,EAE5B;AAEJ;AAEA,WAAW,IAAI,OAAO;"} |