diff --git a/dlls/ddraw/ddraw/main.c b/dlls/ddraw/ddraw/main.c index 6d9d693f9ce779fb69c1ff5aef85784d99bf4139..4a707f0792678c5a62c169c1880850bed0fb4db1 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 1b2b3db62a1dcc249dfabd94e7bb55480f033239..b8ce3d7ba6d8d3c5d62e8266f77813466a6293d4 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 d3a26260bfc23c409df7b6aca8e9cac0b13326f7..0efb4302ce07c144d4ff76740337b881755d42a0 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 b2899d0aedc69941feb1faaff443b1c6700ccee3..4b64f4b44c32031c0f56a270f15b6b5542f8a8e8 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)); }