diff options
Diffstat (limited to 'visualizer.c')
| -rw-r--r-- | visualizer.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/visualizer.c b/visualizer.c index 219d44cd3..2ec6e34f5 100644 --- a/visualizer.c +++ b/visualizer.c | |||
| @@ -178,6 +178,21 @@ static bool update_keyframe_animation(keyframe_animation_t* animation, visualize | |||
| 178 | return true; | 178 | return true; |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | void run_next_keyframe(keyframe_animation_t* animation, visualizer_state_t* state) { | ||
| 182 | int next_frame = animation->current_frame + 1; | ||
| 183 | if (next_frame == animation->num_frames) { | ||
| 184 | next_frame = 0; | ||
| 185 | } | ||
| 186 | keyframe_animation_t temp_animation = *animation; | ||
| 187 | temp_animation.current_frame = next_frame; | ||
| 188 | temp_animation.time_left_in_frame = animation->frame_lengths[next_frame]; | ||
| 189 | temp_animation.first_update_of_frame = true; | ||
| 190 | temp_animation.last_update_of_frame = false; | ||
| 191 | temp_animation.need_update = false; | ||
| 192 | visualizer_state_t temp_state = *state; | ||
| 193 | (*temp_animation.frame_functions[next_frame])(&temp_animation, &temp_state); | ||
| 194 | } | ||
| 195 | |||
| 181 | bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state) { | 196 | bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state) { |
| 182 | (void)animation; | 197 | (void)animation; |
| 183 | (void)state; | 198 | (void)state; |
