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

run lobby in fullscreen with opengl/gdi renderer

This commit is contained in:
FunkyFr3sh 2021-11-06 17:12:02 +01:00
parent 483a64c7e3
commit 2e23e4309c
4 changed files with 19 additions and 39 deletions

View File

@ -155,6 +155,7 @@ typedef struct CNCDDRAW
BOOL bnet_was_fullscreen;
BOOL bnet_was_upscaled;
RECT bnet_win_rect;
DEVMODE bnet_mode;
POINT bnet_pos;
void* last_freed_palette; /* Dungeon Keeper hack */
BOOL child_window_exists;

View File

@ -40,7 +40,7 @@ void cfg_load()
g_ddraw->vhack = cfg_get_bool("vhack", FALSE);
g_ddraw->accurate_timers = cfg_get_bool("accuratetimers", FALSE);
g_ddraw->resizable = cfg_get_bool("resizable", TRUE);
g_ddraw->nonexclusive = cfg_get_bool("nonexclusive", FALSE);
g_ddraw->nonexclusive = TRUE;// cfg_get_bool("nonexclusive", FALSE);
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);
@ -149,11 +149,7 @@ void cfg_load()
{
g_ddraw->renderer = gdi_render_main;
}
else if (tolower(tmp[0]) == 'd') /* direct3d9 */
{
g_ddraw->renderer = d3d9_render_main;
}
else if (tolower(tmp[0]) == 'o') /* opengl */
else /* opengl */
{
if (oglu_load_dll())
{
@ -165,22 +161,6 @@ void cfg_load()
g_ddraw->renderer = gdi_render_main;
}
}
else /* auto */
{
if (!g_ddraw->wine && d3d9_is_available())
{
g_ddraw->renderer = d3d9_render_main;
}
else if (oglu_load_dll())
{
g_ddraw->renderer = ogl_render_main;
}
else
{
g_ddraw->show_driver_warning = TRUE;
g_ddraw->renderer = gdi_render_main;
}
}
}
void cfg_save()

View File

@ -617,13 +617,13 @@ BOOL WINAPI fake_DestroyWindow(HWND hWnd)
dst_height,
flags);
}
g_ddraw->fullscreen = g_ddraw->bnet_was_upscaled;
SetTimer(g_ddraw->hwnd, IDT_TIMER_LEAVE_BNET, 1000, (TIMERPROC)NULL);
g_ddraw->resizable = TRUE;
}
g_ddraw->fullscreen = g_ddraw->bnet_was_upscaled;
SetTimer(g_ddraw->hwnd, IDT_TIMER_LEAVE_BNET, 1000, (TIMERPROC)NULL);
g_ddraw->resizable = TRUE;
}
}
@ -649,9 +649,12 @@ HWND WINAPI fake_CreateWindowExA(
if (!g_ddraw->windowed && !g_ddraw->bnet_was_fullscreen)
{
int ws = g_config.window_state;
util_toggle_fullscreen();
g_config.window_state = ws;
memcpy(&g_ddraw->bnet_mode, &g_ddraw->render.mode, sizeof(DEVMODE));
g_ddraw->render.mode.dmPelsWidth = 640;
g_ddraw->render.mode.dmPelsHeight = 480;
ChangeDisplaySettings(&g_ddraw->render.mode, CDS_FULLSCREEN);
g_ddraw->bnet_was_fullscreen = TRUE;
}
@ -684,8 +687,8 @@ HWND WINAPI fake_CreateWindowExA(
int align_y = added_height > 0 ? added_height / 2 : 0;
int align_x = added_width > 0 ? added_width / 2 : 0;
X += pt.x + align_x;
Y += pt.y + align_y;
X += pt.x;// +align_x;
Y += pt.y;// +align_y;
dwStyle |= WS_CLIPCHILDREN;
}

View File

@ -145,16 +145,12 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
{
KillTimer(g_ddraw->hwnd, IDT_TIMER_LEAVE_BNET);
if (!g_ddraw->windowed)
g_ddraw->bnet_was_fullscreen = FALSE;
if (!g_ddraw->bnet_active)
{
if (g_ddraw->bnet_was_fullscreen)
{
int ws = g_config.window_state;
util_toggle_fullscreen();
g_config.window_state = ws;
memcpy(&g_ddraw->render.mode, &g_ddraw->bnet_mode, sizeof(DEVMODE));
dd_SetDisplayMode(g_ddraw->width, g_ddraw->height, g_ddraw->bpp, 0);
g_ddraw->bnet_was_fullscreen = FALSE;
}
else if (g_ddraw->bnet_was_upscaled)