diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-11-13 10:27:16 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-11-13 10:27:16 -0500 |
commit | f7c0d2badb3f06a5f90f7a25aeca6242d2aba093 (patch) | |
tree | 43aa391baccfa2d6e26c40823234bcc6694afcb5 /swaybg/main.c | |
parent | 1011957465dd9a6e6d29ecb4dc07f0cb8af50ea5 (diff) |
Clean up some things better in wayland clients
Diffstat (limited to 'swaybg/main.c')
-rw-r--r-- | swaybg/main.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/swaybg/main.c b/swaybg/main.c index 5ceb94bc..af0a1b27 100644 --- a/swaybg/main.c +++ b/swaybg/main.c @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <wayland-client.h> +#include <time.h> #include "client.h" #include "log.h" @@ -17,18 +18,28 @@ int main(int argc, char **argv) { uint8_t r = 0, g = 0, b = 0; + long last_ms = 0; int rs; do { - if (!client_prerender(state)) continue; + struct timespec spec; + clock_gettime(CLOCK_MONOTONIC, &spec); + long ms = round(spec.tv_nsec / 1.0e6); + cairo_set_source_rgb(state->cairo, r, g, b); cairo_rectangle(state->cairo, 0, 0, 100, 100); cairo_fill(state->cairo); rs = client_render(state); - if (rs == 1) { - sway_log(L_INFO, "rendering %d %d %d", r, g, b); - r++; g++; b++; + if (ms - last_ms > 100) { + r++; + if (r == 0) { + g++; + if (g == 0) { + b++; + } + } + ms = last_ms; } } while (rs); |