* Written by Pawel W. Olszta, <olszta@sourceforge.net>
* Creation date: Fri Dec 3 1999
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
#define G_LOG_DOMAIN "freeglut-display"
#include "../include/GL/freeglut.h"
-#include "../include/GL/freeglut_internal.h"
+#include "freeglut_internal.h"
/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
*/
glFlush();
+ /*
+ * If it's single-buffered, we shouldn't be here.
+ */
+ if ( ! fgStructure.Window->Window.DoubleBuffered ) return ;
+
#if TARGET_HOST_UNIX_X11
/*
* Issue the glXSwapBuffers call and be done with it
SwapBuffers( fgStructure.Window->Window.Device );
#endif
+
+ /* GLUT_FPS env var support */
+ if (fgState.FPSInterval) {
+ GLint t = glutGet(GLUT_ELAPSED_TIME);
+ fgState.SwapCount++;
+ if (fgState.SwapTime == 0)
+ fgState.SwapTime = t;
+ else if (t - fgState.SwapTime > fgState.FPSInterval) {
+ float time = 0.001 * (t - fgState.SwapTime);
+ float fps = (float) fgState.SwapCount / time;
+ fprintf(stderr, "freeglut: %d frames in %.2f seconds = %.2f FPS\n",
+ fgState.SwapCount, time, fps);
+ fgState.SwapTime = t;
+ fgState.SwapCount = 0;
+ }
+ }
}
/*