1 #define _GNU_SOURCE /* For RTLD_NEXT */
12 /* How many frames between reports. */
13 #define REPORT_FREQ 60
19 static struct timeval tv_last;
20 struct timeval tv_now;
22 if ((count % REPORT_FREQ) == 0) {
23 gettimeofday (&tv_now, NULL);
25 printf ("glfps: Initializing FPS timer\n");
27 double elapsed = ((tv_now.tv_sec - tv_last.tv_sec) +
28 (tv_now.tv_usec - tv_last.tv_usec) / 1e6);
29 printf ("FPS: %.3f\n", ((double) REPORT_FREQ) / elapsed);
38 glXSwapBuffers (Display *dpy, GLXDrawable drawable)
40 static typeof(&glXSwapBuffers) real_glXSwapBuffers = NULL;
42 if (real_glXSwapBuffers == NULL)
43 real_glXSwapBuffers = dlsym (RTLD_NEXT, "glXSwapBuffers");
47 real_glXSwapBuffers (dpy, drawable);