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() {
auto& time = engine.getTime();
auto& window = engine.getWindow();
auto& settings = engine.getSettings();
engine.setLevelConsumer([this](auto level, int64_t localPlayer) {
if (level == nullptr) {
@ -46,6 +47,7 @@ void Mainloop::run() {
}
engine.postUpdate();
engine.nextFrame(
settings.display.adaptiveFpsInMenu.get() &&
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("limit-fps-iconified", &settings.display.limitFpsIconified);
builder.add("window-mode", &settings.display.windowMode);
builder.add("adaptive-menu-fps", &settings.display.adaptiveFpsInMenu);
builder.section("camera");
builder.add("sensitivity", &settings.camera.sensitivity);

View File

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