#include "GL/internal/glcore.h"
#include "glapitable.h"
#include "glxextensions.h"
-#if defined( XTHREADS )
-# include "Xthreads.h"
+#if defined( USE_XTHREADS )
+# include <X11/Xthreads.h>
#elif defined( PTHREADS )
# include <pthread.h>
#endif
-#ifdef GLX_BUILT_IN_XMESA
-#include "realglx.h" /* just silences prototype warnings */
-#endif
#define GLX_MAJOR_VERSION 1 /* current version numbers */
#define GLX_MINOR_VERSION 4
#include <GL/internal/dri_interface.h>
-typedef void *(*CreateScreenFunc)(Display *dpy, int scrn, __DRIscreen *psc,
- int numConfigs, __GLXvisualConfig *config);
-
-typedef void *(*CreateNewScreenFunc)(Display *dpy, int scrn, __DRIscreen *psc,
- const __GLcontextModes * modes, const __DRIversion * ddx_version,
- const __DRIversion * dri_version, const __DRIversion * drm_version,
- const __DRIframebuffer * frame_buffer, void * pSAREA,
- int fd, int internal_api_version, __GLcontextModes ** driver_modes);
-
/**
* Display dependent methods. This structure is initialized during the
* Array of pointers to methods to create and initialize the private DRI
* screen data.
*/
- CreateNewScreenFunc * createNewScreen;
+ PFNCREATENEWSCREENFUNC * createNewScreen;
};
struct __DRIdriverRec {
const char *name;
void *handle;
- CreateNewScreenFunc createNewScreenFunc;
+ PFNCREATENEWSCREENFUNC createNewScreenFunc;
struct __DRIdriverRec *next;
};
extern const char *glXGetDriverConfig (const char *driverName);
+extern Bool __glXWindowExists(Display *dpy, GLXDrawable draw);
+
#endif
/************************************************************************/
GLuint alignment;
} __GLXpixelStoreMode;
-/* The next 3 structures are deprecated. Client state is no longer tracked
- * using them. They only remain to maintain the layout / structure offset of
- * __GLXcontextRec. In XFree86 5.0 they will be removed altogether.
- */
-
-typedef struct __GLXvertexArrayPointerStateRecDEPRECATED {
- GLboolean enable;
- void (*proc)(const void *);
- const GLubyte *ptr;
- GLsizei skip;
- GLint size;
- GLenum type;
- GLsizei stride;
-} __GLXvertexArrayPointerStateDEPRECATED;
-
-typedef struct __GLXvertArrayStateRecDEPRECATED {
- __GLXvertexArrayPointerStateDEPRECATED vertex;
- __GLXvertexArrayPointerStateDEPRECATED normal;
- __GLXvertexArrayPointerStateDEPRECATED color;
- __GLXvertexArrayPointerStateDEPRECATED index;
- __GLXvertexArrayPointerStateDEPRECATED texCoord[__GLX_MAX_TEXTURE_UNITS];
- __GLXvertexArrayPointerStateDEPRECATED edgeFlag;
- GLint maxElementsVertices;
- GLint maxElementsIndices;
- GLint activeTexture;
-} __GLXvertArrayStateDEPRECATED;
-
-typedef struct __GLXattributeRecDEPRECATED {
- GLuint mask;
-
- /*
- ** Pixel storage state. Most of the pixel store mode state is kept
- ** here and used by the client code to manage the packing and
- ** unpacking of data sent to/received from the server.
- */
- __GLXpixelStoreMode storePack, storeUnpack;
-
- /*
- ** Vertex Array storage state. The vertex array component
- ** state is stored here and is used to manage the packing of
- ** DrawArrays data sent to the server.
- */
- __GLXvertArrayStateDEPRECATED vertArray;
-} __GLXattributeDEPRECATED;
-
typedef struct __GLXattributeRec {
GLuint mask;
GLenum, const GLvoid*, GLubyte*, GLubyte*);
/**
- * \name Client side attribs.
+ * Client side attribs.
*/
- /*@{*/
- __GLXattributeDEPRECATED stateDEPRECATED;
__GLXattributeMachine attributes;
- /*@}*/
/**
* Client side error code. This is set when client side gl API
extern int __glXDebug;
/* This is per-thread storage in an MT environment */
-#if defined( XTHREADS ) || defined( PTHREADS )
+#if defined( USE_XTHREADS ) || defined( PTHREADS )
extern void __glXSetCurrentContext(__GLXcontext *c);
#define __glXGetCurrentContext() __glXcurrentContext
#define __glXSetCurrentContext(gc) __glXcurrentContext = gc
-#endif /* defined( XTHREADS ) || defined( PTHREADS ) */
+#endif /* defined( USE_XTHREADS ) || defined( PTHREADS ) */
/*
** Global lock for all threads in this address space using the GLX
** extension
*/
-#if defined( XTHREADS )
+#if defined( USE_XTHREADS )
extern xmutex_rec __glXmutex;
#define __glXLock() xmutex_lock(&__glXmutex)
#define __glXUnlock() xmutex_unlock(&__glXmutex)
#endif
-/*
-** GLX_BUILT_IN_XMESA controls whether libGL has a built-in verions of
-** Mesa that can render to non-GLX displays.
-*/
-#ifdef GLX_BUILT_IN_XMESA
-#define GLX_PREFIX(function) _real_##function
-#else
-#define GLX_PREFIX(function) function
-#endif
-
-
extern void __glXInitializeVisualConfigFromTags( __GLcontextModes *config,
int count, const INT32 *bp, Bool tagged_only, Bool fbconfig_style_tags );