Module: wine Branch: master Commit: a8ae03f2d8d577b9436e966131545e4caa4364ea URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=a8ae03f2d8d577b9436e9661...
Author: Mike McCormack mike@codeweavers.com Date: Wed Aug 30 12:56:32 2006 +0900
ddraw: Make tests pass when OpenGL libraries aren't present.
---
dlls/ddraw/main.c | 4 +++- dlls/ddraw/tests/ddrawmodes.c | 12 +++++++++--- dlls/ddraw/tests/dsurface.c | 13 ++++++++++--- dlls/ddraw/tests/refcount.c | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c index 8aab95c..bdb8b31 100644 --- a/dlls/ddraw/main.c +++ b/dlls/ddraw/main.c @@ -96,6 +96,8 @@ DDRAW_Create(GUID *guid,
TRACE("(%s,%p,%p)\n", debugstr_guid(guid), DD, UnkOuter);
+ *DD = NULL; + /* We don't care about this guids. Well, there's no special guid anyway * OK, we could */ @@ -164,7 +166,7 @@ DDRAW_Create(GUID *guid, if (!hWineD3D) { ERR("Couldn't load WineD3D - OpenGL libs not present?\n"); - hr = E_NOTIMPL; + hr = DDERR_NODIRECTDRAWSUPPORT; goto err_out; }
diff --git a/dlls/ddraw/tests/ddrawmodes.c b/dlls/ddraw/tests/ddrawmodes.c index 8890df9..4b2bf17 100644 --- a/dlls/ddraw/tests/ddrawmodes.c +++ b/dlls/ddraw/tests/ddrawmodes.c @@ -59,12 +59,17 @@ static void createwindow(void)
}
-static void createdirectdraw(void) +static BOOL createdirectdraw(void) { HRESULT rc;
rc = DirectDrawCreate(NULL, &lpDD, NULL); - ok(rc==DD_OK,"DirectDrawCreate returned: %lx\n",rc); + ok(rc==DD_OK || rc==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreateEx returned: %lx\n", rc); + if (!lpDD) { + trace("DirectDrawCreateEx() failed with an error %lx\n", rc); + return FALSE; + } + return TRUE; }
@@ -319,7 +324,8 @@ static void testcooperativelevels_exclus START_TEST(ddrawmodes) { createwindow(); - createdirectdraw(); + if (!createdirectdraw()) + return; enumdisplaymodes(); testdisplaymodes(); flushdisplaymodes(); diff --git a/dlls/ddraw/tests/dsurface.c b/dlls/ddraw/tests/dsurface.c index 24555c3..192a202 100644 --- a/dlls/ddraw/tests/dsurface.c +++ b/dlls/ddraw/tests/dsurface.c @@ -26,15 +26,21 @@ #include "ddraw.h"
static LPDIRECTDRAW lpDD = NULL;
-static void CreateDirectDraw(void) +static BOOL CreateDirectDraw(void) { HRESULT rc;
rc = DirectDrawCreate(NULL, &lpDD, NULL); - ok(rc==DD_OK,"DirectDrawCreate returned: %lx\n",rc); + ok(rc==DD_OK || rc==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreateEx returned: %lx\n", rc); + if (!lpDD) { + trace("DirectDrawCreateEx() failed with an error %lx\n", rc); + return FALSE; + }
rc = IDirectDraw_SetCooperativeLevel(lpDD, NULL, DDSCL_NORMAL); ok(rc==DD_OK,"SetCooperativeLevel returned: %lx\n",rc); + + return TRUE; }
@@ -250,7 +256,8 @@ static void QueryInterface(void)
START_TEST(dsurface) { - CreateDirectDraw(); + if (!CreateDirectDraw()) + return; MipMapCreationTest(); SrcColorKey32BlitTest(); QueryInterface(); diff --git a/dlls/ddraw/tests/refcount.c b/dlls/ddraw/tests/refcount.c index c80c822..1e224c0 100644 --- a/dlls/ddraw/tests/refcount.c +++ b/dlls/ddraw/tests/refcount.c @@ -304,7 +304,7 @@ static void test_d3d_ifaces(void) long ref;
hr = DirectDrawCreate(NULL, &DDraw1, NULL); - ok(hr == DD_OK, "DirectDrawCreate returned %08lx\n", hr); + ok(hr == DD_OK || hr==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreateEx returned: %lx\n", hr); if(!DDraw1) { trace("DirectDrawCreate failed with %08lx\n", hr);