mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-26 10:29:23 +01:00
#189 fix freeze on loading screen
This commit is contained in:
parent
5a928caa70
commit
428acf24ba
1
inc/dd.h
1
inc/dd.h
@ -183,6 +183,7 @@ typedef struct CNCDDRAW
|
|||||||
DWORD gui_thread_id;
|
DWORD gui_thread_id;
|
||||||
BOOL rgb555;
|
BOOL rgb555;
|
||||||
BOOL hook_peekmessage;
|
BOOL hook_peekmessage;
|
||||||
|
BOOL dont_emulate_dc;
|
||||||
|
|
||||||
} CNCDDRAW;
|
} CNCDDRAW;
|
||||||
|
|
||||||
|
@ -58,6 +58,7 @@ void cfg_load()
|
|||||||
g_ddraw->opengl_core = cfg_get_bool("opengl_core", FALSE);
|
g_ddraw->opengl_core = cfg_get_bool("opengl_core", FALSE);
|
||||||
g_ddraw->rgb555 = cfg_get_bool("rgb555", FALSE);
|
g_ddraw->rgb555 = cfg_get_bool("rgb555", FALSE);
|
||||||
g_ddraw->hook_peekmessage = cfg_get_bool("hook_peekmessage", FALSE);
|
g_ddraw->hook_peekmessage = cfg_get_bool("hook_peekmessage", FALSE);
|
||||||
|
g_ddraw->dont_emulate_dc = cfg_get_bool("dont_emulate_dc", FALSE);
|
||||||
cfg_get_string("screenshotdir", ".\\Screenshots\\", g_ddraw->screenshot_dir, sizeof(g_ddraw->screenshot_dir));
|
cfg_get_string("screenshotdir", ".\\Screenshots\\", g_ddraw->screenshot_dir, sizeof(g_ddraw->screenshot_dir));
|
||||||
|
|
||||||
if (g_ddraw->locktopleft)
|
if (g_ddraw->locktopleft)
|
||||||
@ -385,6 +386,7 @@ static void cfg_create_ini()
|
|||||||
"fpupreserve=true\n"
|
"fpupreserve=true\n"
|
||||||
"dinput_show_cursor=false\n"
|
"dinput_show_cursor=false\n"
|
||||||
"no_dinput_hook=false\n"
|
"no_dinput_hook=false\n"
|
||||||
|
"dont_emulate_dc=false\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
@ -826,6 +828,10 @@ static void cfg_create_ini()
|
|||||||
"renderer=opengl\n"
|
"renderer=opengl\n"
|
||||||
"noactivateapp=true\n"
|
"noactivateapp=true\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"; Hooligans: Storm over Europe\n"
|
||||||
|
"[Hooligans]\n"
|
||||||
|
"dont_emulate_dc=true\n"
|
||||||
|
"\n"
|
||||||
"; Invictus\n"
|
"; Invictus\n"
|
||||||
"[Invictus]\n"
|
"[Invictus]\n"
|
||||||
"adjmouse=true\n"
|
"adjmouse=true\n"
|
||||||
|
@ -1431,6 +1431,9 @@ HRESULT dd_CreateSurface(
|
|||||||
((DWORD*)dst_surface->bmi->bmiColors)[2] = 0x0000FF;
|
((DWORD*)dst_surface->bmi->bmiColors)[2] = 0x0000FF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!g_ddraw->dont_emulate_dc)
|
||||||
|
{
|
||||||
dst_surface->hdc = CreateCompatibleDC(g_ddraw->render.hdc);
|
dst_surface->hdc = CreateCompatibleDC(g_ddraw->render.hdc);
|
||||||
|
|
||||||
dst_surface->mapping =
|
dst_surface->mapping =
|
||||||
@ -1469,8 +1472,7 @@ HRESULT dd_CreateSurface(
|
|||||||
(void**)&dst_surface->surface,
|
(void**)&dst_surface->surface,
|
||||||
dst_surface->mapping,
|
dst_surface->mapping,
|
||||||
map_offset);
|
map_offset);
|
||||||
|
}
|
||||||
SelectObject(dst_surface->hdc, dst_surface->bitmap);
|
|
||||||
|
|
||||||
dst_surface->bmi->bmiHeader.biHeight = -((int)dst_surface->height);
|
dst_surface->bmi->bmiHeader.biHeight = -((int)dst_surface->height);
|
||||||
|
|
||||||
@ -1478,6 +1480,10 @@ HRESULT dd_CreateSurface(
|
|||||||
{
|
{
|
||||||
dst_surface->surface = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, bmp_size);
|
dst_surface->surface = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, bmp_size);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SelectObject(dst_surface->hdc, dst_surface->bitmap);
|
||||||
|
}
|
||||||
|
|
||||||
if (dst_surface->caps & DDSCAPS_PRIMARYSURFACE)
|
if (dst_surface->caps & DDSCAPS_PRIMARYSURFACE)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user