{"version":3,"file":"loadDDS.mjs","sources":["../../src/loaders/loadDDS.ts"],"sourcesContent":["import { checkExtension, createTexture, LoaderParserPriority } from '@pixi/assets';\nimport { ALPHA_MODES, BaseTexture, extensions, ExtensionType, MIPMAP_MODES, settings, utils } from '@pixi/core';\nimport { parseDDS } from '../parsers';\n\nimport type { Loader, LoaderParser, ResolvedAsset } from '@pixi/assets';\nimport type { IBaseTextureOptions, Texture } from '@pixi/core';\n\n/** Load our DDS textures! */\nexport const loadDDS: LoaderParser = {\n    extension: {\n        type: ExtensionType.LoadParser,\n        priority: LoaderParserPriority.High,\n    },\n\n    name: 'loadDDS',\n\n    test(url: string): boolean\n    {\n        return checkExtension(url, '.dds');\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 resources = parseDDS(arrayBuffer);\n\n        const textures = resources.map((resource) =>\n        {\n            const base = new BaseTexture(resource, {\n                mipmap: MIPMAP_MODES.OFF,\n                alphaMode: ALPHA_MODES.NO_PREMULTIPLIED_ALPHA,\n                resolution: utils.getResolutionOfUrl(url),\n                ...asset.data,\n            });\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(loadDDS);\n"],"names":[],"mappings":";;;;AAQO,MAAM,UAAwB;AAAA,EACjC,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;AAII,UAAM,cAAc,OAFH,MAAM,SAAS,QAAQ,MAAM,GAAG,GAEd,YAAY,GAIzC,WAFY,SAAS,WAAW,EAEX,IAAI,CAAC,aAChC;AACU,YAAA,OAAO,IAAI,YAAY,UAAU;AAAA,QACnC,QAAQ,aAAa;AAAA,QACrB,WAAW,YAAY;AAAA,QACvB,YAAY,MAAM,mBAAmB,GAAG;AAAA,QACxC,GAAG,MAAM;AAAA,MAAA,CACZ;AAEM,aAAA,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;"}