Merge branch 'llvm-cliptest-viewport'
[mesa.git] / src / mesa / drivers / dri / common / dri_util.h
index 2eadb9ac8c52296d64b803179e9087f5938f99d0..ffffb99b30147802bdf20320dcbbf0fff08690d2 100644 (file)
@@ -51,8 +51,9 @@
 #include <drm.h>
 #include <drm_sarea.h>
 #include <xf86drm.h>
+#include "xmlconfig.h"
 #include "main/glheader.h"
-#include "GL/internal/glcore.h"
+#include "main/mtypes.h"
 #include "GL/internal/dri_interface.h"
 
 #define GLX_BAD_CONTEXT                    5
@@ -68,8 +69,8 @@ extern const __DRIdri2Extension driDRI2Extension;
 extern const __DRIextension driReadDrawableExtension;
 extern const __DRIcopySubBufferExtension driCopySubBufferExtension;
 extern const __DRIswapControlExtension driSwapControlExtension;
-extern const __DRIframeTrackingExtension driFrameTrackingExtension;
 extern const __DRImediaStreamCounterExtension driMediaStreamCounterExtension;
+extern const __DRI2configQueryExtension dri2ConfigQueryExtension;
 
 /**
  * Used by DRI_VALIDATE_DRAWABLE_INFO
@@ -146,8 +147,9 @@ struct __DriverAPIRec {
     /**
      * Context creation callback
      */                    
-    GLboolean (*CreateContext)(const __GLcontextModes *glVis,
-                               __DRIcontext *driContextPriv,
+    GLboolean (*CreateContext)(gl_api api,
+                              const struct gl_config *glVis,
+                              __DRIcontext *driContextPriv,
                                void *sharedContextPrivate);
 
     /**
@@ -160,7 +162,7 @@ struct __DriverAPIRec {
      */
     GLboolean (*CreateBuffer)(__DRIscreen *driScrnPriv,
                               __DRIdrawable *driDrawPriv,
-                              const __GLcontextModes *glVis,
+                              const struct gl_config *glVis,
                               GLboolean pixmapBuffer);
     
     /**
@@ -398,11 +400,6 @@ struct __DRIcontextRec {
      */
     void *driverPrivate;
 
-    /**
-     * Pointer back to the \c __DRIcontext that contains this structure.
-     */
-    __DRIcontext *pctx;
-
     /**
      * Pointer to drawable currently bound to this context for drawing.
      */
@@ -510,29 +507,16 @@ struct __DRIscreenRec {
     int devPrivSize;
     /*@}*/
 
-    /**
-     * Dummy context to which drawables are bound when not bound to any
-     * other context. 
-     *
-     * A dummy hHWContext is created for this context, and is used by the GL
-     * core when a hardware lock is required but the drawable is not currently
-     * bound (e.g., potentially during a SwapBuffers request).  The dummy
-     * context is created when the first "real" context is created on this
-     * screen.
-     */
-    __DRIcontext dummyContextPriv;
-
     /**
      * Device-dependent private information (not stored in the SAREA).
      * 
      * This pointer is never touched by the DRI layer.
      */
+#ifdef __cplusplus
+    void *priv;
+#else
     void *private;
-
-    /**
-     * Pointer back to the \c __DRIscreen that contains this structure.
-     */
-    __DRIscreen *psc;
+#endif
 
     /* Extensions provided by the loader. */
     const __DRIgetDrawableInfoExtension *getDrawableInfo;
@@ -544,15 +528,18 @@ struct __DRIscreenRec {
         * fields will not be valid or initializaed in that case. */
        int enabled;
        __DRIdri2LoaderExtension *loader;
+       __DRIimageLookupExtension *image;
+       __DRIuseInvalidateExtension *useInvalidate;
     } dri2;
 
     /* The lock actually in use, old sarea or DRI2 */
     drmLock *lock;
-};
-
-extern void
-__driUtilMessage(const char *f, ...);
 
+    driOptionCache optionInfo;
+    driOptionCache optionCache;
+   unsigned int api_mask;
+   void *loaderPrivate;
+};
 
 extern void
 __driUtilUpdateDrawableInfo(__DRIdrawable *pdp);