diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-02-05 11:28:09 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-02-05 11:28:09 +0000 |
commit | ea065b8224470fac133e28d33c8b82feac89709a (patch) | |
tree | 9256481dac01e1fc6f6481e7b580a77fca37e5bc | |
parent | 0552f44d2f37c73b8d88821423789ece84875100 (diff) |
spinner: compile fix, complete the transition for benchmarking
-rw-r--r-- | spinner-demo.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/spinner-demo.c b/spinner-demo.c index 3f2f5da..10e3a6f 100644 --- a/spinner-demo.c +++ b/spinner-demo.c @@ -185,9 +185,13 @@ int main(int argc, char **argv) double zoom = 0.75; int show_fps = 1; const char *version; + int benchmark; device = device_open(argc, argv); version = device_show_version(argc, argv); + benchmark = device_get_benchmark(argc,argv); + if (benchmark == 0) + benchmark = 20; signal(SIGHUP, signal_handler); @@ -256,7 +260,7 @@ int main(int argc, char **argv) zoom *= factor; gettimeofday(&now, NULL); - if (show_fps) { + if (benchmark < 0 && show_fps) { if (last_fps.tv_sec) fps_draw(cr, device->name, version, &last_fps, &now); @@ -278,6 +282,16 @@ int main(int argc, char **argv) frames = 0; } } + + if (benchmark > 0) { + delta = now.tv_sec - start.tv_sec; + delta += (now.tv_usec - start.tv_usec)*1e-6; + if (delta > benchmark) { + printf("spinner: %.2f fps\n", + frame / delta); + break; + } + } } while (!done); if (benchmark < 0) { |