From c95e12c13630c95c8c8a51bca825d8f8a5258738 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 23 Oct 2021 12:59:13 +0200 Subject: [PATCH] ui: Increased maximum FPS limit to 200FPS, added unlocked FPS setting Closes #329 --- plugins/builtin/source/content/settings_entries.cpp | 4 +++- plugins/builtin/source/lang/de_DE.cpp | 1 + plugins/builtin/source/lang/en_US.cpp | 1 + plugins/builtin/source/lang/it_IT.cpp | 1 + plugins/builtin/source/lang/zh_CN.cpp | 1 + source/window/window.cpp | 4 +++- 6 files changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/builtin/source/content/settings_entries.cpp b/plugins/builtin/source/content/settings_entries.cpp index ec2e350bb..e820623d7 100644 --- a/plugins/builtin/source/content/settings_entries.cpp +++ b/plugins/builtin/source/content/settings_entries.cpp @@ -123,7 +123,9 @@ namespace hex::plugin::builtin { ContentRegistry::Settings::add("hex.builtin.setting.interface", "hex.builtin.setting.interface.fps", 60, [](auto name, nlohmann::json &setting) { static int fps = static_cast(setting); - if (ImGui::SliderInt(name.data(), &fps, 15, 60)) { + auto format = fps > 200 ? "hex.builtin.setting.interface.fps.unlocked"_lang : "%d FPS"; + + if (ImGui::SliderInt(name.data(), &fps, 15, 201, format, ImGuiSliderFlags_AlwaysClamp)) { setting = fps; return true; } diff --git a/plugins/builtin/source/lang/de_DE.cpp b/plugins/builtin/source/lang/de_DE.cpp index f80b433e2..06239af5e 100644 --- a/plugins/builtin/source/lang/de_DE.cpp +++ b/plugins/builtin/source/lang/de_DE.cpp @@ -646,6 +646,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.scaling.x2_0", "x2.0" }, { "hex.builtin.setting.interface.language", "Sprache" }, { "hex.builtin.setting.interface.fps", "FPS Limite" }, + { "hex.builtin.setting.interface.fps.unlocked", "Unbegrenzt" }, { "hex.builtin.setting.interface.highlight_alpha", "Markierungssichtbarkeit" }, { "hex.builtin.setting.hex_editor", "Hex Editor" }, { "hex.builtin.setting.hex_editor.column_count", "Anzahl Byte Spalten" }, diff --git a/plugins/builtin/source/lang/en_US.cpp b/plugins/builtin/source/lang/en_US.cpp index 84eaa6be3..ae2aa7d49 100644 --- a/plugins/builtin/source/lang/en_US.cpp +++ b/plugins/builtin/source/lang/en_US.cpp @@ -647,6 +647,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.scaling.x2_0", "x2.0" }, { "hex.builtin.setting.interface.language", "Language" }, { "hex.builtin.setting.interface.fps", "FPS Limit" }, + { "hex.builtin.setting.interface.fps.unlocked", "Unlocked" }, { "hex.builtin.setting.interface.highlight_alpha", "Highlighting opacity" }, { "hex.builtin.setting.hex_editor", "Hex Editor" }, { "hex.builtin.setting.hex_editor.column_count", "Byte column count" }, diff --git a/plugins/builtin/source/lang/it_IT.cpp b/plugins/builtin/source/lang/it_IT.cpp index a10249144..5c7df01cd 100644 --- a/plugins/builtin/source/lang/it_IT.cpp +++ b/plugins/builtin/source/lang/it_IT.cpp @@ -645,6 +645,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.scaling.x1_5", "x1.5" }, { "hex.builtin.setting.interface.scaling.x2_0", "x2.0" }, { "hex.builtin.setting.interface.fps", "Limite FPS" }, + //{ "hex.builtin.setting.interface.fps.unlocked", "Unlocked" }, { "hex.builtin.setting.interface.highlight_alpha", "Evidenziazione dell'opacità" }, //{ "hex.builtin.setting.hex_editor", "Hex Editor" }, //{ "hex.builtin.setting.hex_editor.column_count", "Byte column count" }, diff --git a/plugins/builtin/source/lang/zh_CN.cpp b/plugins/builtin/source/lang/zh_CN.cpp index bdbcfcc18..ee95d843a 100644 --- a/plugins/builtin/source/lang/zh_CN.cpp +++ b/plugins/builtin/source/lang/zh_CN.cpp @@ -647,6 +647,7 @@ namespace hex::plugin::builtin { { "hex.builtin.setting.interface.scaling.x2_0", "x2.0" }, { "hex.builtin.setting.interface.language", "语言" }, { "hex.builtin.setting.interface.fps", "FPS限制" }, + //{ "hex.builtin.setting.interface.fps.unlocked", "Unlocked" }, { "hex.builtin.setting.interface.highlight_alpha", "高亮不透明度" }, { "hex.builtin.setting.hex_editor", "Hex编辑器" }, { "hex.builtin.setting.hex_editor.column_count", "字节列数" }, diff --git a/source/window/window.cpp b/source/window/window.cpp index c8aa5facf..0f67c9ace 100644 --- a/source/window/window.cpp +++ b/source/window/window.cpp @@ -521,7 +521,9 @@ namespace hex { glfwSwapBuffers(this->m_window); - std::this_thread::sleep_for(std::chrono::milliseconds(u64((this->m_lastFrameTime + 1 / this->m_targetFps - glfwGetTime()) * 1000))); + if (this->m_targetFps <= 200) + std::this_thread::sleep_for(std::chrono::milliseconds(u64((this->m_lastFrameTime + 1 / this->m_targetFps - glfwGetTime()) * 1000))); + this->m_lastFrameTime = glfwGetTime(); }