#include "glxextensions.h"
+#if defined(USE_LIBGLVND)
+#define _GLX_PUBLIC _X_HIDDEN
+#else
+#define _GLX_PUBLIC _X_EXPORT
+#endif
#ifdef __cplusplus
extern "C" {
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
__GLXattribute **stackPointer;
} __GLXattributeMachine;
-typedef struct _mesa_glinterop_device_info mesa_glinterop_device_info;
-typedef struct _mesa_glinterop_export_in mesa_glinterop_export_in;
-typedef struct _mesa_glinterop_export_out mesa_glinterop_export_out;
+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);
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,
- mesa_glinterop_device_info *out);
+ struct mesa_glinterop_device_info *out);
int (*interop_export_object)(struct glx_context *ctx,
- mesa_glinterop_export_in *in,
- mesa_glinterop_export_out *out);
+ struct mesa_glinterop_export_in *in,
+ struct mesa_glinterop_export_out *out);
};
/**
*/
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];
};
__GLXDRIdisplay *dri2Display;
__GLXDRIdisplay *dri3Display;
#endif
+#ifdef GLX_USE_WINDOWSGL
+ __GLXDRIdisplay *windowsdriDisplay;
+#endif
};
struct glx_drawable {
/* Initialize the GLX extension for dpy */
extern struct glx_display *__glXInitialize(Display *);
-extern void __glXPreferEGL(int state);
-
/************************************************************************/
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")));
extern struct glx_context *__glXGetCurrentContext(void);
-# endif /* defined( GLX_USE_TLS ) */
+# endif /* defined( USE_ELF_TLS ) */
extern void __glXSetCurrentContextNull(void);
const uint32_t *attribs,
unsigned *error);
+
+extern int __glXGetDrawableAttribute(Display * dpy, GLXDrawable drawable,
+ int attribute, unsigned int *value);
+
#ifdef __cplusplus
}
#endif