wined3d: Make "clear_rect" a RECT in IWineD3DDeviceImpl_ClearSurface().
This commit is contained in:
parent
772fe683fa
commit
7b80c7d8c0
|
@ -4354,7 +4354,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Present(IWineD3DDevice *iface,
|
||||||
return WINED3D_OK;
|
return WINED3D_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL is_full_clear(IWineD3DSurfaceImpl *target, const RECT *draw_rect, const WINED3DRECT *clear_rect)
|
static BOOL is_full_clear(IWineD3DSurfaceImpl *target, const RECT *draw_rect, const RECT *clear_rect)
|
||||||
{
|
{
|
||||||
/* partial draw rect */
|
/* partial draw rect */
|
||||||
if (draw_rect->left || draw_rect->top
|
if (draw_rect->left || draw_rect->top
|
||||||
|
@ -4363,9 +4363,9 @@ static BOOL is_full_clear(IWineD3DSurfaceImpl *target, const RECT *draw_rect, co
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* partial clear rect */
|
/* partial clear rect */
|
||||||
if (clear_rect && (clear_rect->x1 > 0 || clear_rect->y1 > 0
|
if (clear_rect && (clear_rect->left > 0 || clear_rect->top > 0
|
||||||
|| clear_rect->x2 < target->currentDesc.Width
|
|| clear_rect->right < target->currentDesc.Width
|
||||||
|| clear_rect->y2 < target->currentDesc.Height))
|
|| clear_rect->bottom < target->currentDesc.Height))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -4375,7 +4375,7 @@ static BOOL is_full_clear(IWineD3DSurfaceImpl *target, const RECT *draw_rect, co
|
||||||
HRESULT IWineD3DDeviceImpl_ClearSurface(IWineD3DDeviceImpl *This, IWineD3DSurfaceImpl *target, DWORD Count,
|
HRESULT IWineD3DDeviceImpl_ClearSurface(IWineD3DDeviceImpl *This, IWineD3DSurfaceImpl *target, DWORD Count,
|
||||||
const WINED3DRECT *pRects, DWORD Flags, WINED3DCOLOR Color, float Z, DWORD Stencil)
|
const WINED3DRECT *pRects, DWORD Flags, WINED3DCOLOR Color, float Z, DWORD Stencil)
|
||||||
{
|
{
|
||||||
const WINED3DRECT *clear_rect = (Count > 0 && pRects) ? pRects : NULL;
|
const RECT *clear_rect = (Count > 0 && pRects) ? (const RECT *)pRects : NULL;
|
||||||
IWineD3DSurfaceImpl *depth_stencil = This->depth_stencil;
|
IWineD3DSurfaceImpl *depth_stencil = This->depth_stencil;
|
||||||
GLbitfield glMask = 0;
|
GLbitfield glMask = 0;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -4506,10 +4506,10 @@ HRESULT IWineD3DDeviceImpl_ClearSurface(IWineD3DDeviceImpl *This, IWineD3DSurfac
|
||||||
for (i = 0; i < Count; ++i)
|
for (i = 0; i < Count; ++i)
|
||||||
{
|
{
|
||||||
/* Note gl uses lower left, width/height */
|
/* Note gl uses lower left, width/height */
|
||||||
IntersectRect(¤t_rect, &draw_rect, (const RECT *)&clear_rect[i]);
|
IntersectRect(¤t_rect, &draw_rect, &clear_rect[i]);
|
||||||
|
|
||||||
TRACE("clear_rect[%u] %s, current_rect %s.\n", i,
|
TRACE("clear_rect[%u] %s, current_rect %s.\n", i,
|
||||||
wine_dbgstr_rect((const RECT *)&clear_rect[i]),
|
wine_dbgstr_rect(&clear_rect[i]),
|
||||||
wine_dbgstr_rect(¤t_rect));
|
wine_dbgstr_rect(¤t_rect));
|
||||||
|
|
||||||
/* Tests show that rectangles where x1 > x2 or y1 > y2 are ignored silently.
|
/* Tests show that rectangles where x1 > x2 or y1 > y2 are ignored silently.
|
||||||
|
|
Loading…
Reference in New Issue