* Client-side GLX interface for current context management.
*/
-#ifdef PTHREADS
#include <pthread.h>
-#endif
#include "glxclient.h"
-#ifdef GLX_USE_APPLEGL
-#include <stdlib.h>
-
-#include "apple_glx.h"
-#include "apple_glx_context.h"
-#endif
#include "glapi.h"
* Current context management and locking
*/
-#if defined( PTHREADS )
-
_X_HIDDEN pthread_mutex_t __glXmutex = PTHREAD_MUTEX_INITIALIZER;
# if defined( GLX_USE_TLS )
# endif /* defined( GLX_USE_TLS ) */
-#elif defined( THREADS )
-
-#error Unknown threading method specified.
-
-#else
-
-/* not thread safe */
-_X_HIDDEN struct glx_context *__glXcurrentContext = &dummyContext;
-
-#endif
-
_X_HIDDEN void
__glXSetCurrentContextNull(void)
struct glx_context *gc = (struct glx_context *) gc_user;
struct glx_context *oldGC = __glXGetCurrentContext();
- /* XXX: If this is left out, then libGL ends up not having this
- * symbol, and drivers using it fail to load. Compare the
- * implementation of this symbol to _glapi_noop_enable_warnings(),
- * though, which gets into the library despite no callers, the same
- * prototypes, and the same compile flags to the files containing
- * them. Moving the definition to glapi_nop.c gets it into the
- * library, though.
- */
- (void)_glthread_GetID();
-
/* Make sure that the new context has a nonzero ID. In the request,
* a zero context ID is used only to mean that we bind to no current
* context.
return GL_FALSE;
}
- if (gc == NULL && (draw != None || read != None)) {
- __glXGenerateError(dpy, (draw != None) ? draw : read,
- BadMatch, X_GLXMakeContextCurrent);
- return False;
- }
- if (gc != NULL && (draw == None || read == None)) {
- __glXGenerateError(dpy, None, BadMatch, X_GLXMakeContextCurrent);
- return False;
- }
-
_glapi_check_multithread();
__glXLock();
return GL_FALSE;
}
- if (gc->thread_refcount == 0)
+ if (gc->thread_refcount == 0) {
gc->currentDpy = dpy;
gc->currentDrawable = draw;
gc->currentReadable = read;