Add RARCH_DISPLAY_CTL_FIND_DRIVER

This commit is contained in:
twinaphex 2015-11-20 15:58:48 +01:00
parent d4383de600
commit a59ca22457
3 changed files with 10 additions and 7 deletions

View File

@ -220,7 +220,7 @@ bool find_next_driver(const char *label, char *s, size_t len)
void init_drivers_pre(void) void init_drivers_pre(void)
{ {
find_audio_driver(); find_audio_driver();
find_video_driver(); video_driver_ctl(RARCH_DISPLAY_CTL_FIND_DRIVER, NULL);
find_input_driver(); find_input_driver();
find_camera_driver(); find_camera_driver();
find_location_driver(); find_location_driver();

View File

@ -154,7 +154,7 @@ const char* config_get_video_driver_options(void)
return char_list_new_special(STRING_LIST_VIDEO_DRIVERS, NULL); return char_list_new_special(STRING_LIST_VIDEO_DRIVERS, NULL);
} }
void find_video_driver(void) static bool find_video_driver(void)
{ {
int i; int i;
driver_t *driver = driver_get_ptr(); driver_t *driver = driver_get_ptr();
@ -165,7 +165,7 @@ void find_video_driver(void)
{ {
RARCH_LOG("Using HW render, OpenGL driver forced.\n"); RARCH_LOG("Using HW render, OpenGL driver forced.\n");
driver->video = &video_gl; driver->video = &video_gl;
return; return true;
} }
#endif #endif
@ -175,7 +175,7 @@ void find_video_driver(void)
driver->video = driver->frontend_ctx->get_video_driver(); driver->video = driver->frontend_ctx->get_video_driver();
if (driver->video) if (driver->video)
return; return true;
RARCH_WARN("Frontend supports get_video_driver() but did not specify one.\n"); RARCH_WARN("Frontend supports get_video_driver() but did not specify one.\n");
} }
@ -197,6 +197,8 @@ void find_video_driver(void)
if (!driver->video) if (!driver->video)
retro_fail(1, "find_video_driver()"); retro_fail(1, "find_video_driver()");
} }
return true;
} }
/** /**
@ -522,7 +524,7 @@ void init_video(void)
tmp = (const input_driver_t*)driver->input; tmp = (const input_driver_t*)driver->input;
/* Need to grab the "real" video driver interface on a reinit. */ /* Need to grab the "real" video driver interface on a reinit. */
find_video_driver(); video_driver_ctl(RARCH_DISPLAY_CTL_FIND_DRIVER, NULL);
#ifdef HAVE_THREADS #ifdef HAVE_THREADS
if (settings->video.threaded && !video_state.hw_render_callback.context_type) if (settings->video.threaded && !video_state.hw_render_callback.context_type)
@ -1163,6 +1165,8 @@ bool video_driver_ctl(enum rarch_display_ctl_state state, void *data)
switch (state) switch (state)
{ {
case RARCH_DISPLAY_CTL_FIND_DRIVER:
return find_video_driver();
case RARCH_DISPLAY_CTL_APPLY_STATE_CHANGES: case RARCH_DISPLAY_CTL_APPLY_STATE_CHANGES:
{ {
driver_t *driver = driver_get_ptr(); driver_t *driver = driver_get_ptr();

View File

@ -222,6 +222,7 @@ enum rarch_display_ctl_state
{ {
RARCH_DISPLAY_CTL_NONE = 0, RARCH_DISPLAY_CTL_NONE = 0,
RARCH_DISPLAY_CTL_APPLY_STATE_CHANGES, RARCH_DISPLAY_CTL_APPLY_STATE_CHANGES,
RARCH_DISPLAY_CTL_FIND_DRIVER,
RARCH_DISPLAY_CTL_FRAME_FILTER_ALIVE, RARCH_DISPLAY_CTL_FRAME_FILTER_ALIVE,
RARCH_DISPLAY_CTL_FRAME_FILTER_IS_32BIT, RARCH_DISPLAY_CTL_FRAME_FILTER_IS_32BIT,
RARCH_DISPLAY_CTL_HAS_WINDOWED, RARCH_DISPLAY_CTL_HAS_WINDOWED,
@ -262,8 +263,6 @@ const char *video_driver_find_ident(int index);
**/ **/
const char* config_get_video_driver_options(void); const char* config_get_video_driver_options(void);
void find_video_driver(void);
/** /**
* video_driver_get_ptr: * video_driver_get_ptr:
* @drv : real video driver will be set to this. * @drv : real video driver will be set to this.