glx: Use _Xglobal_lock for protecting extension display list
[mesa.git] / src / glx / glxclient.h
index 4ce99050b35e4db05f7069b8b0db513bec8bdfc7..4f833057ffc304fa3caf4e4490e05abcc1f09c02 100644 (file)
@@ -101,8 +101,6 @@ extern void DRI_glXUseXFont(Font font, int first, int count, int listbase);
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
 
-#include <GL/internal/dri_interface.h>
-
 /**
  * Display dependent methods.  This structure is initialized during the
  * \c driCreateDisplay call.
@@ -173,7 +171,6 @@ struct __GLXDRIdrawableRec
    XID drawable;
    __GLXscreenConfigs *psc;
    GLenum textureTarget;
-   __DRIdrawable *driDrawable;
    GLenum textureFormat;        /* EXT_texture_from_pixmap support */
    unsigned long eventMask;
 };
@@ -419,7 +416,6 @@ struct __GLXcontextRec
    Bool do_destroy;
 #else
    __GLXDRIcontext *driContext;
-   __DRIcontext *__driContext;
 #endif
 #endif
 
@@ -524,22 +520,16 @@ struct __GLXscreenConfigsRec
     */
    const struct glx_context_vtable *direct_context_vtable;
 
+   __GLXdisplayPrivate *display;
+
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     /**
      * Per screen direct rendering interface functions and data.
      */
-   __glxHashTable *drawHash;
    Display *dpy;
    int scr;
 
    __GLXDRIscreen *driScreen;
-
-   const __DRIconfig **driver_configs;
-
-#ifdef __DRI_COPY_SUB_BUFFER
-   const __DRIcopySubBufferExtension *driCopySubBuffer;
-#endif
-
 #endif
 
     /**
@@ -567,6 +557,10 @@ struct __GLXscreenConfigsRec
  */
 struct __GLXdisplayPrivateRec
 {
+   /* The extension protocol codes */
+   XExtCodes *codes;
+   struct __GLXdisplayPrivateRec *next;
+
     /**
      * Back pointer to the display
      */
@@ -606,6 +600,8 @@ struct __GLXdisplayPrivateRec
    __GLXscreenConfigs **screenConfigs;
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
+   __glxHashTable *drawHash;
+
     /**
      * Per display direct rendering interface functions and data.
      */
@@ -619,8 +615,10 @@ extern int
 glx_screen_init(__GLXscreenConfigs *psc,
                int screen, __GLXdisplayPrivate * priv);
 
+#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
 extern __GLXDRIdrawable *
 dri2GetGlxDrawableFromXDrawableId(Display *dpy, XID id);
+#endif
 
 extern GLubyte *__glXFlushRenderBuffer(__GLXcontext *, GLubyte *);
 
@@ -790,9 +788,9 @@ extern GLboolean __glXGetMscRateOML(Display * dpy, GLXDrawable drawable,
                                     int32_t * denominator);
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
-GLboolean
-__driGetMscRateOML(__DRIdrawable * draw,
-                   int32_t * numerator, int32_t * denominator, void *private);
+extern GLboolean
+__glxGetMscRate(__GLXDRIdrawable *glxDraw,
+               int32_t * numerator, int32_t * denominator);
 
 /* So that dri2.c:DRI2WireToEvent() can access
  * glx_info->codes->first_event */