diff options
author | Shuang He <[email protected]> | 2009-04-27 07:13:33 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-04-27 07:13:33 -0600 |
commit | e32660060954c0d1a1f7636c6365970348f3be24 (patch) | |
tree | 95026a9d4a9705cbec430955ddbdfbf4b3a52a4f /progs | |
parent | b618827fac84ca12a354da5808f30e96bedbc92a (diff) |
demos: Clean up allocated Textures and Display Lists when demo quit
Diffstat (limited to 'progs')
-rw-r--r-- | progs/demos/ipers.c | 18 | ||||
-rw-r--r-- | progs/demos/teapot.c | 11 | ||||
-rw-r--r-- | progs/demos/tunnel.c | 9 | ||||
-rw-r--r-- | 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 6e153c04e15..5d82b0dc924 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 38ede7ac3e1..6bf6e064095 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 6a240580e8a..6981da32988 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 f4171a8346d..0288ea0f8ce 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; } |