xserver: Branch 'refs/remotes/origin/glucose-2' - 3 commits

Ben Byer bbyer at kemper.freedesktop.org
Thu Sep 20 16:51:30 PDT 2007


 hw/xgl/glxext/xglglxext.c |    8 +++++---
 hw/xgl/xglglx.c           |   19 ++++++++++---------
 hw/xgl/xglglx.h           |    6 ++++--
 3 files changed, 19 insertions(+), 14 deletions(-)

New commits:
diff-tree a2cf3609094be42c9a576aebe147df2c5ecfb3a6 (from 8231b546d399d1d923e5a93a8197bc9a9eec40d3)
Author: José Fonseca <jrfonseca at tungstengraphics.com>
Date:   Thu Sep 20 23:21:32 2007 +0100

    Mimic the changes of the glx server interfaces in the wrapper functions
    so that we can get the benefit of compiler type checking.

diff --git a/hw/xgl/glxext/xglglxext.c b/hw/xgl/glxext/xglglxext.c
index a613454..f96c069 100644
--- a/hw/xgl/glxext/xglglxext.c
+++ b/hw/xgl/glxext/xglglxext.c
@@ -52,6 +52,8 @@
 #define XGL_TEXTURE_RECTANGLE_BIT (1 << 3)
 #define XGL_TEXTURE_CUBE_MAP_BIT  (1 << 4)
 
