Skip to content
Snippets Groups Projects
Commit b4d273e7 authored by Ziqing Hui's avatar Ziqing Hui Committed by Alexandre Julliard
Browse files

d3dx10: Introduce get_d3dx10_dds_format().

parent ae415a7d
Branches
Tags
No related merge requests found
......@@ -54,6 +54,18 @@ file_formats[] =
{ &GUID_ContainerFormatWmp, D3DX10_IFF_WMP },
};
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;
......@@ -82,6 +94,18 @@ static D3D10_RESOURCE_DIMENSION wic_dimension_to_d3dx10_dimension(WICDdsDimensio
}
}
static DXGI_FORMAT get_d3dx10_dds_format(DXGI_FORMAT format)
{
unsigned int i;
for (i = 0; i < ARRAY_SIZE(to_be_converted_format); ++i)
{
if (format == to_be_converted_format[i])
return DXGI_FORMAT_R8G8B8A8_UNORM;
}
return format;
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
......@@ -339,7 +363,7 @@ HRESULT WINAPI D3DX10GetImageInfoFromMemory(const void *src_data, SIZE_T src_dat
img_info->Depth = dds_params.Depth;
img_info->MipLevels = dds_params.MipLevels;
img_info->ResourceDimension = wic_dimension_to_d3dx10_dimension(dds_params.Dimension);
img_info->Format = dds_params.DxgiFormat;
img_info->Format = get_d3dx10_dds_format(dds_params.DxgiFormat);
img_info->MiscFlags = 0;
if (dds_params.Dimension == WICDdsTextureCube)
{
......
......@@ -1346,8 +1346,6 @@ static void test_get_image_info(void)
ok(image_info.MiscFlags == test_image[i].expected.MiscFlags,
"Test %u: Got unexpected MiscFlags %#x, expected %#x.\n",
i, image_info.MiscFlags, test_image[i].expected.MiscFlags);
todo_wine_if(test_image[i].expected.ImageFileFormat == D3DX10_IFF_DDS
&& test_image[i].expected.Format == DXGI_FORMAT_R8G8B8A8_UNORM)
ok(image_info.Format == test_image[i].expected.Format,
"Test %u: Got unexpected Format %#x, expected %#x.\n",
i, image_info.Format, test_image[i].expected.Format);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment