mesa: Branch 'master' - 2 commits

Brian Paul brianp at kemper.freedesktop.org
Sat Apr 14 07:09:18 PDT 2007


 src/mesa/drivers/osmesa/osmesa.c |    9 +++++++--
 src/mesa/main/context.c          |   26 ++------------------------
 2 files changed, 9 insertions(+), 26 deletions(-)

New commits:
diff-tree 216eb81c53908c9ac774a378425691aa66205a88 (from 4fc46a6c82419ec379896a9b9992c3cb6721904f)
Author: Brian <brian at yutani.localnet.net>
Date:   Sat Apr 14 08:09:12 2007 -0600

    set osmesa renderbuffer refcount=1 upon creation, free renderbuffer in OSMesaDestroyContext()

diff --git a/src/mesa/drivers/osmesa/osmesa.c b/src/mesa/drivers/osmesa/osmesa.c
index 3d7c850..ad8b202 100644
--- a/src/mesa/drivers/osmesa/osmesa.c
+++ b/src/mesa/drivers/osmesa/osmesa.c
@@ -1,8 +1,8 @@
 /*
  * Mesa 3-D graphics library
- * Version:  6.5.1
+ * Version:  6.5.3
  *
- * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -1041,6 +1041,7 @@ new_osmesa_renderbuffer(GLcontext *ctx, 
    const GLuint name = 0;
    struct gl_renderbuffer *rb = _mesa_new_renderbuffer(ctx, name);
    if (rb) {
+      rb->RefCount = 1;
       rb->Delete = osmesa_delete_renderbuffer;
       rb->AllocStorage = osmesa_renderbuffer_storage;
 
@@ -1237,6 +1238,7 @@ OSMesaCreateContextExt( GLenum format, G
       /* create front color buffer in user-provided memory (no back buffer) */
       osmesa->rb = new_osmesa_renderbuffer(&osmesa->mesa, format, type);
       _mesa_add_renderbuffer(osmesa->gl_buffer, BUFFER_FRONT_LEFT, osmesa->rb);
+      assert(osmesa->rb->RefCount == 2);
                         
       _mesa_add_soft_renderbuffers(osmesa->gl_buffer,
                                    GL_FALSE, /* color */
@@ -1297,6 +1299,9 @@ GLAPI void GLAPIENTRY
 OSMesaDestroyContext( OSMesaContext osmesa )
 {
    if (osmesa) {
+      if (osmesa->rb)
+         _mesa_reference_renderbuffer(&osmesa->rb, NULL);
+
       _swsetup_DestroyContext( &osmesa->mesa );
       _tnl_DestroyContext( &osmesa->mesa );
       _vbo_DestroyContext( &osmesa->mesa );
diff-tree 4fc46a6c82419ec379896a9b9992c3cb6721904f (from e19cfabb6ec091982cc92ec59aa5dedf3cdf2302)
Author: Brian <brian at yutani.localnet.net>
Date:   Sat Apr 14 08:06:54 2007 -0600

    more _mesa_unreference_framebuffer() calls, remove dead code

diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 5917071..2041d26 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -1450,30 +1450,6 @@ _mesa_make_current( GLcontext *newCtx, G
       }
    }
 
-#if 0 /** XXX enable this someday */
-   if (oldCtx && oldCtx != newCtx) {
-      /* unbind old context's draw/read buffers */
-      if (oldCtx->DrawBuffer && oldCtx->DrawBuffer->Name == 0) {
-         oldCtx->DrawBuffer->RefCount--;
-         oldCtx->DrawBuffer = NULL;
-      }
-      if (oldCtx->ReadBuffer && oldCtx->ReadBuffer->Name == 0) {
-         oldCtx->ReadBuffer->RefCount--;
-         oldCtx->ReadBuffer = NULL;
-      }
-      if (oldCtx->WinSysDrawBuffer) {
-         ASSERT(oldCtx->WinSysDrawBuffer->Name == 0);
-         oldCtx->WinSysDrawBuffer->RefCount--;
-         oldCtx->WinSysDrawBuffer = NULL;
-      }
-      if (oldCtx->WinSysReadBuffer) {
-         ASSERT(oldCtx->WinSysReadBuffer->Name == 0);
-         oldCtx->WinSysReadBuffer->RefCount--;
-         oldCtx->WinSysReadBuffer = NULL;
-      }
-   }
-#endif
-
    /* We used to call _glapi_check_multithread() here.  Now do it in drivers */
    _glapi_set_context((void *) newCtx);
    ASSERT(_mesa_get_current_context() == newCtx);
@@ -1481,6 +1457,8 @@ _mesa_make_current( GLcontext *newCtx, G
    if (oldCtx) {
       _mesa_unreference_framebuffer(&oldCtx->WinSysDrawBuffer);
       _mesa_unreference_framebuffer(&oldCtx->WinSysReadBuffer);
+      _mesa_unreference_framebuffer(&oldCtx->DrawBuffer);
+      _mesa_unreference_framebuffer(&oldCtx->ReadBuffer);
    }
          
    if (!newCtx) {


More information about the mesa-commit mailing list