Remove NoMaxRefreshRate

This commit is contained in:
Xavier Del Campo Romero 2022-08-02 00:37:29 +02:00
parent e1c15d15f7
commit 77096dfff3
5 changed files with 3 additions and 68 deletions

View File

@ -19,9 +19,7 @@
#include <SDL.h> #include <SDL.h>
#include "tgfclient.h" #include "tgfclient.h"
#ifndef NoMaxRefreshRate
#include "tgf.h" #include "tgf.h"
#endif
#ifdef WEBSERVER #ifdef WEBSERVER
#include "webserver.h" #include "webserver.h"
@ -51,18 +49,14 @@ class GfuiEventLoop::Private
// Variables. // Variables.
bool bRedisplay; // Flag to say if a redisplay is necessary. bool bRedisplay; // Flag to say if a redisplay is necessary.
#ifndef NoMaxRefreshRate
double max_refresh; // Max refresh rate. double max_refresh; // Max refresh rate.
#endif
}; };
GfuiEventLoop::Private::Private() GfuiEventLoop::Private::Private()
: cbMouseButton(0), cbMouseMotion(0), cbMousePassiveMotion(0), cbMouseWheel(0), : cbMouseButton(0), cbMouseMotion(0), cbMousePassiveMotion(0), cbMouseWheel(0),
cbJoystickAxis(0), cbJoystickButton(0), cbJoystickAxis(0), cbJoystickButton(0),
cbDisplay(0), cbReshape(0), bRedisplay(false) cbDisplay(0), cbReshape(0), bRedisplay(false),
#ifndef NoMaxRefreshRate max_refresh(50.0)
, max_refresh(50.0)
#endif
{ {
} }
@ -247,9 +241,7 @@ void GfuiEventLoop::operator()()
if (!quitRequested()) if (!quitRequested())
{ {
#ifndef NoMaxRefreshRate
double now = GfTimeClock(); double now = GfTimeClock();
#endif
// Recompute if anything to. // Recompute if anything to.
recompute(); recompute();
@ -257,7 +249,6 @@ void GfuiEventLoop::operator()()
// Redisplay if anything to. // Redisplay if anything to.
redisplay(); redisplay();
#ifndef NoMaxRefreshRate
double elapsed = GfTimeClock() - now; double elapsed = GfTimeClock() - now;
if (_pPrivate->max_refresh) if (_pPrivate->max_refresh)
@ -266,7 +257,6 @@ void GfuiEventLoop::operator()()
if (elapsed < rate) if (elapsed < rate)
GfSleep(rate - elapsed); GfSleep(rate - elapsed);
} }
#endif
} }
} }
@ -318,12 +308,10 @@ void GfuiEventLoop::postRedisplay(void)
_pPrivate->bRedisplay = true; _pPrivate->bRedisplay = true;
} }
#ifndef NoMaxRefreshRate
void GfuiEventLoop::setMaxRefreshRate(double rate) void GfuiEventLoop::setMaxRefreshRate(double rate)
{ {
_pPrivate->max_refresh = rate; _pPrivate->max_refresh = rate;
} }
#endif
void GfuiEventLoop::forceRedisplay() void GfuiEventLoop::forceRedisplay()
{ {

View File

@ -207,9 +207,7 @@ ScreenSizeVector GfScrGetSupportedSizes(int nDisplayIndex)
tScreenSize last; tScreenSize last;
last.width = 0; last.width = 0;
last.height = 0; last.height = 0;
#ifndef NoMaxRefreshRate
last.refresh_rate = 0; last.refresh_rate = 0;
#endif
bounds.w = 0; bounds.w = 0;
bounds.h = 0; bounds.h = 0;
@ -243,9 +241,7 @@ ScreenSizeVector GfScrGetSupportedSizes(int nDisplayIndex)
GfLogDebug(" %d x %d x %d @ %d hz\n",mode.w,mode.h,SDL_BITSPERPIXEL(mode.format),mode.refresh_rate); GfLogDebug(" %d x %d x %d @ %d hz\n",mode.w,mode.h,SDL_BITSPERPIXEL(mode.format),mode.refresh_rate);
last.width = mode.w; last.width = mode.w;
last.height = mode.h; last.height = mode.h;
#ifndef NoMaxRefreshRate
last.refresh_rate = mode.refresh_rate; last.refresh_rate = mode.refresh_rate;
#endif
vecSizes.push_back(last); vecSizes.push_back(last);
} }
} }
@ -283,18 +279,14 @@ tScreenSize GfScrGetCurrentDisplaySize(int nDisplayIndex)
size.width = 0; size.width = 0;
size.height = 0; size.height = 0;
#ifndef NoMaxRefreshRate
size.refresh_rate = 0; size.refresh_rate = 0;
#endif
SDL_DisplayMode mode; SDL_DisplayMode mode;
if(SDL_GetCurrentDisplayMode(nDisplayIndex, &mode) == 0) if(SDL_GetCurrentDisplayMode(nDisplayIndex, &mode) == 0)
{ {
size.width = mode.w; size.width = mode.w;
size.height = mode.h; size.height = mode.h;
#ifndef NoMaxRefreshRate
size.refresh_rate = mode.refresh_rate; size.refresh_rate = mode.refresh_rate;
#endif
} }
return size; return size;
} }
@ -503,11 +495,9 @@ bool GfScrInitSDL2(int nWinWidth, int nWinHeight, int nFullScreen)
GfScrStartDisplayId = 0; GfScrStartDisplayId = 0;
} }
#ifndef NoMaxRefreshRate
double maxRefreshRate = GfParmGetNum(hparmScreen, pszScrPropSec, GFSCR_ATT_MAXREFRESH, NULL, 50); double maxRefreshRate = GfParmGetNum(hparmScreen, pszScrPropSec, GFSCR_ATT_MAXREFRESH, NULL, 50);
GfuiApp().eventLoop().setMaxRefreshRate(maxRefreshRate); GfuiApp().eventLoop().setMaxRefreshRate(maxRefreshRate);
#endif
bool bFullScreen; bool bFullScreen;
if (nFullScreen < 0) if (nFullScreen < 0)
@ -742,9 +732,7 @@ bool GfScrInitSDL2(int nWinWidth, int nWinHeight, int nFullScreen)
GfLogInfo(" Full screen : %s\n", (bfVideoMode & SDL_WINDOW_FULLSCREEN) ? "Yes" : "No"); GfLogInfo(" Full screen : %s\n", (bfVideoMode & SDL_WINDOW_FULLSCREEN) ? "Yes" : "No");
GfLogInfo(" Size : %dx%d\n", nWinWidth, nWinHeight); GfLogInfo(" Size : %dx%d\n", nWinWidth, nWinHeight);
GfLogInfo(" Color depth : %d bits\n", nTotalDepth); GfLogInfo(" Color depth : %d bits\n", nTotalDepth);
#ifndef NoMaxRefreshRate
GfLogInfo(" Max. refresh rate : %f\n", maxRefreshRate); GfLogInfo(" Max. refresh rate : %f\n", maxRefreshRate);
#endif
// Report about underlying hardware (needs a running frame buffer). // Report about underlying hardware (needs a running frame buffer).
GfglFeatures::self().dumpHardwareInfo(); GfglFeatures::self().dumpHardwareInfo();
@ -826,10 +814,8 @@ void GfScrShutdown(void)
GfParmGetNum(hparmScreen, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_STARTUPDISPLAY, 0, 0)); GfParmGetNum(hparmScreen, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_STARTUPDISPLAY, 0, 0));
GfParmSetStr(hparmScreen, GFSCR_SECT_VALIDPROPS, GFSCR_ATT_VDETECT, GfParmSetStr(hparmScreen, GFSCR_SECT_VALIDPROPS, GFSCR_ATT_VDETECT,
GfParmGetStr(hparmScreen, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_VDETECT, GFSCR_VAL_VDETECT_AUTO)); GfParmGetStr(hparmScreen, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_VDETECT, GFSCR_VAL_VDETECT_AUTO));
#ifndef NoMaxRefreshRate
GfParmSetNum(hparmScreen, GFSCR_SECT_VALIDPROPS, GFSCR_ATT_MAXREFRESH, 0, GfParmSetNum(hparmScreen, GFSCR_SECT_VALIDPROPS, GFSCR_ATT_MAXREFRESH, 0,
GfParmGetNum(hparmScreen, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_MAXREFRESH, 0, 50)); GfParmGetNum(hparmScreen, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_MAXREFRESH, 0, 50));
#endif
const char* pszVInitMode = const char* pszVInitMode =
GfParmGetStr(hparmScreen, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_VINIT, GfParmGetStr(hparmScreen, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_VINIT,
GFSCR_VAL_VINIT_COMPATIBLE); GFSCR_VAL_VINIT_COMPATIBLE);
@ -1286,7 +1272,6 @@ bool GfScrInitSDL2()
GfuiApp().eventLoop().setReshapeCB(gfScrReshapeViewport); GfuiApp().eventLoop().setReshapeCB(gfScrReshapeViewport);
GfuiApp().eventLoop().postRedisplay(); GfuiApp().eventLoop().postRedisplay();
#ifndef NoMaxRefreshRate
double maxRefreshRate = 50; double maxRefreshRate = 50;
void* hparmScreen = void* hparmScreen =
GfParmReadFileLocal(GFSCR_CONF_FILE, GFPARM_RMODE_STD | GFPARM_RMODE_CREAT); GfParmReadFileLocal(GFSCR_CONF_FILE, GFPARM_RMODE_STD | GFPARM_RMODE_CREAT);
@ -1299,7 +1284,6 @@ bool GfScrInitSDL2()
} }
GfuiApp().eventLoop().setMaxRefreshRate(maxRefreshRate); GfuiApp().eventLoop().setMaxRefreshRate(maxRefreshRate);
#endif
return true; return true;
} }

