ddraw/tests: Add tests for clippers with a destroyed window.
This commit is contained in:
parent
c7cc9a1a5d
commit
e2765579bc
|
@ -104,7 +104,8 @@ static HRGN get_window_region(HWND window)
|
|||
|
||||
if (!GetClientRect(window, &client_rect))
|
||||
{
|
||||
ERR("Failed to get client rect.\n");
|
||||
/* This can happen if the window is destroyed, for example. */
|
||||
WARN("Failed to get client rect.\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -157,7 +158,7 @@ static HRESULT WINAPI ddraw_clipper_GetClipList(IDirectDrawClipper *iface, RECT
|
|||
if (!(region = get_window_region(clipper->window)))
|
||||
{
|
||||
wined3d_mutex_unlock();
|
||||
ERR("Failed to get window region.\n");
|
||||
WARN("Failed to get window region.\n");
|
||||
return E_FAIL;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -328,6 +328,18 @@ static void test_clipper_blt(void)
|
|||
hr = IDirectDrawSurface_BltFast(dst_surface, 0, 0, src_surface, NULL, DDBLTFAST_WAIT);
|
||||
ok(hr == DDERR_BLTFASTCANTCLIP || broken(hr == E_NOTIMPL /* NT4 */), "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
hr = IDirectDrawClipper_SetHWnd(clipper, 0, window);
|
||||
ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(SUCCEEDED(hr), "Failed to get clip list size, hr %#x.\n", hr);
|
||||
DestroyWindow(window);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(hr == E_FAIL, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_SetHWnd(clipper, 0, NULL);
|
||||
ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(SUCCEEDED(hr), "Failed to get clip list size, hr %#x.\n", hr);
|
||||
|
||||
IDirectDrawSurface_Release(dst_surface);
|
||||
IDirectDrawSurface_Release(src_surface);
|
||||
IDirectDrawClipper_Release(clipper);
|
||||
|
|
|
@ -335,6 +335,18 @@ static void test_clipper_blt(void)
|
|||
hr = IDirectDrawSurface_BltFast(dst_surface, 0, 0, src_surface, NULL, DDBLTFAST_WAIT);
|
||||
ok(hr == DDERR_BLTFASTCANTCLIP || broken(hr == E_NOTIMPL /* NT4 */), "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
hr = IDirectDrawClipper_SetHWnd(clipper, 0, window);
|
||||
ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(SUCCEEDED(hr), "Failed to get clip list size, hr %#x.\n", hr);
|
||||
DestroyWindow(window);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(hr == E_FAIL, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_SetHWnd(clipper, 0, NULL);
|
||||
ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(SUCCEEDED(hr), "Failed to get clip list size, hr %#x.\n", hr);
|
||||
|
||||
IDirectDrawSurface_Release(dst_surface);
|
||||
IDirectDrawSurface_Release(src_surface);
|
||||
IDirectDrawClipper_Release(clipper);
|
||||
|
|
|
@ -630,6 +630,18 @@ static void test_clipper_blt(void)
|
|||
hr = IDirectDrawSurface4_BltFast(dst_surface, 0, 0, src_surface, NULL, DDBLTFAST_WAIT);
|
||||
ok(hr == DDERR_BLTFASTCANTCLIP, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
hr = IDirectDrawClipper_SetHWnd(clipper, 0, window);
|
||||
ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(SUCCEEDED(hr), "Failed to get clip list size, hr %#x.\n", hr);
|
||||
DestroyWindow(window);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(hr == E_FAIL, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_SetHWnd(clipper, 0, NULL);
|
||||
ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(SUCCEEDED(hr), "Failed to get clip list size, hr %#x.\n", hr);
|
||||
|
||||
IDirectDrawSurface4_Release(dst_surface);
|
||||
IDirectDrawSurface4_Release(src_surface);
|
||||
IDirectDrawClipper_Release(clipper);
|
||||
|
|
|
@ -623,6 +623,18 @@ static void test_clipper_blt(void)
|
|||
hr = IDirectDrawSurface7_BltFast(dst_surface, 0, 0, src_surface, NULL, DDBLTFAST_WAIT);
|
||||
ok(hr == DDERR_BLTFASTCANTCLIP, "Got unexpected hr %#x.\n", hr);
|
||||
|
||||
hr = IDirectDrawClipper_SetHWnd(clipper, 0, window);
|
||||
ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(SUCCEEDED(hr), "Failed to get clip list size, hr %#x.\n", hr);
|
||||
DestroyWindow(window);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(hr == E_FAIL, "Got unexpected hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_SetHWnd(clipper, 0, NULL);
|
||||
ok(SUCCEEDED(hr), "Failed to set clipper window, hr %#x.\n", hr);
|
||||
hr = IDirectDrawClipper_GetClipList(clipper, NULL, NULL, &ret);
|
||||
ok(SUCCEEDED(hr), "Failed to get clip list size, hr %#x.\n", hr);
|
||||
|
||||
IDirectDrawSurface7_Release(dst_surface);
|
||||
IDirectDrawSurface7_Release(src_surface);
|
||||
IDirectDrawClipper_Release(clipper);
|
||||
|
|
Loading…
Reference in New Issue