Start updating menu->input.joypad and menu->input.mouse per-frame

This commit is contained in:
twinaphex 2015-05-11 22:43:16 +02:00
parent 92c4e5ce66
commit 76407c9ef2
3 changed files with 13 additions and 5 deletions

View File

@ -332,11 +332,11 @@ int menu_iterate(retro_input_t input,
{
static retro_time_t last_clock_update = 0;
int32_t ret = 0;
unsigned action = menu_input_frame(input, trigger_input);
runloop_t *runloop = rarch_main_get_ptr();
menu_handle_t *menu = menu_driver_get_ptr();
settings_t *settings = config_get_ptr();
menu->input.joypad = menu_input_frame(input, trigger_input);
menu->cur_time = rarch_get_time_usec();
menu->dt = menu->cur_time - menu->old_time;
@ -352,7 +352,7 @@ int menu_iterate(retro_input_t input,
last_clock_update = menu->cur_time;
}
menu_entry_iterate(action);
menu_entry_iterate(menu->input.joypad);
if (runloop->is_menu && !runloop->is_idle)
menu_display_fb();

View File

@ -225,6 +225,12 @@ typedef struct
bool active;
} action;
struct
{
unsigned joypad;
uint64_t mouse;
} input;
rarch_setting_t *list_settings;
animation_t *animation;
bool animation_is_active;

View File

@ -764,6 +764,8 @@ static int menu_input_mouse_post_iterate(uint64_t *input_mouse,
menu_list_t *menu_list = menu_list_get_ptr();
menu_navigation_t *nav = menu_navigation_get_ptr();
*input_mouse = MOUSE_ACTION_NONE;
if (!menu)
return -1;
@ -944,8 +946,8 @@ static int menu_input_pointer_post_iterate(menu_file_list_cbs_t *cbs,
void menu_input_post_iterate(int *ret, unsigned action)
{
menu_entry_t entry;
menu_handle_t *menu = menu_driver_get_ptr();
menu_list_t *menu_list = menu_list_get_ptr();
uint64_t input_mouse = MOUSE_ACTION_NONE;
settings_t *settings = config_get_ptr();
size_t selected = menu_navigation_get_current_selection();
menu_file_list_cbs_t *cbs = (menu_file_list_cbs_t*)
@ -954,9 +956,9 @@ void menu_input_post_iterate(int *ret, unsigned action)
menu_entry_get(&entry, selected, NULL, false);
if (settings->menu.mouse.enable)
*ret = menu_input_mouse_post_iterate (&input_mouse, cbs, &entry, action);
*ret = menu_input_mouse_post_iterate (&menu->input.mouse, cbs, &entry, action);
*ret = menu_input_mouse_frame(cbs, &entry, input_mouse);
*ret = menu_input_mouse_frame(cbs, &entry, menu->input.mouse);
if (settings->menu.pointer.enable)
*ret |= menu_input_pointer_post_iterate(cbs, &entry, action);