diff --git a/src/noggit/MapView.cpp b/src/noggit/MapView.cpp index c5479352..05e66856 100755 --- a/src/noggit/MapView.cpp +++ b/src/noggit/MapView.cpp @@ -2816,7 +2816,7 @@ MapView::MapView( math::degrees camera_yaw0 return; }; - if (_main_window->isMinimized()) + if (_main_window->isMinimized() && _settings->value("background_fps_limit", true).toBool()) { _needs_redraw = false; // return; @@ -6075,6 +6075,10 @@ void MapView::ShowContextMenu(QPoint pos) void MapView::onApplicationStateChanged(Qt::ApplicationState state) { // auto interval = _update_every_event_loop.interval(); + + if (!_settings->value("background_fps_limit", true).toBool()) + return; + int fps_limit = _settings->value("fps_limit", 60).toInt(); int fps_calcul = (int)((1.f / (float)fps_limit) * 1000.f); diff --git a/src/noggit/ui/windows/settingsPanel/SettingsPanel.cpp b/src/noggit/ui/windows/settingsPanel/SettingsPanel.cpp index 2d05cfc4..5c7d6703 100755 --- a/src/noggit/ui/windows/settingsPanel/SettingsPanel.cpp +++ b/src/noggit/ui/windows/settingsPanel/SettingsPanel.cpp @@ -189,6 +189,7 @@ namespace Noggit ui->_vsync_cb->setChecked(_settings->value("vsync", false).toBool()); ui->_anti_aliasing_cb->setChecked(_settings->value("anti_aliasing", false).toBool()); ui->_fullscreen_cb->setChecked(_settings->value("fullscreen", false).toBool()); + ui->_background_fps_limit_cb->setChecked(_settings->value("background_fps_limit", true).toBool()); ui->_adt_unload_dist->setValue(_settings->value("unload_dist", 5).toInt()); ui->_adt_unload_check_interval->setValue(_settings->value("unload_interval", 5).toInt()); ui->_uid_cb->setChecked(_settings->value("uid_startup_check", true).toBool()); @@ -273,6 +274,7 @@ namespace Noggit _settings->setValue("vsync", ui->_vsync_cb->isChecked()); _settings->setValue("anti_aliasing", ui->_anti_aliasing_cb->isChecked()); _settings->setValue("fullscreen", ui->_fullscreen_cb->isChecked()); + _settings->setValue("background_fps_limit", ui->_background_fps_limit_cb->isChecked()); _settings->setValue("unload_dist", ui->_adt_unload_dist->value()); _settings->setValue("unload_interval", ui->_adt_unload_check_interval->value()); _settings->setValue("uid_startup_check", ui->_uid_cb->isChecked()); diff --git a/src/noggit/ui/windows/settingsPanel/SettingsPanel.ui b/src/noggit/ui/windows/settingsPanel/SettingsPanel.ui index 211eb896..cd69d5b9 100755 --- a/src/noggit/ui/windows/settingsPanel/SettingsPanel.ui +++ b/src/noggit/ui/windows/settingsPanel/SettingsPanel.ui @@ -233,6 +233,43 @@ + + + + + + FPS will be halved when Noggit is not the active windows but still visible, FPS will be set to 1 when Noggit is minimized. + + + Limit Background FPS + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + true + + + + +