diff options
Diffstat (limited to 'swaybg/main.c')
-rw-r--r-- | swaybg/main.c | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/swaybg/main.c b/swaybg/main.c index db5af375..e8f400c0 100644 --- a/swaybg/main.c +++ b/swaybg/main.c | |||
@@ -2,7 +2,7 @@ | |||
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | #include <wayland-client.h> | 3 | #include <wayland-client.h> |
4 | #include <time.h> | 4 | #include <time.h> |
5 | #include "client.h" | 5 | #include "client/client.h" |
6 | #include "log.h" | 6 | #include "log.h" |
7 | 7 | ||
8 | struct client_state *state; | 8 | struct client_state *state; |
@@ -14,36 +14,23 @@ void sway_terminate(void) { | |||
14 | 14 | ||
15 | int main(int argc, char **argv) { | 15 | int main(int argc, char **argv) { |
16 | init_log(L_INFO); | 16 | init_log(L_INFO); |
17 | if (!(state = client_setup())) { | 17 | if (!(state = client_setup(100, 100))) { |
18 | return -1; | 18 | return -1; |
19 | } | 19 | } |
20 | 20 | ||
21 | uint8_t r = 0, g = 0, b = 0; | 21 | uint8_t r = 100, g = 100, b = 100; |
22 | 22 | ||
23 | long last_ms = 0; | ||
24 | int rs; | ||
25 | do { | 23 | do { |
26 | struct timespec spec; | 24 | if (client_prerender(state)) { |
27 | clock_gettime(CLOCK_MONOTONIC, &spec); | 25 | cairo_set_source_rgb(state->cairo, r / 256.0, g / 256.0, b / 256.0); |
28 | long ms = round(spec.tv_nsec / 1.0e6); | 26 | cairo_rectangle(state->cairo, 0, 0, state->width, state->height); |
29 | 27 | cairo_fill(state->cairo); | |
30 | cairo_set_source_rgb(state->cairo, r, g, b); | 28 | |
31 | cairo_rectangle(state->cairo, 0, 0, 100, 100); | 29 | client_render(state); |
32 | cairo_fill(state->cairo); | 30 | |
33 | 31 | r++; if (r == 0) { g++; if (g == 0) { b++; } } | |
34 | rs = client_render(state); | ||
35 | |||
36 | if (ms - last_ms > 100) { | ||
37 | r++; | ||
38 | if (r == 0) { | ||
39 | g++; | ||
40 | if (g == 0) { | ||
41 | b++; | ||
42 | } | ||
43 | } | ||
44 | ms = last_ms; | ||
45 | } | 32 | } |
46 | } while (rs); | 33 | } while (wl_display_dispatch(state->display) != -1); |
47 | 34 | ||
48 | client_teardown(state); | 35 | client_teardown(state); |
49 | return 0; | 36 | return 0; |