Add an option to disable FPS limiter

Cherry-pick of commit d7921f31b0.
This commit is contained in:
Jyrki Vesterinen 2018-05-05 10:10:48 +03:00
parent c926f2c718
commit cca79afe4b
4 changed files with 20 additions and 5 deletions

View file

@ -260,6 +260,19 @@
[/grid]
[/column]
[/row]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[toggle_button]
id = "fps_limiter"
label = _ "FPS limiter"
tooltip = _ "Disabling this increases CPU usage to 100 % but may slightly improve performance at high resolutions"
[/toggle_button]
[/column]
[/row]
#enddef
#define _GUI_PREFERENCES_DISPLAY_GRID_2

View file

@ -1689,7 +1689,7 @@ void display::draw_init()
void display::draw_wrap(bool update, bool force)
{
static int time_between_draws = preferences::draw_delay();
if(time_between_draws == 0) {
if(time_between_draws < 0) {
time_between_draws = 1000 / screen_.current_refresh_rate();
}

View file

@ -474,6 +474,10 @@ void preferences_dialog::post_build(window& window)
register_integer("scaling_slider", true,
font_scaling, set_font_scaling);
/* FPS LIMITER */
register_bool("fps_limiter", true,
[]() { return draw_delay() != 0; }, [](bool v) { set_draw_delay(v ? -1 : 0); });
/* SELECT THEME */
connect_signal_mouse_left_click(
find_widget<button>(&window, "choose_theme", false),

View file

@ -51,8 +51,6 @@ bool no_preferences_save = false;
bool fps = false;
int draw_delay_ = 0;
config prefs;
}
@ -974,12 +972,12 @@ void set_show_fps(bool value)
int draw_delay()
{
return draw_delay_;
return prefs["draw_delay"].to_int(-1);
}
void set_draw_delay(int value)
{
draw_delay_ = value;
prefs["draw_delay"] = value;
}
bool use_color_cursors()