Rebase against 83ca9a95de80083d906a2aeb5d1e5ca2ed611199

This commit is contained in:
Alistair Leslie-Hughes
2019-06-12 08:31:14 +10:00
parent ed9681d9df
commit e2fa6bd9c0
6 changed files with 59 additions and 277 deletions

View File

@@ -1,17 +1,17 @@
From 64f08bf065be9b766dce1c52a0be260dc1e26679 Mon Sep 17 00:00:00 2001
From 826f68ed53563b81d225b49131bbd3595c6d885b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 6 Sep 2015 20:21:42 +0200
Subject: ddraw: Set dwZBufferBitDepth in ddraw7_GetCaps.
Subject: [PATCH] ddraw: Set dwZBufferBitDepth in ddraw7_GetCaps.
---
dlls/ddraw/ddraw.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index c94bfee..77a1bea 100644
index 8d608656143..cc8adccf049 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1420,6 +1420,28 @@ HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps)
@@ -1434,6 +1434,28 @@ HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps)
return DD_OK;
}
@@ -40,15 +40,15 @@ index c94bfee..77a1bea 100644
/*****************************************************************************
* IDirectDraw7::GetCaps
*
@@ -1500,6 +1522,8 @@ static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DD
@@ -1514,6 +1536,8 @@ static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DD
caps.dwCaps |= DDCAPS_ALIGNSTRIDE;
caps.dwAlignStrideAlign = DDRAW_STRIDE_ALIGNMENT;
+ IDirect3D7_EnumZBufferFormats(&ddraw->IDirect3D7_iface, &IID_IDirect3DHALDevice, enum_zbuffer, &caps);
+
caps.ddsOldCaps.dwCaps = caps.ddsCaps.dwCaps;
if(DriverCaps)
{
DD_STRUCT_COPY_BYSIZE(DriverCaps, &caps);
--
2.5.1
2.20.1

View File

@@ -1,205 +0,0 @@
From 1b741a4b555ad98a769fdb9fa659134b83293a4e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 4 Mar 2016 22:22:42 +0100
Subject: [PATCH] ddraw: Set ddsOldCaps correctly in ddraw7_GetCaps.
---
dlls/ddraw/ddraw.c | 2 ++
dlls/ddraw/tests/ddraw1.c | 26 ++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw2.c | 26 ++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw4.c | 26 ++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw7.c | 26 ++++++++++++++++++++++++++
5 files changed, 106 insertions(+)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index fad185e..ebf91b3 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1543,6 +1543,8 @@ static HRESULT WINAPI ddraw7_GetCaps(IDirectDraw7 *iface, DDCAPS *DriverCaps, DD
caps.dwCaps |= DDCAPS_ALIGNSTRIDE;
caps.dwAlignStrideAlign = DDRAW_STRIDE_ALIGNMENT;
+ caps.ddsOldCaps.dwCaps = caps.ddsCaps.dwCaps;
+
IDirect3D7_EnumZBufferFormats(&ddraw->IDirect3D7_iface, &IID_IDirect3DHALDevice, enum_zbuffer, &caps);
if(DriverCaps)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index 59d07b7..5d81abb 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -11581,6 +11581,31 @@ static void test_execute_data(void)
DestroyWindow(window);
}
+static void test_caps(void)
+{
+ IDirectDraw *ddraw;
+ DDCAPS caps, caps2;
+ HRESULT hr;
+
+ ddraw = create_ddraw();
+ ok(!!ddraw, "Failed to create a ddraw object.\n");
+
+ caps.dwSize = sizeof(caps);
+ caps2.dwSize = sizeof(caps2);
+ hr = IDirectDraw_GetCaps(ddraw, &caps, &caps2);
+ ok(SUCCEEDED(hr), "Failed to query for caps, hr %#x.\n", hr);
+
+ ok(caps.ddsOldCaps.dwCaps == caps.ddsCaps.dwCaps,
+ "Expected hal ddsOldCaps and ddsCaps to be identical (%x vs %x).\n",
+ caps.ddsOldCaps.dwCaps, caps.ddsCaps.dwCaps);
+
+ ok(caps2.ddsOldCaps.dwCaps == caps2.ddsCaps.dwCaps,
+ "Expected hel ddsOldCaps and ddsCaps to be identical (%x vs %x).\n",
+ caps2.ddsOldCaps.dwCaps, caps2.ddsCaps.dwCaps);
+
+ IDirectDraw_Release(ddraw);
+}
+
static void test_viewport(void)
{
static struct
@@ -12068,6 +12093,7 @@ START_TEST(ddraw1)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
test_execute_data();
test_viewport();
test_find_device();
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 8b9b249..b9b964d 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -12862,6 +12862,31 @@ static void test_enum_surfaces(void)
IDirectDraw2_Release(ddraw);
}
+static void test_caps(void)
+{
+ IDirectDraw2 *ddraw;
+ DDCAPS caps, caps2;
+ HRESULT hr;
+
+ ddraw = create_ddraw();
+ ok(!!ddraw, "Failed to create a ddraw object.\n");
+
+ caps.dwSize = sizeof(caps);
+ caps2.dwSize = sizeof(caps2);
+ hr = IDirectDraw2_GetCaps(ddraw, &caps, &caps2);
+ ok(SUCCEEDED(hr), "Failed to query for caps, hr %#x.\n", hr);
+
+ ok(caps.ddsOldCaps.dwCaps == caps.ddsCaps.dwCaps,
+ "Expected hal ddsOldCaps and ddsCaps to be identical (%x vs %x).\n",
+ caps.ddsOldCaps.dwCaps, caps.ddsCaps.dwCaps);
+
+ ok(caps2.ddsOldCaps.dwCaps == caps2.ddsCaps.dwCaps,
+ "Expected hel ddsOldCaps and ddsCaps to be identical (%x vs %x).\n",
+ caps2.ddsOldCaps.dwCaps, caps2.ddsCaps.dwCaps);
+
+ IDirectDraw2_Release(ddraw);
+}
+
static void test_viewport(void)
{
static struct
@@ -13378,6 +13403,7 @@ START_TEST(ddraw2)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
test_viewport();
test_find_device();
test_killfocus();
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 1c48418..306f233 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -15472,6 +15472,31 @@ static void test_sysmem_draw(void)
DestroyWindow(window);
}
+static void test_caps(void)
+{
+ IDirectDraw4 *ddraw;
+ DDCAPS caps, caps2;
+ HRESULT hr;
+
+ ddraw = create_ddraw();
+ ok(!!ddraw, "Failed to create a ddraw object.\n");
+
+ caps.dwSize = sizeof(caps);
+ caps2.dwSize = sizeof(caps2);
+ hr = IDirectDraw4_GetCaps(ddraw, &caps, &caps2);
+ ok(SUCCEEDED(hr), "Failed to query for caps, hr %#x.\n", hr);
+
+ ok(caps.ddsOldCaps.dwCaps == caps.ddsCaps.dwCaps,
+ "Expected hal ddsOldCaps and ddsCaps to be identical (%x vs %x).\n",
+ caps.ddsOldCaps.dwCaps, caps.ddsCaps.dwCaps);
+
+ ok(caps2.ddsOldCaps.dwCaps == caps2.ddsCaps.dwCaps,
+ "Expected hel ddsOldCaps and ddsCaps to be identical (%x vs %x).\n",
+ caps2.ddsOldCaps.dwCaps, caps2.ddsCaps.dwCaps);
+
+ IDirectDraw4_Release(ddraw);
+}
+
START_TEST(ddraw4)
{
DDDEVICEIDENTIFIER identifier;
@@ -15597,6 +15622,7 @@ START_TEST(ddraw4)
test_depth_readback();
test_clear();
test_enum_surfaces();
+ test_caps();
test_viewport();
test_find_device();
test_killfocus();
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index a125200..da777d8 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -15198,6 +15198,31 @@ static void test_sysmem_draw(void)
DestroyWindow(window);
}
+static void test_caps(void)
+{
+ IDirectDraw7 *ddraw;
+ DDCAPS caps, caps2;
+ HRESULT hr;
+
+ ddraw = create_ddraw();
+ ok(!!ddraw, "Failed to create a ddraw object.\n");
+
+ caps.dwSize = sizeof(caps);
+ caps2.dwSize = sizeof(caps2);
+ hr = IDirectDraw7_GetCaps(ddraw, &caps, &caps2);
+ ok(SUCCEEDED(hr), "Failed to query for caps, hr %#x.\n", hr);
+
+ ok(caps.ddsOldCaps.dwCaps == caps.ddsCaps.dwCaps,
+ "Expected hal ddsOldCaps and ddsCaps to be identical (%x vs %x).\n",
+ caps.ddsOldCaps.dwCaps, caps.ddsCaps.dwCaps);
+
+ ok(caps2.ddsOldCaps.dwCaps == caps2.ddsCaps.dwCaps,
+ "Expected hel ddsOldCaps and ddsCaps to be identical (%x vs %x).\n",
+ caps2.ddsOldCaps.dwCaps, caps2.ddsCaps.dwCaps);
+
+ IDirectDraw7_Release(ddraw);
+}
+
START_TEST(ddraw7)
{
DDDEVICEIDENTIFIER2 identifier;
@@ -15335,6 +15360,7 @@ START_TEST(ddraw7)
test_enum_surfaces();
test_viewport();
test_device_load();
+ test_caps();
test_color_vertex();
test_killfocus();
test_sysmem_draw();
--
1.9.1