Remove TextureUtils
This commit is contained in:
@@ -679,6 +679,54 @@ Color TextureTool::SampleLinear(const PixelFormatSampler* sampler, const Float2&
|
||||
return Color::Lerp(Color::Lerp(v00, v01, uvFraction.X), Color::Lerp(v10, v11, uvFraction.X), uvFraction.Y);
|
||||
}
|
||||
|
||||
PixelFormat TextureTool::ToPixelFormat(TextureFormatType format, int32 width, int32 height, bool canCompress)
|
||||
{
|
||||
const bool canUseBlockCompression = width % 4 == 0 && height % 4 == 0;
|
||||
if (canCompress && canUseBlockCompression)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case TextureFormatType::ColorRGB:
|
||||
return PixelFormat::BC1_UNorm;
|
||||
case TextureFormatType::ColorRGBA:
|
||||
return PixelFormat::BC3_UNorm;
|
||||
case TextureFormatType::NormalMap:
|
||||
return PixelFormat::BC5_UNorm;
|
||||
case TextureFormatType::GrayScale:
|
||||
return PixelFormat::BC4_UNorm;
|
||||
case TextureFormatType::HdrRGBA:
|
||||
return PixelFormat::BC7_UNorm;
|
||||
case TextureFormatType::HdrRGB:
|
||||
#if PLATFORM_LINUX
|
||||
// TODO: support BC6H compression for Linux Editor
|
||||
return PixelFormat::BC7_UNorm;
|
||||
#else
|
||||
return PixelFormat::BC6H_Uf16;
|
||||
#endif
|
||||
default:
|
||||
return PixelFormat::Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
switch (format)
|
||||
{
|
||||
case TextureFormatType::ColorRGB:
|
||||
return PixelFormat::R8G8B8A8_UNorm;
|
||||
case TextureFormatType::ColorRGBA:
|
||||
return PixelFormat::R8G8B8A8_UNorm;
|
||||
case TextureFormatType::NormalMap:
|
||||
return PixelFormat::R16G16_UNorm;
|
||||
case TextureFormatType::GrayScale:
|
||||
return PixelFormat::R8_UNorm;
|
||||
case TextureFormatType::HdrRGBA:
|
||||
return PixelFormat::R16G16B16A16_Float;
|
||||
case TextureFormatType::HdrRGB:
|
||||
return PixelFormat::R11G11B10_Float;
|
||||
default:
|
||||
return PixelFormat::Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
bool TextureTool::GetImageType(const StringView& path, ImageType& type)
|
||||
{
|
||||
const auto extension = FileSystem::GetExtension(path).ToLower();
|
||||
|
||||
Reference in New Issue
Block a user