Mesa (gallium-xlib-rework): xlib: combine and eliminate some header files

Keith Whitwell keithw at kemper.freedesktop.org
Fri Jan 9 14:38:42 UTC 2009


Module: Mesa
Branch: gallium-xlib-rework
Commit: 05f8e41b9567695e9b96276d3ac5734ed2b268a8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=05f8e41b9567695e9b96276d3ac5734ed2b268a8

Author: Keith Whitwell <keith at tungstengraphics.com>
Date:   Fri Jan  9 10:40:47 2009 +0000

xlib: combine and eliminate some header files

---

 src/gallium/state_trackers/xlib/fakeglx.c       |    2 -
 src/gallium/state_trackers/xlib/fakeglx_fonts.c |    2 +-
 src/gallium/state_trackers/xlib/glxheader.h     |   50 -------
 src/gallium/state_trackers/xlib/xm_api.c        |    2 +-
 src/gallium/state_trackers/xlib/xm_api.h        |  153 ++++++++++++++++++++--
 src/gallium/state_trackers/xlib/xmesaP.h        |  160 -----------------------
 src/gallium/winsys/xlib/xlib_softpipe.c         |    7 +-
 7 files changed, 145 insertions(+), 231 deletions(-)

diff --git a/src/gallium/state_trackers/xlib/fakeglx.c b/src/gallium/state_trackers/xlib/fakeglx.c
index efe1faa..4494a6e 100644
--- a/src/gallium/state_trackers/xlib/fakeglx.c
+++ b/src/gallium/state_trackers/xlib/fakeglx.c
@@ -40,14 +40,12 @@
 
 
 
-#include "glxheader.h"
 #include "glxapi.h"
 #include "xm_api.h"
 #include "context.h"
 #include "config.h"
 #include "macros.h"
 #include "imports.h"
-#include "mtypes.h"
 #include "version.h"
 #include "fakeglx.h"
 #include "state_tracker/st_context.h"
diff --git a/src/gallium/state_trackers/xlib/fakeglx_fonts.c b/src/gallium/state_trackers/xlib/fakeglx_fonts.c
index cf9cb9d..e359046 100644
--- a/src/gallium/state_trackers/xlib/fakeglx_fonts.c
+++ b/src/gallium/state_trackers/xlib/fakeglx_fonts.c
@@ -28,10 +28,10 @@
  * Copyright (C) 1995 Thorsten.Ohl @ Physik.TH-Darmstadt.de
  */
 
-#include "glxheader.h"
 #include "context.h"
 #include "imports.h"
 #include "fakeglx.h"
+#include <GL/glx.h>
 
 
 /* Some debugging info.  */
diff --git a/src/gallium/state_trackers/xlib/glxheader.h b/src/gallium/state_trackers/xlib/glxheader.h
deleted file mode 100644
index 5596f8a..0000000
--- a/src/gallium/state_trackers/xlib/glxheader.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version:  6.5.1
- * 
- * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * 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.
- */
-
-
-#ifndef GLX_HEADER_H
-#define GLX_HEADER_H
-
-#include "glheader.h"
-
-# include <X11/Xlib.h>
-# include <X11/Xlibint.h>
-# include <X11/Xutil.h>
-# ifdef USE_XSHM  /* was SHM */
-#  include <sys/ipc.h>
-#  include <sys/shm.h>
-#  include <X11/extensions/XShm.h>
-# endif
-# include <GL/glx.h>
-# include <sys/time.h>
-
-
-
-
-/* this silences a compiler warning on several systems */
-struct timespec;
-struct itimerspec;
-
-
-#endif /*GLX_HEADER*/
diff --git a/src/gallium/state_trackers/xlib/xm_api.c b/src/gallium/state_trackers/xlib/xm_api.c
index 67a9a1e..82d125b 100644
--- a/src/gallium/state_trackers/xlib/xm_api.c
+++ b/src/gallium/state_trackers/xlib/xm_api.c
@@ -57,7 +57,6 @@
 #undef __WIN32__
 #endif
 
-#include "glxheader.h"
 #include "xm_api.h"
 #include "main/context.h"
 #include "main/framebuffer.h"
