demos: Clean up allocated Textures and Display Lists when demo quit

This commit is contained in:
Shuang He 2009-04-27 07:13:33 -06:00 committed by Brian Paul
parent b618827fac
commit e326600609
4 changed files with 47 additions and 0 deletions

View File

@ -236,11 +236,28 @@ special(int k, int x, int y)
}
}
static void
cleanup(void)
{
int i;
glDeleteTextures(1, &t1id);
glDeleteTextures(1, &t2id);
glDeleteLists(skydlist, 1);
for (i = 0; i < MAX_LOD; i++) {
glDeleteLists(LODdlist[i], 1);
glDeleteLists(LODnumpoly[i], 1);
}
}
static void
key(unsigned char k, int x, int y)
{
switch (k) {
case 27:
cleanup();
exit(0);
break;
@ -707,6 +724,7 @@ main(int ac, char **av)
glutIdleFunc(draw);
glutMainLoop();
cleanup();
return 0;
}

View File

@ -173,10 +173,20 @@ static void special(int k, int x, int y)
}
}
static void cleanup(void)
{
glDeleteTextures(1, &t1id);
glDeleteTextures(1, &t2id);
glDeleteLists(teapotdlist, 1);
glDeleteLists(basedlist, 1);
glDeleteLists(lightdlist, 1);
}
static void key(unsigned char k, int x, int y)
{
switch(k) {
case 27:
cleanup();
exit(0);
break;
@ -670,6 +680,7 @@ int main(int ac, char **av)
glutIdleFunc(draw);
glutMainLoop();
cleanup();
return 0;
}

View File

@ -202,11 +202,19 @@ special(int k, int x, int y)
}
}
static void
cleanup(void)
{
glDeleteTextures(1, &t1id);
glDeleteTextures(1, &t2id);
}
static void
key(unsigned char k, int x, int y)
{
switch (k) {
case 27:
cleanup();
exit(0);
break;
@ -531,5 +539,6 @@ main(int ac, char **av)
glutMainLoop();
cleanup();
return 0;
}

View File

@ -200,6 +200,13 @@ special(int k, int x, int y)
}
}
static void
cleanup(void)
{
glDeleteTextures(1, &t1id);
glDeleteTextures(1, &t2id);
}
static void
key(unsigned char k, int x, int y)
{
@ -207,6 +214,7 @@ key(unsigned char k, int x, int y)
case 27:
glutDestroyWindow(channel[0]);
glutDestroyWindow(channel[1]);
cleanup();
exit(0);
break;
@ -602,6 +610,7 @@ main(int ac, char **av)
calcposobs();
glutMainLoop();
cleanup();
return 0;
}