wined3d: Get rid of WINED3DRECT.

This commit is contained in:
Henri Verbeet 2010-08-30 20:29:47 +02:00 committed by Alexandre Julliard
parent 1bf25cfe3f
commit 4005eb2a18
6 changed files with 19 additions and 31 deletions

View File

@ -1069,9 +1069,8 @@ static HRESULT WINAPI IDirect3DDevice8Impl_Clear(LPDIRECT3DDEVICE8 iface, DWORD
TRACE("iface %p, rect_count %u, rects %p, flags %#x, color 0x%08x, z %.8e, stencil %u.\n", TRACE("iface %p, rect_count %u, rects %p, flags %#x, color 0x%08x, z %.8e, stencil %u.\n",
iface, Count, pRects, Flags, Color, Z, Stencil); iface, Count, pRects, Flags, Color, Z, Stencil);
/* Note: D3DRECT is compatible with WINED3DRECT */
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = IWineD3DDevice_Clear(This->WineD3DDevice, Count, (CONST WINED3DRECT*) pRects, Flags, Color, Z, Stencil); hr = IWineD3DDevice_Clear(This->WineD3DDevice, Count, (const RECT *)pRects, Flags, Color, Z, Stencil);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
return hr; return hr;

View File

@ -1044,8 +1044,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_ColorFill(IDirect3DDevice9Ex *iface,
} }
/* Colorfill can only be used on rendertarget surfaces, or offscreen plain surfaces in D3DPOOL_DEFAULT */ /* Colorfill can only be used on rendertarget surfaces, or offscreen plain surfaces in D3DPOOL_DEFAULT */
/* Note: D3DRECT is compatible with WINED3DRECT */ hr = IWineD3DDevice_ColorFill(This->WineD3DDevice, surface->wineD3DSurface, pRect, &c);
hr = IWineD3DDevice_ColorFill(This->WineD3DDevice, surface->wineD3DSurface, (const WINED3DRECT *)pRect, &c);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
@ -1214,7 +1213,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_Clear(LPDIRECT3DDEVICE9EX iface, DW
/* Note: D3DRECT is compatible with WINED3DRECT */ /* Note: D3DRECT is compatible with WINED3DRECT */
wined3d_mutex_lock(); wined3d_mutex_lock();
hr = IWineD3DDevice_Clear(This->WineD3DDevice, Count, (CONST WINED3DRECT*) pRects, Flags, Color, Z, Stencil); hr = IWineD3DDevice_Clear(This->WineD3DDevice, Count, (const RECT *)pRects, Flags, Color, Z, Stencil);
wined3d_mutex_unlock(); wined3d_mutex_unlock();
return hr; return hr;

View File

@ -5220,9 +5220,8 @@ IDirect3DDeviceImpl_7_Clear(IDirect3DDevice7 *iface,
TRACE("iface %p, count %u, rects %p, flags %#x, color 0x%08x, z %.8e, stencil %#x.\n", TRACE("iface %p, count %u, rects %p, flags %#x, color 0x%08x, z %.8e, stencil %#x.\n",
iface, Count, Rects, Flags, Color, Z, Stencil); iface, Count, Rects, Flags, Color, Z, Stencil);
/* Note; D3DRECT is compatible with WINED3DRECT */
EnterCriticalSection(&ddraw_cs); EnterCriticalSection(&ddraw_cs);
hr = IWineD3DDevice_Clear(This->wineD3DDevice, Count, (WINED3DRECT*) Rects, Flags, Color, Z, Stencil); hr = IWineD3DDevice_Clear(This->wineD3DDevice, Count, (RECT *)Rects, Flags, Color, Z, Stencil);
LeaveCriticalSection(&ddraw_cs); LeaveCriticalSection(&ddraw_cs);
return hr; return hr;
} }

View File

