Henri Verbeet : ddraw: Refuse to set a clip list if a clipper is already tracking a window.

Alexandre Julliard julliard at winehq.org
Thu Jan 5 15:24:42 CST 2012


Module: wine
Branch: master
Commit: 99e5e3ac0d3c8161968eaa781e8ecd6f1b9a9887
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=99e5e3ac0d3c8161968eaa781e8ecd6f1b9a9887

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Jan  4 23:34:53 2012 +0100

ddraw: Refuse to set a clip list if a clipper is already tracking a window.

---

 dlls/ddraw/clipper.c      |    5 +++++
 dlls/ddraw/tests/ddraw1.c |    2 +-
 dlls/ddraw/tests/ddraw2.c |    2 +-
 dlls/ddraw/tests/ddraw4.c |    2 +-
 dlls/ddraw/tests/ddraw7.c |    2 +-
 5 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/dlls/ddraw/clipper.c b/dlls/ddraw/clipper.c
index c67a951..b3482e7 100644
--- a/dlls/ddraw/clipper.c
+++ b/dlls/ddraw/clipper.c
@@ -180,8 +180,13 @@ static HRESULT WINAPI ddraw_clipper_GetClipList(IDirectDrawClipper *iface, RECT
  *****************************************************************************/
 static HRESULT WINAPI ddraw_clipper_SetClipList(IDirectDrawClipper *iface, RGNDATA *region, DWORD flags)
 {
+    struct ddraw_clipper *clipper = impl_from_IDirectDrawClipper(iface);
+
     FIXME("iface %p, region %p, flags %#x stub!\n", iface, region, flags);
 
+    if (clipper->window)
+        return DDERR_CLIPPERISUSINGHWND;
+
     return DD_OK;
 }
 
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index e419e62..fdfa11f 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -248,7 +248,7 @@ static void test_clipper_blt(void)
     DeleteObject(r1);
 
     hr = IDirectDrawClipper_SetClipList(clipper, rgn_data, 0);
-    todo_wine ok(hr == DDERR_CLIPPERISUSINGHWND, "Got unexpected hr %#x.\n", hr);
+    ok(hr == DDERR_CLIPPERISUSINGHWND, "Got unexpected hr %#x.\n", hr);
     hr = IDirectDrawClipper_SetHWnd(clipper, 0, NULL);
     ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
     hr = IDirectDrawClipper_SetClipList(clipper, rgn_data, 0);
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 5fb47c0..7b046be 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -255,7 +255,7 @@ static void test_clipper_blt(void)
     DeleteObject(r1);
 
     hr = IDirectDrawClipper_SetClipList(clipper, rgn_data, 0);
-    todo_wine ok(hr == DDERR_CLIPPERISUSINGHWND, "Got unexpected hr %#x.\n", hr);
+    ok(hr == DDERR_CLIPPERISUSINGHWND, "Got unexpected hr %#x.\n", hr);
     hr = IDirectDrawClipper_SetHWnd(clipper, 0, NULL);
     ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
     hr = IDirectDrawClipper_SetClipList(clipper, rgn_data, 0);
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 134af22..26f5a0c 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -550,7 +550,7 @@ static void test_clipper_blt(void)
     DeleteObject(r1);
 
     hr = IDirectDrawClipper_SetClipList(clipper, rgn_data, 0);
-    todo_wine ok(hr == DDERR_CLIPPERISUSINGHWND, "Got unexpected hr %#x.\n", hr);
+    ok(hr == DDERR_CLIPPERISUSINGHWND, "Got unexpected hr %#x.\n", hr);
     hr = IDirectDrawClipper_SetHWnd(clipper, 0, NULL);
     ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
     hr = IDirectDrawClipper_SetClipList(clipper, rgn_data, 0);
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index 14477c1..9e5e564 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -543,7 +543,7 @@ static void test_clipper_blt(void)
     DeleteObject(r1);
 
     hr = IDirectDrawClipper_SetClipList(clipper, rgn_data, 0);
-    todo_wine ok(hr == DDERR_CLIPPERISUSINGHWND, "Got unexpected hr %#x.\n", hr);
+    ok(hr == DDERR_CLIPPERISUSINGHWND, "Got unexpected hr %#x.\n", hr);
     hr = IDirectDrawClipper_SetHWnd(clipper, 0, NULL);
     ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
     hr = IDirectDrawClipper_SetClipList(clipper, rgn_data, 0);




More information about the wine-cvs mailing list