diff --git a/gfx/gfx_widgets.c b/gfx/gfx_widgets.c index 3f149d9ef6..f544edf337 100644 --- a/gfx/gfx_widgets.c +++ b/gfx/gfx_widgets.c @@ -144,7 +144,6 @@ typedef struct dispgfx_widget * avoid confusing users */ bool widgets_moving; bool widgets_inited; - bool widgets_persisting; bool msg_queue_has_icons; #ifdef HAVE_MENU bool load_content_animation_running; @@ -331,12 +330,6 @@ void *dispwidget_get_ptr(void) return &dispwidget_st; } -void gfx_widgets_set_persistence(bool persist) -{ - dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)dispwidget_get_ptr(); - p_dispwidget->widgets_persisting = persist; -} - gfx_widget_font_data_t* gfx_widgets_get_font_regular(void *data) { dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)data; @@ -2082,7 +2075,7 @@ error: return false; } -bool gfx_widgets_deinit(void) +bool gfx_widgets_deinit(bool widgets_persisting) { dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)dispwidget_get_ptr(); if (!p_dispwidget->widgets_inited) @@ -2090,7 +2083,7 @@ bool gfx_widgets_deinit(void) gfx_widgets_context_destroy(p_dispwidget); - if (!p_dispwidget->widgets_persisting) + if (!widgets_persisting) gfx_widgets_free(p_dispwidget); return true; diff --git a/gfx/gfx_widgets.h b/gfx/gfx_widgets.h index 95d48d6c51..6b1d933094 100644 --- a/gfx/gfx_widgets.h +++ b/gfx/gfx_widgets.h @@ -159,15 +159,13 @@ void gfx_widgets_flush_text( typedef struct gfx_widget gfx_widget_t; -void gfx_widgets_set_persistence(bool persist); - bool gfx_widgets_init( uintptr_t widgets_active_ptr, bool video_is_threaded, unsigned width, unsigned height, bool fullscreen, const char *dir_assets, char *font_path); -bool gfx_widgets_deinit(void); +bool gfx_widgets_deinit(bool widgets_persisting); void gfx_widgets_msg_queue_push( retro_task_t *task, const char *msg, diff --git a/retroarch.c b/retroarch.c index ea4571586d..b0b7a57276 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1827,6 +1827,7 @@ struct rarch_state #ifdef HAVE_GFX_WIDGETS bool widgets_active; + bool widgets_persisting; #endif #ifdef HAVE_NETWORKING /* Only used before init_netplay */ @@ -15742,7 +15743,7 @@ void main_exit(void *args) #if defined(HAVE_GFX_WIDGETS) /* Do not want display widgets to live any more. */ - gfx_widgets_set_persistence(false); + p_rarch->widgets_persisting = false; #endif #ifdef HAVE_MENU /* Do not want menu context to live any more. */ @@ -32320,7 +32321,7 @@ static void drivers_init(struct rarch_state *p_rarch, int flags) bool menu_enable_widgets = settings->bools.menu_enable_widgets; /* By default, we want display widgets to persist through driver reinits. */ - gfx_widgets_set_persistence(true); + p_rarch->widgets_persisting = true; #endif #ifdef HAVE_MENU @@ -32495,7 +32496,7 @@ static void driver_uninit(struct rarch_state *p_rarch, int flags) /* This absolutely has to be done before video_driver_free_internal() * is called/completes, otherwise certain menu drivers * (e.g. Vulkan) will segfault */ - if (gfx_widgets_deinit()) + if (gfx_widgets_deinit(p_rarch->widgets_persisting)) p_rarch->widgets_active = false; #endif @@ -32562,7 +32563,7 @@ static void retroarch_deinit_drivers(struct rarch_state *p_rarch) * in case the handle is lost in the threaded * video driver in the meantime * (breaking video_driver_has_widgets) */ - if (gfx_widgets_deinit()) + if (gfx_widgets_deinit(p_rarch->widgets_persisting)) p_rarch->widgets_active = false; #endif