+extern void GlxWrapInitVisuals(miInitVisualsProcPtr *);
+
 extern __GLXprovider *__xglMesaProvider;
 
 typedef struct _xglGLScreen {
@@ -5548,7 +5550,7 @@ xglCreateDrawable (__GLXscreen *screen,
 
     memset (pBufferPriv, 0, sizeof (xglGLBufferRec));
 
-    if (!GlxDrawableInit (&pBufferPriv->base, screen, pDrawable, drawId, modes))
+    if (!__glXDrawableInit (&pBufferPriv->base, screen, pDrawable, drawId, modes))
     {
 	xfree (pBufferPriv);
 	return NULL;
@@ -5844,7 +5846,7 @@ xglLoseCurrent (__GLXcontext *context)
     xglGLContextPtr pContext = (xglGLContextPtr) context;
     __GLXcontext    *mesaContext = pContext->mesaContext;
 
-    GlxFlushContextCache ();
+    __glXFlushContextCache ();
     GlxSetRenderTables (0);
 
     if (!mesaContext)
@@ -6133,7 +6135,7 @@ xglLoseCurrentContext (void *closure)
 	   before switching context */
 	glFinish ();
 
-	GlxFlushContextCache ();
+	__glXFlushContextCache ();
 	GlxSetRenderTables (0);
     }
 }
diff --git a/hw/xgl/xglglx.c b/hw/xgl/xglglx.c
index b8e214d..21f48d1 100644
--- a/hw/xgl/xglglx.c
+++ b/hw/xgl/xglglx.c
@@ -88,7 +88,7 @@ GlxInitVisuals (VisualPtr     *visualp,
 }
 
 void
-GlxFlushContextCache (void)
+__glXFlushContextCache (void)
 {
     if (glXHandle)
 	(*__xglGLXFunc.flushContextCache) ();
@@ -109,7 +109,7 @@ GlxPushProvider (__GLXprovider *provider
 }
 
 void
-GlxScreenInit (__GLXscreen *screen,
+__glXScreenInit (__GLXscreen *screen,
 	       ScreenPtr   pScreen)
 {
     if (glXHandle)
@@ -117,21 +117,21 @@ GlxScreenInit (__GLXscreen *screen,
 }
 
 void
-GlxScreenDestroy (__GLXscreen *screen)
+__glXScreenDestroy (__GLXscreen *screen)
 {
     if (glXHandle)
 	(*__xglGLXFunc.screenDestroy) (screen);
 }
 
 GLboolean
-GlxDrawableInit (__GLXdrawable *drawable,
-		 __GLXcontext  *ctx,
-		 DrawablePtr   pDrawable,
-		 XID	       drawId,
-		 __GLcontextModes *modes)
+__glXDrawableInit (__GLXdrawable *drawable,
+                   __GLXscreen *screen,
+		   DrawablePtr pDrawable, 
+		   XID drawId,
+		   __GLcontextModes *modes)
 {
     if (glXHandle)
-	return (*__xglGLXFunc.drawableInit) (drawable, ctx, pDrawable, drawId, modes);
+	return (*__xglGLXFunc.drawableInit) (drawable, screen, pDrawable, drawId, modes);
 
     return GL_FALSE;
 }
diff --git a/hw/xgl/xglglx.h b/hw/xgl/xglglx.h
index e9cd0cb..531b66e 100644
--- a/hw/xgl/xglglx.h
+++ b/hw/xgl/xglglx.h
@@ -29,6 +29,7 @@
 
 #include "glxserver.h"
 #include "glxscreens.h"
+#include "glxutil.h"
 #include "glxext.h"
 #include "glapitable.h"
 
@@ -53,7 +54,7 @@ typedef struct _xglGLXFunc {
     void (*screenInit) (__GLXscreen *screen, ScreenPtr pScreen);
     void (*screenDestroy) (__GLXscreen *screen);
     GLboolean (*drawableInit) (__GLXdrawable *drawable,
-			       __GLXcontext  *ctx,
+	    		       __GLXscreen *screen,
 			       DrawablePtr   pDrawable,
 			       XID	     drawId,
 			       __GLcontextModes *modes);
diff-tree 8231b546d399d1d923e5a93a8197bc9a9eec40d3 (from 00d28c084f39e3c2609039b12ac881f76f3e1ed9)
Author: José Fonseca <jrfonseca at tungstengraphics.com>
Date:   Thu Sep 20 14:10:09 2007 +0100

    Use new __glXDrawableInit interface.

diff --git a/hw/xgl/glxext/xglglxext.c b/hw/xgl/glxext/xglglxext.c
index 7bdb5f8..a613454 100644
--- a/hw/xgl/glxext/xglglxext.c
+++ b/hw/xgl/glxext/xglglxext.c
@@ -5548,7 +5548,7 @@ xglCreateDrawable (__GLXscreen *screen,
 
     memset (pBufferPriv, 0, sizeof (xglGLBufferRec));
 
-    if (!GlxDrawableInit (&pBufferPriv->base, screen, pDrawable, drawId))
+    if (!GlxDrawableInit (&pBufferPriv->base, screen, pDrawable, drawId, modes))
     {
 	xfree (pBufferPriv);
 	return NULL;
diff --git a/hw/xgl/xglglx.c b/hw/xgl/xglglx.c
index df328e5..b8e214d 100644
--- a/hw/xgl/xglglx.c
+++ b/hw/xgl/xglglx.c
@@ -127,10 +127,11 @@ GLboolean
 GlxDrawableInit (__GLXdrawable *drawable,
 		 __GLXcontext  *ctx,
 		 DrawablePtr   pDrawable,
-		 XID	       drawId)
+		 XID	       drawId,
+		 __GLcontextModes *modes)
 {
     if (glXHandle)
-	return (*__xglGLXFunc.drawableInit) (drawable, ctx, pDrawable, drawId);
+	return (*__xglGLXFunc.drawableInit) (drawable, ctx, pDrawable, drawId, modes);
 
     return GL_FALSE;
 }
diff --git a/hw/xgl/xglglx.h b/hw/xgl/xglglx.h
index 0a8d3b5..e9cd0cb 100644
--- a/hw/xgl/xglglx.h
+++ b/hw/xgl/xglglx.h
@@ -55,7 +55,8 @@ typedef struct _xglGLXFunc {
     GLboolean (*drawableInit) (__GLXdrawable *drawable,
 			       __GLXcontext  *ctx,
 			       DrawablePtr   pDrawable,
-			       XID	     drawId);
+			       XID	     drawId,
+			       __GLcontextModes *modes);
 } xglGLXFuncRec, *xglGLXFuncPtr;
 
 extern xglGLXFuncRec __xglGLXFunc;
diff-tree 00d28c084f39e3c2609039b12ac881f76f3e1ed9 (from 41a5aee3859d4d7e648132ed0c4f204084d7c4f0)
Author: José Fonseca <jrfonseca at tungstengraphics.com>
Date:   Wed Sep 19 11:56:19 2007 +0100

    Dynamically load glxext.so with RTLD_DEEPBIND to avoid picking up duplicate
    symbols from libGL.so.

diff --git a/hw/xgl/xglglx.c b/hw/xgl/xglglx.c
index e45f34e..df328e5 100644
--- a/hw/xgl/xglglx.c
+++ b/hw/xgl/xglglx.c
@@ -157,7 +157,7 @@ xglLoadGLXModules (void)
 	    SYM (__GlxGetMesaProvider, "GlxGetMesaProvider")
 	};
 
-	glXHandle = xglLoadModule ("glxext", RTLD_NOW | RTLD_LOCAL);
+	glXHandle = xglLoadModule ("glxext", RTLD_NOW | RTLD_LOCAL | RTLD_DEEPBIND);
 	if (!glXHandle)
 	    return FALSE;
 


More information about the xorg-commit mailing list