[PATCH 2/3] ddraw: Thunk to surface1, not surface7 in surface_unlock.

Stefan Dösinger stefan at codeweavers.com
Thu Jun 18 12:32:24 CDT 2020


Signed-off-by: Stefan Dösinger <stefan at codeweavers.com>
---
 dlls/ddraw/surface.c | 49 +++++++++++++++-----------------------------
 1 file changed, 17 insertions(+), 32 deletions(-)

diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 46c5fa7da0f..d4435378ddd 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -1198,24 +1198,12 @@ static HRESULT WINAPI ddraw_surface1_Lock(IDirectDrawSurface *iface, RECT *rect,
     return ddraw_surface_lock_ddsd(surface, rect, surface_desc, flags, h);
 }
 
-/*****************************************************************************
- * IDirectDrawSurface7::Unlock
- *
- * Unlocks an locked surface
- *
- * Params:
- *  Rect: Not used by this implementation
- *
- * Returns:
- *  D3D_OK on success, error code otherwise.
- *
- *****************************************************************************/
-static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Unlock(IDirectDrawSurface7 *iface, RECT *pRect)
+static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface1_Unlock(IDirectDrawSurface *iface, void *data)
 {
-    struct ddraw_surface *surface = impl_from_IDirectDrawSurface7(iface);
+    struct ddraw_surface *surface = impl_from_IDirectDrawSurface(iface);
     HRESULT hr;
 
-    TRACE("iface %p, rect %s.\n", iface, wine_dbgstr_rect(pRect));
+    TRACE("iface %p, data %p.\n", iface, data);
 
     wined3d_mutex_lock();
     hr = wined3d_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx);
@@ -1226,43 +1214,40 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Unlock(IDirectDrawSurface
     return hr;
 }
 
-static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface4_Unlock(IDirectDrawSurface4 *iface, RECT *pRect)
+static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Unlock(IDirectDrawSurface7 *iface, RECT *rect)
 {
-    struct ddraw_surface *surface = impl_from_IDirectDrawSurface4(iface);
+    struct ddraw_surface *surface = impl_from_IDirectDrawSurface7(iface);
 
-    TRACE("iface %p, rect %p.\n", iface, pRect);
+    TRACE("iface %p, rect %s.\n", iface, wine_dbgstr_rect(rect));
 
-    return ddraw_surface7_Unlock(&surface->IDirectDrawSurface7_iface, pRect);
+    return ddraw_surface1_Unlock(&surface->IDirectDrawSurface_iface, NULL);
 }
 
-static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface3_Unlock(IDirectDrawSurface3 *iface, void *data)
+static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface4_Unlock(IDirectDrawSurface4 *iface, RECT *rect)
 {
-    struct ddraw_surface *surface = impl_from_IDirectDrawSurface3(iface);
+    struct ddraw_surface *surface = impl_from_IDirectDrawSurface4(iface);
 
-    TRACE("iface %p, data %p.\n", iface, data);
+    TRACE("iface %p, rect %s.\n", iface, wine_dbgstr_rect(rect));
 
-    /* data might not be the LPRECT of later versions, so drop it. */
-    return ddraw_surface7_Unlock(&surface->IDirectDrawSurface7_iface, NULL);
+    return ddraw_surface1_Unlock(&surface->IDirectDrawSurface_iface, NULL);
 }
 
-static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface2_Unlock(IDirectDrawSurface2 *iface, void *data)
+static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface3_Unlock(IDirectDrawSurface3 *iface, void *data)
 {
-    struct ddraw_surface *surface = impl_from_IDirectDrawSurface2(iface);
+    struct ddraw_surface *surface = impl_from_IDirectDrawSurface3(iface);
 
     TRACE("iface %p, data %p.\n", iface, data);
 
-    /* data might not be the LPRECT of later versions, so drop it. */
-    return ddraw_surface7_Unlock(&surface->IDirectDrawSurface7_iface, NULL);
+    return ddraw_surface1_Unlock(&surface->IDirectDrawSurface_iface, data);
 }
 
-static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface1_Unlock(IDirectDrawSurface *iface, void *data)
+static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface2_Unlock(IDirectDrawSurface2 *iface, void *data)
 {
-    struct ddraw_surface *surface = impl_from_IDirectDrawSurface(iface);
+    struct ddraw_surface *surface = impl_from_IDirectDrawSurface2(iface);
 
     TRACE("iface %p, data %p.\n", iface, data);
 
-    /* data might not be the LPRECT of later versions, so drop it. */
-    return ddraw_surface7_Unlock(&surface->IDirectDrawSurface7_iface, NULL);
+    return ddraw_surface1_Unlock(&surface->IDirectDrawSurface_iface, data);
 }
 
 static unsigned int ddraw_swap_interval_from_flags(DWORD flags)
-- 
2.26.2




More information about the wine-devel mailing list