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