wined3d: Get rid of unused/unimplemented WINEDDBLT_* flags.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2016-02-15 18:18:02 +01:00 committed by Alexandre Julliard
parent 47635a60a0
commit 0b6b5176cc
4 changed files with 74 additions and 82 deletions

View File

@ -1647,6 +1647,13 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Blt(IDirectDrawSurface7 *
return DDERR_INVALIDPARAMS;
}
if (Flags & ~WINED3D_BLT_MASK)
{
wined3d_mutex_unlock();
FIXME("Unhandled flags %#x.\n", Flags);
return E_NOTIMPL;
}
/* TODO: Check if the DDBltFx contains any ddraw surface pointers. If it
* does, copy the struct, and replace the ddraw surfaces with the wined3d
* surfaces. So far no blitting operations using surfaces in the bltfx
@ -4151,13 +4158,13 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_BltFast(IDirectDrawSurfac
SetRect(&dst_rect, dst_x, dst_y, dst_x + src_w, dst_y + src_h);
if (trans & DDBLTFAST_SRCCOLORKEY)
flags |= WINEDDBLT_KEYSRC;
flags |= WINED3D_BLT_SRC_CKEY;
if (trans & DDBLTFAST_DESTCOLORKEY)
flags |= WINEDDBLT_KEYDEST;
flags |= WINED3D_BLT_DST_CKEY;
if (trans & DDBLTFAST_WAIT)
flags |= WINEDDBLT_WAIT;
flags |= WINED3D_BLT_WAIT;
if (trans & DDBLTFAST_DONOTWAIT)
flags |= WINEDDBLT_DONOTWAIT;
flags |= WINED3D_BLT_DO_NOT_WAIT;
wined3d_mutex_lock();
if (dst_impl->clipper)

View File

@ -3225,7 +3225,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
}
/* No destination color keying supported */
if (flags & (WINEDDBLT_KEYDEST | WINEDDBLT_KEYDESTOVERRIDE))
if (flags & (WINED3D_BLT_DST_CKEY | WINED3D_BLT_DST_CKEY_OVERRIDE))
{
/* Can we support that with glBlendFunc if blitting to the frame buffer? */
TRACE("Destination color key not supported in accelerated Blit, falling back to software\n");
@ -3269,7 +3269,7 @@ static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RE
return WINED3DERR_INVALIDCALL;
}
if (flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE))
if (flags & (WINED3D_BLT_SRC_CKEY | WINED3D_BLT_SRC_CKEY_OVERRIDE))
{
TRACE("Color keying not supported by frame buffer to texture blit\n");
return WINED3DERR_INVALIDCALL;
@ -4173,7 +4173,7 @@ static HRESULT surface_cpu_blt_compressed(const BYTE *src_data, BYTE *dst_data,
return WINED3D_OK;
}
if (flags == WINEDDBLT_DDFX && fx->dwDDFX == WINEDDBLTFX_MIRRORUPDOWN)
if (flags == WINED3D_BLT_FX && fx->dwDDFX == WINEDDBLTFX_MIRRORUPDOWN)
{
src_row += (((update_h / format->block_height) - 1) * src_pitch);
@ -4245,7 +4245,7 @@ static HRESULT surface_cpu_blt_compressed(const BYTE *src_data, BYTE *dst_data,
}
FIXME("Unsupported blit on compressed surface (format %s, flags %#x, DDFX %#x).\n",
debug_d3dformat(format->id), flags, flags & WINEDDBLT_DDFX ? fx->dwDDFX : 0);
debug_d3dformat(format->id), flags, flags & WINED3D_BLT_FX ? fx->dwDDFX : 0);
return E_NOTIMPL;
}
@ -4365,16 +4365,15 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT *
}
/* First, all the 'source-less' blits */
if (flags & WINEDDBLT_COLORFILL)
if (flags & WINED3D_BLT_COLOR_FILL)
{
hr = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp, dst_map.row_pitch, fx->u5.dwFillColor);
flags &= ~WINEDDBLT_COLORFILL;
flags &= ~WINED3D_BLT_COLOR_FILL;
}
if (flags & WINEDDBLT_DEPTHFILL)
{
FIXME("DDBLT_DEPTHFILL needs to be implemented!\n");
}
if (flags & WINED3D_BLT_DEPTH_FILL)
FIXME("WINED3D_BLT_DEPTH_FILL needs to be implemented!\n");
/* Now the 'with source' blits. */
if (src_surface)
{
@ -4519,27 +4518,28 @@ do { \
LONG dstyinc = dst_map.row_pitch, dstxinc = bpp;
DWORD keylow = 0xffffffff, keyhigh = 0, keymask = 0xffffffff;
DWORD destkeylow = 0x0, destkeyhigh = 0xffffffff, destkeymask = 0xffffffff;
if (flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYDEST | WINEDDBLT_KEYSRCOVERRIDE | WINEDDBLT_KEYDESTOVERRIDE))
if (flags & (WINED3D_BLT_SRC_CKEY | WINED3D_BLT_DST_CKEY
| WINED3D_BLT_SRC_CKEY_OVERRIDE | WINED3D_BLT_DST_CKEY_OVERRIDE))
{
/* The color keying flags are checked for correctness in ddraw */
if (flags & WINEDDBLT_KEYSRC)
if (flags & WINED3D_BLT_SRC_CKEY)
{
keylow = src_surface->container->async.src_blt_color_key.color_space_low_value;
keyhigh = src_surface->container->async.src_blt_color_key.color_space_high_value;
}
else if (flags & WINEDDBLT_KEYSRCOVERRIDE)
else if (flags & WINED3D_BLT_SRC_CKEY_OVERRIDE)
{
keylow = fx->ddckSrcColorkey.color_space_low_value;
keyhigh = fx->ddckSrcColorkey.color_space_high_value;
}
if (flags & WINEDDBLT_KEYDEST)
if (flags & WINED3D_BLT_DST_CKEY)
{
/* Destination color keys are taken from the source surface! */
destkeylow = src_surface->container->async.dst_blt_color_key.color_space_low_value;
destkeyhigh = src_surface->container->async.dst_blt_color_key.color_space_high_value;
}
else if (flags & WINEDDBLT_KEYDESTOVERRIDE)
else if (flags & WINED3D_BLT_DST_CKEY_OVERRIDE)
{
destkeylow = fx->ddckDestColorkey.color_space_low_value;
destkeyhigh = fx->ddckDestColorkey.color_space_high_value;
@ -4557,10 +4557,11 @@ do { \
| masks[1]
| masks[2];
}
flags &= ~(WINEDDBLT_KEYSRC | WINEDDBLT_KEYDEST | WINEDDBLT_KEYSRCOVERRIDE | WINEDDBLT_KEYDESTOVERRIDE);
flags &= ~(WINED3D_BLT_SRC_CKEY | WINED3D_BLT_DST_CKEY
| WINED3D_BLT_SRC_CKEY_OVERRIDE | WINED3D_BLT_DST_CKEY_OVERRIDE);
}
if (flags & WINEDDBLT_DDFX)
if (flags & WINED3D_BLT_FX)
{
BYTE *dTopLeft, *dTopRight, *dBottomLeft, *dBottomRight, *tmp;
LONG tmpxy;
@ -4572,7 +4573,7 @@ do { \
if (fx->dwDDFX & WINEDDBLTFX_ARITHSTRETCHY)
{
/* I don't think we need to do anything about this flag */
WARN("flags=DDBLT_DDFX nothing done for WINEDDBLTFX_ARITHSTRETCHY\n");
WARN("Nothing done for WINEDDBLTFX_ARITHSTRETCHY.\n");
}
if (fx->dwDDFX & WINEDDBLTFX_MIRRORLEFTRIGHT)
{
@ -4597,7 +4598,7 @@ do { \
if (fx->dwDDFX & WINEDDBLTFX_NOTEARING)
{
/* I don't think we need to do anything about this flag */
WARN("flags=DDBLT_DDFX nothing done for WINEDDBLTFX_NOTEARING\n");
WARN("Nothing done for WINEDDBLTFX_NOTEARING.\n");
}
if (fx->dwDDFX & WINEDDBLTFX_ROTATE180)
{
@ -4637,10 +4638,10 @@ do { \
if (fx->dwDDFX & WINEDDBLTFX_ZBUFFERBASEDEST)
{
/* I don't think we need to do anything about this flag */
WARN("flags=WINEDDBLT_DDFX nothing done for WINEDDBLTFX_ZBUFFERBASEDEST\n");
WARN("Nothing done for WINEDDBLTFX_ZBUFFERBASEDEST.\n");
}
dbuf = dTopLeft;
flags &= ~(WINEDDBLT_DDFX);
flags &= ~(WINED3D_BLT_FX);
}
#define COPY_COLORKEY_FX(type) \
@ -4705,7 +4706,7 @@ do { \
}
default:
FIXME("%s color-keyed blit not implemented for bpp %u!\n",
(flags & WINEDDBLT_KEYSRC) ? "Source" : "Destination", bpp * 8);
(flags & WINED3D_BLT_SRC_CKEY) ? "Source" : "Destination", bpp * 8);
hr = WINED3DERR_NOTAVAILABLE;
goto error;
#undef COPY_COLORKEY_FX
@ -4741,7 +4742,7 @@ static HRESULT cpu_blit_color_fill(struct wined3d_device *device, struct wined3d
BltFx.dwSize = sizeof(BltFx);
BltFx.u5.dwFillColor = wined3d_format_convert_from_float(surface, color);
return surface_cpu_blt(surface, rect, NULL, &src_rect,
WINEDDBLT_COLORFILL, &BltFx, WINED3D_TEXF_POINT);
WINED3D_BLT_COLOR_FILL, &BltFx, WINED3D_TEXF_POINT);
}
static HRESULT cpu_blit_depth_fill(struct wined3d_device *device,
@ -4780,14 +4781,14 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
DWORD src_ds_flags, dst_ds_flags;
BOOL scale, convert;
static const DWORD simple_blit = WINEDDBLT_ASYNC
| WINEDDBLT_COLORFILL
| WINEDDBLT_KEYSRC
| WINEDDBLT_KEYSRCOVERRIDE
| WINEDDBLT_WAIT
| WINEDDBLT_DEPTHFILL
| WINEDDBLT_DONOTWAIT
| WINEDDBLT_ALPHATEST;
static const DWORD simple_blit = WINED3D_BLT_ASYNC
| WINED3D_BLT_COLOR_FILL
| WINED3D_BLT_SRC_CKEY
| WINED3D_BLT_SRC_CKEY_OVERRIDE
| WINED3D_BLT_WAIT
| WINED3D_BLT_DEPTH_FILL
| WINED3D_BLT_DO_NOT_WAIT
| WINED3D_BLT_ALPHA_TEST;
TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n",
dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect),
@ -4855,28 +4856,28 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
}
if (!fx || !(fx->dwDDFX))
flags &= ~WINEDDBLT_DDFX;
flags &= ~WINED3D_BLT_FX;
if (flags & WINEDDBLT_WAIT)
flags &= ~WINEDDBLT_WAIT;
if (flags & WINED3D_BLT_WAIT)
flags &= ~WINED3D_BLT_WAIT;
if (flags & WINEDDBLT_ASYNC)
if (flags & WINED3D_BLT_ASYNC)
{
static unsigned int once;
if (!once++)
FIXME("Can't handle WINEDDBLT_ASYNC flag.\n");
flags &= ~WINEDDBLT_ASYNC;
FIXME("Can't handle WINED3D_BLT_ASYNC flag.\n");
flags &= ~WINED3D_BLT_ASYNC;
}
/* WINEDDBLT_DONOTWAIT appeared in DX7. */
if (flags & WINEDDBLT_DONOTWAIT)
/* WINED3D_BLT_DO_NOT_WAIT appeared in DX7. */
if (flags & WINED3D_BLT_DO_NOT_WAIT)
{
static unsigned int once;
if (!once++)
FIXME("Can't handle WINEDDBLT_DONOTWAIT flag.\n");
flags &= ~WINEDDBLT_DONOTWAIT;
FIXME("Can't handle WINED3D_BLT_DO_NOT_WAIT flag.\n");
flags &= ~WINED3D_BLT_DO_NOT_WAIT;
}
if (!device->d3d_initialized)
@ -4935,7 +4936,7 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
if (src_ds_flags || dst_ds_flags)
{
if (flags & WINEDDBLT_DEPTHFILL)
if (flags & WINED3D_BLT_DEPTH_FILL)
{
float depth;
@ -4977,7 +4978,7 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
goto cpu;
}
if (flags & WINEDDBLT_COLORFILL)
if (flags & WINED3D_BLT_COLOR_FILL)
{
struct wined3d_color color;
const struct wined3d_palette *palette = dst_swapchain ? dst_swapchain->palette : NULL;
@ -4997,17 +4998,17 @@ HRESULT wined3d_surface_blt(struct wined3d_surface *dst_surface, const RECT *dst
const struct wined3d_color_key *color_key = NULL;
TRACE("Color blit.\n");
if (flags & WINEDDBLT_KEYSRCOVERRIDE)
if (flags & WINED3D_BLT_SRC_CKEY_OVERRIDE)
{
color_key = &fx->ddckSrcColorkey;
blit_op = WINED3D_BLIT_OP_COLOR_BLIT_CKEY;
}
else if (flags & WINEDDBLT_KEYSRC)
else if (flags & WINED3D_BLT_SRC_CKEY)
{
color_key = &src_surface->container->async.src_blt_color_key;
blit_op = WINED3D_BLIT_OP_COLOR_BLIT_CKEY;
}
else if (flags & WINEDDBLT_ALPHATEST)
else if (flags & WINED3D_BLT_ALPHA_TEST)
{
blit_op = WINED3D_BLIT_OP_COLOR_BLIT_ALPHATEST;
}

View File

@ -451,8 +451,8 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
RECT rect = {0, 0, src_surface->resource.width, src_surface->resource.height};
/* Blit the logo into the upper left corner of the drawable. */
wined3d_surface_blt(back_buffer, &rect, src_surface, &rect, WINEDDBLT_ALPHATEST,
NULL, WINED3D_TEXF_POINT);
wined3d_surface_blt(back_buffer, &rect, src_surface, &rect,
WINED3D_BLT_ALPHA_TEST, NULL, WINED3D_TEXF_POINT);
}
if (swapchain->device->bCursorVisible && swapchain->device->cursor_texture
@ -480,8 +480,8 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
if (swapchain->desc.windowed)
MapWindowPoints(NULL, swapchain->win_handle, (POINT *)&destRect, 2);
if (wined3d_clip_blit(&clip_rect, &destRect, &src_rect))
wined3d_surface_blt(back_buffer, &destRect, cursor, &src_rect, WINEDDBLT_ALPHATEST,
NULL, WINED3D_TEXF_POINT);
wined3d_surface_blt(back_buffer, &destRect, cursor, &src_rect,
WINED3D_BLT_ALPHA_TEST, NULL, WINED3D_TEXF_POINT);
}
TRACE("Presenting HDC %p.\n", context->hdc);

View File

@ -1266,34 +1266,18 @@ enum wined3d_display_rotation
/* add dwZBufferBaseDest to every source z value before compare */
#define WINEDDBLTFX_ZBUFFERBASEDEST 0x00000100
/* dwFlags for Blt* */
#define WINEDDBLT_ALPHADEST 0x00000001
#define WINEDDBLT_ALPHADESTCONSTOVERRIDE 0x00000002
#define WINEDDBLT_ALPHADESTNEG 0x00000004
#define WINEDDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008
#define WINEDDBLT_ALPHAEDGEBLEND 0x00000010
#define WINEDDBLT_ALPHASRC 0x00000020
#define WINEDDBLT_ALPHASRCCONSTOVERRIDE 0x00000040
#define WINEDDBLT_ALPHASRCNEG 0x00000080
#define WINEDDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100
#define WINEDDBLT_ASYNC 0x00000200
#define WINEDDBLT_COLORFILL 0x00000400
#define WINEDDBLT_DDFX 0x00000800
#define WINEDDBLT_KEYDEST 0x00002000
#define WINEDDBLT_KEYDESTOVERRIDE 0x00004000
#define WINEDDBLT_KEYSRC 0x00008000
#define WINEDDBLT_KEYSRCOVERRIDE 0x00010000
#define WINEDDBLT_ROP 0x00020000
#define WINEDDBLT_ROTATIONANGLE 0x00040000
#define WINEDDBLT_ZBUFFER 0x00080000
#define WINEDDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000
#define WINEDDBLT_ZBUFFERDESTOVERRIDE 0x00200000
#define WINEDDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000
#define WINEDDBLT_ZBUFFERSRCOVERRIDE 0x00800000
#define WINEDDBLT_WAIT 0x01000000
#define WINEDDBLT_DEPTHFILL 0x02000000
#define WINEDDBLT_DONOTWAIT 0x08000000
#define WINEDDBLT_ALPHATEST 0x80000000
#define WINED3D_BLT_ASYNC 0x00000200
#define WINED3D_BLT_COLOR_FILL 0x00000400
#define WINED3D_BLT_FX 0x00000800
#define WINED3D_BLT_DST_CKEY 0x00002000
#define WINED3D_BLT_DST_CKEY_OVERRIDE 0x00004000
#define WINED3D_BLT_SRC_CKEY 0x00008000
#define WINED3D_BLT_SRC_CKEY_OVERRIDE 0x00010000
#define WINED3D_BLT_WAIT 0x01000000
#define WINED3D_BLT_DEPTH_FILL 0x02000000
#define WINED3D_BLT_DO_NOT_WAIT 0x08000000
#define WINED3D_BLT_ALPHA_TEST 0x80000000
#define WINED3D_BLT_MASK 0x8b01ee00
/* dwFlags for GetBltStatus */
#define WINEDDGBS_CANBLT 0x00000001