make adaptive menu fps optional ('display.adaptive-menu-fps' flag)

This commit is contained in:
MihailRis 2025-11-10 00:25:38 +03:00
parent 7a4eb87195
commit 630e75c7d9
3 changed files with 5 additions and 0 deletions

View File

@ -18,6 +18,7 @@ Mainloop::Mainloop(Engine& engine) : engine(engine) {
void Mainloop::run() { void Mainloop::run() {
auto& time = engine.getTime(); auto& time = engine.getTime();
auto& window = engine.getWindow(); auto& window = engine.getWindow();
auto& settings = engine.getSettings();
engine.setLevelConsumer([this](auto level, int64_t localPlayer) { engine.setLevelConsumer([this](auto level, int64_t localPlayer) {
if (level == nullptr) { if (level == nullptr) {
@ -46,6 +47,7 @@ void Mainloop::run() {
} }
engine.postUpdate(); engine.postUpdate();
engine.nextFrame( engine.nextFrame(
settings.display.adaptiveFpsInMenu.get() &&
dynamic_cast<const MenuScreen*>(engine.getScreen().get()) != nullptr dynamic_cast<const MenuScreen*>(engine.getScreen().get()) != nullptr
); );
} }

View File

@ -51,6 +51,7 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) {
builder.add("framerate", &settings.display.framerate); builder.add("framerate", &settings.display.framerate);
builder.add("limit-fps-iconified", &settings.display.limitFpsIconified); builder.add("limit-fps-iconified", &settings.display.limitFpsIconified);
builder.add("window-mode", &settings.display.windowMode); builder.add("window-mode", &settings.display.windowMode);
builder.add("adaptive-menu-fps", &settings.display.adaptiveFpsInMenu);
builder.section("camera"); builder.section("camera");
builder.add("sensitivity", &settings.camera.sensitivity); builder.add("sensitivity", &settings.camera.sensitivity);

View File

@ -31,6 +31,8 @@ struct DisplaySettings {
IntegerSetting framerate {-1, -1, 120}; IntegerSetting framerate {-1, -1, 120};
/// @brief Limit framerate when window is iconified /// @brief Limit framerate when window is iconified
FlagSetting limitFpsIconified {false}; FlagSetting limitFpsIconified {false};
/// @brief Adaptive framerate in menu (experimental)
FlagSetting adaptiveFpsInMenu {false};
}; };
struct ChunksSettings { struct ChunksSettings {