ddraw/tests: Use ARRAY_SIZE() in the ddraw2 tests.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Michael Stefaniuc 2017-10-31 12:10:27 +01:00 committed by Alexandre Julliard
parent 27c203f237
commit 71443a5e12

View file

@ -358,7 +358,7 @@ static IDirect3DDevice2 *create_device(IDirectDraw2 *ddraw, HWND window, DWORD c
/* We used to use EnumDevices() for this, but it seems /* We used to use EnumDevices() for this, but it seems
* D3DDEVICEDESC.dwDeviceZBufferBitDepth only has a very casual * D3DDEVICEDESC.dwDeviceZBufferBitDepth only has a very casual
* relationship with reality. */ * relationship with reality. */
for (i = 0; i < sizeof(z_depths) / sizeof(*z_depths); ++i) for (i = 0; i < ARRAY_SIZE(z_depths); ++i)
{ {
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
@ -1693,7 +1693,7 @@ static void test_ck_rgba(void)
hr = IDirect3DDevice2_GetRenderTarget(device, &rt); hr = IDirect3DDevice2_GetRenderTarget(device, &rt);
ok(SUCCEEDED(hr), "Failed to get render target, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to get render target, hr %#x.\n", hr);
for (i = 0; i < sizeof(tests) / sizeof(*tests); ++i) for (i = 0; i < ARRAY_SIZE(tests); ++i)
{ {
hr = IDirect3DDevice2_SetRenderState(device, D3DRENDERSTATE_COLORKEYENABLE, tests[i].color_key); hr = IDirect3DDevice2_SetRenderState(device, D3DRENDERSTATE_COLORKEYENABLE, tests[i].color_key);
ok(SUCCEEDED(hr), "Failed to enable color keying, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to enable color keying, hr %#x.\n", hr);
@ -2128,7 +2128,7 @@ static void test_surface_qi(void)
hr = IDirectDraw2_CreateSurface(ddraw, &surface_desc, &surface, NULL); hr = IDirectDraw2_CreateSurface(ddraw, &surface_desc, &surface, NULL);
ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n", hr);
test_qi("surface_qi", (IUnknown *)surface, &IID_IDirectDrawSurface, tests, sizeof(tests) / sizeof(*tests)); test_qi("surface_qi", (IUnknown *)surface, &IID_IDirectDrawSurface, tests, ARRAY_SIZE(tests));
IDirectDrawSurface_Release(surface); IDirectDrawSurface_Release(surface);
IDirectDraw2_Release(ddraw); IDirectDraw2_Release(ddraw);
@ -2198,7 +2198,7 @@ static void test_device_qi(void)
return; return;
} }
test_qi("device_qi", (IUnknown *)device, &IID_IDirect3DDevice2, tests, sizeof(tests) / sizeof(*tests)); test_qi("device_qi", (IUnknown *)device, &IID_IDirect3DDevice2, tests, ARRAY_SIZE(tests));
IDirect3DDevice2_Release(device); IDirect3DDevice2_Release(device);
IDirectDraw2_Release(ddraw); IDirectDraw2_Release(ddraw);
@ -3858,7 +3858,7 @@ static void test_lighting_interface_versions(void)
ok(SUCCEEDED(hr), "Failed to get specularenable render state, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to get specularenable render state, hr %#x.\n", hr);
ok(rs == TRUE, "Initial D3DRENDERSTATE_SPECULARENABLE is %#x, expected TRUE.\n", rs); ok(rs == TRUE, "Initial D3DRENDERSTATE_SPECULARENABLE is %#x, expected TRUE.\n", rs);
for (i = 0; i < sizeof(tests) / sizeof(*tests); i++) for (i = 0; i < ARRAY_SIZE(tests); i++)
{ {
hr = IDirect3DViewport2_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET); hr = IDirect3DViewport2_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET);
ok(SUCCEEDED(hr), "Failed to clear viewport, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to clear viewport, hr %#x.\n", hr);
@ -4087,13 +4087,13 @@ static void test_unsupported_formats(void)
return; return;
} }
for (i = 0; i < sizeof(formats) / sizeof(*formats); i++) for (i = 0; i < ARRAY_SIZE(formats); i++)
{ {
struct format_support_check check = {&formats[i].fmt, FALSE}; struct format_support_check check = {&formats[i].fmt, FALSE};
hr = IDirect3DDevice2_EnumTextureFormats(device, test_unsupported_formats_cb, &check); hr = IDirect3DDevice2_EnumTextureFormats(device, test_unsupported_formats_cb, &check);
ok(SUCCEEDED(hr), "Failed to enumerate texture formats %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to enumerate texture formats %#x.\n", hr);
for (j = 0; j < sizeof(caps) / sizeof(*caps); j++) for (j = 0; j < ARRAY_SIZE(caps); j++)
{ {
memset(&ddsd, 0, sizeof(ddsd)); memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd); ddsd.dwSize = sizeof(ddsd);
@ -4379,7 +4379,7 @@ static void test_rt_caps(void)
hr = IDirectDraw2_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT, palette_entries, &palette, NULL); hr = IDirectDraw2_CreatePalette(ddraw, DDPCAPS_ALLOW256 | DDPCAPS_8BIT, palette_entries, &palette, NULL);
ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to create palette, hr %#x.\n", hr);
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i) for (i = 0; i < ARRAY_SIZE(test_data); ++i)
{ {
IDirectDrawSurface *surface, *rt, *expected_rt, *tmp; IDirectDrawSurface *surface, *rt, *expected_rt, *tmp;
DDSURFACEDESC surface_desc; DDSURFACEDESC surface_desc;
@ -4622,7 +4622,7 @@ static void test_primary_caps(void)
ddraw = create_ddraw(); ddraw = create_ddraw();
ok(!!ddraw, "Failed to create a ddraw object.\n"); ok(!!ddraw, "Failed to create a ddraw object.\n");
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i) for (i = 0; i < ARRAY_SIZE(test_data); ++i)
{ {
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, test_data[i].coop_level); hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, test_data[i].coop_level);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
@ -4717,7 +4717,7 @@ static void test_surface_lock(void)
ok(!!z_depth, "Failed to get device z depth.\n"); ok(!!z_depth, "Failed to get device z depth.\n");
IDirect3DDevice2_Release(device); IDirect3DDevice2_Release(device);
for (i = 0; i < sizeof(tests) / sizeof(*tests); i++) for (i = 0; i < ARRAY_SIZE(tests); i++)
{ {
memset(&ddsd, 0, sizeof(ddsd)); memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd); ddsd.dwSize = sizeof(ddsd);
@ -4797,7 +4797,7 @@ static void test_surface_discard(void)
hr = IDirect3DDevice2_GetRenderTarget(device, &target); hr = IDirect3DDevice2_GetRenderTarget(device, &target);
ok(SUCCEEDED(hr), "Failed to get render target, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to get render target, hr %#x.\n", hr);
for (i = 0; i < sizeof(tests) / sizeof(*tests); i++) for (i = 0; i < ARRAY_SIZE(tests); i++)
{ {
BOOL discarded; BOOL discarded;
@ -4911,7 +4911,7 @@ static void test_flip(void)
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i) for (i = 0; i < ARRAY_SIZE(test_data); ++i)
{ {
/* Creating a flippable texture induces a BSoD on some versions of the /* Creating a flippable texture induces a BSoD on some versions of the
* Intel graphics driver. At least Intel GMA 950 with driver version * Intel graphics driver. At least Intel GMA 950 with driver version
@ -5365,7 +5365,7 @@ static void test_set_surface_desc(void)
/* SetSurfaceDesc needs systemmemory surfaces. /* SetSurfaceDesc needs systemmemory surfaces.
* *
* As a sidenote, fourcc surfaces aren't allowed in sysmem, thus testing DDSD_LINEARSIZE is moot. */ * As a sidenote, fourcc surfaces aren't allowed in sysmem, thus testing DDSD_LINEARSIZE is moot. */
for (i = 0; i < sizeof(invalid_caps_tests) / sizeof(*invalid_caps_tests); i++) for (i = 0; i < ARRAY_SIZE(invalid_caps_tests); i++)
{ {
reset_ddsd(&ddsd); reset_ddsd(&ddsd);
ddsd.dwFlags = DDSD_CAPS; ddsd.dwFlags = DDSD_CAPS;
@ -6202,7 +6202,7 @@ static void test_create_surface_pitch(void)
mem = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ((63 * 4) + 8) * 63); mem = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ((63 * 4) + 8) * 63);
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i) for (i = 0; i < ARRAY_SIZE(test_data); ++i)
{ {
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
@ -6312,7 +6312,7 @@ static void test_mipmap(void)
return; return;
} }
for (i = 0; i < sizeof(tests) / sizeof(*tests); ++i) for (i = 0; i < ARRAY_SIZE(tests); ++i)
{ {
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
@ -6591,7 +6591,7 @@ static void test_p8_blit(void)
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
for (x = 0; x < sizeof(expected) / sizeof(*expected); x++) for (x = 0; x < ARRAY_SIZE(expected); x++)
{ {
color = get_surface_color(dst, x, 0); color = get_surface_color(dst, x, 0);
todo_wine ok(compare_color(color, expected[x], 0), todo_wine ok(compare_color(color, expected[x], 0),
@ -6703,7 +6703,7 @@ static void test_material(void)
ok(SUCCEEDED(hr), "Failed to get light state, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to get light state, hr %#x.\n", hr);
ok(!tmp, "Got unexpected material handle %#x.\n", tmp); ok(!tmp, "Got unexpected material handle %#x.\n", tmp);
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i) for (i = 0; i < ARRAY_SIZE(test_data); ++i)
{ {
hr = IDirect3DViewport2_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER); hr = IDirect3DViewport2_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER);
ok(SUCCEEDED(hr), "Failed to clear viewport, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to clear viewport, hr %#x.\n", hr);
@ -7004,7 +7004,7 @@ static void test_lighting(void)
hr = IDirect3DLight_SetLight(light, (D3DLIGHT *)&light_desc); hr = IDirect3DLight_SetLight(light, (D3DLIGHT *)&light_desc);
ok(SUCCEEDED(hr), "Failed to set light, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to set light, hr %#x.\n", hr);
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); ++i) for (i = 0; i < ARRAY_SIZE(tests); ++i)
{ {
hr = IDirect3DDevice2_SetTransform(device, D3DTRANSFORMSTATE_WORLD, tests[i].world_matrix); hr = IDirect3DDevice2_SetTransform(device, D3DTRANSFORMSTATE_WORLD, tests[i].world_matrix);
ok(SUCCEEDED(hr), "Failed to set world transform, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to set world transform, hr %#x.\n", hr);
@ -7199,18 +7199,12 @@ static void test_specular_lighting(void)
} }
tests[] = tests[] =
{ {
{&directional, 30.0f, expected_directional_local, {&directional, 30.0f, expected_directional_local, ARRAY_SIZE(expected_directional_local)},
sizeof(expected_directional_local) / sizeof(expected_directional_local[0])}, {&point, 30.0f, expected_point_local, ARRAY_SIZE(expected_point_local)},
{&point, 30.0f, expected_point_local, {&spot, 30.0f, expected_spot_local, ARRAY_SIZE(expected_spot_local)},
sizeof(expected_point_local) / sizeof(expected_point_local[0])}, {&parallelpoint, 30.0f, expected_parallelpoint, ARRAY_SIZE(expected_parallelpoint)},
{&spot, 30.0f, expected_spot_local, {&point_side, 0.0f, expected_point_side, ARRAY_SIZE(expected_point_side)},
sizeof(expected_spot_local) / sizeof(expected_spot_local[0])}, {&point_far, 1.0f, expected_point_far, ARRAY_SIZE(expected_point_far)},
{&parallelpoint, 30.0f, expected_parallelpoint,
sizeof(expected_parallelpoint) / sizeof(expected_parallelpoint[0])},
{&point_side, 0.0f, expected_point_side,
sizeof(expected_point_side) / sizeof(expected_point_side[0])},
{&point_far, 1.0f, expected_point_far,
sizeof(expected_point_far) / sizeof(expected_point_far[0])},
}; };
IDirect3D2 *d3d; IDirect3D2 *d3d;
IDirect3DDevice2 *device; IDirect3DDevice2 *device;
@ -7301,7 +7295,7 @@ static void test_specular_lighting(void)
hr = IDirect3DDevice2_SetRenderState(device, D3DRENDERSTATE_SPECULARENABLE, TRUE); hr = IDirect3DDevice2_SetRenderState(device, D3DRENDERSTATE_SPECULARENABLE, TRUE);
ok(SUCCEEDED(hr), "Failed to enable specular lighting, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to enable specular lighting, hr %#x.\n", hr);
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); ++i) for (i = 0; i < ARRAY_SIZE(tests); ++i)
{ {
tests[i].light->dwFlags = D3DLIGHT_ACTIVE; tests[i].light->dwFlags = D3DLIGHT_ACTIVE;
hr = IDirect3DLight_SetLight(light, (D3DLIGHT *)tests[i].light); hr = IDirect3DLight_SetLight(light, (D3DLIGHT *)tests[i].light);
@ -7441,16 +7435,16 @@ static void test_palette_gdi(void)
"Got unexpected palette %p, expected %p.\n", "Got unexpected palette %p, expected %p.\n",
ddraw_palette_handle, GetStockObject(DEFAULT_PALETTE)); ddraw_palette_handle, GetStockObject(DEFAULT_PALETTE));
i = GetDIBColorTable(dc, 0, sizeof(rgbquad) / sizeof(*rgbquad), rgbquad); i = GetDIBColorTable(dc, 0, ARRAY_SIZE(rgbquad), rgbquad);
ok(i == sizeof(rgbquad) / sizeof(*rgbquad), "Expected count 255, got %u.\n", i); ok(i == ARRAY_SIZE(rgbquad), "Expected count 255, got %u.\n", i);
for (i = 0; i < sizeof(expected1) / sizeof(*expected1); i++) for (i = 0; i < ARRAY_SIZE(expected1); i++)
{ {
ok(!memcmp(&rgbquad[i], &expected1[i], sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &expected1[i], sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n",
i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue, i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue,
expected1[i].rgbRed, expected1[i].rgbGreen, expected1[i].rgbBlue); expected1[i].rgbRed, expected1[i].rgbGreen, expected1[i].rgbBlue);
} }
for (; i < sizeof(rgbquad) / sizeof(*rgbquad); i++) for (; i < ARRAY_SIZE(rgbquad); i++)
{ {
ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n",
@ -7490,16 +7484,16 @@ static void test_palette_gdi(void)
/* Refresh the DC. This updates the palette. */ /* Refresh the DC. This updates the palette. */
hr = IDirectDrawSurface_GetDC(surface, &dc); hr = IDirectDrawSurface_GetDC(surface, &dc);
ok(SUCCEEDED(hr), "Failed to get DC, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to get DC, hr %#x.\n", hr);
i = GetDIBColorTable(dc, 0, sizeof(rgbquad) / sizeof(*rgbquad), rgbquad); i = GetDIBColorTable(dc, 0, ARRAY_SIZE(rgbquad), rgbquad);
ok(i == sizeof(rgbquad) / sizeof(*rgbquad), "Expected count 255, got %u.\n", i); ok(i == ARRAY_SIZE(rgbquad), "Expected count 255, got %u.\n", i);
for (i = 0; i < sizeof(expected2) / sizeof(*expected2); i++) for (i = 0; i < ARRAY_SIZE(expected2); i++)
{ {
ok(!memcmp(&rgbquad[i], &expected2[i], sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &expected2[i], sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n",
i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue, i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue,
expected2[i].rgbRed, expected2[i].rgbGreen, expected2[i].rgbBlue); expected2[i].rgbRed, expected2[i].rgbGreen, expected2[i].rgbBlue);
} }
for (; i < sizeof(rgbquad) / sizeof(*rgbquad); i++) for (; i < ARRAY_SIZE(rgbquad); i++)
{ {
ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n",
@ -7563,16 +7557,16 @@ static void test_palette_gdi(void)
* the system palette are not included pending an application that depends on this. * the system palette are not included pending an application that depends on this.
* The relation between those causes problems on Windows Vista and newer for games * The relation between those causes problems on Windows Vista and newer for games
* like Age of Empires or StarCraft. Don't emulate it without a real need. */ * like Age of Empires or StarCraft. Don't emulate it without a real need. */
i = GetDIBColorTable(dc, 0, sizeof(rgbquad) / sizeof(*rgbquad), rgbquad); i = GetDIBColorTable(dc, 0, ARRAY_SIZE(rgbquad), rgbquad);
ok(i == sizeof(rgbquad) / sizeof(*rgbquad), "Expected count 255, got %u.\n", i); ok(i == ARRAY_SIZE(rgbquad), "Expected count 255, got %u.\n", i);
for (i = 0; i < sizeof(expected2) / sizeof(*expected2); i++) for (i = 0; i < ARRAY_SIZE(expected2); i++)
{ {
ok(!memcmp(&rgbquad[i], &expected2[i], sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &expected2[i], sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n",
i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue, i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue,
expected2[i].rgbRed, expected2[i].rgbGreen, expected2[i].rgbBlue); expected2[i].rgbRed, expected2[i].rgbGreen, expected2[i].rgbBlue);
} }
for (; i < sizeof(rgbquad) / sizeof(*rgbquad); i++) for (; i < ARRAY_SIZE(rgbquad); i++)
{ {
ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n",
@ -7594,16 +7588,16 @@ static void test_palette_gdi(void)
* but in all likelihood it is actually the system palette. */ * but in all likelihood it is actually the system palette. */
hr = IDirectDrawSurface_GetDC(surface, &dc); hr = IDirectDrawSurface_GetDC(surface, &dc);
ok(SUCCEEDED(hr), "Failed to get DC, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to get DC, hr %#x.\n", hr);
i = GetDIBColorTable(dc, 0, sizeof(rgbquad) / sizeof(*rgbquad), rgbquad); i = GetDIBColorTable(dc, 0, ARRAY_SIZE(rgbquad), rgbquad);
ok(i == sizeof(rgbquad) / sizeof(*rgbquad), "Expected count 255, got %u.\n", i); ok(i == ARRAY_SIZE(rgbquad), "Expected count 255, got %u.\n", i);
for (i = 0; i < sizeof(expected2) / sizeof(*expected2); i++) for (i = 0; i < ARRAY_SIZE(expected2); i++)
{ {
ok(!memcmp(&rgbquad[i], &expected2[i], sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &expected2[i], sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n",
i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue, i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue,
expected2[i].rgbRed, expected2[i].rgbGreen, expected2[i].rgbBlue); expected2[i].rgbRed, expected2[i].rgbGreen, expected2[i].rgbBlue);
} }
for (; i < sizeof(rgbquad) / sizeof(*rgbquad); i++) for (; i < ARRAY_SIZE(rgbquad); i++)
{ {
ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n",
@ -7634,16 +7628,16 @@ static void test_palette_gdi(void)
* palette. */ * palette. */
hr = IDirectDrawSurface_GetDC(surface, &dc); hr = IDirectDrawSurface_GetDC(surface, &dc);
ok(SUCCEEDED(hr), "Failed to get DC, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to get DC, hr %#x.\n", hr);
i = GetDIBColorTable(dc, 0, sizeof(rgbquad) / sizeof(*rgbquad), rgbquad); i = GetDIBColorTable(dc, 0, ARRAY_SIZE(rgbquad), rgbquad);
ok(i == sizeof(rgbquad) / sizeof(*rgbquad), "Expected count 255, got %u.\n", i); ok(i == ARRAY_SIZE(rgbquad), "Expected count 255, got %u.\n", i);
for (i = 0; i < sizeof(expected3) / sizeof(*expected3); i++) for (i = 0; i < ARRAY_SIZE(expected3); i++)
{ {
ok(!memcmp(&rgbquad[i], &expected3[i], sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &expected3[i], sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=%#x g=%#x b=%#x.\n",
i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue, i, rgbquad[i].rgbRed, rgbquad[i].rgbGreen, rgbquad[i].rgbBlue,
expected3[i].rgbRed, expected3[i].rgbGreen, expected3[i].rgbBlue); expected3[i].rgbRed, expected3[i].rgbGreen, expected3[i].rgbBlue);
} }
for (; i < sizeof(rgbquad) / sizeof(*rgbquad); i++) for (; i < ARRAY_SIZE(rgbquad); i++)
{ {
ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])), ok(!memcmp(&rgbquad[i], &rgb_zero, sizeof(rgbquad[i])),
"Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n", "Got color table entry %u r=%#x g=%#x b=%#x, expected r=0 g=0 b=0.\n",
@ -7751,7 +7745,7 @@ static void test_palette_alpha(void)
ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n", ok(palette_entries[3].peFlags == 0x00, "Got unexpected peFlags 0x%02x, expected 0x00.\n",
palette_entries[3].peFlags); palette_entries[3].peFlags);
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); i++) for (i = 0; i < ARRAY_SIZE(test_data); i++)
{ {
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
@ -8636,7 +8630,7 @@ static void test_color_fill(void)
if ((!support_yuy2 && !support_uyvy) || !(hal_caps.dwCaps & DDCAPS_OVERLAY)) if ((!support_yuy2 && !support_uyvy) || !(hal_caps.dwCaps & DDCAPS_OVERLAY))
skip("Overlays or some YUV formats not supported, skipping YUV colorfill tests.\n"); skip("Overlays or some YUV formats not supported, skipping YUV colorfill tests.\n");
for (i = 0; i < sizeof(tests) / sizeof(*tests); i++) for (i = 0; i < ARRAY_SIZE(tests); i++)
{ {
DWORD expected_broken = tests[i].result; DWORD expected_broken = tests[i].result;
DWORD mask = 0xffffffffu; DWORD mask = 0xffffffffu;
@ -8871,7 +8865,7 @@ static void test_color_fill(void)
hr = IDirectDrawSurface_Blt(surface, &rect, NULL, NULL, DDBLT_COLORFILL | DDBLT_ROP | DDBLT_WAIT, &fx); hr = IDirectDrawSurface_Blt(surface, &rect, NULL, NULL, DDBLT_COLORFILL | DDBLT_ROP | DDBLT_WAIT, &fx);
ok(hr == DDERR_INVALIDPARAMS, "Got unexpected hr %#x.\n", hr); ok(hr == DDERR_INVALIDPARAMS, "Got unexpected hr %#x.\n", hr);
for (i = 0; i < sizeof(rops) / sizeof(*rops); i++) for (i = 0; i < ARRAY_SIZE(rops); i++)
{ {
fx.dwROP = rops[i].rop; fx.dwROP = rops[i].rop;
hr = IDirectDrawSurface_Blt(surface, NULL, surface2, NULL, DDBLT_ROP | DDBLT_WAIT, &fx); hr = IDirectDrawSurface_Blt(surface, NULL, surface2, NULL, DDBLT_ROP | DDBLT_WAIT, &fx);
@ -9060,7 +9054,7 @@ static void test_colorkey_precision(void)
memset(&lock_desc, 0, sizeof(lock_desc)); memset(&lock_desc, 0, sizeof(lock_desc));
lock_desc.dwSize = sizeof(lock_desc); lock_desc.dwSize = sizeof(lock_desc);
for (t = 0; t < sizeof(tests) / sizeof(*tests); ++t) for (t = 0; t < ARRAY_SIZE(tests); ++t)
{ {
if (is_nvidia && tests[t].skip_nv) if (is_nvidia && tests[t].skip_nv)
{ {
@ -9444,7 +9438,7 @@ static void test_shademode(void)
/* Try it first with a TRIANGLESTRIP. Do it with different geometry because /* Try it first with a TRIANGLESTRIP. Do it with different geometry because
* the color fixups we have to do for FLAT shading will be dependent on that. */ * the color fixups we have to do for FLAT shading will be dependent on that. */
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); ++i) for (i = 0; i < ARRAY_SIZE(tests); ++i)
{ {
hr = IDirect3DViewport2_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET); hr = IDirect3DViewport2_Clear(viewport, 1, &clear_rect, D3DCLEAR_TARGET);
ok(SUCCEEDED(hr), "Failed to clear viewport, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to clear viewport, hr %#x.\n", hr);
@ -9546,7 +9540,7 @@ static void test_lockrect_invalid(void)
goto done; goto done;
} }
for (r = 0; r < sizeof(resources) / sizeof(*resources); ++r) for (r = 0; r < ARRAY_SIZE(resources); ++r)
{ {
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
@ -9570,7 +9564,7 @@ static void test_lockrect_invalid(void)
hr = IDirectDrawSurface2_Lock(surface, NULL, NULL, DDLOCK_WAIT, NULL); hr = IDirectDrawSurface2_Lock(surface, NULL, NULL, DDLOCK_WAIT, NULL);
ok(hr == DDERR_INVALIDPARAMS, "Got unexpected hr %#x, type %s.\n", hr, resources[r].name); ok(hr == DDERR_INVALIDPARAMS, "Got unexpected hr %#x, type %s.\n", hr, resources[r].name);
for (i = 0; i < sizeof(valid) / sizeof(*valid); ++i) for (i = 0; i < ARRAY_SIZE(valid); ++i)
{ {
RECT *rect = &valid[i]; RECT *rect = &valid[i];
@ -9585,7 +9579,7 @@ static void test_lockrect_invalid(void)
ok(SUCCEEDED(hr), "Failed to unlock surface, hr %#x, type %s.\n", hr, resources[r].name); ok(SUCCEEDED(hr), "Failed to unlock surface, hr %#x, type %s.\n", hr, resources[r].name);
} }
for (i = 0; i < sizeof(invalid) / sizeof(*invalid); ++i) for (i = 0; i < ARRAY_SIZE(invalid); ++i)
{ {
RECT *rect = &invalid[i]; RECT *rect = &invalid[i];
@ -9994,7 +9988,7 @@ static void test_blt(void)
hr = IDirectDrawSurface_Blt(surface, NULL, rt, NULL, 0, NULL); hr = IDirectDrawSurface_Blt(surface, NULL, rt, NULL, 0, NULL);
ok(SUCCEEDED(hr), "Failed to blit, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to blit, hr %#x.\n", hr);
for (i = 0; i < sizeof(test_data) / sizeof(*test_data); ++i) for (i = 0; i < ARRAY_SIZE(test_data); ++i)
{ {
hr = IDirectDrawSurface_Blt(surface, &test_data[i].dst_rect, hr = IDirectDrawSurface_Blt(surface, &test_data[i].dst_rect,
surface, &test_data[i].src_rect, DDBLT_WAIT, NULL); surface, &test_data[i].src_rect, DDBLT_WAIT, NULL);
@ -10095,7 +10089,7 @@ static void test_blt_z_alpha(void)
fx.dwAlphaSrcConstBitDepth = 8; fx.dwAlphaSrcConstBitDepth = 8;
U4(fx).dwAlphaSrcConst = 0x22; U4(fx).dwAlphaSrcConst = 0x22;
for (i = 0; i < sizeof(blt_flags) / sizeof(*blt_flags); ++i) for (i = 0; i < ARRAY_SIZE(blt_flags); ++i)
{ {
fx.dwFillColor = 0x3300ff00; fx.dwFillColor = 0x3300ff00;
hr = IDirectDrawSurface_Blt(src_surface, NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &fx); hr = IDirectDrawSurface_Blt(src_surface, NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &fx);
@ -10189,7 +10183,7 @@ static void test_getdc(void)
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL); hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
for (i = 0; i < (sizeof(test_data) / sizeof(*test_data)); ++i) for (i = 0; i < ARRAY_SIZE(test_data); ++i)
{ {
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
@ -11514,7 +11508,7 @@ static void test_surface_desc_size(void)
hr = IDirectDraw2_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL); hr = IDirectDraw2_SetCooperativeLevel(ddraw, NULL, DDSCL_NORMAL);
ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
for (i = 0; i < sizeof(surface_caps) / sizeof(*surface_caps); ++i) for (i = 0; i < ARRAY_SIZE(surface_caps); ++i)
{ {
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
@ -11533,7 +11527,7 @@ static void test_surface_desc_size(void)
ok(hr == DD_OK, "Failed to query IDirectDrawSurface7, hr %#x, type %s.\n", hr, surface_caps[i].name); ok(hr == DD_OK, "Failed to query IDirectDrawSurface7, hr %#x, type %s.\n", hr, surface_caps[i].name);
/* GetSurfaceDesc() */ /* GetSurfaceDesc() */
for (j = 0; j < sizeof(desc_sizes) / sizeof(*desc_sizes); ++j) for (j = 0; j < ARRAY_SIZE(desc_sizes); ++j)
{ {
memset(&desc, 0, sizeof(desc)); memset(&desc, 0, sizeof(desc));
desc.dwSize = desc_sizes[j]; desc.dwSize = desc_sizes[j];
@ -11558,7 +11552,7 @@ static void test_surface_desc_size(void)
} }
/* Lock() */ /* Lock() */
for (j = 0; j < sizeof(desc_sizes) / sizeof(*desc_sizes); ++j) for (j = 0; j < ARRAY_SIZE(desc_sizes); ++j)
{ {
const BOOL valid_size = desc_sizes[j] == sizeof(DDSURFACEDESC) const BOOL valid_size = desc_sizes[j] == sizeof(DDSURFACEDESC)
|| desc_sizes[j] == sizeof(DDSURFACEDESC2); || desc_sizes[j] == sizeof(DDSURFACEDESC2);