Files
Foundry-VTT-Docker/resources/app/node_modules/@pixi/compressed-textures/lib/loaders/loadDDS.mjs
2025-01-04 00:34:03 +01:00

35 lines
1.2 KiB
JavaScript

import { LoaderParserPriority, checkExtension, createTexture } from "@pixi/assets";
import { ExtensionType, settings, BaseTexture, MIPMAP_MODES, ALPHA_MODES, utils, extensions } from "@pixi/core";
import "../parsers/index.mjs";
import { parseDDS } from "../parsers/parseDDS.mjs";
const loadDDS = {
extension: {
type: ExtensionType.LoadParser,
priority: LoaderParserPriority.High
},
name: "loadDDS",
test(url) {
return checkExtension(url, ".dds");
},
async load(url, asset, loader) {
const arrayBuffer = await (await settings.ADAPTER.fetch(url)).arrayBuffer(), textures = parseDDS(arrayBuffer).map((resource) => {
const base = new BaseTexture(resource, {
mipmap: MIPMAP_MODES.OFF,
alphaMode: ALPHA_MODES.NO_PREMULTIPLIED_ALPHA,
resolution: utils.getResolutionOfUrl(url),
...asset.data
});
return createTexture(base, loader, url);
});
return textures.length === 1 ? textures[0] : textures;
},
unload(texture) {
Array.isArray(texture) ? texture.forEach((t) => t.destroy(!0)) : texture.destroy(!0);
}
};
extensions.add(loadDDS);
export {
loadDDS
};
//# sourceMappingURL=loadDDS.mjs.map