diff --git a/menu/drivers/xui.cpp b/menu/drivers/xui.cpp index a9f3f89fb1..55e3a555de 100644 --- a/menu/drivers/xui.cpp +++ b/menu/drivers/xui.cpp @@ -463,9 +463,12 @@ static void blit_line(int x, int y, const char *message, bool green) static void xui_render_background(void) { +#if 0 + /* TODO/FIXME - refactor this */ if (menu_display_libretro_running()) XuiElementSetShow(m_background, FALSE); else +#endif XuiElementSetShow(m_background, TRUE); } diff --git a/menu/menu_display.c b/menu/menu_display.c index e95d39eef3..0403c4d039 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -312,23 +312,24 @@ void menu_display_set_font_framebuffer(const uint8_t *buffer) menu_display_font_framebuf = buffer; } -bool menu_display_libretro_running(void) +static bool menu_display_libretro_running( + bool rarch_is_inited, + bool rarch_is_dummy_core) { settings_t *settings = config_get_ptr(); if (!settings->bools.menu_pause_libretro) { - if (rarch_ctl(RARCH_CTL_IS_INITED, NULL) - && !rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL)) + if (rarch_is_inited && !rarch_is_dummy_core) return true; } return false; } -bool menu_display_libretro(void) +bool menu_display_libretro(bool is_idle, bool rarch_is_inited, bool rarch_is_dummy_core) { video_driver_set_texture_enable(true, false); - if (menu_display_libretro_running()) + if (menu_display_libretro_running(rarch_is_inited, rarch_is_dummy_core)) { if (!input_driver_is_libretro_input_blocked()) input_driver_set_libretro_input_blocked(); @@ -339,7 +340,7 @@ bool menu_display_libretro(void) return true; } - if (runloop_ctl(RUNLOOP_CTL_IS_IDLE, NULL)) + if (is_idle) return true; /* Maybe return false here for indication of idleness? */ return video_driver_cached_frame(); } diff --git a/menu/menu_display.h b/menu/menu_display.h index 1416167bf4..9e89fc165b 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -215,8 +215,7 @@ void menu_display_coords_array_reset(void); video_coord_array_t *menu_display_get_coords_array(void); const uint8_t *menu_display_get_font_framebuffer(void); void menu_display_set_font_framebuffer(const uint8_t *buffer); -bool menu_display_libretro_running(void); -bool menu_display_libretro(void); +bool menu_display_libretro(bool is_idle, bool is_inited, bool is_dummy); void menu_display_set_width(unsigned width); void menu_display_get_fb_size(unsigned *fb_width, unsigned *fb_height, diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 9b19644a09..f25c59ab1e 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -332,7 +332,8 @@ static void menu_update_libretro_info(void) command_event(CMD_EVENT_LOAD_CORE_PERSIST, NULL); } -bool menu_driver_render(bool is_idle) +bool menu_driver_render(bool is_idle, bool rarch_is_inited, + bool rarch_is_dummy_core) { if (!menu_driver_data) return false; @@ -369,7 +370,7 @@ bool menu_driver_render(bool is_idle) } if (menu_driver_alive && !is_idle) - menu_display_libretro(); + menu_display_libretro(is_idle, rarch_is_inited, rarch_is_dummy_core); if (menu_driver_ctx->set_texture) menu_driver_ctx->set_texture(); diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 3013d1d763..cbb74a0a78 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -379,7 +379,7 @@ extern unsigned int rdb_entry_start_game_selection_ptr; const char *menu_driver_ident(void); -bool menu_driver_render(bool is_idle); +bool menu_driver_render(bool is_idle, bool is_inited, bool is_dummy); bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data); diff --git a/retroarch.c b/retroarch.c index 03a938695b..b71d96faae 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2376,7 +2376,10 @@ static enum runloop_state runloop_check_state( rarch_ctl(RARCH_CTL_MENU_RUNNING_FINISHED, NULL); if (focused || !runloop_idle) - menu_driver_render(runloop_idle); + menu_driver_render(runloop_idle, rarch_is_inited, + (current_core_type == CORE_TYPE_DUMMY) + ) + ; if (!focused) return RUNLOOP_STATE_SLEEP;