From dd738eab076b38cb5cc0be8f44e18269dffd42b8 Mon Sep 17 00:00:00 2001 From: Lionel Ulmer <lionel.ulmer@free.fr> Date: Mon, 25 Nov 2002 02:42:04 +0000 Subject: [PATCH] - Prevent the backbuffer to also have the frontbuffer flag set. - Log the Locking flags. - Print symbolic name (if any) of zero values for bit fields (thanks Andi). --- dlls/ddraw/ddraw/main.c | 2 +- dlls/ddraw/ddraw_private.h | 1 + dlls/ddraw/dsurface/main.c | 5 ++++- dlls/ddraw/helper.c | 18 +++++++++++++++++- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/dlls/ddraw/ddraw/main.c b/dlls/ddraw/ddraw/main.c index 6d9d693f9ce..4a707f07926 100644 --- a/dlls/ddraw/ddraw/main.c +++ b/dlls/ddraw/ddraw/main.c @@ -451,7 +451,7 @@ create_primary(IDirectDrawImpl* This, LPDDSURFACEDESC2 pDDSD, ddsd.dwFlags &= ~DDSD_BACKBUFFERCOUNT; ddsd.ddsCaps.dwCaps &= ~(DDSCAPS_VISIBLE | DDSCAPS_PRIMARYSURFACE - | DDSCAPS_BACKBUFFER); + | DDSCAPS_BACKBUFFER | DDSCAPS_FRONTBUFFER); primary = ICOM_OBJECT(IDirectDrawSurfaceImpl,IDirectDrawSurface7, *ppSurf); diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h index 1b2b3db62a1..b8ce3d7ba6d 100644 --- a/dlls/ddraw/ddraw_private.h +++ b/dlls/ddraw/ddraw_private.h @@ -354,6 +354,7 @@ extern void DDRAW_dump_pixelformat(const DDPIXELFORMAT *in); extern void DDRAW_dump_colorkeyflag(DWORD ck); extern void DDRAW_dump_surface_desc(const DDSURFACEDESC2 *lpddsd); extern void DDRAW_dump_cooperativelevel(DWORD cooplevel); +extern void DDRAW_dump_lockflag(DWORD lockflag); extern void DDRAW_dump_DDCOLORKEY(const DDCOLORKEY *in); extern void DDRAW_dump_DDCAPS(const DDCAPS *lpcaps); #endif /* __WINE_DLLS_DDRAW_DDRAW_PRIVATE_H */ diff --git a/dlls/ddraw/dsurface/main.c b/dlls/ddraw/dsurface/main.c index d3a26260bfc..0efb4302ce0 100644 --- a/dlls/ddraw/dsurface/main.c +++ b/dlls/ddraw/dsurface/main.c @@ -977,7 +977,10 @@ Main_DirectDrawSurface_Lock(LPDIRECTDRAWSURFACE7 iface, LPRECT prect, { ICOM_THIS(IDirectDrawSurfaceImpl, iface); - TRACE("(%p)->Lock(%p,%p,%08lx,%08lx)\n",This,prect,pDDSD,flags,(DWORD)h); + if (TRACE_ON(ddraw)) { + TRACE("(%p)->Lock(%p,%p,%08lx,%08lx)\n",This,prect,pDDSD,flags,(DWORD)h); + TRACE(" - locking flags : "); DDRAW_dump_lockflag(flags); + } if (flags & ~(DDLOCK_WAIT|DDLOCK_READONLY|DDLOCK_WRITEONLY)) WARN("(%p)->Lock(%p,%p,%08lx,%08lx)\n", diff --git a/dlls/ddraw/helper.c b/dlls/ddraw/helper.c index b2899d0aedc..4b64f4b44c3 100644 --- a/dlls/ddraw/helper.c +++ b/dlls/ddraw/helper.c @@ -66,7 +66,8 @@ static void DDRAW_dump_flags_(DWORD flags, const flag_info* names, unsigned int i; for (i=0; i < num_names; i++) - if (names[i].val & flags) + if ((flags & names[i].val) || /* standard flag value */ + ((!flags) && (!names[i].val))) /* zero value only */ DPRINTF("%s ", names[i].name); if (newline) @@ -326,6 +327,21 @@ void DDRAW_dump_colorkeyflag(DWORD ck) DDRAW_dump_flags(ck, flags, sizeof(flags)/sizeof(flags[0])); } +void DDRAW_dump_lockflag(DWORD lockflag) +{ + static const flag_info flags[] = + { + FE(DDLOCK_SURFACEMEMORYPTR), + FE(DDLOCK_WAIT), + FE(DDLOCK_EVENT), + FE(DDLOCK_READONLY), + FE(DDLOCK_WRITEONLY), + FE(DDLOCK_NOSYSLOCK) + }; + + DDRAW_dump_flags(lockflag, flags, sizeof(flags)/sizeof(flags[0])); +} + static void DDRAW_dump_DWORD(const void *in) { DPRINTF("%ld", *((const DWORD *) in)); } -- GitLab