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 | c649f191933e84c9693553f361c994fb934a2795 (patch) | |
tree | 4d79677c15a8e5d3e1f914b763b5fc49db7fba37 | |
parent | 99e477b3bd1c97166513acb9e3037e9e473dd690 (diff) | |
download | swaybg-c649f191933e84c9693553f361c994fb934a2795.tar.gz swaybg-c649f191933e84c9693553f361c994fb934a2795.tar.bz2 |
Clean up some things better in wayland clients
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | main.c | 19 |
2 files changed, 16 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 8da31fa..5a46ffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ add_executable(swaybg ${common} ) -TARGET_LINK_LIBRARIES(swaybg ${WAYLAND_CLIENT_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES}) +TARGET_LINK_LIBRARIES(swaybg ${WAYLAND_CLIENT_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} -lm) install( TARGETS swaybg @@ -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); |