ddraw/tests: Add colorkeyed blit to p8_primary_test.
This commit is contained in:
parent
d8ae8a8780
commit
df422cf0fb
@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2007 Stefan Dösinger(for CodeWeavers)
|
* Copyright (C) 2007 Stefan Dösinger(for CodeWeavers)
|
||||||
|
* Copyright (C) 2008 Alexander Dorofeyev
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -2165,6 +2166,7 @@ static void p8_primary_test()
|
|||||||
DDBLTFX ddbltfx;
|
DDBLTFX ddbltfx;
|
||||||
COLORREF color;
|
COLORREF color;
|
||||||
RECT rect;
|
RECT rect;
|
||||||
|
DDCOLORKEY clrKey;
|
||||||
unsigned differences;
|
unsigned differences;
|
||||||
|
|
||||||
/* An IDirect3DDevice cannot be queryInterfaced from an IDirect3DDevice7 on windows */
|
/* An IDirect3DDevice cannot be queryInterfaced from an IDirect3DDevice7 on windows */
|
||||||
@ -2275,12 +2277,13 @@ static void p8_primary_test()
|
|||||||
|
|
||||||
ok(colortables_check_equality(entries, coltable), "unexpected colortable on offscreen surface\n");
|
ok(colortables_check_equality(entries, coltable), "unexpected colortable on offscreen surface\n");
|
||||||
|
|
||||||
p8_surface_fill_rect(offscreen, 0, 0, 16, 16, 1);
|
p8_surface_fill_rect(offscreen, 0, 0, 16, 16, 2);
|
||||||
|
|
||||||
memset(entries, 0, sizeof(entries));
|
memset(entries, 0, sizeof(entries));
|
||||||
entries[0].peRed = 0xff;
|
entries[0].peRed = 0xff;
|
||||||
entries[1].peGreen = 0xff;
|
entries[1].peGreen = 0xff;
|
||||||
entries[2].peBlue = 0xff;
|
entries[2].peBlue = 0xff;
|
||||||
|
entries[3].peRed = 0x80;
|
||||||
hr = IDirectDrawPalette_SetEntries(ddprimpal, 0, 0, 256, entries);
|
hr = IDirectDrawPalette_SetEntries(ddprimpal, 0, 0, 256, entries);
|
||||||
ok(hr == DD_OK, "IDirectDrawPalette_SetEntries failed with %08x\n", hr);
|
ok(hr == DD_OK, "IDirectDrawPalette_SetEntries failed with %08x\n", hr);
|
||||||
|
|
||||||
@ -2288,10 +2291,30 @@ static void p8_primary_test()
|
|||||||
ok(hr==DD_OK, "IDirectDrawSurface_BltFast returned: %x\n", hr);
|
ok(hr==DD_OK, "IDirectDrawSurface_BltFast returned: %x\n", hr);
|
||||||
|
|
||||||
color = getPixelColor_GDI(Surface1, 1, 1);
|
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,
|
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",
|
"got R %02X G %02X B %02X, expected R 00 G FF B 00\n",
|
||||||
GetRValue(color), GetGValue(color), GetBValue(color));
|
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));
|
||||||
|
|
||||||
/* Test blitting and locking patterns that are likely to trigger bugs in opengl renderer (p8
|
/* 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 (
|
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
|
blitting front buffer areas to/from an offscreen surface mixed with locking) are used by C&C
|
||||||
|
Loading…
x
Reference in New Issue
Block a user