mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
add workaround for multi-monitor setups
This commit is contained in:
parent
bf3d21c835
commit
a71528f35f
@ -74,7 +74,7 @@ DWORD WINAPI gdi_render_main(void)
|
||||
|
||||
if (g_ddraw->fixchilds)
|
||||
{
|
||||
g_ddraw->child_window_exists = FALSE;
|
||||
g_ddraw->child_window_exists = g_ddraw->bnet_active && GetSystemMetrics(SM_CMONITORS) > 1;
|
||||
EnumChildWindows(g_ddraw->hwnd, util_enum_child_proc, (LPARAM)g_ddraw->primary);
|
||||
}
|
||||
|
||||
@ -97,20 +97,39 @@ DWORD WINAPI gdi_render_main(void)
|
||||
|
||||
if (g_ddraw->bnet_active)
|
||||
{
|
||||
StretchDIBits(
|
||||
g_ddraw->render.hdc,
|
||||
g_ddraw->render.viewport.x,
|
||||
g_ddraw->render.viewport.y,
|
||||
g_ddraw->render.viewport.width,
|
||||
g_ddraw->render.viewport.height,
|
||||
0,
|
||||
0,
|
||||
g_ddraw->width,
|
||||
g_ddraw->height,
|
||||
g_ddraw->primary->bnet_surface,
|
||||
g_ddraw->primary->bmi,
|
||||
DIB_RGB_COLORS,
|
||||
SRCCOPY);
|
||||
if (GetSystemMetrics(SM_CMONITORS) == 1)
|
||||
{
|
||||
StretchDIBits(
|
||||
g_ddraw->render.hdc,
|
||||
g_ddraw->render.viewport.x,
|
||||
g_ddraw->render.viewport.y,
|
||||
g_ddraw->render.viewport.width,
|
||||
g_ddraw->render.viewport.height,
|
||||
0,
|
||||
0,
|
||||
g_ddraw->width,
|
||||
g_ddraw->height,
|
||||
g_ddraw->primary->bnet_surface,
|
||||
g_ddraw->primary->bmi,
|
||||
DIB_RGB_COLORS,
|
||||
SRCCOPY);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetDIBitsToDevice(
|
||||
g_ddraw->render.hdc,
|
||||
0,
|
||||
0,
|
||||
g_ddraw->width,
|
||||
g_ddraw->height,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
g_ddraw->height,
|
||||
g_ddraw->primary->bnet_surface,
|
||||
g_ddraw->primary->bmi,
|
||||
DIB_RGB_COLORS);
|
||||
}
|
||||
}
|
||||
else if (upscale_hack)
|
||||
{
|
||||
|
@ -676,7 +676,7 @@ static void ogl_render()
|
||||
|
||||
if (g_ddraw->fixchilds)
|
||||
{
|
||||
g_ddraw->child_window_exists = FALSE;
|
||||
g_ddraw->child_window_exists = g_ddraw->bnet_active && GetSystemMetrics(SM_CMONITORS) > 1;
|
||||
EnumChildWindows(g_ddraw->hwnd, util_enum_child_proc, (LPARAM)g_ddraw->primary);
|
||||
|
||||
if (g_ddraw->render.width != g_ddraw->width || g_ddraw->render.height != g_ddraw->height)
|
||||
|
@ -650,8 +650,9 @@ HWND WINAPI fake_CreateWindowExA(
|
||||
|
||||
if (!g_ddraw->windowed && !g_ddraw->bnet_was_fullscreen)
|
||||
{
|
||||
if (g_ddraw->render.mode.dmPelsWidth != 640 ||
|
||||
g_ddraw->render.mode.dmPelsHeight != 480)
|
||||
if ((g_ddraw->render.mode.dmPelsWidth != 640 ||
|
||||
g_ddraw->render.mode.dmPelsHeight != 480) &&
|
||||
GetSystemMetrics(SM_CMONITORS) == 1)
|
||||
{
|
||||
memcpy(&g_ddraw->bnet_mode, &g_ddraw->render.mode, sizeof(DEVMODE));
|
||||
|
||||
@ -709,6 +710,11 @@ HWND WINAPI fake_CreateWindowExA(
|
||||
X += align_x;
|
||||
Y += align_y;
|
||||
}
|
||||
else if (GetSystemMetrics(SM_CMONITORS) > 1)
|
||||
{
|
||||
X += min(g_ddraw->render.width / 2 - 640 / 2, added_width);
|
||||
Y += min(g_ddraw->render.height / 2 - 480 / 2, added_height);
|
||||
}
|
||||
|
||||
X += pt.x;
|
||||
Y += pt.y;
|
||||
|
Loading…
x
Reference in New Issue
Block a user