From c6c0f947142c0cc82626c238804a68b4e8f53945 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 16 Mar 2006 18:05:25 +0000 Subject: [PATCH] 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. --- src/mesa/drivers/osmesa/osmesa.c | 8 +++++++- src/mesa/drivers/x11/xm_api.c | 7 ++++++- src/mesa/main/context.c | 9 +-------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/mesa/drivers/osmesa/osmesa.c b/src/mesa/drivers/osmesa/osmesa.c index f4ab09c51a4..c628d533911 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 437c9e28461..261ebb90458 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 94319ffcbef..fadfcc52140 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); -- 2.30.2