From c39b87fff86eed6bdf3eb4a4c45d43c56946b3d2 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Thu, 19 Apr 2018 14:30:54 +0300 Subject: [PATCH] d3d9/tests: Add a basic test for default value and limits of max frame latency parameter. Signed-off-by: Nikolay Sivov Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/d3d9/tests/d3d9ex.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/dlls/d3d9/tests/d3d9ex.c b/dlls/d3d9/tests/d3d9ex.c index 77e09c3cee6..7c36e6ee643 100644 --- a/dlls/d3d9/tests/d3d9ex.c +++ b/dlls/d3d9/tests/d3d9ex.c @@ -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(); } -- 2.11.4.GIT