From a49e50896cecdf1c102e8c70cca04f54452c3b1b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 18 May 2015 23:14:56 +0200 Subject: [PATCH] Create wrapper functions menu_display_fb_set_dirty and menu_display_fb_unset_dirty --- command_event.c | 11 +++-------- menu/drivers/rgui.c | 6 ++---- menu/drivers/rmenu.c | 2 +- menu/drivers/rmenu_xui.cpp | 2 +- menu/menu.c | 2 +- menu/menu_display.c | 20 ++++++++++++++++++++ menu/menu_display.h | 4 ++++ menu/menu_displaylist.c | 3 +-- menu/menu_entry.c | 5 +---- 9 files changed, 34 insertions(+), 21 deletions(-) diff --git a/command_event.c b/command_event.c index 8ebeff51bf..0451fd3d85 100644 --- a/command_event.c +++ b/command_event.c @@ -1092,15 +1092,10 @@ bool event_command(enum event_command cmd) input_driver_poll(); #ifdef HAVE_MENU - { - menu_handle_t *menu = menu_driver_get_ptr(); - - if (menu && menu_display_fb_in_use()) - menu->framebuf.dirty = true; + menu_display_fb_set_dirty(); - if (runloop->is_menu) - event_command(EVENT_CMD_VIDEO_SET_BLOCKING_STATE); - } + if (runloop->is_menu) + event_command(EVENT_CMD_VIDEO_SET_BLOCKING_STATE); #endif break; case EVENT_CMD_CHEATS_DEINIT: diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 092bdc8d89..cbece07d7c 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -353,7 +353,7 @@ static void rgui_render(void) return; /* ensures the framebuffer will be rendered on the screen */ - menu->framebuf.dirty = true; + menu_display_fb_set_dirty(); menu->animation_is_active = false; menu->label.is_updated = false; @@ -563,10 +563,8 @@ static void rgui_set_texture(void) if (!menu) return; - if (!menu->framebuf.dirty) - return; - menu->framebuf.dirty = false; + menu_display_fb_unset_dirty(); video_driver_set_texture_frame( menu->frame_buf.data, false, diff --git a/menu/drivers/rmenu.c b/menu/drivers/rmenu.c index 309f107d39..d29a033df0 100644 --- a/menu/drivers/rmenu.c +++ b/menu/drivers/rmenu.c @@ -147,7 +147,7 @@ static void rmenu_render(void) && !menu->msg_force) return; - menu->framebuf.dirty = false; + menu_display_fb_unset_dirty(); menu->animation_is_active = false; menu->label.is_updated = false; diff --git a/menu/drivers/rmenu_xui.cpp b/menu/drivers/rmenu_xui.cpp index 12c6f5da98..4c92d84f14 100644 --- a/menu/drivers/rmenu_xui.cpp +++ b/menu/drivers/rmenu_xui.cpp @@ -542,7 +542,7 @@ static void rmenu_xui_render(void) runloop->is_menu && !menu->msg_force) return; - menu->framebuf.dirty = false; + menu_display_fb_unset_dirty(); menu->animation_is_active = false; menu->label.is_updated = false; diff --git a/menu/menu.c b/menu/menu.c index 6f46a45637..edc2436d9d 100644 --- a/menu/menu.c +++ b/menu/menu.c @@ -169,7 +169,7 @@ void *menu_init(const void *data) rarch_assert(menu->msg_queue = msg_queue_new(8)); - menu->framebuf.dirty = true; + menu_display_fb_set_dirty(); return menu; error: diff --git a/menu/menu_display.c b/menu/menu_display.c index 2993c2137e..592d1610c7 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -30,6 +30,26 @@ bool menu_display_fb_in_use(void) return menu->frame_buf.data != NULL; } +void menu_display_fb_set_dirty(void) +{ + menu_handle_t *menu = menu_driver_get_ptr(); + if (!menu) + return false; + if (!menu_display_fb_in_use()) + return false; + menu->framebuf.dirty = true; +} + +void menu_display_fb_unset_dirty(void) +{ + menu_handle_t *menu = menu_driver_get_ptr(); + if (!menu) + return false; + if (!menu_display_fb_in_use()) + return false; + menu->framebuf.dirty = false; +} + bool menu_display_update_pending(void) { menu_handle_t *menu = menu_driver_get_ptr(); diff --git a/menu/menu_display.h b/menu/menu_display.h index 7b218b8911..2ded2241d0 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -29,6 +29,10 @@ void menu_display_fb(void); bool menu_display_fb_in_use(void); +void menu_display_fb_set_dirty(void); + +void menu_display_fb_unset_dirty(void); + void menu_display_free(menu_handle_t *menu); bool menu_display_init(menu_handle_t *menu); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 704bd2f2e8..c08c746274 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -1843,8 +1843,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) case DISPLAYLIST_HELP: menu_list_push(info->list, info->path, info->label, info->type, info->directory_ptr); menu->push_start_screen = false; - if (menu_display_fb_in_use()) - menu->framebuf.dirty = true; + menu_display_fb_set_dirty(); break; case DISPLAYLIST_MAIN_MENU: case DISPLAYLIST_SETTINGS: diff --git a/menu/menu_entry.c b/menu/menu_entry.c index dac650f98c..86ce512694 100644 --- a/menu/menu_entry.c +++ b/menu/menu_entry.c @@ -437,10 +437,7 @@ int menu_entry_iterate(unsigned action) return -1; if (action != MENU_ACTION_NOOP || menu_needs_refresh() || menu_display_update_pending()) - { - if (menu_display_fb_in_use()) - menu->framebuf.dirty = true; - } + menu_display_fb_set_dirty(); cbs = (menu_file_list_cbs_t*)menu_list_get_last_stack_actiondata(menu_list);