Mike McCormack : ddraw: Make tests pass when OpenGL libraries aren'
t present.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Sep 7 03:45:49 CDT 2006
Module: wine
Branch: master
Commit: a8ae03f2d8d577b9436e966131545e4caa4364ea
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=a8ae03f2d8d577b9436e966131545e4caa4364ea
Author: Mike McCormack <mike at 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);
More information about the wine-cvs
mailing list