Stefan Dösinger : d3d8: Accept D3DSWAPEFFECT_COPY_VSYNC.
Module: wine Branch: master Commit: 6b8564d629551e2f5cfd5aeb013a271d76fd2c1a URL: http://source.winehq.org/git/wine.git/?a=commit;h=6b8564d629551e2f5cfd5aeb01... Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Mon Sep 28 21:02:10 2015 +0200 d3d8: Accept D3DSWAPEFFECT_COPY_VSYNC. Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com> --- dlls/d3d8/device.c | 5 +++-- dlls/d3d8/tests/device.c | 48 ++++++++++++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index e899b34..c6e34ef 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -191,13 +191,14 @@ static void present_parameters_from_wined3d_swapchain_desc(D3DPRESENT_PARAMETERS static BOOL wined3d_swapchain_desc_from_present_parameters(struct wined3d_swapchain_desc *swapchain_desc, const D3DPRESENT_PARAMETERS *present_parameters) { - if (!present_parameters->SwapEffect || present_parameters->SwapEffect > D3DSWAPEFFECT_COPY) + if (!present_parameters->SwapEffect || present_parameters->SwapEffect > D3DSWAPEFFECT_COPY_VSYNC) { WARN("Invalid swap effect %u passed.\n", present_parameters->SwapEffect); return FALSE; } if (present_parameters->BackBufferCount > 3 - || (present_parameters->SwapEffect == D3DSWAPEFFECT_COPY + || ((present_parameters->SwapEffect == D3DSWAPEFFECT_COPY + || present_parameters->SwapEffect == D3DSWAPEFFECT_COPY_VSYNC) && present_parameters->BackBufferCount > 1)) { WARN("Invalid backbuffer count %u.\n", present_parameters->BackBufferCount); diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c index cb7f5e1..ccc16c6 100644 --- a/dlls/d3d8/tests/device.c +++ b/dlls/d3d8/tests/device.c @@ -7309,36 +7309,44 @@ static void test_swapchain_parameters(void) tests[] = { /* Swap effect 0 is not allowed. */ - {TRUE, 1, 0, D3DERR_INVALIDCALL}, - {FALSE, 1, 0, D3DERR_INVALIDCALL}, + {TRUE, 1, 0, D3DERR_INVALIDCALL}, + {FALSE, 1, 0, D3DERR_INVALIDCALL}, /* All (non-ex) swap effects are allowed in * windowed and fullscreen mode. */ - {TRUE, 1, D3DSWAPEFFECT_DISCARD, D3D_OK}, - {TRUE, 1, D3DSWAPEFFECT_FLIP, D3D_OK}, - {FALSE, 1, D3DSWAPEFFECT_DISCARD, D3D_OK}, - {FALSE, 1, D3DSWAPEFFECT_FLIP, D3D_OK}, - {FALSE, 1, D3DSWAPEFFECT_COPY, D3D_OK}, + {TRUE, 1, D3DSWAPEFFECT_DISCARD, D3D_OK}, + {TRUE, 1, D3DSWAPEFFECT_FLIP, D3D_OK}, + {FALSE, 1, D3DSWAPEFFECT_DISCARD, D3D_OK}, + {FALSE, 1, D3DSWAPEFFECT_FLIP, D3D_OK}, + {FALSE, 1, D3DSWAPEFFECT_COPY, D3D_OK}, /* Only one backbuffer in copy mode. Reset allows it for * some reason. */ - {TRUE, 0, D3DSWAPEFFECT_COPY, D3D_OK}, - {TRUE, 1, D3DSWAPEFFECT_COPY, D3D_OK}, - {TRUE, 2, D3DSWAPEFFECT_COPY, D3DERR_INVALIDCALL}, - {FALSE, 2, D3DSWAPEFFECT_COPY, D3DERR_INVALIDCALL}, + {TRUE, 0, D3DSWAPEFFECT_COPY, D3D_OK}, + {TRUE, 1, D3DSWAPEFFECT_COPY, D3D_OK}, + {TRUE, 2, D3DSWAPEFFECT_COPY, D3DERR_INVALIDCALL}, + {FALSE, 2, D3DSWAPEFFECT_COPY, D3DERR_INVALIDCALL}, + {TRUE, 0, D3DSWAPEFFECT_COPY_VSYNC, D3D_OK}, + {TRUE, 1, D3DSWAPEFFECT_COPY_VSYNC, D3D_OK}, + {TRUE, 2, D3DSWAPEFFECT_COPY_VSYNC, D3DERR_INVALIDCALL}, + {FALSE, 2, D3DSWAPEFFECT_COPY_VSYNC, D3DERR_INVALIDCALL}, /* Ok with the others, in fullscreen and windowed mode. */ - {TRUE, 2, D3DSWAPEFFECT_DISCARD, D3D_OK}, - {TRUE, 2, D3DSWAPEFFECT_FLIP, D3D_OK}, - {FALSE, 2, D3DSWAPEFFECT_DISCARD, D3D_OK}, - {FALSE, 2, D3DSWAPEFFECT_FLIP, D3D_OK}, + {TRUE, 2, D3DSWAPEFFECT_DISCARD, D3D_OK}, + {TRUE, 2, D3DSWAPEFFECT_FLIP, D3D_OK}, + {FALSE, 2, D3DSWAPEFFECT_DISCARD, D3D_OK}, + {FALSE, 2, D3DSWAPEFFECT_FLIP, D3D_OK}, + + /* Invalid swapeffects. */ + {TRUE, 1, D3DSWAPEFFECT_COPY_VSYNC + 1, D3DERR_INVALIDCALL}, + {FALSE, 1, D3DSWAPEFFECT_COPY_VSYNC + 1, D3DERR_INVALIDCALL}, /* 3 is the highest allowed backbuffer count. */ - {TRUE, 3, D3DSWAPEFFECT_DISCARD, D3D_OK}, - {TRUE, 4, D3DSWAPEFFECT_DISCARD, D3DERR_INVALIDCALL}, - {TRUE, 4, D3DSWAPEFFECT_FLIP, D3DERR_INVALIDCALL}, - {FALSE, 4, D3DSWAPEFFECT_DISCARD, D3DERR_INVALIDCALL}, - {FALSE, 4, D3DSWAPEFFECT_FLIP, D3DERR_INVALIDCALL}, + {TRUE, 3, D3DSWAPEFFECT_DISCARD, D3D_OK}, + {TRUE, 4, D3DSWAPEFFECT_DISCARD, D3DERR_INVALIDCALL}, + {TRUE, 4, D3DSWAPEFFECT_FLIP, D3DERR_INVALIDCALL}, + {FALSE, 4, D3DSWAPEFFECT_DISCARD, D3DERR_INVALIDCALL}, + {FALSE, 4, D3DSWAPEFFECT_FLIP, D3DERR_INVALIDCALL}, }; window = CreateWindowA("static", "d3d8_test", WS_OVERLAPPEDWINDOW,
participants (1)
-
Alexandre Julliard