forked from Mirrors/wine-wine
d3d8/tests: Add test for regression in IDirect3DDevice8_Reset().
This adds a test for regression introduced in
cad279449c
.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
oldstable
parent
f37a438e79
commit
b2e8ca902b
|
@ -1284,6 +1284,7 @@ static void test_reset(void)
|
||||||
UINT adapter_mode_count;
|
UINT adapter_mode_count;
|
||||||
D3DLOCKED_RECT lockrect;
|
D3DLOCKED_RECT lockrect;
|
||||||
UINT mode_count = 0;
|
UINT mode_count = 0;
|
||||||
|
DEVMODEW devmode;
|
||||||
IDirect3D8 *d3d8;
|
IDirect3D8 *d3d8;
|
||||||
RECT winrect;
|
RECT winrect;
|
||||||
D3DVIEWPORT8 vp;
|
D3DVIEWPORT8 vp;
|
||||||
|
@ -1292,6 +1293,7 @@ static void test_reset(void)
|
||||||
DWORD value;
|
DWORD value;
|
||||||
HWND window;
|
HWND window;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
LONG ret;
|
||||||
UINT i;
|
UINT i;
|
||||||
|
|
||||||
static const DWORD decl[] =
|
static const DWORD decl[] =
|
||||||
|
@ -1387,15 +1389,12 @@ static void test_reset(void)
|
||||||
|
|
||||||
hr = IDirect3DDevice8_GetViewport(device1, &vp);
|
hr = IDirect3DDevice8_GetViewport(device1, &vp);
|
||||||
ok(SUCCEEDED(hr), "GetViewport failed, hr %#x.\n", hr);
|
ok(SUCCEEDED(hr), "GetViewport failed, hr %#x.\n", hr);
|
||||||
if (SUCCEEDED(hr))
|
ok(vp.X == 0, "D3DVIEWPORT->X = %u, expected 0.\n", vp.X);
|
||||||
{
|
ok(vp.Y == 0, "D3DVIEWPORT->Y = %u, expected 0.\n", vp.Y);
|
||||||
ok(vp.X == 0, "D3DVIEWPORT->X = %u, expected 0.\n", vp.X);
|
ok(vp.Width == modes[i].w, "D3DVIEWPORT->Width = %u, expected %u.\n", vp.Width, modes[i].w);
|
||||||
ok(vp.Y == 0, "D3DVIEWPORT->Y = %u, expected 0.\n", vp.Y);
|
ok(vp.Height == modes[i].h, "D3DVIEWPORT->Height = %u, expected %u.\n", vp.Height, modes[i].h);
|
||||||
ok(vp.Width == modes[i].w, "D3DVIEWPORT->Width = %u, expected %u.\n", vp.Width, modes[i].w);
|
ok(vp.MinZ == 0, "D3DVIEWPORT->MinZ = %.8e, expected 0.\n", vp.MinZ);
|
||||||
ok(vp.Height == modes[i].h, "D3DVIEWPORT->Height = %u, expected %u.\n", vp.Height, modes[i].h);
|
ok(vp.MaxZ == 1, "D3DVIEWPORT->MaxZ = %.8e, expected 1.\n", vp.MaxZ);
|
||||||
ok(vp.MinZ == 0, "D3DVIEWPORT->MinZ = %.8e, expected 0.\n", vp.MinZ);
|
|
||||||
ok(vp.MaxZ == 1, "D3DVIEWPORT->MaxZ = %.8e, expected 1.\n", vp.MaxZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
i = 1;
|
i = 1;
|
||||||
vp.X = 10;
|
vp.X = 10;
|
||||||
|
@ -1431,15 +1430,12 @@ static void test_reset(void)
|
||||||
memset(&vp, 0, sizeof(vp));
|
memset(&vp, 0, sizeof(vp));
|
||||||
hr = IDirect3DDevice8_GetViewport(device1, &vp);
|
hr = IDirect3DDevice8_GetViewport(device1, &vp);
|
||||||
ok(SUCCEEDED(hr), "GetViewport failed, hr %#x.\n", hr);
|
ok(SUCCEEDED(hr), "GetViewport failed, hr %#x.\n", hr);
|
||||||
if (SUCCEEDED(hr))
|
ok(vp.X == 0, "D3DVIEWPORT->X = %u, expected 0.\n", vp.X);
|
||||||
{
|
ok(vp.Y == 0, "D3DVIEWPORT->Y = %u, expected 0.\n", vp.Y);
|
||||||
ok(vp.X == 0, "D3DVIEWPORT->X = %u, expected 0.\n", vp.X);
|
ok(vp.Width == modes[i].w, "D3DVIEWPORT->Width = %u, expected %u.\n", vp.Width, modes[i].w);
|
||||||
ok(vp.Y == 0, "D3DVIEWPORT->Y = %u, expected 0.\n", vp.Y);
|
ok(vp.Height == modes[i].h, "D3DVIEWPORT->Height = %u, expected %u.\n", vp.Height, modes[i].h);
|
||||||
ok(vp.Width == modes[i].w, "D3DVIEWPORT->Width = %u, expected %u.\n", vp.Width, modes[i].w);
|
ok(vp.MinZ == 0, "D3DVIEWPORT->MinZ = %.8e, expected 0.\n", vp.MinZ);
|
||||||
ok(vp.Height == modes[i].h, "D3DVIEWPORT->Height = %u, expected %u.\n", vp.Height, modes[i].h);
|
ok(vp.MaxZ == 1, "D3DVIEWPORT->MaxZ = %.8e, expected 1.\n", vp.MaxZ);
|
||||||
ok(vp.MinZ == 0, "D3DVIEWPORT->MinZ = %.8e, expected 0.\n", vp.MinZ);
|
|
||||||
ok(vp.MaxZ == 1, "D3DVIEWPORT->MaxZ = %.8e, expected 1.\n", vp.MaxZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
width = GetSystemMetrics(SM_CXSCREEN);
|
width = GetSystemMetrics(SM_CXSCREEN);
|
||||||
height = GetSystemMetrics(SM_CYSCREEN);
|
height = GetSystemMetrics(SM_CYSCREEN);
|
||||||
|
@ -1470,15 +1466,12 @@ static void test_reset(void)
|
||||||
memset(&vp, 0, sizeof(vp));
|
memset(&vp, 0, sizeof(vp));
|
||||||
hr = IDirect3DDevice8_GetViewport(device1, &vp);
|
hr = IDirect3DDevice8_GetViewport(device1, &vp);
|
||||||
ok(SUCCEEDED(hr), "GetViewport failed, hr %#x.\n", hr);
|
ok(SUCCEEDED(hr), "GetViewport failed, hr %#x.\n", hr);
|
||||||
if (SUCCEEDED(hr))
|
ok(vp.X == 0, "D3DVIEWPORT->X = %u, expected 0.\n", vp.X);
|
||||||
{
|
ok(vp.Y == 0, "D3DVIEWPORT->Y = %u, expected 0.\n", vp.Y);
|
||||||
ok(vp.X == 0, "D3DVIEWPORT->X = %u, expected 0.\n", vp.X);
|
ok(vp.Width == 400, "D3DVIEWPORT->Width = %u, expected 400.\n", vp.Width);
|
||||||
ok(vp.Y == 0, "D3DVIEWPORT->Y = %u, expected 0.\n", vp.Y);
|
ok(vp.Height == 300, "D3DVIEWPORT->Height = %u, expected 300.\n", vp.Height);
|
||||||
ok(vp.Width == 400, "D3DVIEWPORT->Width = %u, expected 400.\n", vp.Width);
|
ok(vp.MinZ == 0, "D3DVIEWPORT->MinZ = %.8e, expected 0.\n", vp.MinZ);
|
||||||
ok(vp.Height == 300, "D3DVIEWPORT->Height = %u, expected 300.\n", vp.Height);
|
ok(vp.MaxZ == 1, "D3DVIEWPORT->MaxZ = %.8e, expected 1.\n", vp.MaxZ);
|
||||||
ok(vp.MinZ == 0, "D3DVIEWPORT->MinZ = %.8e, expected 0.\n", vp.MinZ);
|
|
||||||
ok(vp.MaxZ == 1, "D3DVIEWPORT->MaxZ = %.8e, expected 1.\n", vp.MaxZ);
|
|
||||||
}
|
|
||||||
|
|
||||||
width = GetSystemMetrics(SM_CXSCREEN);
|
width = GetSystemMetrics(SM_CXSCREEN);
|
||||||
height = GetSystemMetrics(SM_CYSCREEN);
|
height = GetSystemMetrics(SM_CYSCREEN);
|
||||||
|
@ -1495,6 +1488,61 @@ static void test_reset(void)
|
||||||
surface_desc.Height);
|
surface_desc.Height);
|
||||||
IDirect3DSurface8_Release(surface);
|
IDirect3DSurface8_Release(surface);
|
||||||
|
|
||||||
|
memset(&devmode, 0, sizeof(devmode));
|
||||||
|
devmode.dmSize = sizeof(devmode);
|
||||||
|
devmode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
|
||||||
|
devmode.dmPelsWidth = modes[1].w;
|
||||||
|
devmode.dmPelsHeight = modes[1].h;
|
||||||
|
ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
|
||||||
|
ok(ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", ret);
|
||||||
|
width = GetSystemMetrics(SM_CXSCREEN);
|
||||||
|
height = GetSystemMetrics(SM_CYSCREEN);
|
||||||
|
ok(width == modes[1].w, "Screen width is %u, expected %u.\n", width, modes[1].w);
|
||||||
|
ok(height == modes[1].h, "Screen height is %u, expected %u.\n", height, modes[1].h);
|
||||||
|
|
||||||
|
d3dpp.BackBufferWidth = 500;
|
||||||
|
d3dpp.BackBufferHeight = 400;
|
||||||
|
d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
|
||||||
|
hr = IDirect3DDevice8_Reset(device1, &d3dpp);
|
||||||
|
ok(SUCCEEDED(hr), "Reset failed, hr %#x.\n", hr);
|
||||||
|
hr = IDirect3DDevice8_TestCooperativeLevel(device1);
|
||||||
|
ok(SUCCEEDED(hr), "TestCooperativeLevel failed, hr %#x.\n", hr);
|
||||||
|
|
||||||
|
width = GetSystemMetrics(SM_CXSCREEN);
|
||||||
|
height = GetSystemMetrics(SM_CYSCREEN);
|
||||||
|
ok(width == modes[1].w, "Screen width is %u, expected %u.\n", width, modes[1].w);
|
||||||
|
ok(height == modes[1].h, "Screen height is %u, expected %u.\n", height, modes[1].h);
|
||||||
|
|
||||||
|
ZeroMemory(&vp, sizeof(vp));
|
||||||
|
hr = IDirect3DDevice8_GetViewport(device1, &vp);
|
||||||
|
ok(SUCCEEDED(hr), "GetViewport failed, hr %#x.\n", hr);
|
||||||
|
ok(vp.X == 0, "D3DVIEWPORT->X = %d.\n", vp.X);
|
||||||
|
ok(vp.Y == 0, "D3DVIEWPORT->Y = %d.\n", vp.Y);
|
||||||
|
ok(vp.Width == 500, "D3DVIEWPORT->Width = %d.\n", vp.Width);
|
||||||
|
ok(vp.Height == 400, "D3DVIEWPORT->Height = %d.\n", vp.Height);
|
||||||
|
ok(vp.MinZ == 0, "D3DVIEWPORT->MinZ = %f.\n", vp.MinZ);
|
||||||
|
ok(vp.MaxZ == 1, "D3DVIEWPORT->MaxZ = %f.\n", vp.MaxZ);
|
||||||
|
|
||||||
|
hr = IDirect3DDevice8_GetRenderTarget(device1, &surface);
|
||||||
|
ok(SUCCEEDED(hr), "GetRenderTarget failed, hr %#x.\n", hr);
|
||||||
|
hr = IDirect3DSurface8_GetDesc(surface, &surface_desc);
|
||||||
|
ok(hr == D3D_OK, "GetDesc failed, hr %#x.\n", hr);
|
||||||
|
ok(surface_desc.Width == 500, "Back buffer width is %u, expected 500.\n",
|
||||||
|
surface_desc.Width);
|
||||||
|
ok(surface_desc.Height == 400, "Back buffer height is %u, expected 400.\n",
|
||||||
|
surface_desc.Height);
|
||||||
|
IDirect3DSurface8_Release(surface);
|
||||||
|
|
||||||
|
devmode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
|
||||||
|
devmode.dmPelsWidth = orig_width;
|
||||||
|
devmode.dmPelsHeight = orig_height;
|
||||||
|
ret = ChangeDisplaySettingsW(&devmode, CDS_FULLSCREEN);
|
||||||
|
ok(ret == DISP_CHANGE_SUCCESSFUL, "Failed to change display mode, ret %#x.\n", ret);
|
||||||
|
width = GetSystemMetrics(SM_CXSCREEN);
|
||||||
|
height = GetSystemMetrics(SM_CYSCREEN);
|
||||||
|
ok(width == orig_width, "Got screen width %u, expected %u.\n", width, orig_width);
|
||||||
|
ok(height == orig_height, "Got screen height %u, expected %u.\n", height, orig_height);
|
||||||
|
|
||||||
winrect.left = 0;
|
winrect.left = 0;
|
||||||
winrect.top = 0;
|
winrect.top = 0;
|
||||||
winrect.right = 200;
|
winrect.right = 200;
|
||||||
|
|
Loading…
Reference in New Issue