Move widgets_persisting to retroarch.c

This commit is contained in:
twinaphex 2020-06-08 04:36:40 +02:00
parent 73b5bf438b
commit 57c3b1b041
3 changed files with 8 additions and 16 deletions

View File

@ -144,7 +144,6 @@ typedef struct dispgfx_widget
* avoid confusing users */ * avoid confusing users */
bool widgets_moving; bool widgets_moving;
bool widgets_inited; bool widgets_inited;
bool widgets_persisting;
bool msg_queue_has_icons; bool msg_queue_has_icons;
#ifdef HAVE_MENU #ifdef HAVE_MENU
bool load_content_animation_running; bool load_content_animation_running;
@ -331,12 +330,6 @@ void *dispwidget_get_ptr(void)
return &dispwidget_st; 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) gfx_widget_font_data_t* gfx_widgets_get_font_regular(void *data)
{ {
dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)data; dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)data;
@ -2082,7 +2075,7 @@ error:
return false; 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(); dispgfx_widget_t *p_dispwidget = (dispgfx_widget_t*)dispwidget_get_ptr();
if (!p_dispwidget->widgets_inited) if (!p_dispwidget->widgets_inited)
@ -2090,7 +2083,7 @@ bool gfx_widgets_deinit(void)
gfx_widgets_context_destroy(p_dispwidget); gfx_widgets_context_destroy(p_dispwidget);
if (!p_dispwidget->widgets_persisting) if (!widgets_persisting)
gfx_widgets_free(p_dispwidget); gfx_widgets_free(p_dispwidget);
return true; return true;

View File

@ -159,15 +159,13 @@ void gfx_widgets_flush_text(
typedef struct gfx_widget gfx_widget_t; typedef struct gfx_widget gfx_widget_t;
void gfx_widgets_set_persistence(bool persist);
bool gfx_widgets_init( bool gfx_widgets_init(
uintptr_t widgets_active_ptr, uintptr_t widgets_active_ptr,
bool video_is_threaded, bool video_is_threaded,
unsigned width, unsigned height, bool fullscreen, unsigned width, unsigned height, bool fullscreen,
const char *dir_assets, char *font_path); 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( void gfx_widgets_msg_queue_push(
retro_task_t *task, const char *msg, retro_task_t *task, const char *msg,

View File

@ -1827,6 +1827,7 @@ struct rarch_state
#ifdef HAVE_GFX_WIDGETS #ifdef HAVE_GFX_WIDGETS
bool widgets_active; bool widgets_active;
bool widgets_persisting;
#endif #endif
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
/* Only used before init_netplay */ /* Only used before init_netplay */
@ -15742,7 +15743,7 @@ void main_exit(void *args)
#if defined(HAVE_GFX_WIDGETS) #if defined(HAVE_GFX_WIDGETS)
/* Do not want display widgets to live any more. */ /* Do not want display widgets to live any more. */
gfx_widgets_set_persistence(false); p_rarch->widgets_persisting = false;
#endif #endif
#ifdef HAVE_MENU #ifdef HAVE_MENU
/* Do not want menu context to live any more. */ /* 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; bool menu_enable_widgets = settings->bools.menu_enable_widgets;
/* By default, we want display widgets to persist through driver reinits. */ /* By default, we want display widgets to persist through driver reinits. */
gfx_widgets_set_persistence(true); p_rarch->widgets_persisting = true;
#endif #endif
#ifdef HAVE_MENU #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() /* This absolutely has to be done before video_driver_free_internal()
* is called/completes, otherwise certain menu drivers * is called/completes, otherwise certain menu drivers
* (e.g. Vulkan) will segfault */ * (e.g. Vulkan) will segfault */
if (gfx_widgets_deinit()) if (gfx_widgets_deinit(p_rarch->widgets_persisting))
p_rarch->widgets_active = false; p_rarch->widgets_active = false;
#endif #endif
@ -32562,7 +32563,7 @@ static void retroarch_deinit_drivers(struct rarch_state *p_rarch)
* in case the handle is lost in the threaded * in case the handle is lost in the threaded
* video driver in the meantime * video driver in the meantime
* (breaking video_driver_has_widgets) */ * (breaking video_driver_has_widgets) */
if (gfx_widgets_deinit()) if (gfx_widgets_deinit(p_rarch->widgets_persisting))
p_rarch->widgets_active = false; p_rarch->widgets_active = false;
#endif #endif