Update FPSLimit.cs

Change fps limit step to 5
This commit is contained in:
Kvintilyanov Aleksandr 2025-03-03 12:29:18 +03:00 committed by GitHub
parent b5be6d9caf
commit 16846c8b28
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -13,14 +13,13 @@ namespace PowerControl.Options
ResetValue = () => { return "Off"; },
OptionsValues = delegate ()
{
var refreshRate = DisplayResolutionController.GetRefreshRate();
return new string[]
{
(refreshRate / 4).ToString(),
(refreshRate / 2).ToString(),
refreshRate.ToString(),
"Off"
};
int refreshRate = DisplayResolutionController.GetRefreshRate();
string[] limits = new string[refreshRate/5];
for (int i = 0; i < refreshRate/5; i++) {
limits[i] = string.Format("{0}", (i + 1) * 5);
}
return limits;
},
CurrentValue = delegate ()
{
@ -84,23 +83,13 @@ namespace PowerControl.Options
RTSS.LoadProfile();
RTSS.GetProfileProperty("FramerateLimit", out int fpsLimit);
if (fpsLimit == 0)
if (fpsLimit <= 0)
return;
// FPSLimit, RR => outcome
// 50 + 60 => 60 (div 1)
// 25 + 60 => 30 (div 2)
// 10 + 60 => 15 (div 6)
// 60 + 50 => 50 (div 0)
// 50 + 40 => 40 (div 0)
// 60 + 30 => 30 (div 0)
int div = refreshRate / fpsLimit;
if (div >= 4)
fpsLimit = refreshRate / 4;
else if (div >= 2)
fpsLimit = refreshRate / 2;
else
if (fpsLimit > refreshRate) {
fpsLimit = refreshRate;
}
RTSS.SetProfileProperty("FramerateLimit", fpsLimit);
RTSS.SaveProfile();
RTSS.UpdateProfiles();