Paul Gofman : ddraw: Factor out ddraw_surface_is_lost() function.

Alexandre Julliard julliard at winehq.org
Thu Mar 26 16:27:24 CDT 2020


Module: wine
Branch: master
Commit: d36a45e55387efc017b32da3ba7fdd9e8f505aa6
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d36a45e55387efc017b32da3ba7fdd9e8f505aa6

Author: Paul Gofman <gofmanp at gmail.com>
Date:   Thu Mar 26 16:09:39 2020 +0300

ddraw: Factor out ddraw_surface_is_lost() function.

Signed-off-by: Paul Gofman <gofmanp at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ddraw/surface.c | 34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 85c1ef4966..9d937414ae 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -33,6 +33,11 @@ static inline struct ddraw_surface *impl_from_IDirectDrawGammaControl(IDirectDra
     return CONTAINING_RECORD(iface, struct ddraw_surface, IDirectDrawGammaControl_iface);
 }
 
+static BOOL ddraw_surface_is_lost(const struct ddraw_surface *surface)
+{
+    return surface->ddraw->device_state != DDRAW_DEVICE_STATE_OK || surface->is_lost;
+}
+
 /* This is slow, of course. Also, in case of locks, we can't prevent other
  * applications from drawing to the screen while we've locked the frontbuffer.
  * We'd like to do this in wined3d instead, but for that to work wined3d needs
@@ -766,7 +771,7 @@ static HRESULT WINAPI ddraw_surface7_GetAttachedSurface(IDirectDrawSurface7 *ifa
 
     TRACE("iface %p, caps %p, attachment %p.\n", iface, caps, surface);
 
-    if (IDirectDrawSurface7_IsLost(&head_surface->IDirectDrawSurface7_iface) != DD_OK)
+    if (ddraw_surface_is_lost(head_surface))
     {
         WARN("Surface %p is lost.\n", head_surface);
 
@@ -1291,7 +1296,7 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Flip(IDirectDrawSurface7
     if (src == iface || !(dst_impl->surface_desc.ddsCaps.dwCaps & (DDSCAPS_FRONTBUFFER | DDSCAPS_OVERLAY)))
         return DDERR_NOTFLIPPABLE;
 
-    if (IDirectDrawSurface7_IsLost(iface) == DDERR_SURFACELOST)
+    if (ddraw_surface_is_lost(dst_impl))
         return DDERR_SURFACELOST;
 
     wined3d_mutex_lock();
@@ -3681,10 +3686,7 @@ static HRESULT WINAPI ddraw_surface7_IsLost(IDirectDrawSurface7 *iface)
 
     TRACE("iface %p.\n", iface);
 
-    if (surface->ddraw->device_state != DDRAW_DEVICE_STATE_OK || surface->is_lost)
-        return DDERR_SURFACELOST;
-
-    return DD_OK;
+    return ddraw_surface_is_lost(surface) ? DDERR_SURFACELOST : DD_OK;
 }
 
 static HRESULT WINAPI ddraw_surface4_IsLost(IDirectDrawSurface4 *iface)
@@ -3693,7 +3695,7 @@ static HRESULT WINAPI ddraw_surface4_IsLost(IDirectDrawSurface4 *iface)
 
     TRACE("iface %p.\n", iface);
 
-    return ddraw_surface7_IsLost(&surface->IDirectDrawSurface7_iface);
+    return ddraw_surface_is_lost(surface) ? DDERR_SURFACELOST : DD_OK;
 }
 
 static HRESULT WINAPI ddraw_surface3_IsLost(IDirectDrawSurface3 *iface)
@@ -3702,7 +3704,7 @@ static HRESULT WINAPI ddraw_surface3_IsLost(IDirectDrawSurface3 *iface)
 
     TRACE("iface %p.\n", iface);
 
-    return ddraw_surface7_IsLost(&surface->IDirectDrawSurface7_iface);
+    return ddraw_surface_is_lost(surface) ? DDERR_SURFACELOST : DD_OK;
 }
 
 static HRESULT WINAPI ddraw_surface2_IsLost(IDirectDrawSurface2 *iface)
@@ -3711,7 +3713,7 @@ static HRESULT WINAPI ddraw_surface2_IsLost(IDirectDrawSurface2 *iface)
 
     TRACE("iface %p.\n", iface);
 
-    return ddraw_surface7_IsLost(&surface->IDirectDrawSurface7_iface);
+    return ddraw_surface_is_lost(surface) ? DDERR_SURFACELOST : DD_OK;
 }
 
 static HRESULT WINAPI ddraw_surface1_IsLost(IDirectDrawSurface *iface)
@@ -3720,7 +3722,7 @@ static HRESULT WINAPI ddraw_surface1_IsLost(IDirectDrawSurface *iface)
 
     TRACE("iface %p.\n", iface);
 
-    return ddraw_surface7_IsLost(&surface->IDirectDrawSurface7_iface);
+    return ddraw_surface_is_lost(surface) ? DDERR_SURFACELOST : DD_OK;
 }
 
 /*****************************************************************************
@@ -4774,7 +4776,7 @@ static HRESULT WINAPI ddraw_surface7_GetPalette(IDirectDrawSurface7 *iface, IDir
 
     if (!palette)
         return DDERR_INVALIDPARAMS;
-    if (IDirectDrawSurface7_IsLost(iface) == DDERR_SURFACELOST)
+    if (ddraw_surface_is_lost(surface))
     {
         WARN("Surface lost, returning DDERR_SURFACELOST.\n");
         return DDERR_SURFACELOST;
@@ -4970,7 +4972,7 @@ static HRESULT WINAPI ddraw_surface7_SetPalette(IDirectDrawSurface7 *iface, IDir
 
     if (surface->surface_desc.ddsCaps.dwCaps2 & DDSCAPS2_MIPMAPSUBLEVEL)
         return DDERR_NOTONMIPMAPSUBLEVEL;
-    if (IDirectDrawSurface7_IsLost(iface) == DDERR_SURFACELOST)
+    if (ddraw_surface_is_lost(surface))
     {
         WARN("Surface lost, returning DDERR_SURFACELOST.\n");
         return DDERR_SURFACELOST;
@@ -4985,7 +4987,7 @@ static HRESULT WINAPI ddraw_surface4_SetPalette(IDirectDrawSurface4 *iface, IDir
 
     TRACE("iface %p, palette %p.\n", iface, palette);
 
-    if (IDirectDrawSurface4_IsLost(iface) == DDERR_SURFACELOST)
+    if (ddraw_surface_is_lost(surface))
     {
         WARN("Surface lost, returning DDERR_SURFACELOST.\n");
         return DDERR_SURFACELOST;
@@ -5000,7 +5002,7 @@ static HRESULT WINAPI ddraw_surface3_SetPalette(IDirectDrawSurface3 *iface, IDir
 
     TRACE("iface %p, palette %p.\n", iface, palette);
 
-    if (IDirectDrawSurface3_IsLost(iface) == DDERR_SURFACELOST)
+    if (ddraw_surface_is_lost(surface))
     {
         WARN("Surface lost, returning DDERR_SURFACELOST.\n");
         return DDERR_SURFACELOST;
@@ -5015,7 +5017,7 @@ static HRESULT WINAPI ddraw_surface2_SetPalette(IDirectDrawSurface2 *iface, IDir
 
     TRACE("iface %p, palette %p.\n", iface, palette);
 
-    if (IDirectDrawSurface2_IsLost(iface) == DDERR_SURFACELOST)
+    if (ddraw_surface_is_lost(surface))
     {
         WARN("Surface lost, returning DDERR_SURFACELOST.\n");
         return DDERR_SURFACELOST;
@@ -5030,7 +5032,7 @@ static HRESULT WINAPI ddraw_surface1_SetPalette(IDirectDrawSurface *iface, IDire
 
     TRACE("iface %p, palette %p.\n", iface, palette);
 
-    if (IDirectDrawSurface_IsLost(iface) == DDERR_SURFACELOST)
+    if (ddraw_surface_is_lost(surface))
     {
         WARN("Surface lost, returning DDERR_SURFACELOST.\n");
         return DDERR_SURFACELOST;




More information about the wine-cvs mailing list