menu_animation: add menu_timer system
This commit is contained in:
parent
2c628860c8
commit
d35f747b5a
|
@ -27,7 +27,8 @@
|
||||||
"menu_driver.h": "c",
|
"menu_driver.h": "c",
|
||||||
"file_path.h": "c",
|
"file_path.h": "c",
|
||||||
"unordered_map": "c",
|
"unordered_map": "c",
|
||||||
"unordered_set": "c"
|
"unordered_set": "c",
|
||||||
|
"sstream": "cpp"
|
||||||
},
|
},
|
||||||
"C_Cpp.dimInactiveRegions": false,
|
"C_Cpp.dimInactiveRegions": false,
|
||||||
}
|
}
|
|
@ -711,3 +711,30 @@ bool menu_animation_ctl(enum menu_animation_ctl_state state, void *data)
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void menu_timer_start(menu_timer_t *timer, menu_timer_ctx_entry_t *timer_entry)
|
||||||
|
{
|
||||||
|
menu_animation_ctx_tag tag = (uintptr_t) timer;
|
||||||
|
|
||||||
|
menu_timer_kill(timer);
|
||||||
|
|
||||||
|
*timer = 0.0f;
|
||||||
|
|
||||||
|
menu_animation_ctx_entry_t entry;
|
||||||
|
|
||||||
|
entry.easing_enum = EASING_LINEAR;
|
||||||
|
entry.tag = tag;
|
||||||
|
entry.duration = timer_entry->duration;
|
||||||
|
entry.target_value = 1.0f;
|
||||||
|
entry.subject = timer;
|
||||||
|
entry.cb = timer_entry->cb;
|
||||||
|
entry.userdata = timer_entry->userdata;
|
||||||
|
|
||||||
|
menu_animation_push(&entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
void menu_timer_kill(menu_timer_t *timer)
|
||||||
|
{
|
||||||
|
menu_animation_ctx_tag tag = (uintptr_t) timer;
|
||||||
|
menu_animation_kill_by_tag(&tag);
|
||||||
|
}
|
||||||
|
|
|
@ -118,6 +118,19 @@ typedef struct menu_animation_ctx_ticker
|
||||||
const char *str;
|
const char *str;
|
||||||
} menu_animation_ctx_ticker_t;
|
} menu_animation_ctx_ticker_t;
|
||||||
|
|
||||||
|
typedef float menu_timer_t;
|
||||||
|
|
||||||
|
typedef struct menu_timer_ctx_entry
|
||||||
|
{
|
||||||
|
float duration;
|
||||||
|
tween_cb cb;
|
||||||
|
void *userdata;
|
||||||
|
} menu_timer_ctx_entry_t;
|
||||||
|
|
||||||
|
void menu_timer_start(menu_timer_t *timer, menu_timer_ctx_entry_t *timer_entry);
|
||||||
|
|
||||||
|
void menu_timer_kill(menu_timer_t *timer);
|
||||||
|
|
||||||
bool menu_animation_update(float delta_time);
|
bool menu_animation_update(float delta_time);
|
||||||
|
|
||||||
bool menu_animation_get_ideal_delta_time(menu_animation_ctx_delta_t *delta);
|
bool menu_animation_get_ideal_delta_time(menu_animation_ctx_delta_t *delta);
|
||||||
|
|
Loading…
Reference in New Issue