diff --git a/driver.h b/driver.h index d7e92a21b0..43fc5365f2 100644 --- a/driver.h +++ b/driver.h @@ -580,6 +580,8 @@ void find_prev_location_driver(void); void find_next_location_driver(void); #endif +void find_image_driver(void); + void driver_set_monitor_refresh_rate(float hz); bool driver_monitor_fps_statistics(double *refresh_rate, double *deviation, unsigned *sample_points); void driver_set_nonblock_state(bool nonblock); @@ -626,6 +628,7 @@ void driver_location_set_interval(unsigned interval_msecs, unsigned interval_dis const void *menu_ctx_find_driver(const char *ident); // Finds driver with ident. Does not initialize. void find_prev_menu_driver(void); void find_next_menu_driver(void); +void find_menu_driver(void); #endif // Used by RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 2667b2f4bb..2fde834159 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -324,6 +324,16 @@ void *menu_init(void) return NULL; } + if (!driver.image) + { + RARCH_ERR("Image driver not initialized.\n"); + RARCH_WARN("Trying to bring up image driver interface.\n"); + find_image_driver(); + + if (!driver.image) + RARCH_ERR("Still couldn't initialize image driver.\n"); + } + if (driver.menu_ctx->init) rgui = (rgui_handle_t*)driver.menu_ctx->init(); diff --git a/gfx/image_context.c b/gfx/image_context.c index 06a4d17836..ed042003cc 100644 --- a/gfx/image_context.c +++ b/gfx/image_context.c @@ -59,12 +59,16 @@ void find_image_driver(void) else { unsigned d; - RARCH_ERR("Couldn't find any image driver named \"%s\"\n", g_settings.image.driver); + RARCH_WARN("Couldn't find any image driver named \"%s\"\n", g_settings.image.driver); RARCH_LOG_OUTPUT("Available image drivers are:\n"); for (d = 0; image_ctx_drivers[d]; d++) RARCH_LOG_OUTPUT("\t%s\n", image_ctx_drivers[d]->ident); + RARCH_WARN("Going to default to first image driver...\n"); - rarch_fail(1, "find_image_driver()"); + driver.image = image_ctx_drivers[0]; + + if (!driver.image) + rarch_fail(1, "find_image_driver()"); } }