Commit 8bb3ebce authored by Akihiro Sagawa's avatar Akihiro Sagawa Committed by Alexandre Julliard

ddraw/tests: Add more managed texture tests.

parent ab54779c
...@@ -5958,6 +5958,8 @@ static void test_rt_caps(void) ...@@ -5958,6 +5958,8 @@ static void test_rt_caps(void)
const DDPIXELFORMAT *pf; const DDPIXELFORMAT *pf;
DWORD caps_in; DWORD caps_in;
DWORD caps_out; DWORD caps_out;
DWORD caps2_in;
DWORD caps2_out;
HRESULT create_device_hr; HRESULT create_device_hr;
HRESULT set_rt_hr, alternative_set_rt_hr; HRESULT set_rt_hr, alternative_set_rt_hr;
} }
...@@ -5967,6 +5969,8 @@ static void test_rt_caps(void) ...@@ -5967,6 +5969,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -5975,6 +5979,8 @@ static void test_rt_caps(void) ...@@ -5975,6 +5979,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -5983,6 +5989,8 @@ static void test_rt_caps(void) ...@@ -5983,6 +5989,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN, DDSCAPS_OFFSCREENPLAIN,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5991,6 +5999,8 @@ static void test_rt_caps(void) ...@@ -5991,6 +5999,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
0,
0,
D3DERR_SURFACENOTINVIDMEM, D3DERR_SURFACENOTINVIDMEM,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -5999,6 +6009,8 @@ static void test_rt_caps(void) ...@@ -5999,6 +6009,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6007,6 +6019,8 @@ static void test_rt_caps(void) ...@@ -6007,6 +6019,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -6015,6 +6029,8 @@ static void test_rt_caps(void) ...@@ -6015,6 +6029,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_3DDEVICE, DDSCAPS_3DDEVICE,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -6023,6 +6039,8 @@ static void test_rt_caps(void) ...@@ -6023,6 +6039,8 @@ static void test_rt_caps(void)
NULL, NULL,
0, 0,
DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6031,6 +6049,8 @@ static void test_rt_caps(void) ...@@ -6031,6 +6049,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
0,
0,
D3DERR_SURFACENOTINVIDMEM, D3DERR_SURFACENOTINVIDMEM,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -6039,14 +6059,38 @@ static void test_rt_caps(void) ...@@ -6039,14 +6059,38 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_SYSTEMMEMORY, DDSCAPS_SYSTEMMEMORY,
DDSCAPS_SYSTEMMEMORY, DDSCAPS_SYSTEMMEMORY,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
}, },
{ {
NULL,
DDSCAPS_TEXTURE | DDSCAPS_3DDEVICE,
DDSCAPS_TEXTURE | DDSCAPS_3DDEVICE | DDSCAPS_SYSTEMMEMORY,
DDSCAPS2_TEXTUREMANAGE,
DDSCAPS2_TEXTUREMANAGE,
D3DERR_SURFACENOTINVIDMEM,
D3D_OK,
D3D_OK,
},
{
NULL,
DDSCAPS_TEXTURE | DDSCAPS_3DDEVICE,
DDSCAPS_TEXTURE | DDSCAPS_3DDEVICE | DDSCAPS_SYSTEMMEMORY,
DDSCAPS2_D3DTEXTUREMANAGE,
DDSCAPS2_D3DTEXTUREMANAGE,
D3DERR_SURFACENOTINVIDMEM,
D3D_OK,
D3D_OK,
},
{
&p8_fmt, &p8_fmt,
0, 0,
DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6055,6 +6099,8 @@ static void test_rt_caps(void) ...@@ -6055,6 +6099,8 @@ static void test_rt_caps(void)
&p8_fmt, &p8_fmt,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE,
~0U /* AMD r200 */, ~0U /* AMD r200 */,
0,
0,
DDERR_NOPALETTEATTACHED, DDERR_NOPALETTEATTACHED,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6063,6 +6109,8 @@ static void test_rt_caps(void) ...@@ -6063,6 +6109,8 @@ static void test_rt_caps(void)
&p8_fmt, &p8_fmt,
DDSCAPS_OFFSCREENPLAIN, DDSCAPS_OFFSCREENPLAIN,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6071,6 +6119,8 @@ static void test_rt_caps(void) ...@@ -6071,6 +6119,8 @@ static void test_rt_caps(void)
&p8_fmt, &p8_fmt,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
0,
0,
DDERR_NOPALETTEATTACHED, DDERR_NOPALETTEATTACHED,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6079,6 +6129,8 @@ static void test_rt_caps(void) ...@@ -6079,6 +6129,8 @@ static void test_rt_caps(void)
&p8_fmt, &p8_fmt,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6087,6 +6139,8 @@ static void test_rt_caps(void) ...@@ -6087,6 +6139,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDPIXELFORMAT, DDERR_INVALIDPIXELFORMAT,
D3D_OK /* r200 */, D3D_OK /* r200 */,
...@@ -6095,6 +6149,8 @@ static void test_rt_caps(void) ...@@ -6095,6 +6149,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDPIXELFORMAT, DDERR_INVALIDPIXELFORMAT,
D3D_OK /* r200 */, D3D_OK /* r200 */,
...@@ -6103,6 +6159,8 @@ static void test_rt_caps(void) ...@@ -6103,6 +6159,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_ZBUFFER, DDSCAPS_ZBUFFER,
DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6111,6 +6169,8 @@ static void test_rt_caps(void) ...@@ -6111,6 +6169,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDPIXELFORMAT, DDERR_INVALIDPIXELFORMAT,
D3D_OK /* r200 */, D3D_OK /* r200 */,
...@@ -6119,6 +6179,8 @@ static void test_rt_caps(void) ...@@ -6119,6 +6179,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER, DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER, DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -6160,6 +6222,7 @@ static void test_rt_caps(void) ...@@ -6160,6 +6222,7 @@ static void test_rt_caps(void)
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
surface_desc.ddsCaps.dwCaps = test_data[i].caps_in; surface_desc.ddsCaps.dwCaps = test_data[i].caps_in;
surface_desc.ddsCaps.dwCaps2 = test_data[i].caps2_in;
if (test_data[i].pf) if (test_data[i].pf)
{ {
surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.dwFlags |= DDSD_PIXELFORMAT;
...@@ -6168,8 +6231,10 @@ static void test_rt_caps(void) ...@@ -6168,8 +6231,10 @@ static void test_rt_caps(void)
surface_desc.dwWidth = 640; surface_desc.dwWidth = 640;
surface_desc.dwHeight = 480; surface_desc.dwHeight = 480;
hr = IDirectDraw4_CreateSurface(ddraw, &surface_desc, &surface, NULL); hr = IDirectDraw4_CreateSurface(ddraw, &surface_desc, &surface, NULL);
ok(SUCCEEDED(hr), "Test %u: Failed to create surface with caps %#x, hr %#x.\n", todo_wine_if(i == 10 || i == 11)
i, test_data[i].caps_in, hr); ok(SUCCEEDED(hr), "Test %u: Failed to create surface with caps %#x and caps2 %#x, hr %#x.\n",
i, test_data[i].caps_in, test_data[i].caps2_in, hr);
if (FAILED(hr)) continue;
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);
...@@ -6178,6 +6243,9 @@ static void test_rt_caps(void) ...@@ -6178,6 +6243,9 @@ static void test_rt_caps(void)
ok(test_data[i].caps_out == ~0U || surface_desc.ddsCaps.dwCaps == test_data[i].caps_out, ok(test_data[i].caps_out == ~0U || surface_desc.ddsCaps.dwCaps == test_data[i].caps_out,
"Test %u: Got unexpected caps %#x, expected %#x.\n", "Test %u: Got unexpected caps %#x, expected %#x.\n",
i, surface_desc.ddsCaps.dwCaps, test_data[i].caps_out); i, surface_desc.ddsCaps.dwCaps, test_data[i].caps_out);
ok(surface_desc.ddsCaps.dwCaps2 == test_data[i].caps2_out,
"Test %u: Got unexpected caps2 %#x, expected %#x.\n",
i, surface_desc.ddsCaps.dwCaps2, test_data[i].caps2_out);
hr = IDirect3D3_CreateDevice(d3d, &IID_IDirect3DHALDevice, surface, &device, NULL); hr = IDirect3D3_CreateDevice(d3d, &IID_IDirect3DHALDevice, surface, &device, NULL);
ok(hr == test_data[i].create_device_hr, "Test %u: Got unexpected hr %#x, expected %#x.\n", ok(hr == test_data[i].create_device_hr, "Test %u: Got unexpected hr %#x, expected %#x.\n",
...@@ -6213,6 +6281,7 @@ static void test_rt_caps(void) ...@@ -6213,6 +6281,7 @@ static void test_rt_caps(void)
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
surface_desc.ddsCaps.dwCaps = test_data[i].caps_in; surface_desc.ddsCaps.dwCaps = test_data[i].caps_in;
surface_desc.ddsCaps.dwCaps2 = test_data[i].caps2_in;
if (test_data[i].pf) if (test_data[i].pf)
{ {
surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.dwFlags |= DDSD_PIXELFORMAT;
......
...@@ -5690,6 +5690,8 @@ static void test_rt_caps(void) ...@@ -5690,6 +5690,8 @@ static void test_rt_caps(void)
const DDPIXELFORMAT *pf; const DDPIXELFORMAT *pf;
DWORD caps_in; DWORD caps_in;
DWORD caps_out; DWORD caps_out;
DWORD caps2_in;
DWORD caps2_out;
HRESULT create_device_hr; HRESULT create_device_hr;
HRESULT set_rt_hr, alternative_set_rt_hr; HRESULT set_rt_hr, alternative_set_rt_hr;
} }
...@@ -5699,6 +5701,8 @@ static void test_rt_caps(void) ...@@ -5699,6 +5701,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -5707,6 +5711,8 @@ static void test_rt_caps(void) ...@@ -5707,6 +5711,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -5715,6 +5721,8 @@ static void test_rt_caps(void) ...@@ -5715,6 +5721,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN, DDSCAPS_OFFSCREENPLAIN,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5723,6 +5731,8 @@ static void test_rt_caps(void) ...@@ -5723,6 +5731,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
0,
0,
D3DERR_SURFACENOTINVIDMEM, D3DERR_SURFACENOTINVIDMEM,
DDERR_INVALIDPARAMS, DDERR_INVALIDPARAMS,
D3D_OK, D3D_OK,
...@@ -5731,6 +5741,8 @@ static void test_rt_caps(void) ...@@ -5731,6 +5741,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5739,6 +5751,8 @@ static void test_rt_caps(void) ...@@ -5739,6 +5751,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -5747,6 +5761,8 @@ static void test_rt_caps(void) ...@@ -5747,6 +5761,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_3DDEVICE, DDSCAPS_3DDEVICE,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
D3D_OK, D3D_OK,
...@@ -5755,6 +5771,8 @@ static void test_rt_caps(void) ...@@ -5755,6 +5771,8 @@ static void test_rt_caps(void)
NULL, NULL,
0, 0,
DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5763,6 +5781,8 @@ static void test_rt_caps(void) ...@@ -5763,6 +5781,8 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
0,
0,
D3DERR_SURFACENOTINVIDMEM, D3DERR_SURFACENOTINVIDMEM,
DDERR_INVALIDPARAMS, DDERR_INVALIDPARAMS,
D3D_OK, D3D_OK,
...@@ -5771,14 +5791,38 @@ static void test_rt_caps(void) ...@@ -5771,14 +5791,38 @@ static void test_rt_caps(void)
NULL, NULL,
DDSCAPS_SYSTEMMEMORY, DDSCAPS_SYSTEMMEMORY,
DDSCAPS_SYSTEMMEMORY, DDSCAPS_SYSTEMMEMORY,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
}, },
{ {
NULL,
DDSCAPS_TEXTURE | DDSCAPS_3DDEVICE,
DDSCAPS_TEXTURE | DDSCAPS_3DDEVICE | DDSCAPS_SYSTEMMEMORY,
DDSCAPS2_TEXTUREMANAGE,
DDSCAPS2_TEXTUREMANAGE,
D3DERR_SURFACENOTINVIDMEM,
DDERR_INVALIDPARAMS,
D3D_OK,
},
{
NULL,
DDSCAPS_TEXTURE | DDSCAPS_3DDEVICE,
DDSCAPS_TEXTURE | DDSCAPS_3DDEVICE | DDSCAPS_SYSTEMMEMORY,
DDSCAPS2_D3DTEXTUREMANAGE,
DDSCAPS2_D3DTEXTUREMANAGE,
D3DERR_SURFACENOTINVIDMEM,
DDERR_INVALIDPARAMS,
D3D_OK,
},
{
&p8_fmt, &p8_fmt,
0, 0,
DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5787,6 +5831,8 @@ static void test_rt_caps(void) ...@@ -5787,6 +5831,8 @@ static void test_rt_caps(void)
&p8_fmt, &p8_fmt,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE,
~0U /* AMD r200 */, ~0U /* AMD r200 */,
0,
0,
DDERR_NOPALETTEATTACHED, DDERR_NOPALETTEATTACHED,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5795,6 +5841,8 @@ static void test_rt_caps(void) ...@@ -5795,6 +5841,8 @@ static void test_rt_caps(void)
&p8_fmt, &p8_fmt,
DDSCAPS_OFFSCREENPLAIN, DDSCAPS_OFFSCREENPLAIN,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5803,6 +5851,8 @@ static void test_rt_caps(void) ...@@ -5803,6 +5851,8 @@ static void test_rt_caps(void)
&p8_fmt, &p8_fmt,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE,
0,
0,
DDERR_NOPALETTEATTACHED, DDERR_NOPALETTEATTACHED,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5811,6 +5861,8 @@ static void test_rt_caps(void) ...@@ -5811,6 +5861,8 @@ static void test_rt_caps(void)
&p8_fmt, &p8_fmt,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY,
DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5819,6 +5871,8 @@ static void test_rt_caps(void) ...@@ -5819,6 +5871,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDPIXELFORMAT, DDERR_INVALIDPIXELFORMAT,
DDERR_INVALIDPIXELFORMAT, DDERR_INVALIDPIXELFORMAT,
...@@ -5827,6 +5881,8 @@ static void test_rt_caps(void) ...@@ -5827,6 +5881,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER,
DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDPIXELFORMAT, DDERR_INVALIDPIXELFORMAT,
DDERR_INVALIDPIXELFORMAT, DDERR_INVALIDPIXELFORMAT,
...@@ -5835,6 +5891,8 @@ static void test_rt_caps(void) ...@@ -5835,6 +5891,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_ZBUFFER, DDSCAPS_ZBUFFER,
DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5843,6 +5901,8 @@ static void test_rt_caps(void) ...@@ -5843,6 +5901,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDPARAMS, DDERR_INVALIDPARAMS,
DDERR_INVALIDPIXELFORMAT, DDERR_INVALIDPIXELFORMAT,
...@@ -5851,6 +5911,8 @@ static void test_rt_caps(void) ...@@ -5851,6 +5911,8 @@ static void test_rt_caps(void)
&z_fmt, &z_fmt,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER, DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER,
DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER, DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER,
0,
0,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
DDERR_INVALIDCAPS, DDERR_INVALIDCAPS,
...@@ -5897,6 +5959,7 @@ static void test_rt_caps(void) ...@@ -5897,6 +5959,7 @@ static void test_rt_caps(void)
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
surface_desc.ddsCaps.dwCaps = test_data[i].caps_in; surface_desc.ddsCaps.dwCaps = test_data[i].caps_in;
surface_desc.ddsCaps.dwCaps2 = test_data[i].caps2_in;
if (test_data[i].pf) if (test_data[i].pf)
{ {
surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.dwFlags |= DDSD_PIXELFORMAT;
...@@ -5905,8 +5968,10 @@ static void test_rt_caps(void) ...@@ -5905,8 +5968,10 @@ static void test_rt_caps(void)
surface_desc.dwWidth = 640; surface_desc.dwWidth = 640;
surface_desc.dwHeight = 480; surface_desc.dwHeight = 480;
hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &surface, NULL); hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &surface, NULL);
ok(SUCCEEDED(hr), "Test %u: Failed to create surface with caps %#x, hr %#x.\n", todo_wine_if(i == 10 || i == 11)
i, test_data[i].caps_in, hr); ok(SUCCEEDED(hr), "Test %u: Failed to create surface with caps %#x and caps2 %#x, hr %#x.\n",
i, test_data[i].caps_in, test_data[i].caps2_in, hr);
if (FAILED(hr)) continue;
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);
...@@ -5915,6 +5980,9 @@ static void test_rt_caps(void) ...@@ -5915,6 +5980,9 @@ static void test_rt_caps(void)
ok(test_data[i].caps_out == ~0U || surface_desc.ddsCaps.dwCaps == test_data[i].caps_out, ok(test_data[i].caps_out == ~0U || surface_desc.ddsCaps.dwCaps == test_data[i].caps_out,
"Test %u: Got unexpected caps %#x, expected %#x.\n", "Test %u: Got unexpected caps %#x, expected %#x.\n",
i, surface_desc.ddsCaps.dwCaps, test_data[i].caps_out); i, surface_desc.ddsCaps.dwCaps, test_data[i].caps_out);
ok(surface_desc.ddsCaps.dwCaps2 == test_data[i].caps2_out,
"Test %u: Got unexpected caps2 %#x, expected %#x.\n",
i, surface_desc.ddsCaps.dwCaps2, test_data[i].caps2_out);
hr = IDirect3D7_CreateDevice(d3d, devtype, surface, &device); hr = IDirect3D7_CreateDevice(d3d, devtype, surface, &device);
ok(hr == test_data[i].create_device_hr, "Test %u: Got unexpected hr %#x, expected %#x.\n", ok(hr == test_data[i].create_device_hr, "Test %u: Got unexpected hr %#x, expected %#x.\n",
...@@ -5950,6 +6018,7 @@ static void test_rt_caps(void) ...@@ -5950,6 +6018,7 @@ static void test_rt_caps(void)
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
surface_desc.ddsCaps.dwCaps = test_data[i].caps_in; surface_desc.ddsCaps.dwCaps = test_data[i].caps_in;
surface_desc.ddsCaps.dwCaps2 = test_data[i].caps2_in;
if (test_data[i].pf) if (test_data[i].pf)
{ {
surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.dwFlags |= DDSD_PIXELFORMAT;
......
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