@ -4576,28 +4576,27 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Present(IWineD3DDevice *iface,
return WINED3D_OK; return WINED3D_OK;
} }
static HRESULT WINAPI IWineD3DDeviceImpl_Clear(IWineD3DDevice *iface, DWORD Count, static HRESULT WINAPI IWineD3DDeviceImpl_Clear(IWineD3DDevice *iface, DWORD rect_count,
const WINED3DRECT *pRects, DWORD Flags, WINED3DCOLOR color, float Z, DWORD Stencil) const RECT *rects, DWORD flags, WINED3DCOLOR color, float depth, DWORD stencil)
{ {
const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)}; const WINED3DCOLORVALUE c = {D3DCOLOR_R(color), D3DCOLOR_G(color), D3DCOLOR_B(color), D3DCOLOR_A(color)};
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *)iface;
RECT draw_rect; RECT draw_rect;
TRACE("(%p) Count (%d), pRects (%p), Flags (%x), color (0x%08x), Z (%f), Stencil (%d)\n", This, TRACE("iface %p, rect_count %u, rects %p, flags %#x, color 0x%08x, depth %.8e, stencil %u.\n",
Count, pRects, Flags, color, Z, Stencil); iface, rect_count, rects, flags, color, depth, stencil);
if (Flags & (WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL) && !This->depth_stencil) if (flags & (WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL) && !device->depth_stencil)
{ {
WARN("Clearing depth and/or stencil without a depth stencil buffer attached, returning WINED3DERR_INVALIDCALL\n"); WARN("Clearing depth and/or stencil without a depth stencil buffer attached, returning WINED3DERR_INVALIDCALL\n");
/* TODO: What about depth stencil buffers without stencil bits? */ /* TODO: What about depth stencil buffers without stencil bits? */
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
device_get_draw_rect(This, &draw_rect); device_get_draw_rect(device, &draw_rect);
return device_clear_render_targets(This, This->adapter->gl_info.limits.buffers, return device_clear_render_targets(device, device->adapter->gl_info.limits.buffers,
This->render_targets, Count, (const RECT *)pRects, &draw_rect, Flags, device->render_targets, rect_count, rects, &draw_rect, flags, &c, depth, stencil);
&c, Z, Stencil);
} }
/***** /*****
@ -5497,12 +5496,12 @@ static HRESULT WINAPI IWineD3DDeviceImpl_DeletePatch(IWineD3DDevice *iface, UINT
} }
static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface, static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface,
IWineD3DSurface *surface, const WINED3DRECT *pRect, const WINED3DCOLORVALUE *color) IWineD3DSurface *surface, const RECT *rect, const WINED3DCOLORVALUE *color)
{ {
IWineD3DSurfaceImpl *s = (IWineD3DSurfaceImpl *)surface; IWineD3DSurfaceImpl *s = (IWineD3DSurfaceImpl *)surface;
TRACE("iface %p, surface %p, rect %s, color {%.8e, %.8e, %.8e, %.8e}.\n", TRACE("iface %p, surface %p, rect %s, color {%.8e, %.8e, %.8e, %.8e}.\n",
iface, surface, wine_dbgstr_rect((const RECT *)pRect), iface, surface, wine_dbgstr_rect(rect),
color->r, color->g, color->b, color->a); color->r, color->g, color->b, color->a);
if (s->resource.pool != WINED3DPOOL_DEFAULT && s->resource.pool != WINED3DPOOL_SYSTEMMEM) if (s->resource.pool != WINED3DPOOL_DEFAULT && s->resource.pool != WINED3DPOOL_SYSTEMMEM)
@ -5511,7 +5510,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_ColorFill(IWineD3DDevice *iface,
return WINED3DERR_INVALIDCALL; return WINED3DERR_INVALIDCALL;
} }
return surface_color_fill(s, (const RECT *)pRect, color); return surface_color_fill(s, rect, color);
} }
static void WINAPI IWineD3DDeviceImpl_ClearRendertargetView(IWineD3DDevice *iface, static void WINAPI IWineD3DDeviceImpl_ClearRendertargetView(IWineD3DDevice *iface,

View File

@ -3790,7 +3790,7 @@ static HRESULT IWineD3DSurfaceImpl_BltZ(IWineD3DSurfaceImpl *This, const RECT *D
ERR("Unexpected format for depth fill: %s.\n", debug_d3dformat(This->resource.format_desc->id)); ERR("Unexpected format for depth fill: %s.\n", debug_d3dformat(This->resource.format_desc->id));
} }
return IWineD3DDevice_Clear((IWineD3DDevice *)device, DestRect ? 1 : 0, (const WINED3DRECT *)DestRect, return IWineD3DDevice_Clear((IWineD3DDevice *)device, DestRect ? 1 : 0, DestRect,
WINED3DCLEAR_ZBUFFER, 0x00000000, depth, 0x00000000); WINED3DCLEAR_ZBUFFER, 0x00000000, depth, 0x00000000);
} }

View File

@ -1573,14 +1573,6 @@ typedef struct _WINED3DMATRIX
} DUMMYUNIONNAME; } DUMMYUNIONNAME;
} WINED3DMATRIX; } WINED3DMATRIX;
typedef struct _WINED3DRECT
{
LONG x1;
LONG y1;
LONG x2;
LONG y2;
} WINED3DRECT;
typedef struct _WINED3DLIGHT typedef struct _WINED3DLIGHT
{ {
WINED3DLIGHTTYPE Type; WINED3DLIGHTTYPE Type;
@ -3305,7 +3297,7 @@ interface IWineD3DDevice : IWineD3DBase
); );
HRESULT Clear( HRESULT Clear(
[in] DWORD rect_count, [in] DWORD rect_count,
[in] const WINED3DRECT *rects, [in] const RECT *rects,
[in] DWORD flags, [in] DWORD flags,
[in] WINED3DCOLOR color, [in] WINED3DCOLOR color,
[in] float z, [in] float z,
@ -3367,7 +3359,7 @@ interface IWineD3DDevice : IWineD3DBase
); );
HRESULT ColorFill( HRESULT ColorFill(
[in] IWineD3DSurface *surface, [in] IWineD3DSurface *surface,
[in] const WINED3DRECT *rect, [in] const RECT *rect,
[in] const WINED3DCOLORVALUE *color [in] const WINED3DCOLORVALUE *color
); );
HRESULT UpdateTexture( HRESULT UpdateTexture(