Add DPI override options

This commit is contained in:
twinaphex 2015-04-24 16:37:09 +02:00
parent 98a07b9320
commit 69bef77d6d
5 changed files with 56 additions and 5 deletions

View File

@ -651,6 +651,10 @@ static const unsigned default_content_history_size = 100;
/* Show Menu start-up screen on boot. */
static const bool menu_show_start_screen = true;
static const bool menu_dpi_override_enable = false;
static const unsigned menu_dpi_override_value = 72;
/* Log level for libretro cores (GET_LOG_INTERFACE). */
static const unsigned libretro_log_level = 0;

View File

@ -554,6 +554,9 @@ static void config_set_defaults(void)
settings->menu.entry_hover_color = menu_entry_hover_color;
settings->menu.title_color = menu_title_color;
settings->menu.dpi.override_enable = menu_dpi_override_enable;
settings->menu.dpi.override_value = menu_dpi_override_value;
settings->menu.navigation.wraparound.horizontal_enable = true;
settings->menu.navigation.wraparound.vertical_enable = true;
settings->menu.navigation.browser.filter.supported_extensions_enable = true;
@ -1183,6 +1186,10 @@ static bool config_load_file(const char *path, bool set_defaults)
#ifdef HAVE_THREADS
CONFIG_GET_BOOL_BASE(conf, settings, menu.threaded_data_runloop_enable, "threaded_data_runloop_enable");
#endif
CONFIG_GET_BOOL_BASE(conf, settings, menu.dpi.override_enable, "dpi_override_enable");
CONFIG_GET_INT_BASE (conf, settings, menu.dpi.override_value, "dpi_override_value");
CONFIG_GET_BOOL_BASE(conf, settings, menu.pause_libretro, "menu_pause_libretro");
CONFIG_GET_BOOL_BASE(conf, settings, menu.mouse.enable, "menu_mouse_enable");
CONFIG_GET_BOOL_BASE(conf, settings, menu.pointer.enable, "menu_pointer_enable");
@ -2244,6 +2251,9 @@ bool config_save_file(const char *path)
#ifdef HAVE_THREADS
config_set_bool(conf,"threaded_data_runloop_enable", settings->menu.threaded_data_runloop_enable);
#endif
config_set_bool(conf, "dpi_override_enable", settings->menu.dpi.override_enable);
config_set_int (conf, "dpi_override_value", settings->menu.dpi.override_value);
config_set_string(conf,"menu_driver", settings->menu.driver);
config_set_bool(conf,"menu_pause_libretro", settings->menu.pause_libretro);
config_set_bool(conf,"menu_mouse_enable", settings->menu.mouse.enable);

View File

@ -139,6 +139,13 @@ typedef struct settings
} filter;
} browser;
} navigation;
struct
{
bool override_enable;
unsigned override_value;
} dpi;
bool collapse_subgroups_enable;
bool show_advanced_settings;
#ifdef HAVE_THREADS

View File

@ -84,13 +84,16 @@ bool menu_display_init(menu_handle_t *menu)
float menu_display_get_dpi(menu_handle_t *menu)
{
float dpi, dpi_orig = 128;
float dpi;
settings_t *settings = config_get_ptr();
if (!menu)
return dpi_orig;
if (!menu || !settings)
return 128;
if (!gfx_ctx_get_metrics(DISPLAY_METRIC_DPI, &dpi))
dpi = dpi_orig;
if ( settings->menu.dpi.override_enable ||
!gfx_ctx_get_metrics(DISPLAY_METRIC_DPI, &dpi)
)
return settings->menu.dpi.override_value;
return dpi;
}

View File

@ -5480,6 +5480,33 @@ static bool setting_append_list_menu_options(
general_read_handler);
END_SUB_GROUP(list, list_info);
START_SUB_GROUP(list, list_info, "Display", group_info.name, subgroup_info);
CONFIG_BOOL(
settings->menu.dpi.override_enable,
"dpi_override_enable",
"DPI Override Enable",
menu_dpi_override_enable,
"OFF",
"ON",
group_info.name,
subgroup_info.name,
general_write_handler,
general_read_handler);
CONFIG_UINT(
settings->menu.dpi.override_value,
"dpi_override_value",
"DPI Override",
menu_dpi_override_value,
group_info.name,
subgroup_info.name,
general_write_handler,
general_read_handler);
settings_list_current_add_range(list, list_info, 72, 999, 1, true, true);
END_SUB_GROUP(list, list_info);
END_GROUP(list, list_info);