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);