mesa: Branch 'master'

George Sapountzis gsap7 at kemper.freedesktop.org
Fri Mar 30 16:20:33 UTC 2007


 include/GL/xmesa_xf86.h          |    1 +
 src/mesa/drivers/x11/glxheader.h |    1 -
 src/mesa/drivers/x11/xm_api.c    |   39 ++++++++++++---------------------------
 src/mesa/drivers/x11/xm_buffer.c |   21 +++++++++------------
 src/mesa/drivers/x11/xm_dd.c     |    4 ----
 src/mesa/drivers/x11/xmesaP.h    |    5 +++--
 6 files changed, 25 insertions(+), 46 deletions(-)

New commits:
diff-tree 7439a36785b6a2783e80a40a96c09db8f56dc2bc (from 7eba12edce871c3db835decbf1a0271acfd3eb68)
Author: George Sapountzis <gsap7 at yahoo.gr>
Date:   Wed Dec 6 06:49:28 2006 +0200

    Clean and update XMesa/XFree86 interface.
    
    Drop XMesaSetVisualDisplay(), XMesaReset(), no longer used.
    
    Add XMesaCopyContext() and move the GlxSetRenderTables() call for XGL within
    XMesaForceCurrent(). This is to make xserver/GL/mesa/X/xf86glx.c unaware of
    Mesa internals.
    
    Also, clean some ifdef's to make it clear that USE_XSHM and XFree86Server are
    mutually exclusive.
    
    Lastly,
    - move gcstruct.h from glxheader.h up to xmesa_xf86.h since it calls *gc->ops
    - drop GL/glxtokens.h from xm_api|dd.c, GLX tokens come from glcore.h and are
      used irrelevant of XFree86.

diff --git a/include/GL/xmesa_xf86.h b/include/GL/xmesa_xf86.h
index 3c3d204..c84ffe8 100644
--- a/include/GL/xmesa_xf86.h
+++ b/include/GL/xmesa_xf86.h
@@ -41,6 +41,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
 
 #include "scrnintstr.h"
 #include "pixmapstr.h"
+#include "gcstruct.h"
 
 typedef struct _XMesaImageRec XMesaImage;
 
diff --git a/src/mesa/drivers/x11/glxheader.h b/src/mesa/drivers/x11/glxheader.h
index 844a783..8c5c696 100644
--- a/src/mesa/drivers/x11/glxheader.h
+++ b/src/mesa/drivers/x11/glxheader.h
@@ -36,7 +36,6 @@
 
 # include "resource.h"
 # include "windowstr.h"
-# include "gcstruct.h"
 # include "xf86glx_util.h"
 
 #else
diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c
index 24b19d8..63b9ac5 100644
--- a/src/mesa/drivers/x11/xm_api.c
+++ b/src/mesa/drivers/x11/xm_api.c
@@ -80,10 +80,6 @@
 #include "tnl/t_pipeline.h"
 #include "drivers/common/driverfuncs.h"
 
-#ifdef XFree86Server
-#include <GL/glxtokens.h>
-#endif
-
 /**
  * Global X driver lock
  */
@@ -179,9 +175,7 @@ static int host_byte_order( void )
  */
 static int check_for_xshm( XMesaDisplay *display )
 {
-#if defined(XFree86Server)
-   return 0;
-#elif defined(USE_XSHM)
+#if defined(USE_XSHM) && !defined(XFree86Server)
    int major, minor, ignore;
    Bool pixmaps;
 
@@ -1359,11 +1353,6 @@ XMesaVisual XMesaCreateVisual( XMesaDisp
       return NULL;
    }
 
-   /*
-    * In the X server, NULL is passed in for the display.  It will have
-    * to be set before using this visual.  See XMesaSetVisualDisplay()
-    * below.
-    */
    v->display = display;
 
    /* Save a copy of the XVisualInfo struct because the user may X_mesa_free()
@@ -1469,12 +1458,6 @@ XMesaVisual XMesaCreateVisual( XMesaDisp
 }
 
 
-void XMesaSetVisualDisplay( XMesaDisplay *dpy, XMesaVisual v )
-{
-    v->display = dpy;
-}
-
-
 void XMesaDestroyVisual( XMesaVisual v )
 {
 #ifndef XFree86Server
@@ -1986,6 +1969,10 @@ XMesaBuffer XMesaGetCurrentReadBuffer( v
 GLboolean XMesaForceCurrent(XMesaContext c)
 {
    if (c) {
+#ifdef XGLServer
+      _glapi_set_dispatch(c->mesa.CurrentDispatch);
+#endif
+
       if (&(c->mesa) != _mesa_get_current_context()) {
 	 _mesa_make_current(&c->mesa, c->mesa.DrawBuffer, c->mesa.ReadBuffer);
       }
@@ -2005,6 +1992,13 @@ GLboolean XMesaLoseCurrent(XMesaContext 
 }
 
 
+GLboolean XMesaCopyContext( XMesaContext xm_src, XMesaContext xm_dst, GLuint mask )
+{
+   _mesa_copy_context(&xm_src->mesa, &xm_dst->mesa, mask);
+   return GL_TRUE;
+}
+
+
 /*
  * Switch 3Dfx support hack between window and full-screen mode.
  */
@@ -2426,15 +2420,6 @@ void XMesaGarbageCollect( void )
 }
 
 
