#include "AssetDumperGfxImage.h" #include #include "ObjWriting.h" #include "Image/IwiWriter27.h" #include "Image/DdsWriter.h" using namespace T5; AssetDumperGfxImage::AssetDumperGfxImage() { switch (ObjWriting::Configuration.ImageOutputFormat) { case ObjWriting::Configuration_t::ImageOutputFormat_e::DDS: m_writer = std::make_unique(); break; case ObjWriting::Configuration_t::ImageOutputFormat_e::IWI: m_writer = std::make_unique(); break; default: assert(false); m_writer = nullptr; break; } } bool AssetDumperGfxImage::ShouldDump(XAssetInfo* asset) { const auto* image = asset->Asset(); return image->loadedSize > 0; } bool AssetDumperGfxImage::CanDumpAsRaw() { return true; } std::string AssetDumperGfxImage::GetFileNameForAsset(Zone* zone, XAssetInfo* asset) { return "images/" + asset->m_name + m_writer->GetFileExtension(); } void AssetDumperGfxImage::DumpRaw(AssetDumpingContext& context, XAssetInfo* asset, std::ostream& stream) { const auto* image = asset->Asset(); m_writer->DumpImage(stream, image->texture.texture); }