d3d9/tests: Add test for checking D3DUSAGE_AUTOGENMIPMAP support.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2017-12-11 10:25:25 +01:00 committed by Alexandre Julliard
parent 6e5df50ac8
commit 0ccc7c09bb
1 changed files with 47 additions and 0 deletions

View File

@ -11497,6 +11497,27 @@ static void test_swapchain_parameters(void)
static void test_check_device_format(void)
{
static const D3DFORMAT adapter_formats[] =
{
D3DFMT_A8R8G8B8,
D3DFMT_X8R8G8B8,
};
static const D3DFORMAT mipmap_autogen_formats[] =
{
D3DFMT_R8G8B8,
D3DFMT_A8R8G8B8,
D3DFMT_X8R8G8B8,
D3DFMT_R5G6B5,
D3DFMT_X1R5G5B5,
D3DFMT_A8P8,
D3DFMT_P8,
D3DFMT_A1R5G5B5,
D3DFMT_A4R4G4B4,
};
D3DFORMAT adapter_format, format;
BOOL render_target_supported;
unsigned int i, j;
IDirect3D9 *d3d;
HRESULT hr;
@ -11538,6 +11559,32 @@ static void test_check_device_format(void)
D3DUSAGE_SOFTWAREPROCESSING, D3DRTYPE_INDEXBUFFER, D3DFMT_INDEX16);
todo_wine ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#x.\n", hr);
for (i = 0; i < ARRAY_SIZE(adapter_formats); ++i)
{
adapter_format = adapter_formats[i];
for (j = 0; j < ARRAY_SIZE(mipmap_autogen_formats); ++j)
{
format = mipmap_autogen_formats[j];
hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, adapter_format,
D3DUSAGE_RENDERTARGET, D3DRTYPE_TEXTURE, format);
ok(hr == D3D_OK || hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr);
render_target_supported = hr == D3D_OK;
hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, adapter_format,
D3DUSAGE_RENDERTARGET | D3DUSAGE_AUTOGENMIPMAP, D3DRTYPE_TEXTURE, format);
if (render_target_supported)
{
ok(hr == D3D_OK || hr == D3DOK_NOAUTOGEN, "Got unexpected hr %#x.\n", hr);
}
else
{
ok(hr == D3DERR_NOTAVAILABLE, "Got unexpected hr %#x.\n", hr);
}
}
}
IDirect3D9_Release(d3d);
}