summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/x11/xmesaP.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/x11/xmesaP.h')
-rw-r--r--src/mesa/drivers/x11/xmesaP.h57
1 files changed, 47 insertions, 10 deletions
diff --git a/src/mesa/drivers/x11/xmesaP.h b/src/mesa/drivers/x11/xmesaP.h
index 256a47f0a6a..4dc8425c102 100644
--- a/src/mesa/drivers/x11/xmesaP.h
+++ b/src/mesa/drivers/x11/xmesaP.h
@@ -1,4 +1,4 @@
-/* $Id: xmesaP.h,v 1.1 1999/08/19 00:55:42 jtg Exp $ */
+/* $Id: xmesaP.h,v 1.2 1999/10/08 09:27:12 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -23,6 +23,9 @@
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
+/* $XFree86: xc/lib/GL/mesa/src/X/xmesaP.h,v 1.5 1999/07/06 14:51:28 dawes Exp $ */
+
+
#ifndef XMESAP_H
@@ -30,20 +33,33 @@
#ifdef XFree86Server
-#include "xf86glx_util.h"
+# include "GL/xf86glx.h"
+# include "xf86glx_util.h"
#else
-#ifdef SHM
-#include <X11/extensions/XShm.h>
-#endif
+# ifdef GLX_DIRECT_RENDERING
+# include "dri_mesa.h"
+# endif
+# ifdef SHM
+# include <X11/extensions/XShm.h>
+# endif
#endif
#include "GL/xmesa.h"
#include "types.h"
-#ifdef FX
+#if defined(FX) && !defined(GLX_DIRECT_RENDERING)
#include "GL/fxmesa.h"
#include "../FX/fxdrv.h"
#endif
+#if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server)
+# include "xdriP.h"
+#else
+# define DRI_DRAWABLE_ARG
+# define DRI_DRAWABLE_PARM
+# define DRI_CTX_ARG
+#endif
+
+
/* for PF_8R8G8B24 pixel format */
typedef struct {
GLubyte b;
@@ -52,13 +68,17 @@ typedef struct {
} bgr_t;
+
+
/*
* "Derived" from gl_visual. Basically corresponds to an XVisualInfo.
*/
struct xmesa_visual {
GLvisual *gl_visual; /* Device independent visual parameters */
XMesaDisplay *display; /* The X11 display */
-#ifndef XFree86Server
+#ifdef XFree86Server
+ GLint screen_depth; /* The depth of the screen */
+#else
XVisualInfo *vishandle; /* The pointer returned by glXChooseVisual */
#endif
XMesaVisualInfo visinfo; /* X's visual info */
@@ -119,6 +139,13 @@ struct xmesa_context {
GLubyte clearcolor[4]; /* current clearing color */
unsigned long clearpixel; /* current clearing pixel value */
+
+#if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server)
+ __DRIcontextPrivate *driContextPriv; /* back pointer to DRI context
+ * used for locking
+ */
+ void *private; /* device-specific private context */
+#endif
};
@@ -194,7 +221,14 @@ struct xmesa_buffer {
int num_alloced;
unsigned long alloced_colors[256];
-#ifdef FX
+#if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server)
+ __DRIdrawablePrivate *driDrawPriv; /* back pointer to DRI drawable
+ * used for direct access to framebuffer
+ */
+ void *private; /* device-specific private drawable */
+#endif
+
+#if defined( FX ) && !defined(GLX_DIRECT_RENDERING)
/* For 3Dfx Glide only */
GLboolean FXisHackUsable; /* Can we render into window? */
GLboolean FXwindowHack; /* Are we rendering into a window? */
@@ -278,6 +312,7 @@ struct xmesa_buffer {
+
/*
* If pixelformat==PF_DITHER:
*
@@ -287,6 +322,7 @@ struct xmesa_buffer {
#undef _R
#undef _G
#undef _B
+#undef _D
#ifdef DITHER666
# define _R 6
# define _G 6
@@ -484,8 +520,9 @@ extern triangle_func xmesa_get_triangle_func( GLcontext *ctx );
/* XXX this is a hack to implement shared display lists with 3Dfx */
extern XMesaBuffer XMesaCreateWindowBuffer2( XMesaVisual v,
XMesaWindow w,
- XMesaContext c );
-
+ XMesaContext c
+ DRI_DRAWABLE_ARG
+ );
/*
* These are the extra routines required for integration with XFree86.