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

Add support for real fullscreen in OpenGL renderer

This commit is contained in:
Toni Spets 2010-11-08 21:42:47 +02:00
parent 17968c433c
commit ac1d35c6dd

View File

@ -36,6 +36,8 @@ struct render_opengl_impl
HANDLE thread;
BOOL run;
HANDLE ev;
DEVMODE restore;
};
DWORD WINAPI render_opengl_main(IDirectDrawSurfaceImpl *surface);
@ -68,11 +70,24 @@ HRESULT WINAPI render_opengl_Initialize()
HRESULT WINAPI render_opengl_SetDisplayMode(DWORD width, DWORD height)
{
return DD_OK;
DEVMODE mode;
EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &render_opengl.restore);
memset(&mode, 0, sizeof(DEVMODE));
mode.dmSize = sizeof(DEVMODE);
mode.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
mode.dmPelsWidth = render_opengl.width;
mode.dmPelsHeight = render_opengl.height;
mode.dmBitsPerPel = render_opengl.bpp;
return ChangeDisplaySettings(&mode, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL ? DD_OK : DDERR_INVALIDMODE;
}
HRESULT WINAPI render_opengl_RestoreDisplayMode(void)
{
render_opengl.restore.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT|DM_DISPLAYFLAGS|DM_DISPLAYFREQUENCY|DM_POSITION;
ChangeDisplaySettings(&render_opengl.restore, 0);
return DD_OK;
}