=?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