From 55b8c75528446441635bae08b09803708f3603d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sun, 5 Jun 2016 22:56:58 +0100 Subject: [PATCH] ddraw/tests: Remove p8_primary_test. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stefan Dösinger Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/ddraw/tests/visual.c | 344 -------------------------------------- 1 file changed, 344 deletions(-) diff --git a/dlls/ddraw/tests/visual.c b/dlls/ddraw/tests/visual.c index 17f89aa445b..4f6213354d6 100644 --- a/dlls/ddraw/tests/visual.c +++ b/dlls/ddraw/tests/visual.c @@ -1197,32 +1197,6 @@ static void D3D3_ViewportClearTest(void) if(window) DestroyWindow(window); } -static void p8_surface_fill_rect(IDirectDrawSurface *dest, UINT x, UINT y, UINT w, UINT h, BYTE colorindex) -{ - DDSURFACEDESC ddsd; - HRESULT hr; - UINT i, i1; - BYTE *p; - - memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwSize = sizeof(ddsd); - - hr = IDirectDrawSurface_Lock(dest, NULL, &ddsd, DDLOCK_WRITEONLY | DDLOCK_WAIT, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_Lock returned: %x\n", hr); - - p = (BYTE *)ddsd.lpSurface + U1(ddsd).lPitch * y + x; - - for (i = 0; i < h; i++) { - for (i1 = 0; i1 < w; i1++) { - p[i1] = colorindex; - } - p += U1(ddsd).lPitch; - } - - hr = IDirectDrawSurface_Unlock(dest, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_UnLock returned: %x\n", hr); -} - static COLORREF getPixelColor_GDI(IDirectDrawSurface *Surface, UINT x, UINT y) { COLORREF clr = CLR_INVALID; @@ -1242,323 +1216,6 @@ static COLORREF getPixelColor_GDI(IDirectDrawSurface *Surface, UINT x, UINT y) return clr; } -static BOOL colortables_check_equality(PALETTEENTRY table1[256], RGBQUAD table2[256]) -{ - int i; - - for (i = 0; i < 256; i++) { - if (table1[i].peRed != table2[i].rgbRed || table1[i].peGreen != table2[i].rgbGreen || - table1[i].peBlue != table2[i].rgbBlue) return FALSE; - } - - return TRUE; -} - -static void p8_primary_test(void) -{ - /* Test 8bit mode used by games like StarCraft, C&C Red Alert I etc */ - DDSURFACEDESC ddsd; - HDC hdc; - HRESULT hr; - PALETTEENTRY entries[256]; - RGBQUAD coltable[256]; - UINT i, i1, i2; - IDirectDrawPalette *ddprimpal = NULL; - IDirectDrawSurface *offscreen = NULL; - WNDCLASSA wc = {0}; - DDBLTFX ddbltfx; - COLORREF color; - RECT rect; - DDCOLORKEY clrKey; - unsigned differences; - IDirectDraw *DirectDraw1; - IDirectDrawSurface *Surface1; - - /* An IDirect3DDevice cannot be queryInterfaced from an IDirect3DDevice7 on windows */ - hr = DirectDrawCreate(NULL, &DirectDraw1, NULL); - - ok(hr==DD_OK || hr==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreate returned: %x\n", hr); - if (FAILED(hr)) { - goto out; - } - - wc.lpfnWndProc = DefWindowProcA; - wc.lpszClassName = "p8_primary_test_wc"; - RegisterClassA(&wc); - window = CreateWindowA("p8_primary_test_wc", "p8_primary_test", - WS_MAXIMIZE | WS_VISIBLE | WS_CAPTION, 0, 0, 640, 480, 0, 0, 0, 0); - - hr = IDirectDraw_SetCooperativeLevel(DirectDraw1, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); - ok(hr==DD_OK, "SetCooperativeLevel returned: %x\n", hr); - if(FAILED(hr)) { - goto out; - } - - hr = IDirectDraw_SetDisplayMode(DirectDraw1, 640, 480, 8); - ok(hr==DD_OK || hr == DDERR_UNSUPPORTED, "SetDisplayMode returned: %x\n", hr); - if (FAILED(hr)) { - goto out; - } - - memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwSize = sizeof(ddsd); - ddsd.dwFlags = DDSD_CAPS; - ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; - hr = IDirectDraw_CreateSurface(DirectDraw1, &ddsd, &Surface1, NULL); - ok(hr==DD_OK, "CreateSurface returned: %x\n", hr); - if (FAILED(hr)) { - goto out; - } - - memset(entries, 0, sizeof(entries)); - entries[0].peRed = 0xff; - entries[1].peGreen = 0xff; - entries[2].peBlue = 0xff; - - hr = IDirectDraw_CreatePalette(DirectDraw1, DDPCAPS_ALLOW256 | DDPCAPS_8BIT, entries, &ddprimpal, NULL); - ok(hr == DD_OK, "CreatePalette returned %08x\n", hr); - if (FAILED(hr)) { - skip("IDirectDraw_CreatePalette failed; skipping further tests\n"); - goto out; - } - - hr = IDirectDrawSurface_SetPalette(Surface1, ddprimpal); - ok(hr==DD_OK, "IDirectDrawSurface_SetPalette returned: %x\n", hr); - - p8_surface_fill_rect(Surface1, 0, 0, 640, 480, 2); - - color = getPixelColor_GDI(Surface1, 10, 10); - ok(GetRValue(color) == 0 && GetGValue(color) == 0 && GetBValue(color) == 0xFF, - "got R %02X G %02X B %02X, expected R 00 G 00 B FF\n", - GetRValue(color), GetGValue(color), GetBValue(color)); - - memset(&ddbltfx, 0, sizeof(ddbltfx)); - ddbltfx.dwSize = sizeof(ddbltfx); - U5(ddbltfx).dwFillColor = 0; - hr = IDirectDrawSurface_Blt(Surface1, NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx); - ok(hr == DD_OK, "IDirectDrawSurface_Blt failed with %08x\n", hr); - - color = getPixelColor_GDI(Surface1, 10, 10); - ok(GetRValue(color) == 0xFF && GetGValue(color) == 0 && GetBValue(color) == 0, - "got R %02X G %02X B %02X, expected R FF G 00 B 00\n", - GetRValue(color), GetGValue(color), GetBValue(color)); - - memset(&ddbltfx, 0, sizeof(ddbltfx)); - ddbltfx.dwSize = sizeof(ddbltfx); - U5(ddbltfx).dwFillColor = 1; - hr = IDirectDrawSurface_Blt(Surface1, NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx); - ok(hr == DD_OK, "IDirectDrawSurface_Blt failed with %08x\n", hr); - - color = getPixelColor_GDI(Surface1, 10, 10); - ok(GetRValue(color) == 0 && GetGValue(color) == 0xFF && GetBValue(color) == 0, - "got R %02X G %02X B %02X, expected R 00 G FF B 00\n", - GetRValue(color), GetGValue(color), GetBValue(color)); - - memset (&ddsd, 0, sizeof (ddsd)); - ddsd.dwSize = sizeof (ddsd); - ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT; - ddsd.dwWidth = 16; - ddsd.dwHeight = 16; - ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY; - ddsd.ddpfPixelFormat.dwSize = sizeof(ddsd.ddpfPixelFormat); - ddsd.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXED8; - U1(ddsd.ddpfPixelFormat).dwRGBBitCount = 8; - hr = IDirectDraw_CreateSurface(DirectDraw1, &ddsd, &offscreen, NULL); - ok(hr == DD_OK || - broken(hr == DDERR_INVALIDPIXELFORMAT) || /* VMware */ - broken(hr == DDERR_NODIRECTDRAWHW), /* VMware */ - "IDirectDraw_CreateSurface returned %08x\n", hr); - if (FAILED(hr)) goto out; - - memset(entries, 0, sizeof(entries)); - for (i = 0; i < 256; i++) { - entries[i].peBlue = i; - } - hr = IDirectDrawPalette_SetEntries(ddprimpal, 0, 0, 256, entries); - ok(hr == DD_OK, "IDirectDrawPalette_SetEntries failed with %08x\n", hr); - - hr = IDirectDrawSurface_GetDC(offscreen, &hdc); - ok(hr==DD_OK, "IDirectDrawSurface_GetDC returned: %x\n", hr); - i = GetDIBColorTable(hdc, 0, 256, coltable); - ok(i == 256, "GetDIBColorTable returned %u, last error: %x\n", i, GetLastError()); - hr = IDirectDrawSurface_ReleaseDC(offscreen, hdc); - ok(hr==DD_OK, "IDirectDrawSurface_ReleaseDC returned: %x\n", hr); - - ok(colortables_check_equality(entries, coltable), "unexpected colortable on offscreen surface\n"); - - p8_surface_fill_rect(offscreen, 0, 0, 16, 16, 2); - - memset(entries, 0, sizeof(entries)); - entries[0].peRed = 0xff; - entries[1].peGreen = 0xff; - entries[2].peBlue = 0xff; - entries[3].peRed = 0x80; - hr = IDirectDrawPalette_SetEntries(ddprimpal, 0, 0, 256, entries); - ok(hr == DD_OK, "IDirectDrawPalette_SetEntries failed with %08x\n", hr); - - hr = IDirectDrawSurface_BltFast(Surface1, 0, 0, offscreen, NULL, 0); - ok(hr==DD_OK, "IDirectDrawSurface_BltFast returned: %x\n", hr); - - color = getPixelColor_GDI(Surface1, 1, 1); - ok(GetRValue(color) == 0 && GetGValue(color) == 0x00 && GetBValue(color) == 0xFF, - "got R %02X G %02X B %02X, expected R 00 G 00 B FF\n", - GetRValue(color), GetGValue(color), GetBValue(color)); - - /* Color keyed blit. */ - p8_surface_fill_rect(offscreen, 0, 0, 8, 8, 3); - clrKey.dwColorSpaceLowValue = 3; - clrKey.dwColorSpaceHighValue = 3; - hr = IDirectDrawSurface_SetColorKey(offscreen, DDCKEY_SRCBLT, &clrKey); - ok(hr==D3D_OK, "IDirectDrawSurfac_SetColorKey returned: %x\n", hr); - - hr = IDirectDrawSurface_BltFast(Surface1, 100, 100, offscreen, NULL, DDBLTFAST_SRCCOLORKEY); - ok(hr==DD_OK, "IDirectDrawSurface_BltFast returned: %x\n", hr); - - color = getPixelColor_GDI(Surface1, 105, 105); - ok(GetRValue(color) == 0 && GetGValue(color) == 0xFF && GetBValue(color) == 0, - "got R %02X G %02X B %02X, expected R 00 G FF B 00\n", - GetRValue(color), GetGValue(color), GetBValue(color)); - - color = getPixelColor_GDI(Surface1, 112, 112); - ok(GetRValue(color) == 0 && GetGValue(color) == 0x00 && GetBValue(color) == 0xFF, - "got R %02X G %02X B %02X, expected R 00 G 00 B FF\n", - GetRValue(color), GetGValue(color), GetBValue(color)); - - rect.left = 100; - rect.top = 200; - rect.right = 116; - rect.bottom = 216; - - memset(&ddbltfx, 0, sizeof(ddbltfx)); - ddbltfx.dwSize = sizeof(ddbltfx); - ddbltfx.ddckSrcColorkey.dwColorSpaceLowValue = ddbltfx.ddckSrcColorkey.dwColorSpaceHighValue = 2; - hr = IDirectDrawSurface_Blt(Surface1, &rect, offscreen, NULL, - DDBLT_WAIT | DDBLT_KEYSRC | DDBLT_KEYSRCOVERRIDE, &ddbltfx); - ok(hr==DDERR_INVALIDPARAMS, "IDirectDrawSurface_Blt returned: %x\n", hr); - hr = IDirectDrawSurface_Blt(Surface1, &rect, offscreen, NULL, - DDBLT_WAIT | DDBLT_KEYSRCOVERRIDE, &ddbltfx); - ok(hr==DD_OK, "IDirectDrawSurface_Blt returned: %x\n", hr); - - color = getPixelColor_GDI(Surface1, 105, 205); - ok(GetRValue(color) == 0x80 && GetGValue(color) == 0 && GetBValue(color) == 0, - "got R %02X G %02X B %02X, expected R 80 G 00 B 00\n", - GetRValue(color), GetGValue(color), GetBValue(color)); - - color = getPixelColor_GDI(Surface1, 112, 212); - ok(GetRValue(color) == 0 && GetGValue(color) == 0xFF && GetBValue(color) == 0, - "got R %02X G %02X B %02X, expected R 00 G FF B 00\n", - GetRValue(color), GetGValue(color), GetBValue(color)); - - /* Test blitting and locking patterns that are likely to trigger bugs in opengl renderer (p8 - surface conversion and uploading/downloading to/from opengl texture). Similar patterns ( - blitting front buffer areas to/from an offscreen surface mixed with locking) are used by C&C - Red Alert I. */ - IDirectDrawSurface_Release(offscreen); - - memset (&ddsd, 0, sizeof (ddsd)); - ddsd.dwSize = sizeof (ddsd); - ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT; - ddsd.dwWidth = 640; - ddsd.dwHeight = 480; - ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; - ddsd.ddpfPixelFormat.dwSize = sizeof(ddsd.ddpfPixelFormat); - ddsd.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXED8; - U1(ddsd.ddpfPixelFormat).dwRGBBitCount = 8; - hr = IDirectDraw_CreateSurface(DirectDraw1, &ddsd, &offscreen, NULL); - ok(hr == DD_OK, "IDirectDraw_CreateSurface returned %08x\n", hr); - - if (FAILED(hr)) goto out; - - /* Test two times, first time front buffer has a palette and second time front buffer - has no palette; the latter is somewhat contrived example, but an app could set - front buffer palette later. */ - for (i2 = 0; i2 < 2; i2++) { - if (i2 == 1) { - hr = IDirectDrawSurface_SetPalette(Surface1, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_SetPalette returned: %x\n", hr); - } - - memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwSize = sizeof(ddsd); - hr = IDirectDrawSurface_Lock(Surface1, NULL, &ddsd, DDLOCK_WAIT, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_Lock returned: %x\n", hr); - - for (i = 0; i < 256; i++) { - unsigned x = (i % 128) * 4; - unsigned y = (i / 128) * 4; - BYTE *p = (BYTE *)ddsd.lpSurface + U1(ddsd).lPitch * y + x; - - for (i1 = 0; i1 < 4; i1++) { - p[0] = p[1] = p[2] = p[3] = i; - p += U1(ddsd).lPitch; - } - } - - hr = IDirectDrawSurface_Unlock(Surface1, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_UnLock returned: %x\n", hr); - - hr = IDirectDrawSurface_BltFast(offscreen, 0, 0, Surface1, NULL, 0); - ok(hr==DD_OK, "IDirectDrawSurface_BltFast returned: %x\n", hr); - - /* This ensures offscreen surface contents will be downloaded to system memory. */ - memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwSize = sizeof(ddsd); - hr = IDirectDrawSurface_Lock(offscreen, NULL, &ddsd, DDLOCK_WAIT, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_Lock returned: %x\n", hr); - hr = IDirectDrawSurface_Unlock(offscreen, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_UnLock returned: %x\n", hr); - - /* Offscreen surface data will have to be converted and uploaded to texture. */ - rect.left = 0; - rect.top = 0; - rect.right = 16; - rect.bottom = 16; - hr = IDirectDrawSurface_BltFast(offscreen, 600, 400, Surface1, &rect, 0); - ok(hr==DD_OK, "IDirectDrawSurface_BltFast returned: %x\n", hr); - - /* This ensures offscreen surface contents will be downloaded to system memory. */ - memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwSize = sizeof(ddsd); - hr = IDirectDrawSurface_Lock(offscreen, NULL, &ddsd, DDLOCK_WAIT, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_Lock returned: %x\n", hr); - hr = IDirectDrawSurface_Unlock(offscreen, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_UnLock returned: %x\n", hr); - - hr = IDirectDrawSurface_BltFast(Surface1, 0, 0, offscreen, NULL, 0); - ok(hr==DD_OK, "IDirectDrawSurface_BltFast returned: %x\n", hr); - - memset(&ddsd, 0, sizeof(ddsd)); - ddsd.dwSize = sizeof(ddsd); - hr = IDirectDrawSurface_Lock(Surface1, NULL, &ddsd, DDLOCK_WAIT, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_Lock returned: %x\n", hr); - - differences = 0; - - for (i = 0; i < 256; i++) { - unsigned x = (i % 128) * 4 + 1; - unsigned y = (i / 128) * 4 + 1; - BYTE *p = (BYTE *)ddsd.lpSurface + U1(ddsd).lPitch * y + x; - - if (*p != i) differences++; - } - - hr = IDirectDrawSurface_Unlock(Surface1, NULL); - ok(hr==DD_OK, "IDirectDrawSurface_UnLock returned: %x\n", hr); - - ok(differences == 0, i2 == 0 ? "Pass 1. Unexpected front buffer contents after blit (%u differences)\n" : - "Pass 2 (with NULL front buffer palette). Unexpected front buffer contents after blit (%u differences)\n", - differences); - } - - out: - - if(ddprimpal) IDirectDrawPalette_Release(ddprimpal); - if(offscreen) IDirectDrawSurface_Release(offscreen); - if(Surface1) IDirectDrawSurface_Release(Surface1); - if(DirectDraw1) IDirectDraw_Release(DirectDraw1); - if(window) DestroyWindow(window); -} - static void cubemap_test(IDirect3DDevice7 *device) { IDirect3D7 *d3d; @@ -2034,7 +1691,6 @@ START_TEST(visual) releaseObjects(); /* release DX7 interfaces to test D3D1 */ D3D3_ViewportClearTest(); - p8_primary_test(); DX1_BackBufferFlipTest(); return ;