check if chosen refresh rate is supported
This commit is contained in:
parent
b25223bf3a
commit
1440142d40
1 changed files with 12 additions and 4 deletions
16
src/dd.c
16
src/dd.c
|
@ -631,18 +631,26 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
|||
mouse_unlock();
|
||||
|
||||
memset(&g_ddraw->render.mode, 0, sizeof(DEVMODE));
|
||||
|
||||
g_ddraw->render.mode.dmSize = sizeof(DEVMODE);
|
||||
g_ddraw->render.mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
|
||||
g_ddraw->render.mode.dmPelsWidth = g_ddraw->render.width;
|
||||
g_ddraw->render.mode.dmPelsHeight = g_ddraw->render.height;
|
||||
|
||||
if (g_ddraw->refresh_rate)
|
||||
{
|
||||
g_ddraw->render.mode.dmFields |= DM_DISPLAYFREQUENCY;
|
||||
g_ddraw->render.mode.dmDisplayFrequency = g_ddraw->refresh_rate;
|
||||
|
||||
if (ChangeDisplaySettings(&g_ddraw->render.mode, CDS_TEST) != DISP_CHANGE_SUCCESSFUL)
|
||||
{
|
||||
g_ddraw->refresh_rate = 0;
|
||||
|
||||
g_ddraw->render.mode.dmFields = 0;
|
||||
g_ddraw->render.mode.dmDisplayFrequency = 0;
|
||||
}
|
||||
}
|
||||
|
||||
g_ddraw->render.mode.dmFields |= DM_PELSWIDTH | DM_PELSHEIGHT;
|
||||
g_ddraw->render.mode.dmPelsWidth = g_ddraw->render.width;
|
||||
g_ddraw->render.mode.dmPelsHeight = g_ddraw->render.height;
|
||||
|
||||
if (!g_ddraw->windowed)
|
||||
{
|
||||
/* Making sure the chosen resolution is valid */
|
||||
|
|
Loading…
Reference in a new issue