Re: [PATCH 2/5] ddraw: Ignore unsupported blit flags.
2017-04-24 23:31 GMT+02:00 Henri Verbeet <hverbeet(a)codeweavers.com>:
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> --- dlls/ddraw/surface.c | 24 +++++++++++++++++++++--- dlls/ddraw/tests/ddraw1.c | 4 ++-- dlls/ddraw/tests/ddraw2.c | 4 ++-- dlls/ddraw/tests/ddraw4.c | 4 ++-- dlls/ddraw/tests/ddraw7.c | 4 ++-- 5 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 6c4ed11..90731f0 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -1570,6 +1570,7 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Blt(IDirectDrawSurface7 * struct ddraw_surface *dst_impl = impl_from_IDirectDrawSurface7(iface); struct ddraw_surface *src_impl = unsafe_impl_from_IDirectDrawSurface7(src_surface); struct wined3d_blt_fx wined3d_fx; + DWORD unsupported_flags; DWORD fill_colour = 0; HRESULT hr = DD_OK; DDBLTFX rop_fx; @@ -1577,9 +1578,26 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Blt(IDirectDrawSurface7 * TRACE("iface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p.\n", iface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect), flags, fx);
- /* Check for validity of the flags here. WineD3D Has the software-opengl selection path and would have - * to check at 2 places, and sometimes do double checks. This also saves the call to wined3d :-) - */ + unsupported_flags = DDBLT_ALPHADEST + | DDBLT_ALPHADESTCONSTOVERRIDE + | DDBLT_ALPHADESTNEG + | DDBLT_ALPHADESTSURFACEOVERRIDE + | DDBLT_ALPHAEDGEBLEND + | DDBLT_ALPHASRC + | DDBLT_ALPHASRCCONSTOVERRIDE + | DDBLT_ALPHASRCNEG + | DDBLT_ALPHASRCSURFACEOVERRIDE + | DDBLT_ZBUFFER + | DDBLT_ZBUFFERDESTCONSTOVERRIDE + | DDBLT_ZBUFFERDESTOVERRIDE + | DDBLT_ZBUFFERSRCCONSTOVERRIDE + | DDBLT_ZBUFFERSRCOVERRIDE;
Hardly going to matter but wouldn't it be better as a static const?
On 25 April 2017 at 17:37, Matteo Bruni <matteo.mystral(a)gmail.com> wrote:
@@ -1577,9 +1578,26 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface7_Blt(IDirectDrawSurface7 * TRACE("iface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p.\n", iface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect), flags, fx);
- /* Check for validity of the flags here. WineD3D Has the software-opengl selection path and would have - * to check at 2 places, and sometimes do double checks. This also saves the call to wined3d :-) - */ + unsupported_flags = DDBLT_ALPHADEST + | DDBLT_ALPHADESTCONSTOVERRIDE + | DDBLT_ALPHADESTNEG + | DDBLT_ALPHADESTSURFACEOVERRIDE + | DDBLT_ALPHAEDGEBLEND + | DDBLT_ALPHASRC + | DDBLT_ALPHASRCCONSTOVERRIDE + | DDBLT_ALPHASRCNEG + | DDBLT_ALPHASRCSURFACEOVERRIDE + | DDBLT_ZBUFFER + | DDBLT_ZBUFFERDESTCONSTOVERRIDE + | DDBLT_ZBUFFERDESTOVERRIDE + | DDBLT_ZBUFFERSRCCONSTOVERRIDE + | DDBLT_ZBUFFERSRCOVERRIDE;
Hardly going to matter but wouldn't it be better as a static const?
Probably not, it's an integer constant.
participants (2)
-
Henri Verbeet -
Matteo Bruni