View File

@ -75,9 +75,7 @@ typedef struct ScreenSize
{ {
int width; // Width in pixels. int width; // Width in pixels.
int height; // Height in pixels. int height; // Height in pixels.
#ifndef NoMaxRefreshRate
double refresh_rate; // Refresh rate in Hz. double refresh_rate; // Refresh rate in Hz.
#endif
} tScreenSize; } tScreenSize;
typedef std::vector<tScreenSize> ScreenSizeVector; typedef std::vector<tScreenSize> ScreenSizeVector;
@ -771,10 +769,8 @@ class TGFCLIENT_API GfuiEventLoop : public GfEventLoop
//! Force a call to the "redisplay/refresh" callback function. //! Force a call to the "redisplay/refresh" callback function.
void forceRedisplay(); void forceRedisplay();
#ifndef NoMaxRefreshRate
//! Sets maximum refresh rate to the event loop. //! Sets maximum refresh rate to the event loop.
void setMaxRefreshRate(double rate); void setMaxRefreshRate(double rate);
#endif
protected: protected:

View File

@ -33,10 +33,8 @@ static const char* ADisplayModes[DisplayMenu::nDisplayModes] = { "Full-screen",
static const char* MonitorTypes[DisplayMenu::nDisplayTypes] = { "none", "4:3", "16:9", "21:9" }; static const char* MonitorTypes[DisplayMenu::nDisplayTypes] = { "none", "4:3", "16:9", "21:9" };
static const char* SpansplitValues[] = { GR_VAL_NO, GR_VAL_YES }; static const char* SpansplitValues[] = { GR_VAL_NO, GR_VAL_YES };
static const int NbSpansplitValues = sizeof(SpansplitValues) / sizeof(SpansplitValues[0]); static const int NbSpansplitValues = sizeof(SpansplitValues) / sizeof(SpansplitValues[0]);
#ifndef NoMaxRefreshRate
static const int AMaxRefreshRates[] = {30, 40, 50, 60, 75, 85, 100, 120, 150, 200 }; static const int AMaxRefreshRates[] = {30, 40, 50, 60, 75, 85, 100, 120, 150, 200 };
static const int NMaxRefreshRates = sizeof(AMaxRefreshRates) / sizeof(AMaxRefreshRates[0]); static const int NMaxRefreshRates = sizeof(AMaxRefreshRates) / sizeof(AMaxRefreshRates[0]);
#endif
// The unique DisplayMenu instance. // The unique DisplayMenu instance.
static DisplayMenu* PDisplayMenu = 0; static DisplayMenu* PDisplayMenu = 0;
@ -155,7 +153,6 @@ void DisplayMenu::onChangeMenuDisplay(tComboBoxInfo *pInfo)
pMenu->setMenuDisplay(pInfo->nPos); pMenu->setMenuDisplay(pInfo->nPos);
} }
#ifndef NoMaxRefreshRate
void DisplayMenu::onChangeMaxRefreshRate(tComboBoxInfo *pInfo) void DisplayMenu::onChangeMaxRefreshRate(tComboBoxInfo *pInfo)
{ {
// Get the DisplayMenu instance from call-back user data. // Get the DisplayMenu instance from call-back user data.
@ -163,7 +160,6 @@ void DisplayMenu::onChangeMaxRefreshRate(tComboBoxInfo *pInfo)
pMenu->setMaxRefreshRateIndex(pInfo->nPos); pMenu->setMaxRefreshRateIndex(pInfo->nPos);
} }
#endif
// Re-init screen to take new graphical settings into account (implies process restart). // Re-init screen to take new graphical settings into account (implies process restart).
void DisplayMenu::onAccept(void *pDisplayMenu) void DisplayMenu::onAccept(void *pDisplayMenu)
@ -203,10 +199,7 @@ bool DisplayMenu::restartNeeded()
|| (_nScreenWidth !=_nOriginalScreenWidth) || (_nScreenWidth !=_nOriginalScreenWidth)
|| (_nScreenHeight != _nOriginalScreenHeight) || (_nScreenHeight != _nOriginalScreenHeight)
|| (_nOriginalMenuDisplay != _nMenuDisplay)) || (_nOriginalMenuDisplay != _nMenuDisplay))
#ifndef NoMaxRefreshRate || (_nOriginalMaxRefreshRate != _nMaxRefreshRate);
|| (_nOriginalMaxRefreshRate != _nMaxRefreshRate)
#endif
;
if(GfScrUsingResizableWindow() && (_eDisplayMode == eResizable)) if(GfScrUsingResizableWindow() && (_eDisplayMode == eResizable))
needRestart = false; needRestart = false;
@ -265,7 +258,6 @@ void DisplayMenu::updateControls()
sprintf(buf, "%g", PDisplayMenu->_fArcRatio); sprintf(buf, "%g", PDisplayMenu->_fArcRatio);
GfuiEditboxSetString(getMenuHandle(), sArcRatioID, buf); GfuiEditboxSetString(getMenuHandle(), sArcRatioID, buf);
#ifndef NoMaxRefreshRate
nControlId = getDynamicControlId("MaxRefreshRateCombo"); nControlId = getDynamicControlId("MaxRefreshRateCombo");
int nMaxRefRateIndex = 0; // Defaults to None. int nMaxRefRateIndex = 0; // Defaults to None.
for (int nMaxRefRateInd = 0; nMaxRefRateInd < NMaxRefreshRates; nMaxRefRateInd++) for (int nMaxRefRateInd = 0; nMaxRefRateInd < NMaxRefreshRates; nMaxRefRateInd++)
@ -275,7 +267,6 @@ void DisplayMenu::updateControls()
break; break;
} }
GfuiComboboxSetSelectedIndex(getMenuHandle(), nControlId, nMaxRefRateIndex); GfuiComboboxSetSelectedIndex(getMenuHandle(), nControlId, nMaxRefRateIndex);
#endif
} }
void DisplayMenu::loadSettings() void DisplayMenu::loadSettings()
@ -307,11 +298,9 @@ void DisplayMenu::loadSettings()
} }
#ifndef NoMaxRefreshRate
// Max. refresh rate (Hz). // Max. refresh rate (Hz).
_nMaxRefreshRate = _nOriginalMaxRefreshRate = _nMaxRefreshRate = _nOriginalMaxRefreshRate =
(int)GfParmGetNum(hScrConfParams, pszScrPropSec, GFSCR_ATT_MAXREFRESH, NULL, 50); (int)GfParmGetNum(hScrConfParams, pszScrPropSec, GFSCR_ATT_MAXREFRESH, NULL, 50);
#endif
// Release screen config params file. // Release screen config params file.
GfParmReleaseHandle(hScrConfParams); GfParmReleaseHandle(hScrConfParams);
@ -332,9 +321,7 @@ void DisplayMenu::storeSettings() const
GfParmSetNum(hScrConfParams, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_WIN_X, (char*)NULL, _nScreenWidth); GfParmSetNum(hScrConfParams, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_WIN_X, (char*)NULL, _nScreenWidth);
GfParmSetNum(hScrConfParams, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_WIN_Y, (char*)NULL, _nScreenHeight); GfParmSetNum(hScrConfParams, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_WIN_Y, (char*)NULL, _nScreenHeight);
GfParmSetNum(hScrConfParams, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_STARTUPDISPLAY, (char*)NULL, _nMenuDisplay); GfParmSetNum(hScrConfParams, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_STARTUPDISPLAY, (char*)NULL, _nMenuDisplay);
#ifndef NoMaxRefreshRate
GfParmSetNum(hScrConfParams, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_MAXREFRESH, (char*)NULL, _nMaxRefreshRate); GfParmSetNum(hScrConfParams, GFSCR_SECT_INTESTPROPS, GFSCR_ATT_MAXREFRESH, (char*)NULL, _nMaxRefreshRate);
#endif
const char* pszDisplMode = const char* pszDisplMode =
(_eDisplayMode == eFullScreen) ? GFSCR_VAL_YES : GFSCR_VAL_NO; (_eDisplayMode == eFullScreen) ? GFSCR_VAL_YES : GFSCR_VAL_NO;
@ -472,9 +459,7 @@ void DisplayMenu::resetScreenSizes()
tScreenSize _currSize = GfScrGetCurrentDisplaySize( _nMenuDisplay); tScreenSize _currSize = GfScrGetCurrentDisplaySize( _nMenuDisplay);
_nScreenWidth = _currSize.width; _nScreenWidth = _currSize.width;
_nScreenHeight = _currSize.height; _nScreenHeight = _currSize.height;
#ifndef NoMaxRefreshRate
_nMaxRefreshRate = _currSize.refresh_rate; _nMaxRefreshRate = _currSize.refresh_rate;
#endif
} }
else else
{ {
@ -528,7 +513,6 @@ void DisplayMenu::resetScreenSizes()
// Select the found one in the combo-box. // Select the found one in the combo-box.
GfuiComboboxSetSelectedIndex(getMenuHandle(), nComboId, nScreenSizeIndex); GfuiComboboxSetSelectedIndex(getMenuHandle(), nComboId, nScreenSizeIndex);
#ifndef NoMaxRefreshRate
{ {
const int nComboId = getDynamicControlId("MaxRefreshRateCombo"); const int nComboId = getDynamicControlId("MaxRefreshRateCombo");
@ -542,7 +526,6 @@ void DisplayMenu::resetScreenSizes()
} }
} }
} }
#endif
} }
void DisplayMenu::setScreenSizeIndex(int nIndex) void DisplayMenu::setScreenSizeIndex(int nIndex)
@ -585,12 +568,10 @@ void DisplayMenu::setMenuDisplay(int nIndex)
} }
} }
#ifndef NoMaxRefreshRate
void DisplayMenu::setMaxRefreshRateIndex(int nIndex) void DisplayMenu::setMaxRefreshRateIndex(int nIndex)
{ {
_nMaxRefreshRate = AMaxRefreshRates[nIndex]; _nMaxRefreshRate = AMaxRefreshRates[nIndex];
} }
#endif
DisplayMenu::DisplayMenu() DisplayMenu::DisplayMenu()
: GfuiMenuScreen("displayconfigmenu.xml") : GfuiMenuScreen("displayconfigmenu.xml")
@ -608,9 +589,7 @@ DisplayMenu::DisplayMenu()
_nOriginalScreenHeight = 600; _nOriginalScreenHeight = 600;
_nOriginalMenuDisplay = 0; _nOriginalMenuDisplay = 0;
_eOriginalDisplayMode = eWindowed; _eOriginalDisplayMode = eWindowed;
#ifndef NoMaxRefreshRate
_nMaxRefreshRate = 50; _nMaxRefreshRate = 50;
#endif
} }
bool DisplayMenu::initialize(void *pPreviousMenu) bool DisplayMenu::initialize(void *pPreviousMenu)
@ -658,10 +637,8 @@ bool DisplayMenu::initialize(void *pPreviousMenu)
sArcRatioID = createEditControl("arcratioedit", this, NULL, onChangeArcRatio); sArcRatioID = createEditControl("arcratioedit", this, NULL, onChangeArcRatio);
#ifndef NoMaxRefreshRate
const int nMaxRefRateComboId = const int nMaxRefRateComboId =
createComboboxControl("MaxRefreshRateCombo", this, onChangeMaxRefreshRate); createComboboxControl("MaxRefreshRateCombo", this, onChangeMaxRefreshRate);
#endif
createButtonControl("ApplyButton", this, onAccept); createButtonControl("ApplyButton", this, onAccept);
createButtonControl("CancelButton", this, onCancel); createButtonControl("CancelButton", this, onCancel);
@ -691,7 +668,6 @@ bool DisplayMenu::initialize(void *pPreviousMenu)
GfuiComboboxAddText(getMenuHandle(), nSpanSplitsComboId, SpansplitValues[index]); GfuiComboboxAddText(getMenuHandle(), nSpanSplitsComboId, SpansplitValues[index]);
#ifndef NoMaxRefreshRate
// 6) Max refresh rate combo. // 6) Max refresh rate combo.
std::ostringstream ossMaxRefRate; std::ostringstream ossMaxRefRate;
for (int nRefRateInd = 0; nRefRateInd < NMaxRefreshRates; nRefRateInd++) for (int nRefRateInd = 0; nRefRateInd < NMaxRefreshRates; nRefRateInd++)
@ -703,7 +679,6 @@ bool DisplayMenu::initialize(void *pPreviousMenu)
ossMaxRefRate << "None"; ossMaxRefRate << "None";
GfuiComboboxAddText(getMenuHandle(), nMaxRefRateComboId, ossMaxRefRate.str().c_str()); GfuiComboboxAddText(getMenuHandle(), nMaxRefRateComboId, ossMaxRefRate.str().c_str());
} }
#endif
return true; return true;
} }

