diff --git a/inc/debug.h b/inc/debug.h index a585da4..26d13f2 100644 --- a/inc/debug.h +++ b/inc/debug.h @@ -13,6 +13,9 @@ void dbg_draw_frame_info_start(); void dbg_draw_frame_info_end(); int dbg_printf(const char* fmt, ...); void dbg_init(); +void dbg_dump_scl_flags(DWORD flags); +void dbg_dump_edm_flags(DWORD flags); +void dbg_dump_dds_flip_flags(DWORD flags); void dbg_dump_dds_blt_flags(DWORD flags); void dbg_dump_dds_blt_fx_flags(DWORD flags); void dbg_dump_dds_caps(DWORD caps); diff --git a/src/dd.c b/src/dd.c index 969bbee..917c7fa 100644 --- a/src/dd.c +++ b/src/dd.c @@ -23,6 +23,8 @@ HRESULT dd_EnumDisplayModes( LPVOID lpContext, LPDDENUMMODESCALLBACK lpEnumModesCallback) { + dbg_dump_edm_flags(dwFlags); + DWORD i = 0; DDSURFACEDESC2 s; @@ -821,7 +823,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags) { - PIXELFORMATDESCRIPTOR pfd; + dbg_dump_scl_flags(dwFlags); if (hwnd == NULL) { @@ -843,9 +845,10 @@ HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags) { g_ddraw->render.hdc = GetDC(g_ddraw->hwnd); + PIXELFORMATDESCRIPTOR pfd; memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR)); - pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR); + pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER | (g_ddraw->renderer == ogl_render_main ? PFD_SUPPORT_OPENGL : 0); diff --git a/src/ddsurface.c b/src/ddsurface.c index 817196f..4e001da 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -699,6 +699,8 @@ HRESULT dds_EnumAttachedSurfaces( HRESULT dds_Flip(IDirectDrawSurfaceImpl* This, IDirectDrawSurfaceImpl* lpDDSurfaceTargetOverride, DWORD dwFlags) { + dbg_dump_dds_flip_flags(dwFlags); + if (This->backbuffer) { EnterCriticalSection(&g_ddraw->cs); diff --git a/src/debug.c b/src/debug.c index 2d9647a..d7502cf 100644 --- a/src/debug.c +++ b/src/debug.c @@ -218,6 +218,93 @@ void dbg_draw_frame_info_end() g_dbg_frame_time = dbg_counter_stop(); } +void dbg_dump_scl_flags(DWORD flags) +{ +#ifdef _DEBUG_X + if (flags & DDSCL_FULLSCREEN) { + TRACE(" DDSCL_FULLSCREEN\n"); + } + if (flags & DDSCL_ALLOWREBOOT) { + TRACE(" DDSCL_ALLOWREBOOT\n"); + } + if (flags & DDSCL_NOWINDOWCHANGES) { + TRACE(" DDSCL_NOWINDOWCHANGES\n"); + } + if (flags & DDSCL_NORMAL) { + TRACE(" DDSCL_NORMAL\n"); + } + if (flags & DDSCL_EXCLUSIVE) { + TRACE(" DDSCL_EXCLUSIVE\n"); + } + if (flags & DDSCL_ALLOWMODEX) { + TRACE(" DDSCL_ALLOWMODEX\n"); + } + if (flags & DDSCL_SETFOCUSWINDOW) { + TRACE(" DDSCL_SETFOCUSWINDOW\n"); + } + if (flags & DDSCL_SETDEVICEWINDOW) { + TRACE(" DDSCL_SETDEVICEWINDOW\n"); + } + if (flags & DDSCL_CREATEDEVICEWINDOW) { + TRACE(" DDSCL_CREATEDEVICEWINDOW\n"); + } + if (flags & DDSCL_MULTITHREADED) { + TRACE(" DDSCL_MULTITHREADED\n"); + } + if (flags & DDSCL_FPUSETUP) { + TRACE(" DDSCL_FPUSETUP\n"); + } + if (flags & DDSCL_FPUPRESERVE) { + TRACE(" DDSCL_FPUPRESERVE\n"); + } +#endif +} + +void dbg_dump_edm_flags(DWORD flags) +{ +#ifdef _DEBUG_X + if (flags & DDEDM_REFRESHRATES) { + TRACE(" DDEDM_REFRESHRATES\n"); + } + if (flags & DDEDM_STANDARDVGAMODES) { + TRACE(" DDEDM_STANDARDVGAMODES\n"); + } +#endif +} + +void dbg_dump_dds_flip_flags(DWORD flags) +{ +#ifdef _DEBUG_X + if (flags & DDFLIP_WAIT) { + TRACE(" DDFLIP_WAIT\n"); + } + if (flags & DDFLIP_EVEN) { + TRACE(" DDFLIP_EVEN\n"); + } + if (flags & DDFLIP_ODD) { + TRACE(" DDFLIP_ODD\n"); + } + if (flags & DDFLIP_NOVSYNC) { + TRACE(" DDFLIP_NOVSYNC\n"); + } + if (flags & DDFLIP_INTERVAL2) { + TRACE(" DDFLIP_INTERVAL2\n"); + } + if (flags & DDFLIP_INTERVAL3) { + TRACE(" DDFLIP_INTERVAL3\n"); + } + if (flags & DDFLIP_INTERVAL4) { + TRACE(" DDFLIP_INTERVAL4\n"); + } + if (flags & DDFLIP_STEREO) { + TRACE(" DDFLIP_STEREO\n"); + } + if (flags & DDFLIP_DONOTWAIT) { + TRACE(" DDFLIP_DONOTWAIT\n"); + } +#endif +} + void dbg_dump_dds_blt_flags(DWORD flags) { #ifdef _DEBUG_X