summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2006-03-16 18:05:25 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2006-03-16 18:05:25 +0000
commitc6c0f947142c0cc82626c238804a68b4e8f53945 (patch)
treed81219dacaad6ce3e3d80f298662288c79c6a7e2
parentef8653a83800bc4b8e116e03ad52604097224378 (diff)
Moved _glapi_check_multithread() call into drivers, instead of in
_mesa_make_current(). This removes an ugly #if !defined(IN_DRI_DRIVER) from core Mesa.
-rw-r--r--src/mesa/drivers/osmesa/osmesa.c8
-rw-r--r--src/mesa/drivers/x11/xm_api.c7
-rw-r--r--src/mesa/main/context.c9
3 files changed, 14 insertions, 10 deletions
diff --git a/src/mesa/drivers/osmesa/osmesa.c b/src/mesa/drivers/osmesa/osmesa.c
index f4ab09c51a..c628d53391 100644
--- a/src/mesa/drivers/osmesa/osmesa.c
+++ b/src/mesa/drivers/osmesa/osmesa.c
@@ -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)
diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c
index 437c9e2846..261ebb9045 100644
--- a/src/mesa/drivers/x11/xm_api.c
+++ b/src/mesa/drivers/x11/xm_api.c
@@ -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);
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 94319ffcbe..fadfcc5214 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -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);