@@ -70,6 +69,7 @@
 #include "pipe/p_context.h"
 
 #include "xm_winsys.h"
+#include <GL/glx.h>
 
 /**
  * Global X driver lock
diff --git a/src/gallium/state_trackers/xlib/xm_api.h b/src/gallium/state_trackers/xlib/xm_api.h
index 33d2f2c..2b8302d 100644
--- a/src/gallium/state_trackers/xlib/xm_api.h
+++ b/src/gallium/state_trackers/xlib/xm_api.h
@@ -23,14 +23,6 @@
  */
 
 
-/*
- * Mesa/X11 interface.  This header file serves as the documentation for
- * the Mesa/X11 interface functions.
- *
- * Note: this interface isn't intended for user programs.  It's primarily
- * just for implementing the pseudo-GLX interface.
- */
-
 
 /* Sample Usage:
 
@@ -65,16 +57,25 @@ and create a window, you must do the following to use the X/Mesa interface:
 #define XMESA_H
 
 
+#include "mtypes.h"
+#include "state_tracker/st_context.h"
+#include "state_tracker/st_public.h"
+#include "pipe/p_thread.h"
 
-typedef struct xmesa_context *XMesaContext;
 
-typedef struct xmesa_visual *XMesaVisual;
+# include <X11/Xlib.h>
+# include <X11/Xlibint.h>
+# include <X11/Xutil.h>
+# ifdef USE_XSHM  /* was SHM */
+#  include <sys/ipc.h>
+#  include <sys/shm.h>
+#  include <X11/extensions/XShm.h>
+# endif
 
 typedef struct xmesa_buffer *XMesaBuffer;
+typedef struct xmesa_context *XMesaContext;
+typedef struct xmesa_visual *XMesaVisual;
 
-/* Every user of this file also includes xmesaP.h
- */
-#include "xmesaP.h"
 
 
 /*
@@ -263,4 +264,130 @@ XMesaCreatePixmapTextureBuffer(XMesaVisual v, Pixmap p,
 
 
 
+/***********************************************************************
+ */
+
+extern pipe_mutex _xmesa_lock;
+
+extern struct xmesa_buffer *XMesaBufferList;
+
+
+/**
+ * Visual inforation, derived from GLvisual.
+ * Basically corresponds to an XVisualInfo.
+ */
+struct xmesa_visual {
+   GLvisual mesa_visual;	/* Device independent visual parameters */
+   Display *display;	/* The X11 display */
+   XVisualInfo * visinfo;	/* X's visual info (pointer to private copy) */
+   XVisualInfo *vishandle;	/* Only used in fakeglx.c */
+   GLint BitsPerPixel;		/* True bits per pixel for XImages */
+
+   GLboolean ximage_flag;	/* Use XImage for back buffer (not pixmap)? */
+};
+
+
+/**
+ * Context info, derived from st_context.
+ * Basically corresponds to a GLXContext.
+ */
+struct xmesa_context {
+   struct st_context *st;
+   XMesaVisual xm_visual;	/** pixel format info */
+   XMesaBuffer xm_buffer;	/** current drawbuffer */
+};
+
+
+/**
+ * Types of X/GLX drawables we might render into.
+ */
+typedef enum {
+   WINDOW,          /* An X window */
+   GLXWINDOW,       /* GLX window */
+   PIXMAP,          /* GLX pixmap */
+   PBUFFER          /* GLX Pbuffer */
+} BufferType;
+
+
+/**
+ * Framebuffer information, derived from.
+ * Basically corresponds to a GLXDrawable.
+ */
+struct xmesa_buffer {
+   struct st_framebuffer *stfb;
+
+   GLboolean wasCurrent;	/* was ever the current buffer? */
+   XMesaVisual xm_visual;	/* the X/Mesa visual */
+   Drawable drawable;	/* Usually the X window ID */
+   Colormap cmap;		/* the X colormap */
+   BufferType type;             /* window, pixmap, pbuffer or glxwindow */
+
+   XImage *tempImage;
+   unsigned long selectedEvents;/* for pbuffers only */
+
+   GLuint shm;			/* X Shared Memory extension status:	*/
+				/*    0 = not available			*/
+				/*    1 = XImage support available	*/
+				/*    2 = Pixmap support available too	*/
+#if defined(USE_XSHM)
+   XShmSegmentInfo shminfo;
+#endif
+
+   GC gc;			/* scratch GC for span, line, tri drawing */
+
+   /* GLX_EXT_texture_from_pixmap */
+   GLint TextureTarget; /** GLX_TEXTURE_1D_EXT, for example */
+   GLint TextureFormat; /** GLX_TEXTURE_FORMAT_RGB_EXT, for example */
+   GLint TextureMipmap; /** 0 or 1 */
+
+   struct xmesa_buffer *Next;	/* Linked list pointer: */
+};
+
+
+
+/** cast wrapper */
+static INLINE XMesaContext
+xmesa_context(GLcontext *ctx)
+{
+   return (XMesaContext) ctx->DriverCtx;
+}
+
+
+/** cast wrapper */
+static INLINE XMesaBuffer
+xmesa_buffer(GLframebuffer *fb)
+{
+   struct st_framebuffer *stfb = (struct st_framebuffer *) fb;
+   return (XMesaBuffer) st_framebuffer_private(stfb);
+}
+
+
+extern void
+xmesa_delete_framebuffer(struct gl_framebuffer *fb);
+
+extern XMesaBuffer
+xmesa_find_buffer(Display *dpy, Colormap cmap, XMesaBuffer notThis);
+
+extern void
+xmesa_check_and_update_buffer_size(XMesaContext xmctx, XMesaBuffer drawBuffer);
+
+extern void
+xmesa_destroy_buffers_on_display(Display *dpy);
+
+static INLINE GLuint
+xmesa_buffer_width(XMesaBuffer b)
+{
+   return b->stfb->Base.Width;
+}
+
+static INLINE GLuint
+xmesa_buffer_height(XMesaBuffer b)
+{
+   return b->stfb->Base.Height;
+}
+
+extern int
+xmesa_check_for_xshm(Display *display);
+
+
 #endif
