ddraw: Factor out ddraw_surface_is_lost() function.
Signed-off-by: Paul Gofman <gofmanp@gmail.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
3cc218d5b5
commit
d36a45e553
|
@ -33,6 +33,11 @@ static inline struct ddraw_surface *impl_from_IDirectDrawGammaControl(IDirectDra
|
||||||
return CONTAINING_RECORD(iface, struct ddraw_surface, IDirectDrawGammaControl_iface);
|
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
|
/* 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.
|
* 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
|
* 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);
|
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);
|
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)))
|
if (src == iface || !(dst_impl->surface_desc.ddsCaps.dwCaps & (DDSCAPS_FRONTBUFFER | DDSCAPS_OVERLAY)))
|
||||||
return DDERR_NOTFLIPPABLE;
|
return DDERR_NOTFLIPPABLE;
|
||||||
|
|
||||||
if (IDirectDrawSurface7_IsLost(iface) == DDERR_SURFACELOST)
|
if (ddraw_surface_is_lost(dst_impl))
|
||||||
return DDERR_SURFACELOST;
|
return DDERR_SURFACELOST;
|
||||||
|
|
||||||
wined3d_mutex_lock();
|
wined3d_mutex_lock();
|
||||||
|
@ -3681,10 +3686,7 @@ static HRESULT WINAPI ddraw_surface7_IsLost(IDirectDrawSurface7 *iface)
|
||||||
|
|
||||||
TRACE("iface %p.\n", iface);
|
TRACE("iface %p.\n", iface);
|
||||||
|
|
||||||
if (surface->ddraw->device_state != DDRAW_DEVICE_STATE_OK || surface->is_lost)
|
return ddraw_surface_is_lost(surface) ? DDERR_SURFACELOST : DD_OK;
|
||||||
return DDERR_SURFACELOST;
|
|
||||||
|
|
||||||
return DD_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI ddraw_surface4_IsLost(IDirectDrawSurface4 *iface)
|
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);
|
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)
|
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);
|
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)
|
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);
|
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)
|
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);
|
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)
|
if (!palette)
|
||||||
return DDERR_INVALIDPARAMS;
|
return DDERR_INVALIDPARAMS;
|
||||||
if (IDirectDrawSurface7_IsLost(iface) == DDERR_SURFACELOST)
|
if (ddraw_surface_is_lost(surface))
|
||||||
{
|
{
|
||||||
WARN("Surface lost, returning DDERR_SURFACELOST.\n");
|
WARN("Surface lost, returning DDERR_SURFACELOST.\n");
|
||||||
return DDERR_SURFACELOST;
|
return DDERR_SURFACELOST;
|
||||||
|
@ -4970,7 +4972,7 @@ static HRESULT WINAPI ddraw_surface7_SetPalette(IDirectDrawSurface7 *iface, IDir
|
||||||
|
|
||||||
if (surface->surface_desc.ddsCaps.dwCaps2 & DDSCAPS2_MIPMAPSUBLEVEL)
|
if (surface->surface_desc.ddsCaps.dwCaps2 & DDSCAPS2_MIPMAPSUBLEVEL)
|
||||||
return DDERR_NOTONMIPMAPSUBLEVEL;
|
return DDERR_NOTONMIPMAPSUBLEVEL;
|
||||||
if (IDirectDrawSurface7_IsLost(iface) == DDERR_SURFACELOST)
|
if (ddraw_surface_is_lost(surface))
|
||||||
{
|
{
|
||||||
WARN("Surface lost, returning DDERR_SURFACELOST.\n");
|
WARN("Surface lost, returning DDERR_SURFACELOST.\n");
|
||||||
return DDERR_SURFACELOST;
|
return DDERR_SURFACELOST;
|
||||||
|
@ -4985,7 +4987,7 @@ static HRESULT WINAPI ddraw_surface4_SetPalette(IDirectDrawSurface4 *iface, IDir
|
||||||
|
|
||||||
TRACE("iface %p, palette %p.\n", iface, palette);
|
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");
|
WARN("Surface lost, returning DDERR_SURFACELOST.\n");
|
||||||
return DDERR_SURFACELOST;
|
return DDERR_SURFACELOST;
|
||||||
|
@ -5000,7 +5002,7 @@ static HRESULT WINAPI ddraw_surface3_SetPalette(IDirectDrawSurface3 *iface, IDir
|
||||||
|
|
||||||
TRACE("iface %p, palette %p.\n", iface, palette);
|
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");
|
WARN("Surface lost, returning DDERR_SURFACELOST.\n");
|
||||||
return DDERR_SURFACELOST;
|
return DDERR_SURFACELOST;
|
||||||
|
@ -5015,7 +5017,7 @@ static HRESULT WINAPI ddraw_surface2_SetPalette(IDirectDrawSurface2 *iface, IDir
|
||||||
|
|
||||||
TRACE("iface %p, palette %p.\n", iface, palette);
|
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");
|
WARN("Surface lost, returning DDERR_SURFACELOST.\n");
|
||||||
return DDERR_SURFACELOST;
|
return DDERR_SURFACELOST;
|
||||||
|
@ -5030,7 +5032,7 @@ static HRESULT WINAPI ddraw_surface1_SetPalette(IDirectDrawSurface *iface, IDire
|
||||||
|
|
||||||
TRACE("iface %p, palette %p.\n", iface, palette);
|
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");
|
WARN("Surface lost, returning DDERR_SURFACELOST.\n");
|
||||||
return DDERR_SURFACELOST;
|
return DDERR_SURFACELOST;
|
||||||
|
|
Loading…
Reference in New Issue