From ec669d109c5fa1ed775fe2c4545fceac05c09604 Mon Sep 17 00:00:00 2001 From: Maarten Bosma Date: Sun, 13 May 2007 20:31:38 +0000 Subject: [PATCH] Lots of additional cases by EmuandCo. svn path=/trunk/; revision=26765 --- rostests/dxtest/ddraw/tests/CreateSurface.cpp | 219 +++++++++++++----- 1 file changed, 162 insertions(+), 57 deletions(-) diff --git a/rostests/dxtest/ddraw/tests/CreateSurface.cpp b/rostests/dxtest/ddraw/tests/CreateSurface.cpp index bba0a518a38..e486c0d030b 100644 --- a/rostests/dxtest/ddraw/tests/CreateSurface.cpp +++ b/rostests/dxtest/ddraw/tests/CreateSurface.cpp @@ -1,103 +1,208 @@ - HWND CreateBasicWindow (VOID); - + BOOL Test_CreateSurface (INT* passed, INT* failed) { LPDIRECTDRAW7 DirectDraw; LPDIRECTDRAWSURFACE7 DirectDrawSurface = NULL; HWND hwnd; - + /* Preparations */ if (DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw7, NULL) != DD_OK) { printf("ERROR: Failed to set up ddraw\n"); return FALSE; } - + if(!( hwnd = CreateBasicWindow() )) { printf("ERROR: Failed to create window\n"); DirectDraw->Release(); return FALSE; } - + if (DirectDraw->SetCooperativeLevel (hwnd, DDSCL_NORMAL) != DD_OK) { printf("ERROR: you not set cooperative level\n"); DirectDraw->Release(); return 0; } - + /* The Test */ - + DDSURFACEDESC2 Desc = { 0 }; - + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, (IUnknown*)0xdeadbeef) == CLASS_E_NOAGGREGATION ); TEST ( DirectDraw->CreateSurface(NULL, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS ); TEST ( DirectDraw->CreateSurface(&Desc, NULL, NULL) == DDERR_INVALIDPARAMS ); TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS ); - + + Desc.dwHeight = 200; + Desc.dwWidth = 200; + + Desc.dwFlags = DDSD_CAPS; Desc.dwSize = sizeof (DDSURFACEDESC2); - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS ); - + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_3DDEVICE; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_ALLOCONLOAD; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_ALPHA; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_COMPLEX; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_FLIP; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_FRONTBUFFER; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_HWCODEC; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_LIVEVIDEO; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_LOCALVIDMEM; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_MIPMAP; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_MODEX; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_NONLOCALVIDMEM; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_OPTIMIZED; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_OVERLAY; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_OWNDC; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_UNSUPPORTED); + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_PALETTE; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); + Desc.dwFlags = DDSD_CAPS; Desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK ); TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); - + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_STANDARDVGAMODE; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + DirectDrawSurface = NULL; Desc.ddsCaps.dwCaps = DDSCAPS_TEXTURE; + Desc.dwFlags = DDSD_CAPS; TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); - + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK ); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_3DDEVICE; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY; TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); - + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_ALLOCONLOAD; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_VIDEOPORT; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DD_OK); + TEST ( DirectDrawSurface && DirectDrawSurface->Release() == DD_OK ); + DirectDrawSurface = NULL; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_VISIBLE; TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_ALPHA; - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER; + + Desc.dwFlags = DDSD_CAPS; + Desc.ddsCaps.dwCaps = DDSCAPS_WRITEONLY; TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_COMPLEX; - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_FLIP; - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_HWCODEC; + + Desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; + Desc.ddsCaps.dwCaps = DDSCAPS_ZBUFFER; TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_LIVEVIDEO; - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_LOCALVIDMEM; - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_MIPMAP; - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDCAPS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_MODEX; - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); - - DirectDrawSurface = NULL; - Desc.ddsCaps.dwCaps = DDSCAPS_MODEX; - TEST ( DirectDraw->CreateSurface(&Desc, &DirectDrawSurface, NULL) == DDERR_INVALIDPARAMS); - + DirectDraw->Release(); - + return TRUE; -} +} \ No newline at end of file