1#include "fade.h"
2#include "swaylock.h"
3#include <stdlib.h>
4
5void fade_update(struct swaylock_fade *fade, uint32_t time) {
6 if (fade->current_time >= fade->target_time) {
7 return;
8 }
9
10 double delta = 0;
11 if (fade->old_time != 0) {
12 delta = time - fade->old_time;
13 }
14 fade->old_time = time;
15
16 fade->current_time += delta;
17 if (fade->current_time > fade->target_time) {
18 fade->current_time = fade->target_time;
19 }
20
21 fade->alpha = (double)fade->current_time / (double)fade->target_time;
22}
23
24bool fade_is_complete(struct swaylock_fade *fade) {
25 return fade->target_time == 0 || fade->current_time >= fade->target_time;
26}