1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

#114 add temporary workaround for "not responding" windows

This commit is contained in:
FunkyFr3sh 2021-08-18 16:25:29 +02:00
parent de5f88b5f5
commit ac1829f629
3 changed files with 8 additions and 0 deletions

View File

@ -124,6 +124,7 @@ typedef struct CNCDDRAW
BOOL fixpitch;
int fixchilds;
BOOL fixwndprochook;
BOOL fixnotresponding;
BOOL d3d9linear;
BOOL gdilinear;
int resolutions;

View File

@ -51,6 +51,7 @@ void cfg_load()
g_ddraw->fixpitch = cfg_get_bool("fixpitch", FALSE);
g_ddraw->fixchilds = cfg_get_int("fixchilds", FIX_CHILDS_DETECT_PAINT);
g_ddraw->fixwndprochook = cfg_get_bool("fixwndprochook", FALSE);
g_ddraw->fixnotresponding = cfg_get_bool("fixnotresponding", FALSE);
g_ddraw->d3d9linear = cfg_get_bool("d3d9linear", TRUE);
g_ddraw->gdilinear = cfg_get_bool("gdilinear", FALSE);
g_ddraw->resolutions = cfg_get_int("resolutions", RESLIST_NORMAL);

View File

@ -1083,6 +1083,12 @@ HRESULT dds_Lock(
{
dbg_dump_dds_lock_flags(dwFlags);
if (g_ddraw && g_ddraw->fixnotresponding)
{
MSG msg; /* workaround for "Not Responding" window problem */
PeekMessage(&msg, g_ddraw->hwnd, 0, 0, PM_NOREMOVE);
}
HRESULT ret = dds_GetSurfaceDesc(This, lpDDSurfaceDesc);
if (lpDestRect && lpDDSurfaceDesc)