[PATCH 3/3] ddraw: Thunk to surface1, not surface7 in flip.
Stefan Dösinger
stefan at codeweavers.com
Thu Jun 18 12:32:25 CDT 2020
Signed-off-by: Stefan Dösinger <stefan at codeweavers.com>
---
dlls/ddraw/surface.c | 60 ++++++++++++++++++++++----------------------
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index d4435378ddd..9210039ce35 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -1268,16 +1268,16 @@ static unsigned int ddraw_swap_interval_from_flags(DWORD flags)
}
}
-static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Flip(IDirectDrawSurface7 *iface,
- IDirectDrawSurface7 *src, DWORD flags)
+static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface1_Flip(IDirectDrawSurface *iface,
+ IDirectDrawSurface *src, DWORD flags)
{
- struct ddraw_surface *dst_impl = impl_from_IDirectDrawSurface7(iface);
- struct ddraw_surface *src_impl = unsafe_impl_from_IDirectDrawSurface7(src);
+ struct ddraw_surface *dst_impl = impl_from_IDirectDrawSurface(iface);
+ struct ddraw_surface *src_impl = unsafe_impl_from_IDirectDrawSurface(src);
struct ddraw_texture *dst_ddraw_texture, *src_ddraw_texture;
struct wined3d_rendertarget_view *tmp_rtv, *src_rtv, *rtv;
- DDSCAPS2 caps = {DDSCAPS_FLIP, 0, 0, {0}};
+ DDSCAPS caps = {DDSCAPS_FLIP};
struct wined3d_texture *texture;
- IDirectDrawSurface7 *current;
+ IDirectDrawSurface *current;
void *texture_memory;
HRESULT hr;
@@ -1311,13 +1311,13 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Flip(IDirectDrawSurface7
{
for (current = iface; current != src;)
{
- if (FAILED(hr = ddraw_surface7_GetAttachedSurface(current, &caps, ¤t)))
+ if (FAILED(hr = ddraw_surface1_GetAttachedSurface(current, &caps, ¤t)))
{
WARN("Surface %p is not on the same flip chain as surface %p.\n", src, iface);
wined3d_mutex_unlock();
return DDERR_NOTFLIPPABLE;
}
- ddraw_surface7_Release(current);
+ ddraw_surface1_Release(current);
if (current == iface)
{
WARN("Surface %p is not on the same flip chain as surface %p.\n", src, iface);
@@ -1344,20 +1344,20 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Flip(IDirectDrawSurface7
{
for (current = iface;;)
{
- if (FAILED(hr = ddraw_surface7_GetAttachedSurface(current, &caps, ¤t)))
+ if (FAILED(hr = ddraw_surface1_GetAttachedSurface(current, &caps, ¤t)))
{
ERR("Can't find a flip target\n");
wined3d_mutex_unlock();
return DDERR_NOTFLIPPABLE; /* Unchecked */
}
- ddraw_surface7_Release(current);
+ ddraw_surface1_Release(current);
if (current == iface)
{
- dst_impl = impl_from_IDirectDrawSurface7(iface);
+ dst_impl = impl_from_IDirectDrawSurface(iface);
break;
}
- src_impl = impl_from_IDirectDrawSurface7(current);
+ src_impl = impl_from_IDirectDrawSurface(current);
src_rtv = ddraw_surface_get_rendertarget_view(src_impl);
if (rtv == dst_impl->wined3d_rtv)
wined3d_device_set_rendertarget_view(dst_impl->ddraw->wined3d_device, 0, src_rtv, FALSE);
@@ -1405,6 +1405,18 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Flip(IDirectDrawSurface7
return hr;
}
+static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Flip(IDirectDrawSurface7 *iface,
+ IDirectDrawSurface7 *src, DWORD flags)
+{
+ struct ddraw_surface *surface = impl_from_IDirectDrawSurface7(iface);
+ struct ddraw_surface *src_impl = unsafe_impl_from_IDirectDrawSurface7(src);
+
+ TRACE("iface %p, src %p, flags %#x.\n", iface, src, flags);
+
+ return ddraw_surface1_Flip(&surface->IDirectDrawSurface_iface,
+ src_impl ? &src_impl->IDirectDrawSurface_iface : NULL, flags);
+}
+
static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface4_Flip(IDirectDrawSurface4 *iface,
IDirectDrawSurface4 *src, DWORD flags)
{
@@ -1413,8 +1425,8 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface4_Flip(IDirectDrawSurface4
TRACE("iface %p, src %p, flags %#x.\n", iface, src, flags);
- return ddraw_surface7_Flip(&surface->IDirectDrawSurface7_iface,
- src_impl ? &src_impl->IDirectDrawSurface7_iface : NULL, flags);
+ return ddraw_surface1_Flip(&surface->IDirectDrawSurface_iface,
+ src_impl ? &src_impl->IDirectDrawSurface_iface : NULL, flags);
}
static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface3_Flip(IDirectDrawSurface3 *iface,
@@ -1425,8 +1437,8 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface3_Flip(IDirectDrawSurface3
TRACE("iface %p, src %p, flags %#x.\n", iface, src, flags);
- return ddraw_surface7_Flip(&surface->IDirectDrawSurface7_iface,
- src_impl ? &src_impl->IDirectDrawSurface7_iface : NULL, flags);
+ return ddraw_surface1_Flip(&surface->IDirectDrawSurface_iface,
+ src_impl ? &src_impl->IDirectDrawSurface_iface : NULL, flags);
}
static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface2_Flip(IDirectDrawSurface2 *iface,
@@ -1437,20 +1449,8 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface2_Flip(IDirectDrawSurface2
TRACE("iface %p, src %p, flags %#x.\n", iface, src, flags);
- return ddraw_surface7_Flip(&surface->IDirectDrawSurface7_iface,
- src_impl ? &src_impl->IDirectDrawSurface7_iface : NULL, flags);
-}
-
-static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface1_Flip(IDirectDrawSurface *iface,
- IDirectDrawSurface *src, DWORD flags)
-{
- struct ddraw_surface *surface = impl_from_IDirectDrawSurface(iface);
- struct ddraw_surface *src_impl = unsafe_impl_from_IDirectDrawSurface(src);
-
- TRACE("iface %p, src %p, flags %#x.\n", iface, src, flags);
-
- return ddraw_surface7_Flip(&surface->IDirectDrawSurface7_iface,
- src_impl ? &src_impl->IDirectDrawSurface7_iface : NULL, flags);
+ return ddraw_surface1_Flip(&surface->IDirectDrawSurface_iface,
+ src_impl ? &src_impl->IDirectDrawSurface_iface : NULL, flags);
}
static HRESULT ddraw_surface_blt(struct ddraw_surface *dst_surface, const RECT *dst_rect,
--
2.26.2
More information about the wine-devel
mailing list