d3dx10: Map DXGI_FORMAT_R16_UNORM to DXGI_FORMAT_R16G16B16A16_UNORM in get_d3dx10_dds_format().
This commit is contained in:
parent
2d9b61d039
commit
9e9f3703b2
2 changed files with 22 additions and 15 deletions
|
@ -2929,6 +2929,7 @@ static void test_get_image_info(void)
|
|||
check_dds_pixel_format(DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0, DXGI_FORMAT_R8G8B8A8_UNORM);
|
||||
check_dds_pixel_format(DDS_PF_RGB, 0, 32, 0x0000ffff, 0xffff0000, 0, 0, DXGI_FORMAT_R16G16_UNORM);
|
||||
check_dds_pixel_format(DDS_PF_LUMINANCE, 0, 8, 0xff, 0, 0, 0, DXGI_FORMAT_R8G8B8A8_UNORM);
|
||||
check_dds_pixel_format(DDS_PF_LUMINANCE, 0, 16, 0xffff, 0, 0, 0, DXGI_FORMAT_R16G16B16A16_UNORM);
|
||||
check_dds_pixel_format(DDS_PF_LUMINANCE | DDS_PF_ALPHA, 0, 16, 0x00ff, 0, 0, 0xff00, DXGI_FORMAT_R8G8B8A8_UNORM);
|
||||
check_dds_pixel_format(DDS_PF_LUMINANCE | DDS_PF_ALPHA, 0, 8, 0x0f, 0, 0, 0xf0, DXGI_FORMAT_R8G8B8A8_UNORM);
|
||||
|
||||
|
|
|
@ -71,18 +71,6 @@ wic_pixel_formats[] =
|
|||
{ &GUID_WICPixelFormat128bppRGBAFloat, DXGI_FORMAT_R32G32B32A32_FLOAT }
|
||||
};
|
||||
|
||||
static const DXGI_FORMAT to_be_converted_format[] =
|
||||
{
|
||||
DXGI_FORMAT_UNKNOWN,
|
||||
DXGI_FORMAT_R8_UNORM,
|
||||
DXGI_FORMAT_R8G8_UNORM,
|
||||
DXGI_FORMAT_B5G6R5_UNORM,
|
||||
DXGI_FORMAT_B4G4R4A4_UNORM,
|
||||
DXGI_FORMAT_B5G5R5A1_UNORM,
|
||||
DXGI_FORMAT_B8G8R8X8_UNORM,
|
||||
DXGI_FORMAT_B8G8R8A8_UNORM
|
||||
};
|
||||
|
||||
static D3DX10_IMAGE_FILE_FORMAT wic_container_guid_to_file_format(GUID *container_format)
|
||||
{
|
||||
unsigned int i;
|
||||
|
@ -260,12 +248,30 @@ static unsigned int get_bpp_from_format(DXGI_FORMAT format)
|
|||
|
||||
static DXGI_FORMAT get_d3dx10_dds_format(DXGI_FORMAT format)
|
||||
{
|
||||
static const struct
|
||||
{
|
||||
DXGI_FORMAT src;
|
||||
DXGI_FORMAT dst;
|
||||
}
|
||||
format_map[] =
|
||||
{
|
||||
{DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_R8G8B8A8_UNORM},
|
||||
{DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM},
|
||||
{DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM},
|
||||
{DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM},
|
||||
{DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM},
|
||||
{DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM},
|
||||
{DXGI_FORMAT_B8G8R8X8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM},
|
||||
{DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM},
|
||||
{DXGI_FORMAT_R16_UNORM, DXGI_FORMAT_R16G16B16A16_UNORM},
|
||||
};
|
||||
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(to_be_converted_format); ++i)
|
||||
for (i = 0; i < ARRAY_SIZE(format_map); ++i)
|
||||
{
|
||||
if (format == to_be_converted_format[i])
|
||||
return DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
if (format == format_map[i].src)
|
||||
return format_map[i].dst;
|
||||
}
|
||||
return format;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue