Upgrade Utility

This commit is contained in:
Jérôme Leclercq
2021-05-24 19:10:53 +02:00
parent b936946154
commit cce32a64d4
120 changed files with 2328 additions and 2971 deletions

View File

@@ -15,36 +15,36 @@ namespace Nz
{
using FormatHandler = bool(*)(const Image& image, const ImageParams& parameters, Stream& stream);
std::map<std::string, FormatHandler> s_formatHandlers;
std::map<std::string_view, FormatHandler> s_formatHandlers;
int ConvertToFloatFormat(Image& image)
{
switch (image.GetFormat())
{
case PixelFormat_R32F:
case PixelFormat::R32F:
return 1;
case PixelFormat_RG32F:
case PixelFormat::RG32F:
return 2;
case PixelFormat_RGB32F:
case PixelFormat::RGB32F:
return 3;
case PixelFormat_RGBA32F:
case PixelFormat::RGBA32F:
return 4;
default:
{
if (PixelFormatInfo::HasAlpha(image.GetFormat()))
{
if (!image.Convert(PixelFormat_RGBA32F))
if (!image.Convert(PixelFormat::RGBA32F))
break;
return 4;
}
else
{
if (!image.Convert(PixelFormat_RGB32F))
if (!image.Convert(PixelFormat::RGB32F))
break;
return 3;
@@ -59,32 +59,32 @@ namespace Nz
{
switch (image.GetFormat())
{
case PixelFormat_L8:
case PixelFormat_R8:
case PixelFormat::L8:
case PixelFormat::R8:
return 1;
case PixelFormat_LA8:
case PixelFormat_RG8:
case PixelFormat::LA8:
case PixelFormat::RG8:
return 2;
case PixelFormat_RGB8:
case PixelFormat::RGB8:
return 3;
case PixelFormat_RGBA8:
case PixelFormat::RGBA8:
return 4;
default:
{
if (PixelFormatInfo::HasAlpha(image.GetFormat()))
{
if (!image.Convert(PixelFormat_RGBA8))
if (!image.Convert(PixelFormat::RGBA8))
break;
return 4;
}
else
{
if (!image.Convert(PixelFormat_RGB8))
if (!image.Convert(PixelFormat::RGB8))
break;
return 3;
@@ -102,7 +102,7 @@ namespace Nz
throw std::runtime_error("Failed to write to stream");
}
bool FormatQuerier(const std::string& extension)
bool FormatQuerier(const std::string_view& extension)
{
return s_formatHandlers.find(extension) != s_formatHandlers.end();
}
@@ -118,9 +118,9 @@ namespace Nz
}
ImageType type = image.GetType();
if (type != ImageType_1D && type != ImageType_2D)
if (type != ImageType::E1D && type != ImageType::E2D)
{
NazaraError("Image type 0x" + NumberToString(type, 16) + " is not in a supported format");
NazaraError("Image type 0x" + NumberToString(UnderlyingCast(type), 16) + " is not in a supported format");
return false;
}
@@ -262,22 +262,20 @@ namespace Nz
namespace Loaders
{
void RegisterSTBSaver()
ImageSaver::Entry GetImageSaver_STB()
{
s_formatHandlers["bmp"] = &SaveBMP;
s_formatHandlers["hdr"] = &SaveHDR;
s_formatHandlers["jpg"] = &SaveJPEG;
s_formatHandlers["bmp"] = &SaveBMP;
s_formatHandlers["hdr"] = &SaveHDR;
s_formatHandlers["jpg"] = &SaveJPEG;
s_formatHandlers["jpeg"] = &SaveJPEG;
s_formatHandlers["png"] = &SavePNG;
s_formatHandlers["tga"] = &SaveTGA;
s_formatHandlers["png"] = &SavePNG;
s_formatHandlers["tga"] = &SaveTGA;
ImageSaver::RegisterSaver(FormatQuerier, SaveToStream);
}
ImageSaver::Entry entry;
entry.formatSupport = FormatQuerier;
entry.streamSaver = SaveToStream;
void UnregisterSTBSaver()
{
ImageSaver::UnregisterSaver(FormatQuerier, SaveToStream);
s_formatHandlers.clear();
return entry;
}
}
}