=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: d3d8: Accept D3DSWAPEFFECT_COPY_VSYNC.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Oct 2 09:21:48 CDT 2015
Module: wine
Branch: master
Commit: 6b8564d629551e2f5cfd5aeb013a271d76fd2c1a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6b8564d629551e2f5cfd5aeb013a271d76fd2c1a
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Mon Sep 28 21:02:10 2015 +0200
d3d8: Accept D3DSWAPEFFECT_COPY_VSYNC.
Signed-off-by: Stefan Dösinger <stefan at 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,
More information about the wine-cvs
mailing list