ddraw/tests: Test that surface properties are retained across SetSurfaceDesc() calls.

This commit is contained in:
Zebediah Figura 2022-12-11 19:59:42 -06:00 committed by Alexandre Julliard
parent d1b0343d3b
commit 1cea45a183
3 changed files with 84 additions and 0 deletions

View file

@ -6203,6 +6203,34 @@ static void test_set_surface_desc(void)
hr = IDirectDrawSurface3_SetSurfaceDesc(surface3, &ddsd, 0);
ok(hr == DDERR_INVALIDPARAMS, "Got hr %#lx.\n", hr);
/* Check that other surface properties are retained. */
ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = 0x00ff00ff;
ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = 0x0000ff00;
hr = IDirectDrawSurface3_SetColorKey(surface3, DDCKEY_SRCBLT, &ddsd.ddckCKSrcBlt);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
reset_ddsd(&ddsd);
ddsd.dwFlags = DDSD_WIDTH | DDSD_PITCH | DDSD_HEIGHT | DDSD_PIXELFORMAT | DDSD_LPSURFACE;
ddsd.dwWidth = 8;
U1(ddsd).lPitch = 8 * 2;
ddsd.dwHeight = 8;
ddsd.lpSurface = data;
U4(ddsd).ddpfPixelFormat.dwSize = sizeof(U4(ddsd).ddpfPixelFormat);
U4(ddsd).ddpfPixelFormat.dwFlags = DDPF_RGB; /* D3DFMT_R5G6B5 */
U1(U4(ddsd).ddpfPixelFormat).dwRGBBitCount = 16;
U2(U4(ddsd).ddpfPixelFormat).dwRBitMask = 0xf800;
U3(U4(ddsd).ddpfPixelFormat).dwGBitMask = 0x07e0;
U4(U4(ddsd).ddpfPixelFormat).dwBBitMask = 0x001f;
hr = IDirectDrawSurface3_SetSurfaceDesc(surface3, &ddsd, 0);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
memset(&ddsd.ddckCKSrcBlt, 0xcc, sizeof(ddsd.ddckCKSrcBlt));
hr = IDirectDrawSurface3_GetColorKey(surface3, DDCKEY_SRCBLT, &ddsd.ddckCKSrcBlt);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(ddsd.ddckCKSrcBlt.dwColorSpaceLowValue == 0x00ff00ff,
"Got low color key value %#lx.\n", ddsd.ddckCKSrcBlt.dwColorSpaceLowValue);
IDirectDrawSurface3_Release(surface3);
/* Test mipmap texture. */

View file

@ -7861,6 +7861,34 @@ static void test_set_surface_desc(void)
hr = IDirectDrawSurface4_SetSurfaceDesc(surface, &ddsd, 0);
ok(hr == DDERR_INVALIDPARAMS, "Got hr %#lx.\n", hr);
/* Check that other surface properties are retained. */
ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = 0x00ff00ff;
ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = 0x0000ff00;
hr = IDirectDrawSurface4_SetColorKey(surface, DDCKEY_SRCBLT, &ddsd.ddckCKSrcBlt);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
reset_ddsd(&ddsd);
ddsd.dwFlags = DDSD_WIDTH | DDSD_PITCH | DDSD_HEIGHT | DDSD_PIXELFORMAT | DDSD_LPSURFACE;
ddsd.dwWidth = 8;
U1(ddsd).lPitch = 8 * 2;
ddsd.dwHeight = 8;
ddsd.lpSurface = data;
U4(ddsd).ddpfPixelFormat.dwSize = sizeof(U4(ddsd).ddpfPixelFormat);
U4(ddsd).ddpfPixelFormat.dwFlags = DDPF_RGB; /* D3DFMT_R5G6B5 */
U1(U4(ddsd).ddpfPixelFormat).dwRGBBitCount = 16;
U2(U4(ddsd).ddpfPixelFormat).dwRBitMask = 0xf800;
U3(U4(ddsd).ddpfPixelFormat).dwGBitMask = 0x07e0;
U4(U4(ddsd).ddpfPixelFormat).dwBBitMask = 0x001f;
hr = IDirectDrawSurface4_SetSurfaceDesc(surface, &ddsd, 0);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
memset(&ddsd.ddckCKSrcBlt, 0xcc, sizeof(ddsd.ddckCKSrcBlt));
hr = IDirectDrawSurface4_GetColorKey(surface, DDCKEY_SRCBLT, &ddsd.ddckCKSrcBlt);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(ddsd.ddckCKSrcBlt.dwColorSpaceLowValue == 0x00ff00ff,
"Got low color key value %#lx.\n", ddsd.ddckCKSrcBlt.dwColorSpaceLowValue);
IDirectDrawSurface4_Release(surface);
/* Test mipmap texture. */

View file

@ -7718,6 +7718,34 @@ static void test_set_surface_desc(void)
hr = IDirectDrawSurface7_SetSurfaceDesc(surface, &ddsd, 0);
ok(hr == DDERR_INVALIDPARAMS, "Got hr %#lx.\n", hr);
/* Check that other surface properties are retained. */
ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = 0x00ff00ff;
ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = 0x0000ff00;
hr = IDirectDrawSurface7_SetColorKey(surface, DDCKEY_SRCBLT, &ddsd.ddckCKSrcBlt);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
reset_ddsd(&ddsd);
ddsd.dwFlags = DDSD_WIDTH | DDSD_PITCH | DDSD_HEIGHT | DDSD_PIXELFORMAT | DDSD_LPSURFACE;
ddsd.dwWidth = 8;
U1(ddsd).lPitch = 8 * 2;
ddsd.dwHeight = 8;
ddsd.lpSurface = data;
U4(ddsd).ddpfPixelFormat.dwSize = sizeof(U4(ddsd).ddpfPixelFormat);
U4(ddsd).ddpfPixelFormat.dwFlags = DDPF_RGB; /* D3DFMT_R5G6B5 */
U1(U4(ddsd).ddpfPixelFormat).dwRGBBitCount = 16;
U2(U4(ddsd).ddpfPixelFormat).dwRBitMask = 0xf800;
U3(U4(ddsd).ddpfPixelFormat).dwGBitMask = 0x07e0;
U4(U4(ddsd).ddpfPixelFormat).dwBBitMask = 0x001f;
hr = IDirectDrawSurface7_SetSurfaceDesc(surface, &ddsd, 0);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
memset(&ddsd.ddckCKSrcBlt, 0xcc, sizeof(ddsd.ddckCKSrcBlt));
hr = IDirectDrawSurface7_GetColorKey(surface, DDCKEY_SRCBLT, &ddsd.ddckCKSrcBlt);
ok(hr == S_OK, "Got hr %#lx.\n", hr);
ok(ddsd.ddckCKSrcBlt.dwColorSpaceLowValue == 0x00ff00ff,
"Got low color key value %#lx.\n", ddsd.ddckCKSrcBlt.dwColorSpaceLowValue);
IDirectDrawSurface7_Release(surface);
/* Test mipmap texture. */