Browse Source

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

tags/mesa_7_5_rc1
Shuang He 16 years ago
parent
commit
e326600609
4 changed files with 47 additions and 0 deletions
  1. 18
    0
      progs/demos/ipers.c
  2. 11
    0
      progs/demos/teapot.c
  3. 9
    0
      progs/demos/tunnel.c
  4. 9
    0
      progs/demos/tunnel2.c

+ 18
- 0
progs/demos/ipers.c 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;
}

+ 11
- 0
progs/demos/teapot.c 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;
}

+ 9
- 0
progs/demos/tunnel.c 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;
}

+ 9
- 0
progs/demos/tunnel2.c 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;
}

Loading…
Cancel
Save