summaryrefslogtreecommitdiff
path: root/main_headless.c
diff options
context:
space:
mode:
authorMorten Hustveit <morten.hustveit@gmail.com>2014-12-02 14:22:11 -0500
committerMorten Hustveit <morten.hustveit@gmail.com>2014-12-02 14:22:11 -0500
commit0ef8e84c082a80354b502b169b6c79fccffa4405 (patch)
treec62b361bdc570598f7e8035963f8520bfd764702 /main_headless.c
parent706da965d3c7892ef09b83bdf6120f104faa2ede (diff)
Make a headless entry point for benchmarking purposes
Diffstat (limited to 'main_headless.c')
-rw-r--r--main_headless.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/main_headless.c b/main_headless.c
new file mode 100644
index 0000000..c5cd5bd
--- /dev/null
+++ b/main_headless.c
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <sys/time.h>
+
+#include "ray.h"
+
+static const size_t kFramesToRender = 100;
+
+int main(int argc, char** argv) {
+ fprintf(stderr, "Rendering %zu frames\n", kFramesToRender);
+
+ unsigned char* buffer = calloc(4, WIDTH * HEIGHT);
+
+ struct timeval start;
+ gettimeofday(&start, NULL);
+
+ for (size_t i = 0; i < kFramesToRender; ++i)
+ trace_scene(i * 0.01f, buffer, 0);
+
+ struct timeval end;
+ gettimeofday(&end, NULL);
+
+ free(buffer);
+
+ fprintf(stderr, "Average %.2f ms/frame\n",
+ (1.0e3 * (end.tv_sec - start.tv_sec) +
+ 1.0e-3 * (end.tv_usec - start.tv_usec)) /
+ kFramesToRender);
+
+ return EXIT_SUCCESS;
+}