mirror of
https://github.com/reactos/wine.git
synced 2024-11-26 05:00:30 +00:00
d3d9: shademode_test: Increase slop in color comparison.
This commit is contained in:
parent
b5046c28ca
commit
7d989b7f71
@ -6367,13 +6367,32 @@ out:
|
||||
IDirect3D9_Release(d3d);
|
||||
}
|
||||
|
||||
/* Return true if color is near the expected value */
|
||||
static int color_near(DWORD color, DWORD expected)
|
||||
{
|
||||
const BYTE slop = 1;
|
||||
|
||||
BYTE r, g, b;
|
||||
BYTE rx, gx, bx;
|
||||
r = (color & 0x00ff0000) >> 16;
|
||||
g = (color & 0x0000ff00) >> 8;
|
||||
b = (color & 0x000000ff);
|
||||
rx = (expected & 0x00ff0000) >> 16;
|
||||
gx = (expected & 0x0000ff00) >> 8;
|
||||
bx = (expected & 0x000000ff);
|
||||
|
||||
return
|
||||
((r >= (rx - slop)) && (r <= (rx + slop))) &&
|
||||
((g >= (gx - slop)) && (g <= (gx + slop))) &&
|
||||
((b >= (bx - slop)) && (b <= (bx + slop)));
|
||||
}
|
||||
|
||||
static void shademode_test(IDirect3DDevice9 *device)
|
||||
{
|
||||
/* Render a quad and try all of the different fixed function shading models. */
|
||||
HRESULT hr;
|
||||
DWORD color0, color1;
|
||||
DWORD color0_gouraud = 0, color1_gouraud = 0;
|
||||
BYTE r, g, b;
|
||||
DWORD shademode = D3DSHADE_FLAT;
|
||||
DWORD primtype = D3DPT_TRIANGLESTRIP;
|
||||
LPVOID data = NULL;
|
||||
@ -6469,15 +6488,9 @@ static void shademode_test(IDirect3DDevice9 *device)
|
||||
case D3DSHADE_GOURAUD:
|
||||
/* Should be an interpolated blend */
|
||||
|
||||
r = (color0 & 0x00ff0000) >> 16;
|
||||
g = (color0 & 0x0000ff00) >> 8;
|
||||
b = (color0 & 0x000000ff);
|
||||
ok(r >= 0x0c && r <= 0x0e && g == 0xca && b >= 0x27 && b <= 0x28,
|
||||
"GOURAUD shading has color0 %08x, expected 0x000dca28\n", color0);
|
||||
r = (color1 & 0x00ff0000) >> 16;
|
||||
g = (color1 & 0x0000ff00) >> 8;
|
||||
b = (color1 & 0x000000ff);
|
||||
ok(r >= 0x0c && r <= 0x0d && g >= 0x44 && g <= 0x45 && b >= 0xc7 && b <= 0xc8,
|
||||
ok(color_near(color0, 0x000dca28),
|
||||
"GOURAUD shading has color0 %08x, expected 0x00dca28\n", color0);
|
||||
ok(color_near(color1, 0x000d45c7),
|
||||
"GOURAUD shading has color1 %08x, expected 0x000d45c7\n", color1);
|
||||
|
||||
color0_gouraud = color0;
|
||||
@ -6487,15 +6500,9 @@ static void shademode_test(IDirect3DDevice9 *device)
|
||||
break;
|
||||
case D3DSHADE_PHONG:
|
||||
/* Should be the same as GOURAUD, since no hardware implements this */
|
||||
r = (color0 & 0x00ff0000) >> 16;
|
||||
g = (color0 & 0x0000ff00) >> 8;
|
||||
b = (color0 & 0x000000ff);
|
||||
ok(r >= 0x0c && r <= 0x0e && g == 0xca && b >= 0x27 && b <= 0x28,
|
||||
ok(color_near(color0, 0x000dca28),
|
||||
"PHONG shading has color0 %08x, expected 0x000dca28\n", color0);
|
||||
r = (color1 & 0x00ff0000) >> 16;
|
||||
g = (color1 & 0x0000ff00) >> 8;
|
||||
b = (color1 & 0x000000ff);
|
||||
ok(r >= 0x0c && r <= 0x0d && g >= 0x44 && g <= 0x45 && b >= 0xc7 && b <= 0xc8,
|
||||
ok(color_near(color1, 0x000d45c7),
|
||||
"PHONG shading has color1 %08x, expected 0x000d45c7\n", color1);
|
||||
|
||||
ok(color0 == color0_gouraud, "difference between GOURAUD and PHONG shading detected: %08x %08x\n",
|
||||
|
Loading…
Reference in New Issue
Block a user