wined3d: Move some flags handling from surface_cpu_blt() to wined3d_surface_blt().

This commit is contained in:
Henri Verbeet 2011-08-03 21:34:48 +02:00 committed by Alexandre Julliard
parent 92e616f355
commit 662de19ad3
1 changed files with 25 additions and 24 deletions

View File

@ -1340,6 +1340,31 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
memset(&src_rect, 0, sizeof(src_rect)); memset(&src_rect, 0, sizeof(src_rect));
} }
if (!fx || !(fx->dwDDFX))
flags &= ~WINEDDBLT_DDFX;
if (flags & WINEDDBLT_WAIT)
flags &= ~WINEDDBLT_WAIT;
if (flags & WINEDDBLT_ASYNC)
{
static unsigned int once;
if (!once++)
FIXME("Can't handle WINEDDBLT_ASYNC flag.\n");
flags &= ~WINEDDBLT_ASYNC;
}
/* WINEDDBLT_DONOTWAIT appeared in DX7. */
if (flags & WINEDDBLT_DONOTWAIT)
{
static unsigned int once;
if (!once++)
FIXME("Can't handle WINEDDBLT_DONOTWAIT flag.\n");
flags &= ~WINEDDBLT_DONOTWAIT;
}
if (!device->d3d_initialized) if (!device->d3d_initialized)
{ {
WARN("D3D not initialized, using fallback.\n"); WARN("D3D not initialized, using fallback.\n");
@ -6594,8 +6619,6 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT *
wined3d_surface_map(dst_surface, &dlock, NULL, 0); wined3d_surface_map(dst_surface, &dlock, NULL, 0);
} }
if (!fx || !(fx->dwDDFX)) flags &= ~WINEDDBLT_DDFX;
if (src_format->flags & dst_format->flags & WINED3DFMT_FLAG_FOURCC) if (src_format->flags & dst_format->flags & WINED3DFMT_FLAG_FOURCC)
{ {
if (!dst_rect || src_surface == dst_surface) if (!dst_rect || src_surface == dst_surface)
@ -6617,28 +6640,6 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT *
else else
dbuf = (BYTE*)dlock.pBits+(xdst.top*dlock.Pitch)+(xdst.left*bpp); dbuf = (BYTE*)dlock.pBits+(xdst.top*dlock.Pitch)+(xdst.left*bpp);
if (flags & WINEDDBLT_WAIT)
{
flags &= ~WINEDDBLT_WAIT;
}
if (flags & WINEDDBLT_ASYNC)
{
static BOOL displayed = FALSE;
if (!displayed)
FIXME("Can't handle WINEDDBLT_ASYNC flag right now.\n");
displayed = TRUE;
flags &= ~WINEDDBLT_ASYNC;
}
if (flags & WINEDDBLT_DONOTWAIT)
{
/* WINEDDBLT_DONOTWAIT appeared in DX7 */
static BOOL displayed = FALSE;
if (!displayed)
FIXME("Can't handle WINEDDBLT_DONOTWAIT flag right now.\n");
displayed = TRUE;
flags &= ~WINEDDBLT_DONOTWAIT;
}
/* First, all the 'source-less' blits */ /* First, all the 'source-less' blits */
if (flags & WINEDDBLT_COLORFILL) if (flags & WINEDDBLT_COLORFILL)
{ {