View File

@ -25,8 +25,6 @@
#include "confscreens.h" #include "confscreens.h"
// Comment-out to activate max. refresh rate settings.
#define NoMaxRefreshRate 1
class DisplayMenu : public GfuiMenuScreen class DisplayMenu : public GfuiMenuScreen
@ -46,9 +44,7 @@ public:
void setMonitorType(EDisplayType eType); void setMonitorType(EDisplayType eType);
void setArcRatio(float ratio); void setArcRatio(float ratio);
void setMenuDisplay(int nIndex); void setMenuDisplay(int nIndex);
#ifndef NoMaxRefreshRate
void setMaxRefreshRateIndex(int nIndex); void setMaxRefreshRateIndex(int nIndex);
#endif
void storeSettings() const; void storeSettings() const;
void loadSettings(); void loadSettings();
@ -76,9 +72,7 @@ protected:
static void onChangeScreenDist(void *pDisplayMenu); static void onChangeScreenDist(void *pDisplayMenu);
static void onChangeArcRatio(void *pDisplayMenu); static void onChangeArcRatio(void *pDisplayMenu);
static void onChangeMenuDisplay(tComboBoxInfo *pInfo); static void onChangeMenuDisplay(tComboBoxInfo *pInfo);
#ifndef NoMaxRefreshRate
static void onChangeMaxRefreshRate(tComboBoxInfo *pInfo); static void onChangeMaxRefreshRate(tComboBoxInfo *pInfo);
#endif
static void onAccept(void *pDisplayMenu); static void onAccept(void *pDisplayMenu);
static void onCancel(void *pDisplayMenu); static void onCancel(void *pDisplayMenu);
@ -108,11 +102,9 @@ private:
float _fScreenDist; float _fScreenDist;
#ifndef NoMaxRefreshRate
//! Currently selected max. refresh rate (Hz). //! Currently selected max. refresh rate (Hz).
int _nMaxRefreshRate; int _nMaxRefreshRate;
int _nOriginalMaxRefreshRate; int _nOriginalMaxRefreshRate;
#endif
}; };
extern void* DisplayMenuInit(void* pPreviousMenu); extern void* DisplayMenuInit(void* pPreviousMenu);