mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
Add support for real fullscreen in OpenGL renderer
This commit is contained in:
parent
17968c433c
commit
ac1d35c6dd
@ -36,6 +36,8 @@ struct render_opengl_impl
|
|||||||
HANDLE thread;
|
HANDLE thread;
|
||||||
BOOL run;
|
BOOL run;
|
||||||
HANDLE ev;
|
HANDLE ev;
|
||||||
|
|
||||||
|
DEVMODE restore;
|
||||||
};
|
};
|
||||||
|
|
||||||
DWORD WINAPI render_opengl_main(IDirectDrawSurfaceImpl *surface);
|
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)
|
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)
|
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;
|
return DD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user