From: Józef Kucia Subject: [PATCH 7/7] d3d9/tests: Add test for surface format gamma correction query. Message-Id: <1454681293-4405-7-git-send-email-jkucia@codeweavers.com> Date: Fri, 5 Feb 2016 15:08:13 +0100 In-Reply-To: <1454681293-4405-1-git-send-email-jkucia@codeweavers.com> References: <1454681293-4405-1-git-send-email-jkucia@codeweavers.com> Signed-off-by: Józef Kucia --- The test makes assumption that if gamma correction is supported for a texture it should be supported for a surface with the same pixel format. It seems like a reasonable assumption to me. However, I cannot ensure it is always true. --- dlls/d3d9/tests/device.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 2f91efb..5bf7121 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -10743,6 +10743,32 @@ static void test_swapchain_parameters(void) DestroyWindow(window); } +static void test_check_device_format(void) +{ + IDirect3D9 *d3d; + HRESULT hr; + + d3d = Direct3DCreate9(D3D_SDK_VERSION); + ok(!!d3d, "Failed to create a D3D object.\n"); + + if (IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, + D3DFMT_X8R8G8B8, D3DUSAGE_QUERY_SRGBWRITE, D3DRTYPE_TEXTURE, D3DFMT_A8R8G8B8) != D3D_OK) + { + skip("D3DFMT_A8R8G8B8 textures with SRGBWRITE not supported.\n"); + } + else + { + hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, + D3DFMT_X8R8G8B8, D3DUSAGE_RENDERTARGET | D3DUSAGE_QUERY_SRGBWRITE, D3DRTYPE_SURFACE, D3DFMT_A8R8G8B8); + ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); + hr = IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, + D3DFMT_X8R8G8B8, D3DUSAGE_QUERY_SRGBWRITE, D3DRTYPE_SURFACE, D3DFMT_A8R8G8B8); + ok(FAILED(hr), "Got unexpected hr %#x.\n", hr); + } + + IDirect3D9_Release(d3d); +} + START_TEST(device) { WNDCLASSA wc = {0}; @@ -10856,6 +10882,7 @@ START_TEST(device) test_lost_device(); test_resource_priority(); test_swapchain_parameters(); + test_check_device_format(); UnregisterClassA("d3d9_test_wc", GetModuleHandleA(NULL)); } -- 2.4.10