mirror of
https://github.com/libretro/RetroArch
synced 2025-04-09 21:45:45 +00:00
(Menu) Cleanups
This commit is contained in:
parent
668aff2605
commit
3139f13612
@ -285,6 +285,7 @@ static int action_iterate_menu_viewport(char *s, size_t len, const char *label,
|
|||||||
unsigned type = 0;
|
unsigned type = 0;
|
||||||
video_viewport_t *custom = video_viewport_get_custom();
|
video_viewport_t *custom = video_viewport_get_custom();
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
menu_display_t *disp = menu_display_get_ptr();
|
||||||
menu_navigation_t *nav = menu_navigation_get_ptr();
|
menu_navigation_t *nav = menu_navigation_get_ptr();
|
||||||
menu_list_t *menu_list = menu_list_get_ptr();
|
menu_list_t *menu_list = menu_list_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
@ -407,7 +408,8 @@ static int action_iterate_menu_viewport(char *s, size_t len, const char *label,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ACTION_MESSAGE:
|
case MENU_ACTION_MESSAGE:
|
||||||
menu->msg_force = true;
|
if (disp)
|
||||||
|
disp->msg_force = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1113,6 +1113,7 @@ static int action_ok_config_load(const char *path,
|
|||||||
char config[PATH_MAX_LENGTH] = {0};
|
char config[PATH_MAX_LENGTH] = {0};
|
||||||
menu_navigation_t *nav = menu_navigation_get_ptr();
|
menu_navigation_t *nav = menu_navigation_get_ptr();
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
menu_display_t *disp = menu_display_get_ptr();
|
||||||
menu_list_t *menu_list = menu_list_get_ptr();
|
menu_list_t *menu_list = menu_list_get_ptr();
|
||||||
|
|
||||||
if (!menu || !menu_list)
|
if (!menu || !menu_list)
|
||||||
@ -1122,7 +1123,9 @@ static int action_ok_config_load(const char *path,
|
|||||||
|
|
||||||
fill_pathname_join(config, menu_path, path, sizeof(config));
|
fill_pathname_join(config, menu_path, path, sizeof(config));
|
||||||
menu_list_flush_stack(menu_list, NULL, MENU_SETTINGS);
|
menu_list_flush_stack(menu_list, NULL, MENU_SETTINGS);
|
||||||
menu->msg_force = true;
|
|
||||||
|
disp->msg_force = true;
|
||||||
|
|
||||||
if (rarch_replace_config(config))
|
if (rarch_replace_config(config))
|
||||||
{
|
{
|
||||||
menu_navigation_clear(nav, false);
|
menu_navigation_clear(nav, false);
|
||||||
|
@ -369,10 +369,12 @@ static void glui_frame(void)
|
|||||||
|
|
||||||
glui = (glui_handle_t*)menu->userdata;
|
glui = (glui_handle_t*)menu->userdata;
|
||||||
|
|
||||||
if (menu_needs_refresh()
|
if (
|
||||||
|
menu_needs_refresh()
|
||||||
&& menu_driver_alive()
|
&& menu_driver_alive()
|
||||||
&& !menu->msg_force
|
&& !disp->msg_force
|
||||||
&& !glui->box_message[0])
|
&& !glui->box_message[0]
|
||||||
|
)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
video_driver_get_size(&width, &height);
|
video_driver_get_size(&width, &height);
|
||||||
@ -394,10 +396,9 @@ static void glui_frame(void)
|
|||||||
|
|
||||||
glui_render_quad(gl, 0,
|
glui_render_quad(gl, 0,
|
||||||
disp->header_height - menu->scroll_y + glui->line_height *
|
disp->header_height - menu->scroll_y + glui->line_height *
|
||||||
nav->selection_ptr,
|
nav->selection_ptr, width, glui->line_height, 1, 1, 1, 0.1);
|
||||||
width, glui->line_height, 1, 1, 1, 0.1);
|
|
||||||
|
|
||||||
anim->is_active = true;
|
anim->is_active = true;
|
||||||
anim->label.is_updated = false;
|
anim->label.is_updated = false;
|
||||||
|
|
||||||
glui_render_quad(gl, 0, 0, width,
|
glui_render_quad(gl, 0, 0, width,
|
||||||
|
@ -347,12 +347,13 @@ static void rgui_render(void)
|
|||||||
char title_msg[64] = {0};
|
char title_msg[64] = {0};
|
||||||
char timedate[PATH_MAX_LENGTH] = {0};
|
char timedate[PATH_MAX_LENGTH] = {0};
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
menu_input_t *menu_input = menu_input_get_ptr();
|
||||||
|
menu_display_t *disp = menu_display_get_ptr();
|
||||||
menu_framebuf_t *frame_buf = menu_display_fb_get_ptr();
|
menu_framebuf_t *frame_buf = menu_display_fb_get_ptr();
|
||||||
menu_navigation_t *nav = menu_navigation_get_ptr();
|
menu_navigation_t *nav = menu_navigation_get_ptr();
|
||||||
runloop_t *runloop = rarch_main_get_ptr();
|
runloop_t *runloop = rarch_main_get_ptr();
|
||||||
driver_t *driver = driver_get_ptr();
|
driver_t *driver = driver_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
menu_input_t *menu_input = menu_input_get_ptr();
|
|
||||||
menu_animation_t *anim = menu_animation_get_ptr();
|
menu_animation_t *anim = menu_animation_get_ptr();
|
||||||
uint64_t frame_count = video_driver_get_frame_count();
|
uint64_t frame_count = video_driver_get_frame_count();
|
||||||
|
|
||||||
@ -361,7 +362,7 @@ static void rgui_render(void)
|
|||||||
if (!menu)
|
if (!menu)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (menu_needs_refresh() && menu_driver_alive() && !menu->msg_force)
|
if (menu_needs_refresh() && menu_driver_alive() && !disp->msg_force)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (runloop->is_idle)
|
if (runloop->is_idle)
|
||||||
@ -493,10 +494,10 @@ static void rgui_render(void)
|
|||||||
#ifdef GEKKO
|
#ifdef GEKKO
|
||||||
const char *message_queue;
|
const char *message_queue;
|
||||||
|
|
||||||
if (menu->msg_force)
|
if (disp->msg_force)
|
||||||
{
|
{
|
||||||
message_queue = rarch_main_msg_queue_pull();
|
message_queue = rarch_main_msg_queue_pull();
|
||||||
menu->msg_force = false;
|
disp->msg_force = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
message_queue = driver->current_msg;
|
message_queue = driver->current_msg;
|
||||||
|
@ -128,6 +128,7 @@ static void rmenu_render(void)
|
|||||||
char title_buf[256] = {0};
|
char title_buf[256] = {0};
|
||||||
char title_msg[64] = {0};
|
char title_msg[64] = {0};
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
menu_display_t *disp = menu_display_get_ptr();
|
||||||
menu_animation_t *anim = menu_animation_get_ptr();
|
menu_animation_t *anim = menu_animation_get_ptr();
|
||||||
menu_list_t *menu_list = menu_list_get_ptr();
|
menu_list_t *menu_list = menu_list_get_ptr();
|
||||||
menu_navigation_t *nav = menu_navigation_get_ptr();
|
menu_navigation_t *nav = menu_navigation_get_ptr();
|
||||||
@ -145,7 +146,7 @@ static void rmenu_render(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (menu_needs_refresh() && menu_driver_alive()
|
if (menu_needs_refresh() && menu_driver_alive()
|
||||||
&& !menu->msg_force)
|
&& !disp->msg_force)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
menu_display_fb_unset_dirty();
|
menu_display_fb_unset_dirty();
|
||||||
|
@ -537,14 +537,18 @@ static void rmenu_xui_render(void)
|
|||||||
const char *label = NULL;
|
const char *label = NULL;
|
||||||
unsigned menu_type = 0;
|
unsigned menu_type = 0;
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
menu_display_t *disp = menu_display_get_ptr();
|
||||||
menu_framebuf_t *frame_buf = menu_display_fb_get_ptr();
|
menu_framebuf_t *frame_buf = menu_display_fb_get_ptr();
|
||||||
menu_navigation_t *nav = menu_navigation_get_ptr();
|
menu_navigation_t *nav = menu_navigation_get_ptr();
|
||||||
uint64_t frame_count = video_driver_get_frame_count();
|
uint64_t frame_count = video_driver_get_frame_count();
|
||||||
|
|
||||||
if (!menu)
|
if (!menu)
|
||||||
return;
|
return;
|
||||||
if (menu_needs_refresh() &&
|
if (
|
||||||
menu_driver_alive() && !menu->msg_force)
|
menu_needs_refresh() &&
|
||||||
|
menu_driver_alive() &&
|
||||||
|
!disp->msg_force
|
||||||
|
)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
menu_display_fb_unset_dirty();
|
menu_display_fb_unset_dirty();
|
||||||
|
12
menu/menu.c
12
menu/menu.c
@ -90,12 +90,13 @@ static void menu_push_to_history_playlist(void)
|
|||||||
bool menu_load_content(void)
|
bool menu_load_content(void)
|
||||||
{
|
{
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
menu_display_t *disp = menu_display_get_ptr();
|
||||||
driver_t *driver = driver_get_ptr();
|
driver_t *driver = driver_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
|
|
||||||
/* redraw menu frame */
|
/* redraw menu frame */
|
||||||
if (menu)
|
if (disp)
|
||||||
menu->msg_force = true;
|
disp->msg_force = true;
|
||||||
|
|
||||||
menu_entry_iterate(MENU_ACTION_NOOP);
|
menu_entry_iterate(MENU_ACTION_NOOP);
|
||||||
|
|
||||||
@ -111,8 +112,8 @@ bool menu_load_content(void)
|
|||||||
snprintf(msg, sizeof(msg), "Failed to load %s.\n", name);
|
snprintf(msg, sizeof(msg), "Failed to load %s.\n", name);
|
||||||
rarch_main_msg_queue_push(msg, 1, 90, false);
|
rarch_main_msg_queue_push(msg, 1, 90, false);
|
||||||
|
|
||||||
if (menu)
|
if (disp)
|
||||||
menu->msg_force = true;
|
disp->msg_force = true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -132,6 +133,7 @@ bool menu_load_content(void)
|
|||||||
|
|
||||||
void menu_common_load_content(bool persist)
|
void menu_common_load_content(bool persist)
|
||||||
{
|
{
|
||||||
|
menu_display_t *disp = menu_display_get_ptr();
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
menu_list_t *menu_list = menu_list_get_ptr();
|
menu_list_t *menu_list = menu_list_get_ptr();
|
||||||
if (!menu || !menu_list)
|
if (!menu || !menu_list)
|
||||||
@ -140,7 +142,7 @@ void menu_common_load_content(bool persist)
|
|||||||
event_command(persist ? EVENT_CMD_LOAD_CONTENT_PERSIST : EVENT_CMD_LOAD_CONTENT);
|
event_command(persist ? EVENT_CMD_LOAD_CONTENT_PERSIST : EVENT_CMD_LOAD_CONTENT);
|
||||||
|
|
||||||
menu_list_flush_stack(menu_list, NULL, MENU_SETTINGS);
|
menu_list_flush_stack(menu_list, NULL, MENU_SETTINGS);
|
||||||
menu->msg_force = true;
|
disp->msg_force = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -39,6 +39,8 @@ typedef struct menu_framebuf
|
|||||||
|
|
||||||
typedef struct menu_display
|
typedef struct menu_display
|
||||||
{
|
{
|
||||||
|
bool msg_force;
|
||||||
|
|
||||||
menu_framebuf_t frame_buf;
|
menu_framebuf_t frame_buf;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
|
@ -59,7 +59,6 @@ typedef struct
|
|||||||
|
|
||||||
bool need_refresh;
|
bool need_refresh;
|
||||||
bool nonblocking_refresh;
|
bool nonblocking_refresh;
|
||||||
bool msg_force;
|
|
||||||
bool push_start_screen;
|
bool push_start_screen;
|
||||||
|
|
||||||
bool defer_core;
|
bool defer_core;
|
||||||
|
@ -432,8 +432,9 @@ int menu_entry_iterate(unsigned action)
|
|||||||
int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action)
|
int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
menu_navigation_t *nav = menu_navigation_get_ptr();
|
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
menu_navigation_t *nav = menu_navigation_get_ptr();
|
||||||
|
menu_display_t *disp = menu_display_get_ptr();
|
||||||
menu_list_t *menu_list = menu_list_get_ptr();
|
menu_list_t *menu_list = menu_list_get_ptr();
|
||||||
menu_file_list_cbs_t *cbs = menu_list_get_actiondata_at_offset(menu_list->selection_buf, i);
|
menu_file_list_cbs_t *cbs = menu_list_get_actiondata_at_offset(menu_list->selection_buf, i);
|
||||||
|
|
||||||
@ -493,7 +494,8 @@ int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ACTION_MESSAGE:
|
case MENU_ACTION_MESSAGE:
|
||||||
menu->msg_force = true;
|
if (disp)
|
||||||
|
disp->msg_force = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MENU_ACTION_SEARCH:
|
case MENU_ACTION_SEARCH:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user