diff --git a/gfx/video_context_driver.c b/gfx/video_context_driver.c index 52cd202165..55c3568726 100644 --- a/gfx/video_context_driver.c +++ b/gfx/video_context_driver.c @@ -83,13 +83,6 @@ static const gfx_ctx_driver_t *gfx_ctx_drivers[] = { static const gfx_ctx_driver_t *current_video_context; static void *video_context_data; -const char *gfx_ctx_get_ident(void) -{ - if (!current_video_context) - return NULL; - return current_video_context->ident; -} - bool gfx_ctx_set_video_mode( unsigned width, unsigned height, bool fullscreen) @@ -431,6 +424,14 @@ bool gfx_ctx_ctl(enum gfx_ctx_ctl_state state, void *data) return current_video_context->suppress_screensaver( video_context_data, *bool_data); } + case GFX_CTL_IDENT_GET: + { + gfx_ctx_ident_t *ident = (gfx_ctx_ident_t*)data; + ident->ident = NULL; + if (current_video_context) + ident->ident = current_video_context->ident; + } + break; case GFX_CTL_NONE: default: break; diff --git a/gfx/video_context_driver.h b/gfx/video_context_driver.h index 010ce8d0c1..b95371f235 100644 --- a/gfx/video_context_driver.h +++ b/gfx/video_context_driver.h @@ -78,7 +78,8 @@ enum gfx_ctx_ctl_state GFX_CTL_TRANSLATE_ASPECT, GFX_CTL_GET_METRICS, GFX_CTL_INPUT_DRIVER, - GFX_CTL_SUPPRESS_SCREENSAVER + GFX_CTL_SUPPRESS_SCREENSAVER, + GFX_CTL_IDENT_GET }; typedef void (*gfx_ctx_proc_t)(void); @@ -223,6 +224,11 @@ typedef struct gfx_ctx_proc_address retro_proc_address_t addr; } gfx_ctx_proc_address_t; +typedef struct gfx_ctx_ident +{ + const char *ident; +} gfx_ctx_ident_t; + extern const gfx_ctx_driver_t gfx_ctx_sdl_gl; extern const gfx_ctx_driver_t gfx_ctx_x_egl; extern const gfx_ctx_driver_t gfx_ctx_wayland; @@ -265,8 +271,6 @@ void gfx_ctx_get_video_size(unsigned *width, unsigned *height); bool gfx_ctx_set_resize(unsigned width, unsigned height); -const char *gfx_ctx_get_ident(void); - bool gfx_ctx_ctl(enum gfx_ctx_ctl_state state, void *data); #ifdef __cplusplus diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 256a89bb04..d3cd54d991 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -441,6 +441,9 @@ static int menu_displaylist_parse_debug_info(menu_displaylist_info_t *info) static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info) { int controller; +#if defined(HAVE_OPENGL) || defined(HAVE_GLES) + gfx_ctx_ident_t ident_info; +#endif char tmp[PATH_MAX_LENGTH], feat_str[PATH_MAX_LENGTH]; const char *tmp_string = NULL; const frontend_ctx_driver_t *frontend = frontend_get_ptr(); @@ -596,7 +599,8 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info) } #if defined(HAVE_OPENGL) || defined(HAVE_GLES) - tmp_string = gfx_ctx_get_ident(); + gfx_ctx_ctl(GFX_CTL_IDENT_GET, &ident_info); + tmp_string = ident_info.ident; strlcpy(tmp, menu_hash_to_str(MENU_LABEL_VALUE_SYSTEM_INFO_VIDEO_CONTEXT_DRIVER), sizeof(tmp)); strlcat(tmp, ": ", sizeof(tmp));