#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);
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) {
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;
}
case 27:
case 'q':
case 'Q':
- exit(0);
+ quit = 1;
+ break;
}
}