Update GlosSIWindow default refresh rate

Dont just use screen rerfresh-rate anymore (as it's a waste with high refresh monitors) and scale it down a bit
pull/239/head
Peter Repukat 1 year ago
parent da0b99d679
commit 2a8df5fdc3

@ -73,7 +73,7 @@ TargetWindow::TargetWindow(
} }
if (Settings::window.maxFps < 15 && Settings::window.maxFps > 0) { if (Settings::window.maxFps < 15 && Settings::window.maxFps > 0) {
Settings::window.maxFps = 0; Settings::window.maxFps = 0;
setFpsLimit(screen_refresh_rate_); setFpsLimit(TargetWindow::calcAutoRefreshRate(screen_refresh_rate_));
} else { } else {
setFpsLimit(Settings::window.maxFps); setFpsLimit(Settings::window.maxFps);
} }
@ -307,6 +307,18 @@ WORD TargetWindow::GetWindowDPI(HWND hWnd)
} }
#endif #endif
unsigned int TargetWindow::calcAutoRefreshRate(unsigned int rate)
{
unsigned int auto_refresh_rate = rate;
while (auto_refresh_rate > 60) {
auto_refresh_rate /= 2;
}
if (auto_refresh_rate < 30) {
auto_refresh_rate = 30;
}
return auto_refresh_rate;
}
void TargetWindow::createWindow() void TargetWindow::createWindow()
{ {
toggle_window_mode_after_frame_ = false; toggle_window_mode_after_frame_ = false;
@ -379,7 +391,7 @@ void TargetWindow::createWindow()
screen_refresh_rate_ = 60; screen_refresh_rate_ = 60;
} }
else { else {
setFpsLimit(dev_mode.dmDisplayFrequency); setFpsLimit(TargetWindow::calcAutoRefreshRate(dev_mode.dmDisplayFrequency));
screen_refresh_rate_ = dev_mode.dmDisplayFrequency; screen_refresh_rate_ = dev_mode.dmDisplayFrequency;
} }

@ -79,6 +79,7 @@ class TargetWindow {
std::shared_ptr<Overlay> overlay_; std::shared_ptr<Overlay> overlay_;
static unsigned int calcAutoRefreshRate(unsigned int rate);
void createWindow(); void createWindow();
bool toggle_window_mode_after_frame_ = false; bool toggle_window_mode_after_frame_ = false;

Loading…
Cancel
Save