Skip to content

Commit 629d4b7

Browse files
committed
Add setting for force disable vsync
1 parent 2002bb8 commit 629d4b7

File tree

5 files changed

+200
-171
lines changed

5 files changed

+200
-171
lines changed

assets/lang/en_US.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"client.settings.language.name": "Language",
99
"client.settings.menuBlurEnabled.name": "Menu Blur",
1010
"client.settings.useDX11.name": "Use DX11",
11+
"client.settings.forceDisableVSync.name": "Force Disable VSync",
1112
"client.settings.commandPrefix.name": "Command Prefix",
1213
"client.settings.menuIntensity.name": "Blur Intensity",
1314
"client.settings.accentColor.name": "Accent Color",
@@ -22,6 +23,7 @@
2223
"client.settings.language.desc": "Language selection",
2324
"client.settings.menuBlurEnabled.desc": "Whether blur is enabled or disabled for the menu",
2425
"client.settings.useDX11.desc": "Causes an FPS boost for some systems and may degrade performance for more high-end systems: but may cause issues.\nRestart your game upon disabling this setting.",
26+
"client.settings.forceDisableVSync.desc": "Forces VSync in fullscreen. May cause freezing, overheating, and screen tearing on some devices.\nRestart your game upon disabling this setting.",
2527
"client.settings.commandPrefix.desc": "Command Prefix",
2628
"client.settings.menuIntensity.desc": "The intensity of the menu blur",
2729
"client.settings.accentColor.desc": "Accent Color",

src/client/Latite.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,17 @@ void Latite::initSettings() {
731731
set->value = &this->useDX11;
732732
this->getSettings().addSetting(set);
733733
}
734+
{
735+
auto set = std::make_shared<Setting>("forceDisableVSync", L"Force Disable VSync",
736+
L"Forces VSync in fullscreen. May cause freezing, overheating, and screen tearing on some devices.\nRestart your game upon disabling this setting.");
737+
// Add in LocalizeString calls when this setting has been translated to other languages.
738+
/*
739+
auto set = std::make_shared<Setting>("forceDisableVSync", LocalizeString::get("client.settings.forceDisableVSync.name"),
740+
LocalizeString::get("client.settings.forceDisableVSync.desc"));
741+
*/
742+
set->value = &this->forceDisableVSync;
743+
this->getSettings().addSetting(set);
744+
}
734745
{
735746
auto set = std::make_shared<Setting>("commandPrefix", LocalizeString::get("client.settings.commandPrefix.name"),
736747
LocalizeString::get("client.settings.commandPrefix.desc"));

src/client/Latite.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ class Latite final : public Listener {
8787
return std::get<BoolValue>(useDX11);
8888
}
8989

90+
[[nodiscard]] bool shouldForceDisableVSync() {
91+
return std::get<BoolValue>(forceDisableVSync);
92+
}
93+
9094
[[nodiscard]] bool shoulBlurHUD() {
9195
return std::get<BoolValue>(hudBlur);
9296
}
@@ -152,6 +156,7 @@ class Latite final : public Listener {
152156
ValueType menuBlurEnabled = BoolValue(true);
153157
// TODO: add disabled settings, for people who already only support dx11, gray it out
154158
ValueType useDX11 = BoolValue(false);
159+
ValueType forceDisableVSync = BoolValue(false);
155160
ValueType menuBlur = FloatValue(20.f);
156161
ValueType accentColor = ColorValue(static_cast<float>(0x32) / 255.f, static_cast<float>(0x39) / 255.f, static_cast<float>(0x76) / 255.f);
157162
ValueType minimalViewBob = BoolValue(false);

0 commit comments

Comments
 (0)