diff --git a/menu/menu_animation.c b/menu/menu_animation.c index 0eff82df49..611cb64dce 100644 --- a/menu/menu_animation.c +++ b/menu/menu_animation.c @@ -647,29 +647,6 @@ void menu_animation_ticker_str(char *s, size_t len, uint64_t idx, anim->is_active = true; } -void menu_animation_update_time(void) -{ - static retro_time_t last_clock_update = 0; - menu_animation_t *anim = menu_animation_get_ptr(); - settings_t *settings = config_get_ptr(); - - anim->cur_time = retro_get_time_usec(); - anim->delta_time = anim->cur_time - anim->old_time; - - if (anim->delta_time >= IDEAL_DT * 4) - anim->delta_time = IDEAL_DT * 4; - if (anim->delta_time <= IDEAL_DT / 4) - anim->delta_time = IDEAL_DT / 4; - anim->old_time = anim->cur_time; - - if (((anim->cur_time - last_clock_update) > 1000000) - && settings->menu.timedate_enable) - { - anim->is_active = true; - last_clock_update = anim->cur_time; - } -} - bool menu_animation_ctl(enum menu_animation_ctl_state state, void *data) { menu_animation_t *anim = menu_animation_get_ptr(); @@ -695,6 +672,28 @@ bool menu_animation_ctl(enum menu_animation_ctl_state state, void *data) *ptr = anim->delta_time; } return true; + case MENU_ANIMATION_CTL_UPDATE_TIME: + { + static retro_time_t last_clock_update = 0; + settings_t *settings = config_get_ptr(); + + anim->cur_time = retro_get_time_usec(); + anim->delta_time = anim->cur_time - anim->old_time; + + if (anim->delta_time >= IDEAL_DT * 4) + anim->delta_time = IDEAL_DT * 4; + if (anim->delta_time <= IDEAL_DT / 4) + anim->delta_time = IDEAL_DT / 4; + anim->old_time = anim->cur_time; + + if (((anim->cur_time - last_clock_update) > 1000000) + && settings->menu.timedate_enable) + { + anim->is_active = true; + last_clock_update = anim->cur_time; + } + } + return true; } return false; diff --git a/menu/menu_animation.h b/menu/menu_animation.h index 5d9a7f6f81..f64ee874d3 100644 --- a/menu/menu_animation.h +++ b/menu/menu_animation.h @@ -39,7 +39,8 @@ enum menu_animation_ctl_state MENU_ANIMATION_CTL_IS_ACTIVE = 0, MENU_ANIMATION_CTL_CLEAR_ACTIVE, MENU_ANIMATION_CTL_SET_ACTIVE, - MENU_ANIMATION_CTL_DELTA_TIME + MENU_ANIMATION_CTL_DELTA_TIME, + MENU_ANIMATION_CTL_UPDATE_TIME }; enum menu_animation_easing_type @@ -114,8 +115,6 @@ bool menu_animation_update(float dt); void menu_animation_ticker_str(char *s, size_t len, uint64_t tick, const char *str, bool selected); -void menu_animation_update_time(void); - bool menu_animation_ctl(enum menu_animation_ctl_state state, void *data); #ifdef __cplusplus diff --git a/menu/menu_iterate.c b/menu/menu_iterate.c index 85ffc63598..d9f4e4d012 100644 --- a/menu/menu_iterate.c +++ b/menu/menu_iterate.c @@ -567,7 +567,7 @@ int menu_iterate_render(void) if (BIT64_GET(menu->state, MENU_STATE_BLIT)) { - menu_animation_update_time(); + menu_animation_ctl(MENU_ANIMATION_CTL_UPDATE_TIME, NULL); if (driver->render) driver->render(); }