-void XMesaReset( void )
-{
-    while (XMesaBufferList)
-	XMesaDestroyBuffer(XMesaBufferList);
-
-    XMesaBufferList = NULL;
-}
-
-
 unsigned long XMesaDitherColor( XMesaContext xmesa, GLint x, GLint y,
                                 GLfloat red, GLfloat green,
                                 GLfloat blue, GLfloat alpha )
diff --git a/src/mesa/drivers/x11/xm_buffer.c b/src/mesa/drivers/x11/xm_buffer.c
index bb8fe31..10621cb 100644
--- a/src/mesa/drivers/x11/xm_buffer.c
+++ b/src/mesa/drivers/x11/xm_buffer.c
@@ -37,7 +37,7 @@
 #include "renderbuffer.h"
 
 
-#ifndef XFree86Server
+#if defined(USE_XSHM) && !defined(XFree86Server)
 static volatile int mesaXErrorFlag = 0;
 
 /**
@@ -51,18 +51,14 @@ mesaHandleXError(XMesaDisplay *dpy, XErr
    mesaXErrorFlag = 1;
    return 0;
 }
-#endif
-
 
 /**
  * Allocate a shared memory XImage back buffer for the given XMesaBuffer.
  * Return:  GL_TRUE if success, GL_FALSE if error
  */
-#ifndef XFree86Server
 static GLboolean
 alloc_back_shm_ximage(XMesaBuffer b, GLuint width, GLuint height)
 {
-#ifdef USE_XSHM
    /*
     * We have to do a _lot_ of error checking here to be sure we can
     * really use the XSHM extension.  It seems different servers trigger
@@ -152,10 +148,13 @@ alloc_back_shm_ximage(XMesaBuffer b, GLu
    }
 
    return GL_TRUE;
+}
 #else
+static GLboolean
+alloc_back_shm_ximage(XMesaBuffer b, GLuint width, GLuint height)
+{
    /* Can't compile XSHM support */
    return GL_FALSE;
-#endif
 }
 #endif
 
@@ -187,14 +186,12 @@ alloc_back_buffer(XMesaBuffer b, GLuint 
          return;
 
       /* Allocate new back buffer */
-#ifdef XFree86Server
-      /* Allocate a regular XImage for the back buffer. */
-      b->backxrb->ximage = XMesaCreateImage(b->xm_visual->BitsPerPixel,
-                                            width, height, NULL);
-      {
-#else
       if (b->shm == 0 || !alloc_back_shm_ximage(b, width, height)) {
 	 /* Allocate a regular XImage for the back buffer. */
+#ifdef XFree86Server
+	 b->backxrb->ximage = XMesaCreateImage(b->xm_visual->BitsPerPixel,
+                                               width, height, NULL);
+#else
 	 b->backxrb->ximage = XCreateImage(b->xm_visual->display,
                                       b->xm_visual->visinfo->visual,
                                       GET_VISUAL_DEPTH(b->xm_visual),
diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c
index dbac3b8..543ff69 100644
--- a/src/mesa/drivers/x11/xm_dd.c
+++ b/src/mesa/drivers/x11/xm_dd.c
@@ -53,10 +53,6 @@
 #include "tnl/tnl.h"
 #include "tnl/t_context.h"
 
-#ifdef XFree86Server
-#include <GL/glxtokens.h>
-#endif
-
 
 
 /*
diff --git a/src/mesa/drivers/x11/xmesaP.h b/src/mesa/drivers/x11/xmesaP.h
index 85cb6b6..aab138f 100644
--- a/src/mesa/drivers/x11/xmesaP.h
+++ b/src/mesa/drivers/x11/xmesaP.h
@@ -579,10 +579,11 @@ extern XMesaBuffer XMesaCreateWindowBuff
  * These are the extra routines required for integration with XFree86.
  * None of these routines should be user visible. -KEM
  */
-extern void XMesaSetVisualDisplay( XMesaDisplay *dpy, XMesaVisual v );
 extern GLboolean XMesaForceCurrent(XMesaContext c);
 extern GLboolean XMesaLoseCurrent(XMesaContext c);
-extern void XMesaReset( void );
+extern GLboolean XMesaCopyContext( XMesaContext src,
+				   XMesaContext dst,
+				   GLuint mask );
 
 
 #define ENABLE_EXT_texure_compression_s3tc 0 /* SW texture compression */



More information about the mesa-commit mailing list