diff options
author | Brian Paul <[email protected]> | 2002-08-17 00:12:12 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2002-08-17 00:12:12 +0000 |
commit | 46a035f76d3b7a2355f7655c9dd7e519d4238cdc (patch) | |
tree | 79178916830b7f890b66fa5f78305c8305a28a41 /src/glut/glx/glut_swap.c | |
parent | 10730663a128c35c0241a79d885665e6272014d7 (diff) |
added glutGetProcAddress() and GLUT_FPS env var option
Diffstat (limited to 'src/glut/glx/glut_swap.c')
-rw-r--r-- | src/glut/glx/glut_swap.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/glut/glx/glut_swap.c b/src/glut/glx/glut_swap.c index 0864e58d429..cb3f653c72c 100644 --- a/src/glut/glx/glut_swap.c +++ b/src/glut/glx/glut_swap.c @@ -5,8 +5,13 @@ and is provided without guarantee or warrantee expressed or implied. This program is -not- in the public domain. */ +#include <stdio.h> #include "glutint.h" +GLint __glutFPS = 0; +GLint __glutSwapCount = 0; +GLint __glutSwapTime = 0; + /* CENTRY */ void APIENTRY glutSwapBuffers(void) @@ -43,5 +48,20 @@ glutSwapBuffers(void) glutPostRedisplay to trigger redraws. If glutPostRedisplay were used, __glutSetWindow would be called and a glFinish to throttle buffering would occur. */ + + if (__glutFPS) { + GLint t = glutGet(GLUT_ELAPSED_TIME); + __glutSwapCount++; + if (__glutSwapTime == 0) + __glutSwapTime = t; + else if (t - __glutSwapTime > __glutFPS) { + float time = 0.001 * (t - __glutSwapTime); + float fps = (float) __glutSwapCount / time; + fprintf(stderr, "GLUT: %d frames in %.2f seconds = %.2f FPS\n", + __glutSwapCount, time, fps); + __glutSwapTime = t; + __glutSwapCount = 0; + } + } } /* ENDCENTRY */ |