=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: ddraw/tests: Test creating flippable cubemaps.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue May 17 11:19:39 CDT 2016
Module: wine
Branch: master
Commit: 76d4f54c558c8e3760f730247df3cd8703b806a0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=76d4f54c558c8e3760f730247df3cd8703b806a0
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Fri May 13 13:55:29 2016 +0200
ddraw/tests: Test creating flippable cubemaps.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ddraw/tests/ddraw7.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index 424235f..133d105 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -5991,6 +5991,8 @@ static void test_flip(void)
IDirectDrawSurface7 *frontbuffer, *backbuffer1, *backbuffer2, *backbuffer3, *surface;
DDSCAPS2 caps = {DDSCAPS_FLIP, 0, 0, {0}};
DDSURFACEDESC2 surface_desc;
+ D3DDEVICEDESC7 device_desc;
+ IDirect3DDevice7 *device;
BOOL sysmem_primary;
IDirectDraw7 *ddraw;
DWORD expected_caps;
@@ -6227,6 +6229,54 @@ static void test_flip(void)
IDirectDrawSurface7_Release(frontbuffer);
}
+ if (!(device = create_device(window, DDSCL_NORMAL)))
+ {
+ skip("Failed to create 3D device.\n");
+ goto done;
+ }
+ hr = IDirect3DDevice7_GetCaps(device, &device_desc);
+ ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr);
+ IDirect3DDevice7_Release(device);
+ if (!(device_desc.dpcTriCaps.dwTextureCaps & D3DPTEXTURECAPS_CUBEMAP))
+ {
+ skip("Cubemaps are not supported.\n");
+ goto done;
+ }
+
+ memset(&surface_desc, 0, sizeof(surface_desc));
+ surface_desc.dwSize = sizeof(surface_desc);
+ surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
+ surface_desc.ddsCaps.dwCaps = DDSCAPS_COMPLEX | DDSCAPS_FLIP | DDSCAPS_TEXTURE;
+ surface_desc.ddsCaps.dwCaps2 = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_ALLFACES;
+ surface_desc.dwWidth = 128;
+ surface_desc.dwHeight = 128;
+ surface_desc.dwBackBufferCount = 3;
+ hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &frontbuffer, NULL);
+ ok(hr == DDERR_INVALIDCAPS, "Got unexpected hr %#x.\n", hr);
+
+ surface_desc.ddsCaps.dwCaps &= ~DDSCAPS_FLIP;
+ surface_desc.dwFlags |= DDSD_BACKBUFFERCOUNT;
+ hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &frontbuffer, NULL);
+ ok(hr == DDERR_INVALIDPARAMS, "Got unexpected hr %#x.\n", hr);
+
+ surface_desc.ddsCaps.dwCaps &= ~DDSCAPS_COMPLEX;
+ surface_desc.ddsCaps.dwCaps |= DDSCAPS_FLIP;
+ hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &frontbuffer, NULL);
+ ok(hr == DDERR_INVALIDCAPS, "Got unexpected hr %#x.\n", hr);
+
+ surface_desc.ddsCaps.dwCaps |= DDSCAPS_COMPLEX;
+ hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &frontbuffer, NULL);
+ ok(hr == DDERR_INVALIDPARAMS, "Got unexpected hr %#x.\n", hr);
+
+ surface_desc.dwBackBufferCount = 1;
+ hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &frontbuffer, NULL);
+ ok(hr == DDERR_INVALIDPARAMS, "Got unexpected hr %#x.\n", hr);
+
+ surface_desc.dwBackBufferCount = 0;
+ hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &frontbuffer, NULL);
+ ok(hr == DDERR_INVALIDCAPS, "Got unexpected hr %#x.\n", hr);
+
+done:
refcount = IDirectDraw7_Release(ddraw);
ok(refcount == 0, "The ddraw object was not properly freed, refcount %u.\n", refcount);
DestroyWindow(window);
More information about the wine-cvs
mailing list