summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/x11/glxapi.c8
-rw-r--r--src/mesa/drivers/x11/glxapi.h1
-rw-r--r--src/mesa/drivers/x11/xm_api.c8
-rw-r--r--src/mesa/drivers/x11/xmesa.h6
4 files changed, 18 insertions, 5 deletions
diff --git a/src/mesa/drivers/x11/glxapi.c b/src/mesa/drivers/x11/glxapi.c
index a807074a863..52e60265697 100644
--- a/src/mesa/drivers/x11/glxapi.c
+++ b/src/mesa/drivers/x11/glxapi.c
@@ -379,13 +379,13 @@ glXQueryServerString(Display *dpy, int screen, int name)
/*** GLX_VERSION_1_2 ***/
+/* declare here to avoid including xmesa.h */
+extern Display *XMesaGetCurrentDisplay(void);
+
Display PUBLIC *
glXGetCurrentDisplay(void)
{
- /* Same code as in libGL's glxext.c */
- __GLXcontext *gc = (__GLXcontext *) glXGetCurrentContext();
- if (NULL == gc) return NULL;
- return gc->currentDpy;
+ return XMesaGetCurrentDisplay();
}
diff --git a/src/mesa/drivers/x11/glxapi.h b/src/mesa/drivers/x11/glxapi.h
index aff38f7531d..cc4f902925b 100644
--- a/src/mesa/drivers/x11/glxapi.h
+++ b/src/mesa/drivers/x11/glxapi.h
@@ -37,7 +37,6 @@
* work properly.
*/
typedef struct __GLXcontextRec {
- Display *currentDpy;
GLboolean isDirect;
GLXDrawable currentDrawable;
GLXDrawable currentReadable;
diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c
index b54900b2aeb..a0695c3d87c 100644
--- a/src/mesa/drivers/x11/xm_api.c
+++ b/src/mesa/drivers/x11/xm_api.c
@@ -1304,6 +1304,14 @@ XMesaBuffer XMesaGetCurrentReadBuffer( void )
}
+Display *XMesaGetCurrentDisplay(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ XMesaContext xmctx = XMESA_CONTEXT(ctx);
+ return xmctx ? xmctx->display : NULL;
+}
+
+
GLboolean XMesaSetFXmode( GLint mode )
{
diff --git a/src/mesa/drivers/x11/xmesa.h b/src/mesa/drivers/x11/xmesa.h
index cc878e7402e..84b2b27006d 100644
--- a/src/mesa/drivers/x11/xmesa.h
+++ b/src/mesa/drivers/x11/xmesa.h
@@ -241,6 +241,12 @@ extern XMesaBuffer XMesaGetCurrentReadBuffer( void );
/*
+ * Return display of current context.
+ */
+extern Display *XMesaGetCurrentDisplay( void );
+
+
+/*
* Swap the front and back buffers for the given buffer. No action is
* taken if the buffer is not double buffered.
*/