Add a test for IDirectDrawSurface_SetColorKey
Günther Brammer
GBrammer at gmx.de
Mon Dec 18 15:10:05 CST 2006
Only tested with wine, unfortunately. Tests for the issue causing Bug 5730.
diff --git a/dlls/ddraw/tests/dsurface.c b/dlls/ddraw/tests/dsurface.c
index 3d70f82..74e4f28 100644
--- a/dlls/ddraw/tests/dsurface.c
+++ b/dlls/ddraw/tests/dsurface.c
@@ -167,6 +167,7 @@ static void SrcColorKey32BlitTest(void)
LPDIRECTDRAWSURFACE lpDst;
DDSURFACEDESC ddsd;
DDSURFACEDESC ddsd2;
+ DDCOLORKEY DDColorKey;
LPDWORD lpData;
HRESULT rc;
@@ -222,6 +223,21 @@ static void SrcColorKey32BlitTest(void)
"Destination data after blitting is not correct\n");
rc = IDirectDrawSurface_Unlock(lpDst, NULL);
ok(rc==DD_OK,"Unlock returned: %x\n",rc);
+
+ /* Also test SetColorKey */
+ IDirectDrawSurface_GetColorKey(lpSrc, DDCKEY_SRCBLT, &DDColorKey);
+ ok(DDColorKey.dwColorSpaceLowValue == 0xFF00FF && DDColorKey.dwColorSpaceHighValue == 0xFF00FF,
+ "GetColorKey does not return the colorkey used at surface creation\n");
+
+ DDColorKey.dwColorSpaceLowValue = 0x00FF00;
+ DDColorKey.dwColorSpaceHighValue = 0x00FF00;
+ IDirectDrawSurface_SetColorKey(lpSrc, DDCKEY_SRCBLT, &DDColorKey);
+
+ DDColorKey.dwColorSpaceLowValue = 0;
+ DDColorKey.dwColorSpaceHighValue = 0;
+ IDirectDrawSurface_GetColorKey(lpSrc, DDCKEY_SRCBLT, &DDColorKey);
+ ok(DDColorKey.dwColorSpaceLowValue == 0x00FF00 && DDColorKey.dwColorSpaceHighValue == 0x00FF00,
+ "GetColorKey does not return the colorkey set with SetColorKey\n");
IDirectDrawSurface_Release(lpSrc);
IDirectDrawSurface_Release(lpDst);
More information about the wine-patches
mailing list