Added patch to properly initialize caps->dwZBufferBitDepths in ddraw7_GetCaps.

This commit is contained in:
Sebastian Lackner 2015-09-06 20:26:50 +02:00
parent 88db6aa7b1
commit cbe5306706
5 changed files with 78 additions and 1 deletions

View File

@ -39,7 +39,7 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [19]:**
**Bug fixes and features included in the next upcoming release [20]:**
* Add stub for dwmapi.DwmUpdateThumbnailProperties
* Add stub for winspool.SetPrinterW level 8 ([Wine Bug #24645](https://bugs.winehq.org/show_bug.cgi?id=24645))
@ -55,6 +55,7 @@ Included bug fixes and improvements
* Implement {Set,Get}ThreadGroupAffinity and related ntdll functions ([Wine Bug #36549](https://bugs.winehq.org/show_bug.cgi?id=36549))
* Map EXDEV error code to STATUS_NOT_SAME_DEVICE
* Properly close sockets when WSACleanup is called ([Wine Bug #18670](https://bugs.winehq.org/show_bug.cgi?id=18670))
* Properly initialize caps->dwZBufferBitDepths in ddraw7_GetCaps ([Wine Bug #27002](https://bugs.winehq.org/show_bug.cgi?id=27002))
* Properly render themed buttons when they are pressed ([Wine Bug #37584](https://bugs.winehq.org/show_bug.cgi?id=37584))
* Return a dummy BIOS name in Win32_BIOS record
* SHFileOperation with FO_MOVE should create new directory on Vista+ ([Wine Bug #25207](https://bugs.winehq.org/show_bug.cgi?id=25207))

2
debian/changelog vendored
View File

@ -35,6 +35,8 @@ wine-staging (1.7.51) UNRELEASED; urgency=low
functions.
* Added patch to properly render themed buttons when they are pressed.
* Added patch to fix possible memory leak in netprofm init_networks.
* Added patch to properly initialize caps->dwZBufferBitDepths in
ddraw7_GetCaps.
* Removed patch to fix bug in wineserver debug_children inheritance (accepted
upstream).
* Removed patch to use helper function for NtWaitForMultipleObjects and

View File

@ -0,0 +1,54 @@
From 64f08bf065be9b766dce1c52a0be260dc1e26679 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.
---
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
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -1420,6 +1420,28 @@ HRESULT ddraw_get_d3dcaps(const struct ddraw *ddraw, D3DDEVICEDESC7 *caps)
return DD_OK;
}
+HRESULT CALLBACK enum_zbuffer(DDPIXELFORMAT *format, void *ctx)
+{
+ DDCAPS *caps = ctx;
+
+ switch (format->u1.dwZBufferBitDepth)
+ {
+ case 8:
+ caps->dwZBufferBitDepths |= DDBD_8;
+ break;
+ case 16:
+ caps->dwZBufferBitDepths |= DDBD_16;
+ break;
+ case 24:
+ caps->dwZBufferBitDepths |= DDBD_24;
+ break;
+ case 32:
+ caps->dwZBufferBitDepths |= DDBD_32;
+ break;
+ }
+ return D3DENUMRET_OK;
+}
+
/*****************************************************************************
* IDirectDraw7::GetCaps
*
@@ -1500,6 +1522,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);
+
if(DriverCaps)
{
DD_STRUCT_COPY_BYSIZE(DriverCaps, &caps);
--
2.5.1

View File

@ -0,0 +1 @@
Fixes: [27002] Properly initialize caps->dwZBufferBitDepths in ddraw7_GetCaps

View File

@ -123,6 +123,7 @@ patch_enable_all ()
enable_ddraw_EnumSurfaces="$1"
enable_ddraw_IDirect3DTexture2_Load="$1"
enable_ddraw_Rendering_Targets="$1"
enable_ddraw_ZBufferBitDepths="$1"
enable_ddraw_d3d_execute_buffer="$1"
enable_dinput_Events="$1"
enable_dsound_EAX="$1"
@ -464,6 +465,9 @@ patch_enable ()
ddraw-Rendering_Targets)
enable_ddraw_Rendering_Targets="$2"
;;
ddraw-ZBufferBitDepths)
enable_ddraw_ZBufferBitDepths="$2"
;;
ddraw-d3d_execute_buffer)
enable_ddraw_d3d_execute_buffer="$2"
;;
@ -2802,6 +2806,21 @@ if test "$enable_ddraw_Rendering_Targets" -eq 1; then
) >> "$patchlist"
fi
# Patchset ddraw-ZBufferBitDepths
# |
# | This patchset fixes the following Wine bugs:
# | * [#27002] Properly initialize caps->dwZBufferBitDepths in ddraw7_GetCaps
# |
# | Modified files:
# | * dlls/ddraw/ddraw.c
# |
if test "$enable_ddraw_ZBufferBitDepths" -eq 1; then
patch_apply ddraw-ZBufferBitDepths/0001-ddraw-Set-dwZBufferBitDepth-in-ddraw7_GetCaps.patch
(
echo '+ { "Michael Müller", "ddraw: Set dwZBufferBitDepth in ddraw7_GetCaps.", 1 },';
) >> "$patchlist"
fi
# Patchset ddraw-d3d_execute_buffer
# |
# | Modified files: