summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/context.c
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>1999-09-19 23:43:02 +0000
committerKeith Whitwell <[email protected]>1999-09-19 23:43:02 +0000
commit5a437d588975ec0e241a2bf7cc4ce3785cb476bd (patch)
treee6cf1e6822ddd7cc4781ae7871d7fe8072e8ab9d /src/mesa/main/context.c
parentc6569511103235fd29a89ea6dd0c21913805b1d2 (diff)
Cleaning up
Diffstat (limited to 'src/mesa/main/context.c')
-rw-r--r--src/mesa/main/context.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 9b12ad0ede4..d7f751dba5f 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -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