add 'display.limit-fps-iconified' setting

This commit is contained in:
MihailRis 2024-11-04 20:16:23 +03:00
parent 63807d1daa
commit aaa2115cd6
5 changed files with 10 additions and 2 deletions

View File

@ -60,4 +60,5 @@ function on_open()
create_checkbox("camera.shaking", "Camera Shaking")
create_checkbox("camera.inertia", "Camera Inertia")
create_checkbox("camera.fov-effects", "Camera FOV Effects")
create_checkbox("display.limit-fps-iconified", "Limit Background FPS")
end

View File

@ -76,6 +76,7 @@ settings.Regular Sounds=Обычные Звуки
settings.UI Sounds=Звуки Интерфейса
settings.V-Sync=Вертикальная Синхронизация
settings.Key=Кнопка
settings.Limit Background FPS=Ограничить фоновую частоту кадров
# Управление
chunks.reload=Перезагрузить Чанки

View File

@ -185,8 +185,11 @@ void Engine::mainloop() {
if (!Window::isIconified()) {
renderFrame(batch);
}
Window::setFramerate(Window::isIconified() ? 20 :
settings.display.framerate.get());
Window::setFramerate(
Window::isIconified() && settings.display.limitFpsIconified.get()
? 20
: settings.display.framerate.get()
);
processPostRunnables();

View File

@ -51,6 +51,7 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) {
builder.add("samples", &settings.display.samples);
builder.add("framerate", &settings.display.framerate);
builder.add("fullscreen", &settings.display.fullscreen);
builder.add("limit-fps-iconified", &settings.display.limitFpsIconified);
builder.section("camera");
builder.add("sensitivity", &settings.camera.sensitivity);

View File

@ -29,6 +29,8 @@ struct DisplaySettings {
IntegerSetting samples {0};
/// @brief Framerate limit
IntegerSetting framerate {-1, -1, 120};
/// @brief Limit framerate when window is iconified
FlagSetting limitFpsIconified {false};
};
struct ChunksSettings {