Adding fps limitation

This commit is contained in:
EIntemporel
2022-06-26 16:59:11 +02:00
parent cf1054b078
commit 1b56fc73e6
3 changed files with 69 additions and 1 deletions

View File

@@ -2643,7 +2643,12 @@ MapView::MapView( math::degrees camera_yaw0
_display_mode = display_mode::in_3D;
_startup_time.start();
_update_every_event_loop.start (0);
int _fps_limit = _settings->value("fps_limit", 60).toInt();
int _fps_calcul = (int)((1.f / (float)_fps_limit) * 1000.f);
std::cout << "FPS limit is set to : " << _fps_limit << " (" << _fps_calcul << ")" << std::endl;
_update_every_event_loop.start (_fps_calcul);
connect(&_update_every_event_loop, &QTimer::timeout,[=]{ _needs_redraw = true; update(); });
createGUI();
}

View File

@@ -135,6 +135,12 @@ namespace Noggit
}
);
connect(ui->_fps_limit_slider, &QSlider::valueChanged, [&](int value)
{
ui->_fps_limit_current_label->setText(
QString(tr("FPS limitation, current : %1")).arg(value));
});
ui->_wireframe_color->setColor(Qt::white);
connect(ui->saveButton, &QPushButton::clicked, [this]
@@ -215,6 +221,7 @@ namespace Noggit
ui->_wireframe_radius->setValue(_settings->value("wireframe/radius", 1.5f).toFloat());
ui->_wireframe_width->setValue(_settings->value("wireframe/width", 1.f).toFloat());
ui->_wireframe_color->setColor(_settings->value("wireframe/color").value<QColor>());
ui->_fps_limit_slider->setValue(_settings->value("fps_limit", 60).toInt());
}
void settings::save_changes()
@@ -257,6 +264,7 @@ namespace Noggit
_settings->setValue("assetBrowser/default_model", ui->assetBrowserDefaultModel->text());
_settings->setValue("assetBrowser/move_sensitivity", ui->assetBrowserMoveSensitivity->value());
_settings->setValue("assetBrowser/render_asset_preview", ui->assetBrowserRenderAssetPreview->isChecked());
_settings->setValue("fps_limit", ui->_fps_limit_slider->value());
_settings->sync();

View File

@@ -918,6 +918,61 @@
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QLabel" name="_fps_limit_current_label">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_9">
<property name="text">
<string>This setting will be effective after a reload</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<widget class="QLabel" name="label_10">
<property name="text">
<string>30</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="_fps_limit_slider">
<property name="minimum">
<number>30</number>
</property>
<property name="maximum">
<number>180</number>
</property>
<property name="value">
<number>30</number>
</property>
<property name="sliderPosition">
<number>30</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_11">
<property name="text">
<string>180</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>