free display lists and destroy window upon exit
This commit is contained in:
@@ -26,6 +26,7 @@
|
|||||||
static GLint T0 = 0;
|
static GLint T0 = 0;
|
||||||
static GLint Frames = 0;
|
static GLint Frames = 0;
|
||||||
static GLint autoexit = 0;
|
static GLint autoexit = 0;
|
||||||
|
static GLint win = 0;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -163,6 +164,15 @@ static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0;
|
|||||||
static GLint gear1, gear2, gear3;
|
static GLint gear1, gear2, gear3;
|
||||||
static GLfloat angle = 0.0;
|
static GLfloat angle = 0.0;
|
||||||
|
|
||||||
|
static void
|
||||||
|
cleanup(void)
|
||||||
|
{
|
||||||
|
glDeleteLists(gear1, 1);
|
||||||
|
glDeleteLists(gear2, 1);
|
||||||
|
glDeleteLists(gear3, 1);
|
||||||
|
glutDestroyWindow(win);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
draw(void)
|
draw(void)
|
||||||
{
|
{
|
||||||
@@ -198,16 +208,18 @@ draw(void)
|
|||||||
Frames++;
|
Frames++;
|
||||||
|
|
||||||
{
|
{
|
||||||
GLint t = glutGet(GLUT_ELAPSED_TIME);
|
GLint t = glutGet(GLUT_ELAPSED_TIME);
|
||||||
if (t - T0 >= 5000) {
|
if (t - T0 >= 5000) {
|
||||||
GLfloat seconds = (t - T0) / 1000.0;
|
GLfloat seconds = (t - T0) / 1000.0;
|
||||||
GLfloat fps = Frames / seconds;
|
GLfloat fps = Frames / seconds;
|
||||||
printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
|
printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
|
||||||
T0 = t;
|
T0 = t;
|
||||||
Frames = 0;
|
Frames = 0;
|
||||||
if ((t >= 999.0 * autoexit) && (autoexit))
|
if ((t >= 999.0 * autoexit) && (autoexit)) {
|
||||||
exit(0);
|
cleanup();
|
||||||
}
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,6 +251,7 @@ key(unsigned char k, int x, int y)
|
|||||||
view_rotz -= 5.0;
|
view_rotz -= 5.0;
|
||||||
break;
|
break;
|
||||||
case 27: /* Escape */
|
case 27: /* Escape */
|
||||||
|
cleanup();
|
||||||
exit(0);
|
exit(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -352,7 +365,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
glutInitWindowPosition(0, 0);
|
glutInitWindowPosition(0, 0);
|
||||||
glutInitWindowSize(300, 300);
|
glutInitWindowSize(300, 300);
|
||||||
glutCreateWindow("Gears");
|
win = glutCreateWindow("Gears");
|
||||||
init(argc, argv);
|
init(argc, argv);
|
||||||
|
|
||||||
glutDisplayFunc(draw);
|
glutDisplayFunc(draw);
|
||||||
|
Reference in New Issue
Block a user