Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / glx / glxclient.h
index 2776b44a9e5650bdeaf2dcd697f6fe9d30f86cd9..41edf17210f15d41cc7e55d28737ff20589dc6ca 100644 (file)
 
 #include "glxextensions.h"
 
+#if defined(USE_LIBGLVND)
+#define _GLX_PUBLIC _X_HIDDEN
+#else
+#define _GLX_PUBLIC _X_EXPORT
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 
 #define GLX_MAJOR_VERSION 1       /* current version numbers */
 #define GLX_MINOR_VERSION 4
@@ -144,11 +154,15 @@ struct __GLXDRIdrawableRec
 extern __GLXDRIdisplay *driswCreateDisplay(Display * dpy);
 extern __GLXDRIdisplay *driCreateDisplay(Display * dpy);
 extern __GLXDRIdisplay *dri2CreateDisplay(Display * dpy);
+extern __GLXDRIdisplay *dri3_create_display(Display * dpy);
+extern __GLXDRIdisplay *driwindowsCreateDisplay(Display * dpy);
+
+/*
+**
+*/
 extern void dri2InvalidateBuffers(Display *dpy, XID drawable);
 extern unsigned dri2GetSwapEventType(Display *dpy, XID drawable);
 
-extern __GLXDRIdisplay *dri3_create_display(Display * dpy);
-
 /*
 ** Functions to obtain driver configuration information from a direct
 ** rendering client application
@@ -208,6 +222,10 @@ typedef struct __GLXattributeMachineRec
    __GLXattribute **stackPointer;
 } __GLXattributeMachine;
 
+struct mesa_glinterop_device_info;
+struct mesa_glinterop_export_in;
+struct mesa_glinterop_export_out;
+
 struct glx_context_vtable {
    void (*destroy)(struct glx_context *ctx);
    int (*bind)(struct glx_context *context, struct glx_context *old,
@@ -222,6 +240,11 @@ struct glx_context_vtable {
                          int buffer, const int *attrib_list);
    void (*release_tex_image)(Display * dpy, GLXDrawable drawable, int buffer);
    void * (*get_proc_address)(const char *symbol);
+   int (*interop_query_device_info)(struct glx_context *ctx,
+                                    struct mesa_glinterop_device_info *out);
+   int (*interop_export_object)(struct glx_context *ctx,
+                                struct mesa_glinterop_export_in *in,
+                                struct mesa_glinterop_export_out *out);
 };
 
 /**
@@ -304,13 +327,6 @@ struct glx_context
    GLuint *selectBuf;
    /*@} */
 
-    /**
-     * Fill newImage with the unpacked form of \c oldImage getting it
-     * ready for transport to the server.
-     */
-   void (*fillImage) (struct glx_context *, GLint, GLint, GLint, GLint, GLenum,
-                      GLenum, const GLvoid *, GLubyte *, GLubyte *);
-
     /**
      * Client side attribs.
      */
@@ -414,6 +430,12 @@ struct glx_context
     */
    unsigned long thread_refcount;
 
+   /**
+    * GLX_ARB_create_context_no_error setting for this context.
+    * This needs to be kept here to enforce shared context rules.
+    */
+   Bool noError;
+
    char gl_extension_bits[__GL_EXT_BYTES];
 };
 
@@ -587,6 +609,9 @@ struct glx_display
    __GLXDRIdisplay *dri2Display;
    __GLXDRIdisplay *dri3Display;
 #endif
+#ifdef GLX_USE_WINDOWSGL
+   __GLXDRIdisplay *windowsdriDisplay;
+#endif
 };
 
 struct glx_drawable {
@@ -620,8 +645,6 @@ extern void __glXSendLargeCommand(struct glx_context *, const GLvoid *, GLint,
 /* Initialize the GLX extension for dpy */
 extern struct glx_display *__glXInitialize(Display *);
 
-extern void __glXPreferEGL(int state);
-
 /************************************************************************/
 
 extern int __glXDebug;
@@ -630,7 +653,7 @@ extern int __glXDebug;
 
 extern void __glXSetCurrentContext(struct glx_context * c);
 
-# if defined( GLX_USE_TLS )
+# if defined( USE_ELF_TLS )
 
 extern __thread void *__glX_tls_Context
    __attribute__ ((tls_model("initial-exec")));
@@ -641,7 +664,7 @@ extern __thread void *__glX_tls_Context
 
 extern struct glx_context *__glXGetCurrentContext(void);
 
-# endif /* defined( GLX_USE_TLS ) */
+# endif /* defined( USE_ELF_TLS ) */
 
 extern void __glXSetCurrentContextNull(void);
 
@@ -815,4 +838,12 @@ indirect_create_context_attribs(struct glx_screen *base,
                                 const uint32_t *attribs,
                                 unsigned *error);
 
+
+extern int __glXGetDrawableAttribute(Display * dpy, GLXDrawable drawable,
+                                     int attribute, unsigned int *value);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* !__GLX_client_h__ */