Files
igl/examples/glut_speed_test/example.cpp
T

68 lines
1.6 KiB
C++

#include <igl/get_seconds.h>
using namespace igl;
#include <cstdio>
#include <cmath>
using namespace std;
#if defined(__APPLE__)
# include <GLUT/glut.h>
#else
# include <GL/glut.h>
#endif
const int width = 1088;
const int height = 612;
int frame_counter = 0;
double start_time;
// number of frames before computing fps
const int frames_per_lap = 1000;
void Display(void)
{
// Clear the screen with current background color
glClearColor(
fabs(sin(get_seconds())),
fabs(sin(get_seconds()/3)),
fabs(sin(get_seconds()/7)),
0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Present frame buffer
glutSwapBuffers();
// Recall Display at next frame
glutPostRedisplay();
frame_counter++;
if(frame_counter == frames_per_lap)
{
double elapsed_time = get_seconds()-start_time;
printf("%g fps: %d frames in %g seconds\n",
(double)frame_counter/elapsed_time,frame_counter,elapsed_time);
// reset frame counter and timer
start_time = get_seconds();
frame_counter = 0;
}
}
int main(int argc,char * argv[])
{
// Initialize GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize(width, height);
// Center window
glutInitWindowPosition(
glutGet(GLUT_SCREEN_WIDTH)/2-glutGet(GLUT_INIT_WINDOW_WIDTH)/2,
glutGet(GLUT_SCREEN_HEIGHT)/2-glutGet(GLUT_INIT_WINDOW_HEIGHT)/2);
glutCreateWindow("");
glutCreateMenu(NULL);
// Set GLUT callbacks
glutDisplayFunc(Display);
//glutReshapeFunc(Reshape);
// initialize timer
start_time = get_seconds();
// Call the GLUT main loop
glutMainLoop();
return 0;
}