Am Montag 18 Dezember 2006 22:10 schrieb Günther Brammer:
Only tested with wine, unfortunately. Tests for the issue causing Bug 5730.
I will run your test on windows, but I'd expect it to work. Can you also test which color key GetSurfaceDesc returns?
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);