From a5d7bedb8afe53c6cff7cc0fb9fb9f3ff7481580 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 29 Apr 2017 17:27:54 +0200 Subject: [PATCH] Pass video_is_threaded variable to menu driver init function --- menu/drivers/materialui.c | 4 ++-- menu/drivers/nuklear.c | 4 ++-- menu/drivers/rgui.c | 2 +- menu/drivers/xmb.c | 4 ++-- menu/drivers/zarch.c | 4 ++-- menu/menu_display.c | 14 ++++++++------ menu/menu_display.h | 2 +- menu/menu_driver.c | 2 +- menu/menu_driver.h | 2 +- 9 files changed, 20 insertions(+), 18 deletions(-) diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 081cae4187..5a00314a46 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1469,7 +1469,7 @@ static void mui_layout(mui_handle_t *mui, bool video_is_threaded) } } -static void *mui_init(void **userdata) +static void *mui_init(void **userdata, bool video_is_threaded) { mui_handle_t *mui = NULL; menu_handle_t *menu = (menu_handle_t*) @@ -1478,7 +1478,7 @@ static void *mui_init(void **userdata) if (!menu) goto error; - if (!menu_display_init_first_driver()) + if (!menu_display_init_first_driver(video_is_threaded)) goto error; mui = (mui_handle_t*)calloc(1, sizeof(mui_handle_t)); diff --git a/menu/drivers/nuklear.c b/menu/drivers/nuklear.c index 6361eb638b..8d0dcc773b 100644 --- a/menu/drivers/nuklear.c +++ b/menu/drivers/nuklear.c @@ -143,7 +143,7 @@ static void xmb_init_ribbon(nk_menu_handle_t * xmb) free(ribbon_verts); } -static void *nk_menu_init(void **userdata) +static void *nk_menu_init(void **userdata, bool video_is_threaded) { #if 1 unsigned i; @@ -159,7 +159,7 @@ static void *nk_menu_init(void **userdata) if (!menu) goto error; - if (!menu_display_init_first_driver()) + if (!menu_display_init_first_driver(video_is_threaded)) goto error; nk = (nk_menu_handle_t*)calloc(1, sizeof(nk_menu_handle_t)); diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index a5f26b08c3..eea6d6d7eb 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -653,7 +653,7 @@ static void rgui_framebuffer_free(void) rgui_framebuf_data = NULL; } -static void *rgui_init(void **userdata) +static void *rgui_init(void **userdata, bool video_is_threaded) { size_t fb_pitch, start; unsigned fb_width, fb_height, new_font_height; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index a2a00cd011..37e289e309 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -3168,7 +3168,7 @@ static void xmb_init_ribbon(xmb_handle_t * xmb) -static void *xmb_init(void **userdata) +static void *xmb_init(void **userdata, bool video_is_threaded) { unsigned width, height; xmb_handle_t *xmb = NULL; @@ -3178,7 +3178,7 @@ static void *xmb_init(void **userdata) if (!menu) goto error; - if (!menu_display_init_first_driver()) + if (!menu_display_init_first_driver(video_is_threaded)) goto error; video_driver_get_size(&width, &height); diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 03ea99aa46..497adb73ac 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -990,7 +990,7 @@ static void zarch_frame(void *data, video_frame_info_t *video_info) menu_display_unset_viewport(video_info->width, video_info->height); } -static void *zarch_init(void **userdata) +static void *zarch_init(void **userdata, bool video_is_threaded) { zui_t *zui = NULL; menu_handle_t *menu = (menu_handle_t*) @@ -999,7 +999,7 @@ static void *zarch_init(void **userdata) if (!menu) goto error; - if (!menu_display_init_first_driver()) + if (!menu_display_init_first_driver(video_is_threaded)) goto error; zui = (zui_t*)calloc(1, sizeof(zui_t)); diff --git a/menu/menu_display.c b/menu/menu_display.c index 472cb485d4..05576bb547 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -103,10 +103,10 @@ void menu_display_toggle_set_reason(enum menu_toggle_reason reason) menu_display_toggle_reason = reason; } -static const char *menu_video_get_ident(void) +static const char *menu_video_get_ident(bool video_is_threaded) { #ifdef HAVE_THREADS - if (video_driver_is_threaded()) + if (video_is_threaded) return video_thread_get_ident(); #endif @@ -114,9 +114,10 @@ static const char *menu_video_get_ident(void) } static bool menu_display_check_compatibility( - enum menu_display_driver_type type) + enum menu_display_driver_type type, + bool video_is_threaded) { - const char *video_driver = menu_video_get_ident(); + const char *video_driver = menu_video_get_ident(video_is_threaded); switch (type) { @@ -450,14 +451,15 @@ float menu_display_get_dpi(void) return dpi; } -bool menu_display_init_first_driver(void) +bool menu_display_init_first_driver(bool video_is_threaded) { unsigned i; for (i = 0; menu_display_ctx_drivers[i]; i++) { if (!menu_display_check_compatibility( - menu_display_ctx_drivers[i]->type)) + menu_display_ctx_drivers[i]->type, + video_is_threaded)) continue; RARCH_LOG("[Menu]: Found menu display driver: \"%s\".\n", diff --git a/menu/menu_display.h b/menu/menu_display.h index 4043d9df83..11f480705f 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -238,7 +238,7 @@ bool menu_display_get_framebuffer_dirty_flag(void); void menu_display_set_framebuffer_dirty_flag(void); void menu_display_unset_framebuffer_dirty_flag(void); float menu_display_get_dpi(void); -bool menu_display_init_first_driver(void); +bool menu_display_init_first_driver(bool video_is_threaded); bool menu_display_restore_clear_color(void); void menu_display_clear_color(menu_display_ctx_clearcolor_t *color); void menu_display_draw(menu_display_ctx_draw_t *draw); diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 41ca2da2f8..6060df062f 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -474,7 +474,7 @@ static bool menu_driver_init_internal(bool video_is_threaded) return true; menu_driver_data = (menu_handle_t*) - menu_driver_ctx->init(&menu_userdata); + menu_driver_ctx->init(&menu_userdata, video_is_threaded); if (!menu_driver_data || !menu_init(menu_driver_data)) { diff --git a/menu/menu_driver.h b/menu/menu_driver.h index af8f8148d1..3013d1d763 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -228,7 +228,7 @@ typedef struct menu_ctx_driver int (*iterate)(void *data, void *userdata, enum menu_action action); void (*render)(void *data); void (*frame)(void *data, video_frame_info_t *video_info); - void* (*init)(void**); + void* (*init)(void**, bool); void (*free)(void*); void (*context_reset)(void *data, bool video_is_threaded); void (*context_destroy)(void *data);