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

#219 add new "refresh_rate" setting

This commit is contained in:
FunkyFr3sh 2023-08-18 16:48:59 +02:00
parent 84ad3995d4
commit b25223bf3a
4 changed files with 11 additions and 0 deletions

View File

@ -157,6 +157,7 @@ typedef struct CNCDDRAW
int guard_lines;
int resolutions;
int max_resolutions;
int refresh_rate;
BOOL limit_bltfast;
BOOL armadahack;
BOOL tshack;

View File

@ -45,6 +45,7 @@ void cfg_load()
g_ddraw->allow_wmactivate = cfg_get_bool("allow_wmactivate", FALSE);
g_ddraw->guard_lines = cfg_get_int("guard_lines", 200);
g_ddraw->max_resolutions = cfg_get_int("max_resolutions", 0);
g_ddraw->refresh_rate = cfg_get_int("refresh_rate", 0);
g_ddraw->limit_bltfast = cfg_get_bool("limit_bltfast", FALSE);
g_ddraw->rgb555 = cfg_get_bool("rgb555", FALSE);
g_ddraw->hook_peekmessage = cfg_get_bool("hook_peekmessage", FALSE);
@ -362,6 +363,7 @@ static void cfg_create_ini()
"fixmousehook=false\n"
"rgb555=false\n"
"no_dinput_hook=false\n"
"refresh_rate=0\n"
"\n"
"\n"
"\n"

View File

@ -637,6 +637,12 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
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 (!g_ddraw->windowed)
{
/* Making sure the chosen resolution is valid */

View File

@ -115,6 +115,7 @@ BOOL d3d9_create()
g_d3d9.params.PresentationInterval = g_ddraw->vsync ? D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE;
g_d3d9.params.BackBufferWidth = g_d3d9.params.Windowed ? 0 : g_ddraw->render.width;
g_d3d9.params.BackBufferHeight = g_d3d9.params.Windowed ? 0 : g_ddraw->render.height;
g_d3d9.params.FullScreen_RefreshRateInHz = g_d3d9.params.Windowed ? 0 : g_ddraw->refresh_rate;
g_d3d9.params.BackBufferFormat = g_ddraw->mode.dmBitsPerPel == 16 ? D3DFMT_R5G6B5 : D3DFMT_X8R8G8B8;
g_d3d9.params.BackBufferCount = 1;
@ -160,6 +161,7 @@ BOOL d3d9_reset(BOOL windowed)
g_d3d9.params.Windowed = windowed || g_ddraw->nonexclusive;
g_d3d9.params.BackBufferWidth = g_d3d9.params.Windowed ? 0 : g_ddraw->render.width;
g_d3d9.params.BackBufferHeight = g_d3d9.params.Windowed ? 0 : g_ddraw->render.height;
g_d3d9.params.FullScreen_RefreshRateInHz = g_d3d9.params.Windowed ? 0 : g_ddraw->refresh_rate;
g_d3d9.params.BackBufferFormat = g_ddraw->mode.dmBitsPerPel == 16 ? D3DFMT_R5G6B5 : D3DFMT_X8R8G8B8;
if (g_d3d9.device && SUCCEEDED(IDirect3DDevice9_Reset(g_d3d9.device, &g_d3d9.params)))