Module: wine Branch: master Commit: c39b87fff86eed6bdf3eb4a4c45d43c56946b3d2 URL: https://source.winehq.org/git/wine.git/?a=commit;h=c39b87fff86eed6bdf3eb4a4c...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu Apr 19 14:30:54 2018 +0300
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
---
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 77e09c3..7c36e6e 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(); }