diff options
-rw-r--r-- | src/mesa/drivers/x11/glxapi.c | 8 | ||||
-rw-r--r-- | src/mesa/drivers/x11/glxapi.h | 1 | ||||
-rw-r--r-- | src/mesa/drivers/x11/xm_api.c | 8 | ||||
-rw-r--r-- | src/mesa/drivers/x11/xmesa.h | 6 |
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. */ |