mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +01:00
initial zoom support
This commit is contained in:
parent
0c393e24b4
commit
f2f6ffe69f
35
src/dd.c
35
src/dd.c
@ -623,6 +623,9 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL zooming = g_ddraw.zoom.enabled;
|
||||||
|
g_ddraw.zoom.enabled = FALSE;
|
||||||
|
|
||||||
g_ddraw.render.width = g_config.window_rect.right;
|
g_ddraw.render.width = g_config.window_rect.right;
|
||||||
g_ddraw.render.height = g_config.window_rect.bottom;
|
g_ddraw.render.height = g_config.window_rect.bottom;
|
||||||
|
|
||||||
@ -665,15 +668,35 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (zooming)
|
||||||
if (g_ddraw.render.width < g_ddraw.width)
|
|
||||||
{
|
{
|
||||||
g_ddraw.render.width = g_ddraw.width;
|
if (g_ddraw.width > g_ddraw.mode.dmPelsWidth ||
|
||||||
|
g_ddraw.height > g_ddraw.mode.dmPelsHeight)
|
||||||
|
{
|
||||||
|
/* Downscaling requires adjmouse to be enabled */
|
||||||
|
g_config.adjmouse = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Do not change display resolution when zooming */
|
||||||
|
g_ddraw.render.width = g_ddraw.render.mode.dmPelsWidth;
|
||||||
|
g_ddraw.render.height = g_ddraw.render.mode.dmPelsHeight;
|
||||||
|
|
||||||
|
/* Resize and alt+enter are not supported yet with zooming */
|
||||||
|
g_config.resizable = FALSE;
|
||||||
|
g_config.hotkeys.toggle_fullscreen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_ddraw.render.height < g_ddraw.height)
|
if (!zooming || g_config.fullscreen)
|
||||||
{
|
{
|
||||||
g_ddraw.render.height = g_ddraw.height;
|
if (g_ddraw.render.width < g_ddraw.width)
|
||||||
|
{
|
||||||
|
g_ddraw.render.width = g_ddraw.width;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_ddraw.render.height < g_ddraw.height)
|
||||||
|
{
|
||||||
|
g_ddraw.render.height = g_ddraw.height;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_ddraw.render.run = TRUE;
|
g_ddraw.render.run = TRUE;
|
||||||
@ -1114,7 +1137,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
|||||||
|
|
||||||
if (!d3d9_active || g_config.nonexclusive)
|
if (!d3d9_active || g_config.nonexclusive)
|
||||||
{
|
{
|
||||||
if (ChangeDisplaySettings(&g_ddraw.render.mode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
|
if (!zooming && ChangeDisplaySettings(&g_ddraw.render.mode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
|
||||||
{
|
{
|
||||||
g_ddraw.render.run = FALSE;
|
g_ddraw.render.run = FALSE;
|
||||||
g_config.windowed = TRUE;
|
g_config.windowed = TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user