Module: wine Branch: master Commit: 58480f16638efb841033fe2f6c0a9943affe6ed9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=58480f16638efb841033fe2f6c...
Author: Stefan Dösinger stefan@codeweavers.com Date: Thu Dec 18 16:16:33 2008 +0100
ddrawex: Make the GetDC test more generic.
---
dlls/ddrawex/tests/surface.c | 73 ++++++++++++++++++++++-------------------- 1 files changed, 38 insertions(+), 35 deletions(-)
diff --git a/dlls/ddrawex/tests/surface.c b/dlls/ddrawex/tests/surface.c index c8d519b..1edb9d5 100644 --- a/dlls/ddrawex/tests/surface.c +++ b/dlls/ddrawex/tests/surface.c @@ -68,10 +68,8 @@ static void dctest_surf(IDirectDrawSurface *surf, int ddsdver) { ok(hr == DDERR_NODC, "IDirectDrawSurface_ReleaseDC returned 0x%08x, expected DDERR_NODC\n", hr); }
-static void GetDCTest(void) +static void GetDCTest_main(DDSURFACEDESC *ddsd, DDSURFACEDESC2 *ddsd2, void (*testfunc)(IDirectDrawSurface *surf, int ddsdver)) { - DDSURFACEDESC ddsd; - DDSURFACEDESC2 ddsd2; IDirectDrawSurface *surf; IDirectDrawSurface2 *surf2; IDirectDrawSurface2 *surf3; @@ -82,34 +80,21 @@ static void GetDCTest(void) IDirectDraw3 *dd3; IDirectDraw4 *dd4;
- memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwSize = sizeof(ddsd); - ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; - ddsd.dwWidth = 64; - ddsd.dwHeight = 64; - ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; - memset(&ddsd2, 0, sizeof(ddsd2)); - ddsd2.dwSize = sizeof(ddsd2); - ddsd2.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; - ddsd2.dwWidth = 64; - ddsd2.dwHeight = 64; - ddsd2.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; - - hr = IDirectDraw_CreateSurface(dd1, &ddsd, &surf, NULL); + hr = IDirectDraw_CreateSurface(dd1, ddsd, &surf, NULL); ok(hr == DD_OK, "IDirectDraw_CreateSurface failed: 0x%08x\n", hr); - dctest_surf(surf, 1); + testfunc(surf, 1); IDirectDrawSurface_Release(surf);
hr = IDirectDraw_QueryInterface(dd1, &IID_IDirectDraw2, (void **) &dd2); ok(hr == DD_OK, "IDirectDraw_QueryInterface failed: 0x%08x\n", hr);
- hr = IDirectDraw2_CreateSurface(dd2, &ddsd, &surf, NULL); + hr = IDirectDraw2_CreateSurface(dd2, ddsd, &surf, NULL); ok(hr == DD_OK, "IDirectDraw2_CreateSurface failed: 0x%08x\n", hr); - dctest_surf(surf, 1); + testfunc(surf, 1);
hr = IDirectDrawSurface_QueryInterface(surf, &IID_IDirectDrawSurface2, (void **) &surf2); ok(hr == DD_OK, "IDirectDrawSurface_QueryInterface failed: 0x%08x\n", hr); - dctest_surf((IDirectDrawSurface *) surf2, 1); + testfunc((IDirectDrawSurface *) surf2, 1);
IDirectDrawSurface2_Release(surf2); IDirectDrawSurface_Release(surf); @@ -118,28 +103,25 @@ static void GetDCTest(void) hr = IDirectDraw_QueryInterface(dd1, &IID_IDirectDraw3, (void **) &dd3); ok(hr == DD_OK, "IDirectDraw_QueryInterface failed: 0x%08x\n", hr);
- if(SUCCEEDED(hr)) - { - hr = IDirectDraw3_CreateSurface(dd3, &ddsd, &surf, NULL); - ok(hr == DD_OK, "IDirectDraw3_CreateSurface failed: 0x%08x\n", hr); - dctest_surf(surf, 1); + hr = IDirectDraw3_CreateSurface(dd3, ddsd, &surf, NULL); + ok(hr == DD_OK, "IDirectDraw3_CreateSurface failed: 0x%08x\n", hr); + testfunc(surf, 1);
- hr = IDirectDrawSurface_QueryInterface(surf, &IID_IDirectDrawSurface3, (void **) &surf3); - ok(hr == DD_OK, "IDirectDrawSurface_QueryInterface failed: 0x%08x\n", hr); - dctest_surf((IDirectDrawSurface *) surf3, 1); + hr = IDirectDrawSurface_QueryInterface(surf, &IID_IDirectDrawSurface3, (void **) &surf3); + ok(hr == DD_OK, "IDirectDrawSurface_QueryInterface failed: 0x%08x\n", hr); + testfunc((IDirectDrawSurface *) surf3, 1);
- IDirectDrawSurface3_Release(surf3); - IDirectDrawSurface_Release(surf); - IDirectDraw3_Release(dd3); - } + IDirectDrawSurface3_Release(surf3); + IDirectDrawSurface_Release(surf); + IDirectDraw3_Release(dd3);
hr = IDirectDraw_QueryInterface(dd1, &IID_IDirectDraw4, (void **) &dd4); ok(hr == DD_OK, "IDirectDraw_QueryInterface failed: 0x%08x\n", hr);
surf = NULL; - hr = IDirectDraw4_CreateSurface(dd4, &ddsd2, &surf4, NULL); + hr = IDirectDraw4_CreateSurface(dd4, ddsd2, &surf4, NULL); ok(hr == DD_OK, "IDirectDraw4_CreateSurface failed: 0x%08x\n", hr); - dctest_surf((IDirectDrawSurface *) surf4, 2); + testfunc((IDirectDrawSurface *) surf4, 2);
IDirectDrawSurface4_Release(surf4); IDirectDraw4_Release(dd4); @@ -147,6 +129,27 @@ static void GetDCTest(void) IDirectDraw_Release(dd1); }
+static void GetDCTest(void) +{ + DDSURFACEDESC ddsd; + DDSURFACEDESC2 ddsd2; + + memset(&ddsd, 0, sizeof(ddsd)); + ddsd.dwSize = sizeof(ddsd); + ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; + ddsd.dwWidth = 64; + ddsd.dwHeight = 64; + ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; + memset(&ddsd2, 0, sizeof(ddsd2)); + ddsd2.dwSize = sizeof(ddsd2); + ddsd2.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; + ddsd2.dwWidth = 64; + ddsd2.dwHeight = 64; + ddsd2.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; + + GetDCTest_main(&ddsd, &ddsd2, dctest_surf); +} + static void CapsTest(void) { DDSURFACEDESC ddsd;