summaryrefslogtreecommitdiff
path: root/progs/demos
diff options
context:
space:
mode:
authorShuang He <shuang.he@intel.com>2009-04-27 07:13:33 -0600
committerBrian Paul <brianp@vmware.com>2009-04-27 07:13:33 -0600
commite32660060954c0d1a1f7636c6365970348f3be24 (patch)
tree95026a9d4a9705cbec430955ddbdfbf4b3a52a4f /progs/demos
parentb618827fac84ca12a354da5808f30e96bedbc92a (diff)
demos: Clean up allocated Textures and Display Lists when demo quit
Diffstat (limited to 'progs/demos')
-rw-r--r--progs/demos/ipers.c18
-rw-r--r--progs/demos/teapot.c11
-rw-r--r--progs/demos/tunnel.c9
-rw-r--r--progs/demos/tunnel2.c9
4 files changed, 47 insertions, 0 deletions
diff --git a/progs/demos/ipers.c b/progs/demos/ipers.c
index 6e153c04e1..5d82b0dc92 100644
--- a/progs/demos/ipers.c
+++ b/progs/demos/ipers.c
@@ -237,10 +237,27 @@ 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;
}
diff --git a/progs/demos/teapot.c b/progs/demos/teapot.c
index 38ede7ac3e..6bf6e06409 100644
--- a/progs/demos/teapot.c
+++ b/progs/demos/teapot.c
@@ -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;
}
diff --git a/progs/demos/tunnel.c b/progs/demos/tunnel.c
index 6a240580e8..6981da3298 100644
--- a/progs/demos/tunnel.c
+++ b/progs/demos/tunnel.c
@@ -203,10 +203,18 @@ 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;
}
diff --git a/progs/demos/tunnel2.c b/progs/demos/tunnel2.c
index f4171a8346..0288ea0f8c 100644
--- a/progs/demos/tunnel2.c
+++ b/progs/demos/tunnel2.c
@@ -201,12 +201,20 @@ 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:
glutDestroyWindow(channel[0]);
glutDestroyWindow(channel[1]);
+ cleanup();
exit(0);
break;
@@ -602,6 +610,7 @@ main(int ac, char **av)
calcposobs();
glutMainLoop();
+ cleanup();
return 0;
}