X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=fbgfx;a=blobdiff_plain;f=src%2Fmain.c;h=8881963284eea003037c2ae5769b9ab6d28f5edc;hp=8752567992db2f648b87b1f6ab4c78136976d0f8;hb=6c34c443c62d0b40c91aee5f28985ee99c944caa;hpb=4b522caf5387f8075b7bbb2a2b0475c012157456 diff --git a/src/main.c b/src/main.c index 8752567..8881963 100644 --- a/src/main.c +++ b/src/main.c @@ -4,6 +4,9 @@ #include "fbgfx.h" #include "fbevents.h" #include "tunnel.h" +#include "timer.h" + +unsigned long start_msec, time_msec, num_frames; static void keyboard(int key, int pressed, void *cls); static void mouse(int bn, int pressed, int x, int y, void *cls); @@ -18,11 +21,14 @@ static int quit; int main(void) { fbgfx_save_video_mode(); - if(!(vmem = fbgfx_set_video_mode(800, 600, 16))) { + fbgfx_get_video_mode(&xsz, &ysz, &depth); + + if(!(vmem = fbgfx_set_video_mode(xsz, ysz, 16))) { return 1; } fbgfx_get_video_mode(&xsz, &ysz, &depth); if(depth != 16) { + fprintf(stderr, "failed to set color depth: 16bpp\n"); goto end; } if(fbev_init() == -1) { @@ -36,17 +42,25 @@ int main(void) goto end; } + start_msec = get_time_msec(); for(;;) { fbev_update(); if(quit) break; + time_msec = get_time_msec() - start_msec; + draw_tunnel(vmem); + ++num_frames; } + time_msec = get_time_msec() - start_msec; end: destroy_tunnel(); fbev_shutdown(); fbgfx_restore_video_mode(); + if(num_frames && time_msec) { + printf("\ravg framerate: %.1f\n", (float)num_frames / ((float)time_msec / 1000.0)); + } return 0; } @@ -58,7 +72,8 @@ static void keyboard(int key, int pressed, void *cls) case 27: case 'q': case 'Q': - exit(0); + quit = 1; + break; } }