Merge pull request #4244 from Mailaender/fps-settings
Made the FPS settings fool proof
This commit is contained in:
@@ -420,6 +420,12 @@ namespace OpenRA
|
|||||||
|
|
||||||
internal static void Run()
|
internal static void Run()
|
||||||
{
|
{
|
||||||
|
if (Settings.Graphics.MaxFramerate < 1)
|
||||||
|
{
|
||||||
|
Settings.Graphics.MaxFramerate = new GraphicSettings().MaxFramerate;
|
||||||
|
Settings.Graphics.CapFramerate = false;
|
||||||
|
}
|
||||||
|
|
||||||
while (!quit)
|
while (!quit)
|
||||||
{
|
{
|
||||||
var idealFrameTime = 1.0 / Settings.Graphics.MaxFramerate;
|
var idealFrameTime = 1.0 / Settings.Graphics.MaxFramerate;
|
||||||
@@ -431,7 +437,7 @@ namespace OpenRA
|
|||||||
{
|
{
|
||||||
var waitTime = idealFrameTime - sw.ElapsedTime();
|
var waitTime = idealFrameTime - sw.ElapsedTime();
|
||||||
if (waitTime > 0)
|
if (waitTime > 0)
|
||||||
System.Threading.Thread.Sleep( TimeSpan.FromSeconds(waitTime) );
|
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(waitTime));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -150,6 +150,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
|
|
||||||
var frameLimitTextfield = panel.Get<TextFieldWidget>("FRAME_LIMIT_TEXTFIELD");
|
var frameLimitTextfield = panel.Get<TextFieldWidget>("FRAME_LIMIT_TEXTFIELD");
|
||||||
frameLimitTextfield.Text = ds.MaxFramerate.ToString();
|
frameLimitTextfield.Text = ds.MaxFramerate.ToString();
|
||||||
|
frameLimitTextfield.OnLoseFocus = () =>
|
||||||
|
{
|
||||||
|
int fps;
|
||||||
|
int.TryParse(frameLimitTextfield.Text, out fps);
|
||||||
|
ds.MaxFramerate = fps.Clamp(20, 200);
|
||||||
|
frameLimitTextfield.Text = ds.MaxFramerate.ToString();
|
||||||
|
};
|
||||||
|
frameLimitTextfield.OnEnterKey = () => { frameLimitTextfield.YieldKeyboardFocus(); return true; };
|
||||||
frameLimitTextfield.IsDisabled = () => !ds.CapFramerate;
|
frameLimitTextfield.IsDisabled = () => !ds.CapFramerate;
|
||||||
|
|
||||||
return () =>
|
return () =>
|
||||||
@@ -158,7 +166,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
int.TryParse(windowWidth.Text, out x);
|
int.TryParse(windowWidth.Text, out x);
|
||||||
int.TryParse(windowHeight.Text, out y);
|
int.TryParse(windowHeight.Text, out y);
|
||||||
ds.WindowedSize = new int2(x, y);
|
ds.WindowedSize = new int2(x, y);
|
||||||
int.TryParse(frameLimitTextfield.Text, out ds.MaxFramerate);
|
frameLimitTextfield.YieldKeyboardFocus();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user