Commit 7e33bc7a authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

ddraw/tests: 64-bit ddraw only has DWORD surface pitch alignment in some cases.

parent cbe63d97
...@@ -4503,28 +4503,29 @@ static void test_create_surface_pitch(void) ...@@ -4503,28 +4503,29 @@ static void test_create_surface_pitch(void)
DWORD pitch_in; DWORD pitch_in;
HRESULT hr; HRESULT hr;
DWORD flags_out; DWORD flags_out;
DWORD pitch_out; DWORD pitch_out32;
DWORD pitch_out64;
} }
test_data[] = test_data[] =
{ {
{DDSCAPS_VIDEOMEMORY, 0, 0, DD_OK, {DDSCAPS_VIDEOMEMORY, 0, 0, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x104, DD_OK, {DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x104, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x0f8, DD_OK, {DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x0f8, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDCAPS, {DDSCAPS_VIDEOMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDCAPS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, 0, 0, DD_OK, {DDSCAPS_SYSTEMMEMORY, 0, 0, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x104, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x104, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x0f8, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x0f8, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE, 0, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE, 0, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
}; };
DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE; DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE;
...@@ -4566,9 +4567,14 @@ static void test_create_surface_pitch(void) ...@@ -4566,9 +4567,14 @@ static void test_create_surface_pitch(void)
ok((surface_desc.dwFlags & flags_mask) == test_data[i].flags_out, ok((surface_desc.dwFlags & flags_mask) == test_data[i].flags_out,
"Test %u: Got unexpected flags %#x, expected %#x.\n", "Test %u: Got unexpected flags %#x, expected %#x.\n",
i, surface_desc.dwFlags & flags_mask, test_data[i].flags_out); i, surface_desc.dwFlags & flags_mask, test_data[i].flags_out);
ok(U1(surface_desc).lPitch == test_data[i].pitch_out, if (sizeof(void *) != sizeof(DWORD) && test_data[i].pitch_out32 != test_data[i].pitch_out64)
todo_wine ok(U1(surface_desc).lPitch == test_data[i].pitch_out64,
"Test %u: Got unexpected pitch %u, expected %u.\n", "Test %u: Got unexpected pitch %u, expected %u.\n",
i, U1(surface_desc).lPitch, test_data[i].pitch_out); i, U1(surface_desc).lPitch, test_data[i].pitch_out64);
else
ok(U1(surface_desc).lPitch == test_data[i].pitch_out32,
"Test %u: Got unexpected pitch %u, expected %u.\n",
i, U1(surface_desc).lPitch, test_data[i].pitch_out32);
IDirectDrawSurface_Release(surface); IDirectDrawSurface_Release(surface);
} }
......
...@@ -5579,28 +5579,29 @@ static void test_create_surface_pitch(void) ...@@ -5579,28 +5579,29 @@ static void test_create_surface_pitch(void)
DWORD pitch_in; DWORD pitch_in;
HRESULT hr; HRESULT hr;
DWORD flags_out; DWORD flags_out;
DWORD pitch_out; DWORD pitch_out32;
DWORD pitch_out64;
} }
test_data[] = test_data[] =
{ {
{DDSCAPS_VIDEOMEMORY, 0, 0, DD_OK, {DDSCAPS_VIDEOMEMORY, 0, 0, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x104, DD_OK, {DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x104, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x0f8, DD_OK, {DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x0f8, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDCAPS, {DDSCAPS_VIDEOMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDCAPS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, 0, 0, DD_OK, {DDSCAPS_SYSTEMMEMORY, 0, 0, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x104, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x104, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x0f8, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x0f8, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE, 0, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE, 0, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
}; };
DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE; DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE;
...@@ -5642,9 +5643,14 @@ static void test_create_surface_pitch(void) ...@@ -5642,9 +5643,14 @@ static void test_create_surface_pitch(void)
ok((surface_desc.dwFlags & flags_mask) == test_data[i].flags_out, ok((surface_desc.dwFlags & flags_mask) == test_data[i].flags_out,
"Test %u: Got unexpected flags %#x, expected %#x.\n", "Test %u: Got unexpected flags %#x, expected %#x.\n",
i, surface_desc.dwFlags & flags_mask, test_data[i].flags_out); i, surface_desc.dwFlags & flags_mask, test_data[i].flags_out);
ok(U1(surface_desc).lPitch == test_data[i].pitch_out, if (sizeof(void *) != sizeof(DWORD) && test_data[i].pitch_out32 != test_data[i].pitch_out64)
todo_wine ok(U1(surface_desc).lPitch == test_data[i].pitch_out64,
"Test %u: Got unexpected pitch %u, expected %u.\n", "Test %u: Got unexpected pitch %u, expected %u.\n",
i, U1(surface_desc).lPitch, test_data[i].pitch_out); i, U1(surface_desc).lPitch, test_data[i].pitch_out64);
else
ok(U1(surface_desc).lPitch == test_data[i].pitch_out32,
"Test %u: Got unexpected pitch %u, expected %u.\n",
i, U1(surface_desc).lPitch, test_data[i].pitch_out32);
IDirectDrawSurface_Release(surface); IDirectDrawSurface_Release(surface);
} }
......
...@@ -6474,34 +6474,35 @@ static void test_create_surface_pitch(void) ...@@ -6474,34 +6474,35 @@ static void test_create_surface_pitch(void)
DWORD pitch_in; DWORD pitch_in;
HRESULT hr; HRESULT hr;
DWORD flags_out; DWORD flags_out;
DWORD pitch_out; DWORD pitch_out32;
DWORD pitch_out64;
} }
test_data[] = test_data[] =
{ {
{DDSCAPS_VIDEOMEMORY, 0, 0, DD_OK, {DDSCAPS_VIDEOMEMORY, 0, 0, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x104, DD_OK, {DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x104, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x0f8, DD_OK, {DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x0f8, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDCAPS, {DDSCAPS_VIDEOMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDCAPS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, 0, 0, DD_OK, {DDSCAPS_SYSTEMMEMORY, 0, 0, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x104, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x104, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x0f8, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x0f8, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE, 0, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE, 0, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0fe, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0fe, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0fc, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0fc, DD_OK,
DDSD_PITCH, 0x0fc}, DDSD_PITCH, 0x0fc, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0f8, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0f8, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
}; };
DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE; DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE;
...@@ -6543,9 +6544,14 @@ static void test_create_surface_pitch(void) ...@@ -6543,9 +6544,14 @@ static void test_create_surface_pitch(void)
ok((surface_desc.dwFlags & flags_mask) == test_data[i].flags_out, ok((surface_desc.dwFlags & flags_mask) == test_data[i].flags_out,
"Test %u: Got unexpected flags %#x, expected %#x.\n", "Test %u: Got unexpected flags %#x, expected %#x.\n",
i, surface_desc.dwFlags & flags_mask, test_data[i].flags_out); i, surface_desc.dwFlags & flags_mask, test_data[i].flags_out);
ok(U1(surface_desc).lPitch == test_data[i].pitch_out, if (sizeof(void *) != sizeof(DWORD) && test_data[i].pitch_out32 != test_data[i].pitch_out64)
todo_wine ok(U1(surface_desc).lPitch == test_data[i].pitch_out64,
"Test %u: Got unexpected pitch %u, expected %u.\n", "Test %u: Got unexpected pitch %u, expected %u.\n",
i, U1(surface_desc).lPitch, test_data[i].pitch_out); i, U1(surface_desc).lPitch, test_data[i].pitch_out64);
else
ok(U1(surface_desc).lPitch == test_data[i].pitch_out32,
"Test %u: Got unexpected pitch %u, expected %u.\n",
i, U1(surface_desc).lPitch, test_data[i].pitch_out32);
IDirectDrawSurface4_Release(surface); IDirectDrawSurface4_Release(surface);
} }
......
...@@ -6297,34 +6297,35 @@ static void test_create_surface_pitch(void) ...@@ -6297,34 +6297,35 @@ static void test_create_surface_pitch(void)
DWORD pitch_in; DWORD pitch_in;
HRESULT hr; HRESULT hr;
DWORD flags_out; DWORD flags_out;
DWORD pitch_out; DWORD pitch_out32;
DWORD pitch_out64;
} }
test_data[] = test_data[] =
{ {
{DDSCAPS_VIDEOMEMORY, 0, 0, DD_OK, {DDSCAPS_VIDEOMEMORY, 0, 0, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x104, DD_OK, {DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x104, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x0f8, DD_OK, {DDSCAPS_VIDEOMEMORY, DDSD_PITCH, 0x0f8, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_VIDEOMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDCAPS, {DDSCAPS_VIDEOMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DDERR_INVALIDCAPS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, 0, 0, DD_OK, {DDSCAPS_SYSTEMMEMORY, 0, 0, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x104, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x104, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x0f8, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_PITCH, 0x0f8, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE, 0, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE, 0, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x100, DD_OK,
DDSD_PITCH, 0x100}, DDSD_PITCH, 0x100, 0x100},
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0fe, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0fe, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0fc, DD_OK, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0fc, DD_OK,
DDSD_PITCH, 0x0fc}, DDSD_PITCH, 0x0fc, 0x0fc},
{DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0f8, DDERR_INVALIDPARAMS, {DDSCAPS_SYSTEMMEMORY, DDSD_LPSURFACE | DDSD_PITCH, 0x0f8, DDERR_INVALIDPARAMS,
0, 0 }, 0, 0, 0 },
}; };
DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE; DWORD flags_mask = DDSD_PITCH | DDSD_LPSURFACE;
...@@ -6366,9 +6367,14 @@ static void test_create_surface_pitch(void) ...@@ -6366,9 +6367,14 @@ static void test_create_surface_pitch(void)
ok((surface_desc.dwFlags & flags_mask) == test_data[i].flags_out, ok((surface_desc.dwFlags & flags_mask) == test_data[i].flags_out,
"Test %u: Got unexpected flags %#x, expected %#x.\n", "Test %u: Got unexpected flags %#x, expected %#x.\n",
i, surface_desc.dwFlags & flags_mask, test_data[i].flags_out); i, surface_desc.dwFlags & flags_mask, test_data[i].flags_out);
ok(U1(surface_desc).lPitch == test_data[i].pitch_out, if (sizeof(void *) != sizeof(DWORD) && test_data[i].pitch_out32 != test_data[i].pitch_out64)
todo_wine ok(U1(surface_desc).lPitch == test_data[i].pitch_out64,
"Test %u: Got unexpected pitch %u, expected %u.\n", "Test %u: Got unexpected pitch %u, expected %u.\n",
i, U1(surface_desc).lPitch, test_data[i].pitch_out); i, U1(surface_desc).lPitch, test_data[i].pitch_out64);
else
ok(U1(surface_desc).lPitch == test_data[i].pitch_out32,
"Test %u: Got unexpected pitch %u, expected %u.\n",
i, U1(surface_desc).lPitch, test_data[i].pitch_out32);
IDirectDrawSurface7_Release(surface); IDirectDrawSurface7_Release(surface);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment