Moved _glapi_check_multithread() call into drivers, instead of in
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 16 Mar 2006 18:05:25 +0000 (18:05 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 16 Mar 2006 18:05:25 +0000 (18:05 +0000)
_mesa_make_current().
This removes an ugly #if !defined(IN_DRI_DRIVER) from core Mesa.

src/mesa/drivers/osmesa/osmesa.c
src/mesa/drivers/x11/xm_api.c
src/mesa/main/context.c

index f4ab09c51a46e6da520d90fdc6a4736f748bcdcb..c628d5339115e1d413828a171a312858c1eca587 100644 (file)
@@ -2,7 +2,7 @@
  * Mesa 3-D graphics library
  * Version:  6.5
  *
- * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2006  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"),
@@ -1051,6 +1051,12 @@ OSMesaMakeCurrent( OSMesaContext ctx, void *buffer, GLenum type,
    ctx->height = height;
 
    osmesa_update_state( &ctx->mesa, 0 );
+
+   /* Call this periodically to detect when the user has begun using
+    * GL rendering from multiple threads.
+    */
+   _glapi_check_multithread();
+
    _mesa_make_current( &ctx->mesa, ctx->gl_buffer, ctx->gl_buffer );
 
    if (ctx->userRowLength)
index 437c9e284611bce142e609d002fb11bdc8d47af6..261ebb90458fd69f3cfd9561e6a984543f0b9247 100644 (file)
@@ -2,7 +2,7 @@
  * Mesa 3-D graphics library
  * Version:  6.5
  *
- * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2006  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"),
@@ -2067,6 +2067,11 @@ GLboolean XMesaMakeCurrent2( XMesaContext c, XMesaBuffer drawBuffer,
 
       c->xm_buffer = drawBuffer;
 
+      /* Call this periodically to detect when the user has begun using
+       * GL rendering from multiple threads.
+       */
+      _glapi_check_multithread();
+
       _mesa_make_current(&(c->mesa),
                          &drawBuffer->mesa_buffer,
                          &readBuffer->mesa_buffer);
index 94319ffcbefc633c677b77c66ed305e76d335b70..fadfcc5214061108c9908c756a6dfc74d14bb262 100644 (file)
@@ -1597,14 +1597,7 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,
       }
    }
 
-#if !defined(IN_DRI_DRIVER)
-   /* We call this function periodically (just here for now) in
-    * order to detect when multithreading has begun.  In a DRI driver, this
-    * step is done by the driver loader (e.g., libGL).
-    */
-   _glapi_check_multithread();
-#endif /* !defined(IN_DRI_DRIVER) */
-
+   /* We used to call _glapi_check_multithread() here.  Now do it in drivers */
    _glapi_set_context((void *) newCtx);
    ASSERT(_mesa_get_current_context() == newCtx);