Make improved version of this - 873d60151f

This commit is contained in:
twinaphex 2018-10-06 17:48:12 +02:00
parent 50eb4adc4b
commit 7260e52a23
3 changed files with 37 additions and 0 deletions

View File

@ -2340,6 +2340,24 @@ error:
return NULL;
}
#if defined(HAVE_MENU) && defined(HAVE_RGUI)
static bool check_menu_driver_compatibility(void)
{
settings_t *settings = config_get_ptr();
char *video_driver = settings->arrays.video_driver;
char *menu_driver = settings->arrays.menu_driver;
if (string_is_equal (menu_driver, "rgui") ||
string_is_equal(menu_driver, "null"))
return true;
if (menu_display_driver_exists(video_driver))
return true;
return false;
}
#endif
static void read_keybinds_keyboard(config_file_t *conf, unsigned user,
unsigned idx, struct retro_keybind *bind)
{
@ -3045,6 +3063,11 @@ static bool config_load_file(const char *path, bool set_defaults,
}
}
#if defined(HAVE_MENU) && defined(HAVE_RGUI)
if (!check_menu_driver_compatibility())
strlcpy(settings->arrays.menu_driver, "rgui", sizeof(settings->arrays.menu_driver));
#endif
frontend_driver_set_sustained_performance_mode(settings->bools.sustained_performance_mode);
recording_driver_update_streaming_url();

View File

@ -634,6 +634,18 @@ float menu_display_get_dpi(void)
return dpi;
}
bool menu_display_driver_exists(const char *s)
{
unsigned i;
for (i = 0; i < ARRAY_SIZE(menu_display_ctx_drivers); i++)
{
if (string_is_equal(s, menu_display_ctx_drivers[i]->ident))
return true;
}
return false;
}
bool menu_display_init_first_driver(bool video_is_threaded)
{
unsigned i;

View File

@ -824,6 +824,8 @@ void menu_display_reset_textures_list(
int menu_display_osk_ptr_at_pos(void *data, int x, int y,
unsigned width, unsigned height);
bool menu_display_driver_exists(const char *s);
void menu_driver_destroy(void);
extern uintptr_t menu_display_white_texture;