d3d9/tests: Add a basic test for default value and limits of max frame latency parameter.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
Nikolay Sivov 2018-04-19 14:30:54 +03:00 committed by Alexandre Julliard
parent f7926c0793
commit c39b87fff8
1 changed files with 50 additions and 0 deletions

View File

@ -4043,6 +4043,55 @@ static void test_device_caps(void)
DestroyWindow(window);
}
static void test_frame_latency(void)
{
IDirect3DDevice9Ex *device;
ULONG refcount;
UINT latency;
HWND window;
HRESULT hr;
window = create_window();
if (!(device = create_device(window, NULL)))
{
skip("Failed to create a D3D device.\n");
DestroyWindow(window);
return;
}
hr = IDirect3DDevice9Ex_GetMaximumFrameLatency(device, &latency);
todo_wine {
ok(SUCCEEDED(hr), "Failed to get max frame latency, hr %#x.\n", hr);
ok(latency == 3, "Unexpected default max frame latency %u.\n", latency);
}
hr = IDirect3DDevice9Ex_SetMaximumFrameLatency(device, 1);
ok(SUCCEEDED(hr), "Failed to set max frame latency, hr %#x.\n", hr);
hr = IDirect3DDevice9Ex_GetMaximumFrameLatency(device, &latency);
todo_wine {
ok(SUCCEEDED(hr), "Failed to get max frame latency, hr %#x.\n", hr);
ok(latency == 1, "Unexpected max frame latency %u.\n", latency);
}
hr = IDirect3DDevice9Ex_SetMaximumFrameLatency(device, 0);
ok(SUCCEEDED(hr), "Failed to set max frame latency, hr %#x.\n", hr);
hr = IDirect3DDevice9Ex_GetMaximumFrameLatency(device, &latency);
todo_wine {
ok(SUCCEEDED(hr), "Failed to get max frame latency, hr %#x.\n", hr);
ok(latency == 3, "Unexpected default max frame latency %u.\n", latency);
}
hr = IDirect3DDevice9Ex_SetMaximumFrameLatency(device, 30);
ok(SUCCEEDED(hr), "Failed to set max frame latency, hr %#x.\n", hr);
hr = IDirect3DDevice9Ex_SetMaximumFrameLatency(device, 31);
todo_wine
ok(hr == D3DERR_INVALIDCALL, "Unexpected hr %#x.\n", hr);
refcount = IDirect3DDevice9Ex_Release(device);
ok(!refcount, "Device has %u references left.\n", refcount);
DestroyWindow(window);
}
START_TEST(d3d9ex)
{
DEVMODEW current_mode;
@ -4093,4 +4142,5 @@ START_TEST(d3d9ex)
test_backbuffer_resize();
test_format_unknown();
test_device_caps();
test_frame_latency();
}