From 90cc562f9ce440f2504c782bb8195e6ff2e4d3f0 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Mon, 20 Apr 2020 23:35:43 -0700 Subject: [PATCH] Added WIC_LOADER_FORCE_RGBA32 to WICTextureLoader --- WICTextureLoader/WICTextureLoader.cpp | 7 +++++++ WICTextureLoader/WICTextureLoader.h | 1 + WICTextureLoader/WICTextureLoader12.cpp | 7 +++++++ WICTextureLoader/WICTextureLoader12.h | 1 + 4 files changed, 16 insertions(+) diff --git a/WICTextureLoader/WICTextureLoader.cpp b/WICTextureLoader/WICTextureLoader.cpp index 2d3c4a2..92edcbb 100644 --- a/WICTextureLoader/WICTextureLoader.cpp +++ b/WICTextureLoader/WICTextureLoader.cpp @@ -448,6 +448,13 @@ namespace } #endif + if (loadFlags & WIC_LOADER_FORCE_RGBA32) + { + memcpy_s(&convertGUID, sizeof(WICPixelFormatGUID), &GUID_WICPixelFormat32bppRGBA, sizeof(GUID)); + format = DXGI_FORMAT_R8G8B8A8_UNORM; + bpp = 32; + } + if (!bpp) return E_FAIL; diff --git a/WICTextureLoader/WICTextureLoader.h b/WICTextureLoader/WICTextureLoader.h index f67d3b8..c09c8b9 100644 --- a/WICTextureLoader/WICTextureLoader.h +++ b/WICTextureLoader/WICTextureLoader.h @@ -36,6 +36,7 @@ namespace DirectX WIC_LOADER_DEFAULT = 0, WIC_LOADER_FORCE_SRGB = 0x1, WIC_LOADER_IGNORE_SRGB = 0x2, + WIC_LOADER_FORCE_RGBA32 = 0x4, }; #endif diff --git a/WICTextureLoader/WICTextureLoader12.cpp b/WICTextureLoader/WICTextureLoader12.cpp index 69f7948..a2c99ed 100644 --- a/WICTextureLoader/WICTextureLoader12.cpp +++ b/WICTextureLoader/WICTextureLoader12.cpp @@ -358,6 +358,13 @@ namespace bpp = _WICBitsPerPixel(pixelFormat); } + if (loadFlags & WIC_LOADER_FORCE_RGBA32) + { + memcpy_s(&convertGUID, sizeof(WICPixelFormatGUID), &GUID_WICPixelFormat32bppRGBA, sizeof(GUID)); + format = DXGI_FORMAT_R8G8B8A8_UNORM; + bpp = 32; + } + if (!bpp) return E_FAIL; diff --git a/WICTextureLoader/WICTextureLoader12.h b/WICTextureLoader/WICTextureLoader12.h index 340f72b..fecc343 100644 --- a/WICTextureLoader/WICTextureLoader12.h +++ b/WICTextureLoader/WICTextureLoader12.h @@ -37,6 +37,7 @@ namespace DirectX WIC_LOADER_IGNORE_SRGB = 0x2, WIC_LOADER_MIP_AUTOGEN = 0x4, WIC_LOADER_MIP_RESERVE = 0x8, + WIC_LOADER_FORCE_RGBA32 = 0x10, }; #endif