Cleaning up
authorKeith Whitwell <keith@tungstengraphics.com>
Sun, 19 Sep 1999 23:43:02 +0000 (23:43 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Sun, 19 Sep 1999 23:43:02 +0000 (23:43 +0000)
src/mesa/main/attrib.c
src/mesa/main/context.c
src/mesa/main/depth.c

index c4dae95739b255c64ee4b7055b71f1180c63bdd5..80aee7b8c0f717c3f1fba293b036fa7410ddc9c2 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: attrib.c,v 1.3 1999/09/18 20:41:22 keithw Exp $ */
+/* $Id: attrib.c,v 1.4 1999/09/19 23:43:02 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -492,6 +492,7 @@ void gl_PopAttrib( GLcontext* ctx )
                }
                TEST_AND_UPDATE(ctx->Light.ColorMaterialEnabled, enable->ColorMaterial, GL_COLOR_MATERIAL);
                TEST_AND_UPDATE(ctx->Polygon.CullFlag, enable->CullFace, GL_CULL_FACE);
+               TEST_AND_UPDATE(ctx->Depth.Test, enable->DepthTest, GL_DEPTH_TEST);
                TEST_AND_UPDATE(ctx->Color.DitherFlag, enable->Dither, GL_DITHER);
                TEST_AND_UPDATE(ctx->Fog.Enabled, enable->Fog, GL_FOG);
                TEST_AND_UPDATE(ctx->Light.Enabled, enable->Lighting, GL_LIGHTING);
index 9b12ad0ede4da289c490653b149151497aa8c734..d7f751dba5f291c66b6b9952b5e0235161f4438b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: context.c,v 1.8 1999/09/18 20:41:22 keithw Exp $ */
+/* $Id: context.c,v 1.9 1999/09/19 23:43:02 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -1350,10 +1350,17 @@ void gl_destroy_context( GLcontext *ctx )
       for (i = 0 ; i < MAX_MODELVIEW_STACK_DEPTH ; i++) {
         gl_matrix_dtr( &ctx->ModelViewStack[i] );
       }
-
+      gl_matrix_dtr( &ctx->ProjectionMatrix );
+      for (i = 0 ; i < MAX_PROJECTION_STACK_DEPTH ; i++) {
+        gl_matrix_dtr( &ctx->ProjectionStack[i] );
+      }
 
       free( ctx->PB );
-      free( ctx->VB );
+
+      if(ctx->input != ctx->VB->IM)
+         gl_immediate_free( ctx->input );
+
+      gl_vb_free( ctx->VB );
 
       ctx->Shared->RefCount--;
       assert(ctx->Shared->RefCount>=0);
@@ -1411,6 +1418,14 @@ void gl_destroy_context( GLcontext *ctx )
       if (ctx->EvalMap.Map2Texture4.Points)
          free( ctx->EvalMap.Map2Texture4.Points );
 
+      /* Free cache of immediate buffers. */
+      while (ctx->nr_im_queued-- > 0) {
+         struct immediate * next = ctx->freed_im_queue->next;
+         free( ctx->freed_im_queue );
+         ctx->freed_im_queue = next;
+      }
+      gl_extensions_dtr(ctx);
+
       free( (void *) ctx );
 
 #ifndef THREADS
index 7ac2be01da0e759b788507d539fad9b2680c86d7..7fac7184923f1623d939f491e5d856064267301f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: depth.c,v 1.2 1999/09/10 14:24:35 keithw Exp $ */
+/* $Id: depth.c,v 1.3 1999/09/19 23:43:02 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -817,6 +817,7 @@ void gl_alloc_depth_buffer( GLcontext* ctx )
    if (!ctx->Buffer->Depth) {
       /* out of memory */
       ctx->Depth.Test = GL_FALSE;
+      ctx->NewState |= NEW_RASTER_OPS;
       gl_error( ctx, GL_OUT_OF_MEMORY, "Couldn't allocate depth buffer" );
    }
 }