From ac022ee78a5235dc64ff33c41f3295fc4e9720d3 Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 18 Oct 2020 17:39:22 +0200 Subject: [PATCH] Add dumping of luminance textures from iwis --- src/ObjCommon/Image/ImageFormat.cpp | 4 ++++ src/ObjCommon/Image/ImageFormat.h | 4 ++++ src/ObjLoading/Image/IwiLoader.cpp | 9 +++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/ObjCommon/Image/ImageFormat.cpp b/src/ObjCommon/Image/ImageFormat.cpp index 477eee1b..69c73da9 100644 --- a/src/ObjCommon/Image/ImageFormat.cpp +++ b/src/ObjCommon/Image/ImageFormat.cpp @@ -143,6 +143,10 @@ const ImageFormatUnsigned ImageFormat::FORMAT_A8(ImageFormatId::A8, DXGI_FORMAT_ const ImageFormatUnsigned ImageFormat::FORMAT_R16_G16_B16_A16_FLOAT(ImageFormatId::R16_G16_B16_A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT, 128, 0, 0, 0, 0, 0, 0, 0, 8); +const ImageFormatUnsigned ImageFormat::FORMAT_R8(ImageFormatId::R8, DXGI_FORMAT_R8_UNORM, + 8, 0, 8, 0, 0, 0, 0, 0, 0); +const ImageFormatUnsigned ImageFormat::FORMAT_R8_A8(ImageFormatId::R8_A8, DXGI_FORMAT_UNKNOWN, + 16, 0, 8, 0, 0, 0, 0, 8, 8); const ImageFormatBlockCompressed ImageFormat::FORMAT_BC1(ImageFormatId::BC1, DXGI_FORMAT_BC1_UNORM, 4, 64); const ImageFormatBlockCompressed ImageFormat::FORMAT_BC2(ImageFormatId::BC2, DXGI_FORMAT_BC2_UNORM, 4, 128); const ImageFormatBlockCompressed ImageFormat::FORMAT_BC3(ImageFormatId::BC3, DXGI_FORMAT_BC3_UNORM, 4, 128); diff --git a/src/ObjCommon/Image/ImageFormat.h b/src/ObjCommon/Image/ImageFormat.h index 66437aa7..bedc6bde 100644 --- a/src/ObjCommon/Image/ImageFormat.h +++ b/src/ObjCommon/Image/ImageFormat.h @@ -12,6 +12,8 @@ enum class ImageFormatId B8_G8_R8_A8, A8, R16_G16_B16_A16_FLOAT, + R8, + R8_A8, BC1, BC2, BC3, @@ -55,6 +57,8 @@ public: static const ImageFormatUnsigned FORMAT_B8_G8_R8_A8; static const ImageFormatUnsigned FORMAT_A8; static const ImageFormatUnsigned FORMAT_R16_G16_B16_A16_FLOAT; //TODO: Float not unsigned + static const ImageFormatUnsigned FORMAT_R8; + static const ImageFormatUnsigned FORMAT_R8_A8; static const ImageFormatBlockCompressed FORMAT_BC1; static const ImageFormatBlockCompressed FORMAT_BC2; static const ImageFormatBlockCompressed FORMAT_BC3; diff --git a/src/ObjLoading/Image/IwiLoader.cpp b/src/ObjLoading/Image/IwiLoader.cpp index 2637303b..8a8a310b 100644 --- a/src/ObjLoading/Image/IwiLoader.cpp +++ b/src/ObjLoading/Image/IwiLoader.cpp @@ -25,8 +25,10 @@ const ImageFormat* IwiLoader::GetFormat8(int8_t format) return &ImageFormat::FORMAT_BC3; case iwi8::IwiFormat::IMG_FORMAT_DXN: return &ImageFormat::FORMAT_BC5; - case iwi8::IwiFormat::IMG_FORMAT_BITMAP_LUMINANCE_ALPHA: // used - case iwi8::IwiFormat::IMG_FORMAT_BITMAP_LUMINANCE: // used + case iwi8::IwiFormat::IMG_FORMAT_BITMAP_LUMINANCE_ALPHA: + return &ImageFormat::FORMAT_R8_A8; + case iwi8::IwiFormat::IMG_FORMAT_BITMAP_LUMINANCE: + return &ImageFormat::FORMAT_R8; case iwi8::IwiFormat::IMG_FORMAT_WAVELET_RGBA: // used case iwi8::IwiFormat::IMG_FORMAT_WAVELET_RGB: // used case iwi8::IwiFormat::IMG_FORMAT_WAVELET_LUMINANCE_ALPHA: @@ -141,8 +143,11 @@ const ImageFormat* IwiLoader::GetFormat27(int8_t format) assert(false); // Unsupported yet return &ImageFormat::FORMAT_R16_G16_B16_A16_FLOAT; case iwi27::IwiFormat::IMG_FORMAT_BITMAP_RGB: + return &ImageFormat::FORMAT_R8_G8_B8; case iwi27::IwiFormat::IMG_FORMAT_BITMAP_LUMINANCE_ALPHA: + return &ImageFormat::FORMAT_R8_A8; case iwi27::IwiFormat::IMG_FORMAT_BITMAP_LUMINANCE: + return &ImageFormat::FORMAT_R8; case iwi27::IwiFormat::IMG_FORMAT_WAVELET_RGBA: case iwi27::IwiFormat::IMG_FORMAT_WAVELET_RGB: case iwi27::IwiFormat::IMG_FORMAT_WAVELET_LUMINANCE_ALPHA: