projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drisw: Try harder to probe whether MIT-SHM works
[mesa.git]
/
src
/
glx
/
glxclient.h
diff --git
a/src/glx/glxclient.h
b/src/glx/glxclient.h
index e26a83eba9eff49edb8ecddada9e8bb2da6e891d..3e8274e1c3ab9db0711954b8024e121a650f1cb4 100644
(file)
--- a/
src/glx/glxclient.h
+++ b/
src/glx/glxclient.h
@@
-47,19
+47,25
@@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
-#ifdef _WIN32
#include <stdint.h>
#include <stdint.h>
-#
endif
+#
include <pthread.h>
#include "GL/glxproto.h"
#include "glxconfig.h"
#include "glxhash.h"
#include "GL/glxproto.h"
#include "glxconfig.h"
#include "glxhash.h"
-#if defined( HAVE_PTHREAD )
-# include <pthread.h>
-#endif
+#include "util/macros.h"
#include "glxextensions.h"
#include "glxextensions.h"
-#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
+#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
#define GLX_MAJOR_VERSION 1 /* current version numbers */
#define GLX_MINOR_VERSION 4
@@
-125,6
+131,7
@@
struct __GLXDRIscreenRec {
int64_t *msc, int64_t *sbc);
int (*setSwapInterval)(__GLXDRIdrawable *pdraw, int interval);
int (*getSwapInterval)(__GLXDRIdrawable *pdraw);
int64_t *msc, int64_t *sbc);
int (*setSwapInterval)(__GLXDRIdrawable *pdraw, int interval);
int (*getSwapInterval)(__GLXDRIdrawable *pdraw);
+ int (*getBufferAge)(__GLXDRIdrawable *pdraw);
};
struct __GLXDRIdrawableRec
};
struct __GLXDRIdrawableRec
@@
-147,11
+154,15
@@
struct __GLXDRIdrawableRec
extern __GLXDRIdisplay *driswCreateDisplay(Display * dpy);
extern __GLXDRIdisplay *driCreateDisplay(Display * dpy);
extern __GLXDRIdisplay *dri2CreateDisplay(Display * dpy);
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 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
/*
** Functions to obtain driver configuration information from a direct
** rendering client application
@@
-211,6
+222,10
@@
typedef struct __GLXattributeMachineRec
__GLXattribute **stackPointer;
} __GLXattributeMachine;
__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,
struct glx_context_vtable {
void (*destroy)(struct glx_context *ctx);
int (*bind)(struct glx_context *context, struct glx_context *old,
@@
-225,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 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);
};
/**
};
/**
@@
-417,6
+437,12
@@
struct glx_context
*/
unsigned long thread_refcount;
*/
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];
};
char gl_extension_bits[__GL_EXT_BYTES];
};
@@
-477,7
+503,7
@@
struct glx_screen_vtable {
unsigned *error);
int (*query_renderer_integer)(struct glx_screen *psc,
int attribute,
unsigned *error);
int (*query_renderer_integer)(struct glx_screen *psc,
int attribute,
- int *value);
+
unsigned
int *value);
int (*query_renderer_string)(struct glx_screen *psc,
int attribute,
const char **value);
int (*query_renderer_string)(struct glx_screen *psc,
int attribute,
const char **value);
@@
-590,6
+616,9
@@
struct glx_display
__GLXDRIdisplay *dri2Display;
__GLXDRIdisplay *dri3Display;
#endif
__GLXDRIdisplay *dri2Display;
__GLXDRIdisplay *dri3Display;
#endif
+#ifdef GLX_USE_WINDOWSGL
+ __GLXDRIdisplay *windowsdriDisplay;
+#endif
};
struct glx_drawable {
};
struct glx_drawable {
@@
-623,14
+652,11
@@
extern void __glXSendLargeCommand(struct glx_context *, const GLvoid *, GLint,
/* Initialize the GLX extension for dpy */
extern struct glx_display *__glXInitialize(Display *);
/* Initialize the GLX extension for dpy */
extern struct glx_display *__glXInitialize(Display *);
-extern void __glXPreferEGL(int state);
-
/************************************************************************/
extern int __glXDebug;
/* This is per-thread storage in an MT environment */
/************************************************************************/
extern int __glXDebug;
/* This is per-thread storage in an MT environment */
-#if defined( HAVE_PTHREAD )
extern void __glXSetCurrentContext(struct glx_context * c);
extern void __glXSetCurrentContext(struct glx_context * c);
@@
-647,14
+673,6
@@
extern struct glx_context *__glXGetCurrentContext(void);
# endif /* defined( GLX_USE_TLS ) */
# endif /* defined( GLX_USE_TLS ) */
-#else
-
-extern struct glx_context *__glXcurrentContext;
-#define __glXGetCurrentContext() __glXcurrentContext
-#define __glXSetCurrentContext(gc) __glXcurrentContext = gc
-
-#endif /* defined( HAVE_PTHREAD ) */
-
extern void __glXSetCurrentContextNull(void);
extern void __glXSetCurrentContextNull(void);
@@
-662,14
+680,9
@@
extern void __glXSetCurrentContextNull(void);
** Global lock for all threads in this address space using the GLX
** extension
*/
** Global lock for all threads in this address space using the GLX
** extension
*/
-#if defined( HAVE_PTHREAD )
extern pthread_mutex_t __glXmutex;
#define __glXLock() pthread_mutex_lock(&__glXmutex)
#define __glXUnlock() pthread_mutex_unlock(&__glXmutex)
extern pthread_mutex_t __glXmutex;
#define __glXLock() pthread_mutex_lock(&__glXmutex)
#define __glXUnlock() pthread_mutex_unlock(&__glXmutex)
-#else
-#define __glXLock()
-#define __glXUnlock()
-#endif
/*
** Setup for a command. Initialize the extension for dpy if necessary.
/*
** Setup for a command. Initialize the extension for dpy if necessary.
@@
-766,9
+779,6
@@
extern char *__glXQueryServerString(Display * dpy, int opcode,
extern char *__glXGetString(Display * dpy, int opcode,
CARD32 screen, CARD32 name);
extern char *__glXGetString(Display * dpy, int opcode,
CARD32 screen, CARD32 name);
-extern char *__glXstrdup(const char *str);
-
-
extern const char __glXGLClientVersion[];
extern const char __glXGLClientExtensions[];
extern const char __glXGLClientVersion[];
extern const char __glXGLClientExtensions[];
@@
-781,7
+791,7
@@
extern GLboolean __glXGetMscRateOML(Display * dpy, GLXDrawable drawable,
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
extern GLboolean
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
extern GLboolean
-__glxGetMscRate(
__GLXDRIdrawable *glxDraw
,
+__glxGetMscRate(
struct glx_screen *psc
,
int32_t * numerator, int32_t * denominator);
/* So that dri2.c:DRI2WireToEvent() can access
int32_t * numerator, int32_t * denominator);
/* So that dri2.c:DRI2WireToEvent() can access
@@
-835,4
+845,12
@@
indirect_create_context_attribs(struct glx_screen *base,
const uint32_t *attribs,
unsigned *error);
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__ */
#endif /* !__GLX_client_h__ */