diff options
author | Vito Caputo <vcaputo@gnugeneration.com> | 2017-01-18 17:14:52 -0800 |
---|---|---|
committer | Vito Caputo <vcaputo@gnugeneration.com> | 2017-01-18 17:31:44 -0800 |
commit | 524db0cf19648e3c7c78d3e73103b7a0bdcd6bfc (patch) | |
tree | 6fd682629904a210927797c92d956c208666b03a /src/fps.c | |
parent | ee2073d4e411555aba878277131b56f7eb562c84 (diff) |
*: move source into src/ subdir
Restoring some organizational sanity since adopting autotools.
Diffstat (limited to 'src/fps.c')
-rw-r--r-- | src/fps.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/fps.c b/src/fps.c new file mode 100644 index 0000000..99a3f85 --- /dev/null +++ b/src/fps.c @@ -0,0 +1,46 @@ +#include <signal.h> +#include <stdio.h> +#include <sys/time.h> + +#include "fb.h" +#include "util.h" + + +static int print_fps; + + +static void sigalrm_handler(int signum) +{ + print_fps = 1; +} + + +int fps_setup(void) +{ + struct itimerval interval = { + .it_interval = { .tv_sec = 1, .tv_usec = 0 }, + .it_value = { .tv_sec = 1, .tv_usec = 0 }, + }; + + if (signal(SIGALRM, sigalrm_handler) == SIG_ERR) + return 0; + + if (setitimer(ITIMER_REAL, &interval, NULL) < 0) + return 0; + + return 1; +} + + +void fps_print(fb_t *fb) +{ + unsigned n; + + if (!print_fps) + return; + + fb_get_put_pages_count(fb, &n); + printf("FPS: %u\n", n); + + print_fps = 0; +} |