diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-10-08 21:00:55 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-11-20 22:07:01 +0000 |
commit | 02a3208c090b489f74f4459475694f3c786f69ca (patch) | |
tree | 2a0dbd65d3120d876a99bac1517e796a25580b82 /demo.c | |
parent | 7a7c08b430da6310ec61138a2c565e27535dbc34 (diff) |
Diffstat (limited to 'demo.c')
-rw-r--r-- | demo.c | 20 |
1 files changed, 17 insertions, 3 deletions
@@ -1,6 +1,7 @@ #include <string.h> #include <stdio.h> #include <stdlib.h> +#include <stdarg.h> #include <math.h> #include "demo.h" @@ -52,6 +53,8 @@ enum split device_get_split(int argc, char **argv) split = SPLIT_BOTTOM_LEFT; } else if (strcmp(argv[n]+8, "bottom-right") == 0) { split = SPLIT_BOTTOM_RIGHT; + } else { + split = SPLIT_1_16 + atoi(argv[n]+8); } } } @@ -373,13 +376,16 @@ fps_draw (cairo_t *cr, void fps_finish (struct framebuffer *fb, + const char *backend, + const char *version, const char *name, - const char *version) + ...) { cairo_t *cr = cairo_create(fb->surface); cairo_text_extents_t extents; char buf[80]; double avg; + va_list ap; if (frame_count == 0) return; @@ -388,10 +394,10 @@ fps_finish (struct framebuffer *fb, if (version) snprintf (buf, sizeof (buf), "%s (%s): %.1f fps, %d frames", - name, version, 1. / avg, frame_count); + backend, version, 1. / avg, frame_count); else snprintf (buf, sizeof (buf), "%s: %.1f fps, %d frames", - name, 1. / avg, frame_count); + backend, 1. / avg, frame_count); cairo_set_font_size (cr, 32); cairo_text_extents (cr, buf, &extents); @@ -410,6 +416,14 @@ fps_finish (struct framebuffer *fb, cairo_set_source_rgb (cr, .95, .95, .95); cairo_show_text (cr, buf); cairo_destroy (cr); + + va_start(ap, name); + vfprintf (stdout, name, ap); + va_end(ap); + + printf (": %.1f fps, %d frames, %.1f seconds\n", + 1. / avg, frame_count, total_duration); + fflush (stdout); } #ifndef min |