diff --git a/menu/drivers/glui.c b/menu/drivers/glui.c index 70baabf65b..515b134901 100644 --- a/menu/drivers/glui.c +++ b/menu/drivers/glui.c @@ -327,7 +327,7 @@ static void glui_render_menu_list(glui_handle_t *glui, menu_display_t *disp = menu_display_get_ptr(); menu_navigation_t *nav = menu_navigation_get_ptr(); - if (!menu_display_update_pending()) + if (!menu_display_ctl(MENU_DISPLAY_CTL_UPDATE_PENDING, NULL)) return; glui->list_block.carr.coords.vertices = 0; diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 3d8738c052..34ffe3d5db 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -422,7 +422,7 @@ static void rgui_render(void) if (rarch_main_is_idle()) return; - if (!menu_display_update_pending()) + if (!menu_display_ctl(MENU_DISPLAY_CTL_UPDATE_PENDING, NULL)) return; } diff --git a/menu/menu_display.c b/menu/menu_display.c index 02fcc58fe1..281570312f 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -67,15 +67,6 @@ void menu_display_libretro(void) video_driver_cached_frame(); } -bool menu_display_update_pending(void) -{ - menu_animation_t *anim = menu_animation_get_ptr(); - menu_framebuf_t *frame_buf = menu_display_fb_get_ptr(); - - if (menu_animation_is_active(anim) || (frame_buf && frame_buf->dirty)) - return true; - return false; -} static void menu_display_fb_free(menu_framebuf_t *frame_buf) { @@ -227,6 +218,14 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) switch (state) { + case MENU_DISPLAY_CTL_UPDATE_PENDING: + { + menu_animation_t *anim = menu_animation_get_ptr(); + + if (menu_animation_is_active(anim) || (frame_buf && frame_buf->dirty)) + return true; + } + return false; case MENU_DISPLAY_CTL_SET_VIEWPORT: video_driver_get_size(&width, &height); video_driver_set_viewport(width, diff --git a/menu/menu_display.h b/menu/menu_display.h index 36683dc64e..8a48d9a397 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -35,7 +35,8 @@ enum menu_display_ctl_state MENU_DISPLAY_CTL_UNSET_VIEWPORT, MENU_DISPLAY_CTL_SET_FRAMEBUFFER_DIRTY_FLAG, MENU_DISPLAY_CTL_UNSET_FRAMEBUFFER_DIRTY_FLAG, - MENU_DISPLAY_CTL_GET_DPI + MENU_DISPLAY_CTL_GET_DPI, + MENU_DISPLAY_CTL_UPDATE_PENDING }; typedef struct menu_framebuf @@ -78,8 +79,6 @@ void menu_display_free(void *data); bool menu_display_init(void *data); -bool menu_display_update_pending(void); - bool menu_display_font_init_first(const void **font_driver, void **font_handle, void *video_data, const char *font_path, float font_size); diff --git a/menu/menu_iterate.c b/menu/menu_iterate.c index 9a76a54361..f731a10cc3 100644 --- a/menu/menu_iterate.c +++ b/menu/menu_iterate.c @@ -449,7 +449,7 @@ int menu_iterate(bool render_this_frame, unsigned action) iterate_type = action_iterate_type(hash); - if (action != MENU_ACTION_NOOP || menu_entries_needs_refresh() || menu_display_update_pending()) + if (action != MENU_ACTION_NOOP || menu_entries_needs_refresh() || menu_display_ctl(MENU_DISPLAY_CTL_UPDATE_PENDING, NULL)) { if (render_this_frame) BIT64_SET(menu->state, MENU_STATE_RENDER_FRAMEBUFFER);