Mesa (master): demos: Clean up allocated Textures and Display Lists when demo quit

Brian Paul brianp at kemper.freedesktop.org
Mon Apr 27 13:14:01 UTC 2009


Module: Mesa
Branch: master
Commit: e32660060954c0d1a1f7636c6365970348f3be24
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e32660060954c0d1a1f7636c6365970348f3be24

Author: Shuang He <shuang.he at intel.com>
Date:   Mon Apr 27 07:13:33 2009 -0600

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

---

 progs/demos/ipers.c   |   18 ++++++++++++++++++
 progs/demos/teapot.c  |   11 +++++++++++
 progs/demos/tunnel.c  |    9 +++++++++
 progs/demos/tunnel2.c |    9 +++++++++
 4 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/progs/demos/ipers.c b/progs/demos/ipers.c
index 6e153c0..5d82b0d 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 38ede7a..6bf6e06 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 6a24058..6981da3 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 f4171a8..0288ea0 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;
 }




More information about the mesa-commit mailing list