diff --git a/src/gallium/state_trackers/xlib/xmesaP.h b/src/gallium/state_trackers/xlib/xmesaP.h
deleted file mode 100644
index 982212f..0000000
--- a/src/gallium/state_trackers/xlib/xmesaP.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version:  7.1
- *
- * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * 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.
- */
-
-
-#ifndef XMESAP_H
-#define XMESAP_H
-
-
-#include "xm_api.h"
-#include "mtypes.h"
-
-#include "state_tracker/st_context.h"
-#include "state_tracker/st_public.h"
-#include "pipe/p_thread.h"
-
-
-extern pipe_mutex _xmesa_lock;
-
-extern XMesaBuffer XMesaBufferList;
-
-
-/**
- * Visual inforation, derived from GLvisual.
- * Basically corresponds to an XVisualInfo.
- */
-struct xmesa_visual {
-   GLvisual mesa_visual;	/* Device independent visual parameters */
-   Display *display;	/* The X11 display */
-   XVisualInfo * visinfo;	/* X's visual info (pointer to private copy) */
-   XVisualInfo *vishandle;	/* Only used in fakeglx.c */
-   GLint BitsPerPixel;		/* True bits per pixel for XImages */
-
-   GLboolean ximage_flag;	/* Use XImage for back buffer (not pixmap)? */
-};
-
-
-/**
- * Context info, derived from st_context.
- * Basically corresponds to a GLXContext.
- */
-struct xmesa_context {
-   struct st_context *st;
-   XMesaVisual xm_visual;	/** pixel format info */
-   XMesaBuffer xm_buffer;	/** current drawbuffer */
-};
-
-
-/**
- * Types of X/GLX drawables we might render into.
- */
-typedef enum {
-   WINDOW,          /* An X window */
-   GLXWINDOW,       /* GLX window */
-   PIXMAP,          /* GLX pixmap */
-   PBUFFER          /* GLX Pbuffer */
-} BufferType;
-
-
-/**
- * Framebuffer information, derived from.
- * Basically corresponds to a GLXDrawable.
- */
-struct xmesa_buffer {
-   struct st_framebuffer *stfb;
-
-   GLboolean wasCurrent;	/* was ever the current buffer? */
-   XMesaVisual xm_visual;	/* the X/Mesa visual */
-   Drawable drawable;	/* Usually the X window ID */
-   Colormap cmap;		/* the X colormap */
-   BufferType type;             /* window, pixmap, pbuffer or glxwindow */
-
-   XImage *tempImage;
-   unsigned long selectedEvents;/* for pbuffers only */
-
-   GLuint shm;			/* X Shared Memory extension status:	*/
-				/*    0 = not available			*/
-				/*    1 = XImage support available	*/
-				/*    2 = Pixmap support available too	*/
-#if defined(USE_XSHM)
-   XShmSegmentInfo shminfo;
-#endif
-
-   GC gc;			/* scratch GC for span, line, tri drawing */
-
-   /* GLX_EXT_texture_from_pixmap */
-   GLint TextureTarget; /** GLX_TEXTURE_1D_EXT, for example */
-   GLint TextureFormat; /** GLX_TEXTURE_FORMAT_RGB_EXT, for example */
-   GLint TextureMipmap; /** 0 or 1 */
-
-   struct xmesa_buffer *Next;	/* Linked list pointer: */
-};
-
-
-
-/** cast wrapper */
-static INLINE XMesaContext
-xmesa_context(GLcontext *ctx)
-{
-   return (XMesaContext) ctx->DriverCtx;
-}
-
-
-/** cast wrapper */
-static INLINE XMesaBuffer
-xmesa_buffer(GLframebuffer *fb)
-{
-   struct st_framebuffer *stfb = (struct st_framebuffer *) fb;
-   return (XMesaBuffer) st_framebuffer_private(stfb);
-}
-
-
-extern void
-xmesa_delete_framebuffer(struct gl_framebuffer *fb);
-
-extern XMesaBuffer
-xmesa_find_buffer(Display *dpy, Colormap cmap, XMesaBuffer notThis);
-
-extern void
-xmesa_check_and_update_buffer_size(XMesaContext xmctx, XMesaBuffer drawBuffer);
-
-extern void
-xmesa_destroy_buffers_on_display(Display *dpy);
-
-static INLINE GLuint
-xmesa_buffer_width(XMesaBuffer b)
-{
-   return b->stfb->Base.Width;
-}
-
-static INLINE GLuint
-xmesa_buffer_height(XMesaBuffer b)
-{
-   return b->stfb->Base.Height;
-}
-
-extern int
-xmesa_check_for_xshm(Display *display);
-
-#endif
diff --git a/src/gallium/winsys/xlib/xlib_softpipe.c b/src/gallium/winsys/xlib/xlib_softpipe.c
index 79722dd..f53d8e0 100644
--- a/src/gallium/winsys/xlib/xlib_softpipe.c
+++ b/src/gallium/winsys/xlib/xlib_softpipe.c
@@ -33,8 +33,7 @@
  */
 
 
-#include "glxheader.h"
-#include "xmesaP.h"
+#include "xm_api.h"
 
 #undef ASSERT
 #undef Elements
@@ -109,7 +108,7 @@ static volatile int mesaXErrorFlag = 0;
  * Catches potential Xlib errors.
  */
 static int
-mesaHandleXError(XMesaDisplay *dpy, XErrorEvent *event)
+mesaHandleXError(Display *dpy, XErrorEvent *event)
 {
    (void) dpy;
    (void) event;
@@ -154,7 +153,7 @@ alloc_shm_ximage(struct xm_buffer *b, struct xmesa_buffer *xmb,
 #if 0
    GC gc;
 #endif
-   int (*old_handler)(XMesaDisplay *, XErrorEvent *);
+   int (*old_handler)(Display *, XErrorEvent *);
 
    b->tempImage = XShmCreateImage(xmb->xm_visual->display,
                                   xmb->xm_visual->visinfo->visual,




More information about the mesa-commit mailing list