[PATCH 3/7] wined3d: Get rid of unused/unimplemented WINEDDBLT_* flags.
Henri Verbeet
hverbeet at codeweavers.com
Mon Feb 15 11:18:02 CST 2016
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
dlls/ddraw/surface.c | 15 +++++---
dlls/wined3d/surface.c | 93 ++++++++++++++++++++++++------------------------
dlls/wined3d/swapchain.c | 8 ++---
include/wine/wined3d.h | 40 +++++++--------------
4 files changed, 74 insertions(+), 82 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 6d9bed1..54a0581 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -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)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 33942d8..e552d2d 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -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;
}
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 7728cdc..2eb4750 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -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);
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 18d7a75..0e89490 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -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
--
2.1.4
More information about the wine-patches
mailing list