mesa: call glutDestroyWindow() on exit to help find mem leaks
diff --git a/progs/glsl/texdemo1.c b/progs/glsl/texdemo1.c
index d29ecf4..3ceae14 100644
--- a/progs/glsl/texdemo1.c
+++ b/progs/glsl/texdemo1.c
@@ -48,6 +48,7 @@
 static GLfloat Xrot = 20.0, Yrot = 20.0, Zrot = 0.0;
 static GLfloat EyeDist = 10;
 static GLboolean Anim = GL_TRUE;
+static int win = 0;
 
 
 struct uniform_info {
@@ -177,6 +178,7 @@
          EyeDist = 90;
       break;
    case 27:
+      glutDestroyWindow(win);
       exit(0);
    }
    glutPostRedisplay();
@@ -554,7 +556,7 @@
    glutInit(&argc, argv);
    glutInitWindowSize(500, 400);
    glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
-   glutCreateWindow(Demo);
+   win = glutCreateWindow(Demo);
    glutReshapeFunc(Reshape);
    glutKeyboardFunc(key);
    glutSpecialFunc(specialkey);
diff --git a/progs/trivial/quad-tex-2d.c b/progs/trivial/quad-tex-2d.c
index 3a6e523..97c9fc5 100644
--- a/progs/trivial/quad-tex-2d.c
+++ b/progs/trivial/quad-tex-2d.c
@@ -31,6 +31,7 @@
 static GLenum Filter = GL_NEAREST;
 GLenum doubleBuffer;
 static float Rot = 0;
+static int win = 0;
 
 static void Init(void)
 {
@@ -88,6 +89,7 @@
    glFrustum(-1, 1, -1, 1, 10, 20);
 #endif
    glMatrixMode(GL_MODELVIEW);
+   glLoadIdentity();
    glTranslatef(0, 0, -15);
 }
 
@@ -101,6 +103,7 @@
       Rot -= 10.0;
       break;
    case 27:
+      glutDestroyWindow(win);
       exit(0);
    default:
       return;
@@ -170,7 +173,8 @@
     type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
     glutInitDisplayMode(type);
 
-    if (glutCreateWindow("First Tri") == GL_FALSE) {
+    win = glutCreateWindow("First Tri");
+    if (!win) {
 	exit(1);
     }