summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--GL/glx/glxcmds.c24
-rw-r--r--GL/glx/glxcmdsswap.c2
-rw-r--r--GL/glx/glxutil.c14
-rw-r--r--GL/glx/glxvisuals.c12
-rw-r--r--GL/mesa/X/xf86glx.c6
6 files changed, 55 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index ac2c718e1..1d73ae885 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2006-03-12 Kristian Høgsberg <krh@redhat.com>
+
+ First batch of AIGLX fixes from David Reveman.
+
+ * GL/mesa/X/xf86glx.c (GlxGetMesaProvider): Add getter for Mesa
+ provider.
+
+ * GL/glx/glxvisuals.c (GlxInitVisuals): Export this for Xgl.
+
+ * GL/glx/glxutil.c (__glXDrawableInit, __glXGetDrawable): Move
+ resource tracking out of drawable constructor to allow wrapping.
+
+ * GL/glx/glxcmdsswap.c (__glXSwapGetDrawableAttributesReply): Use
+ corrent reply size #define.
+
+ * GL/glx/glxcmds.c (GlxSetRenderTables): Add this function.
+ (DoGetDrawableAttributes): Fix array length.
+
2006-03-12 Matthieu Herrb <matthieu.herrb@laas.fr>
* hw/xfree86/dixmods/Makefile.am
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index 6426e294e..ddbf06388 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -58,8 +58,22 @@
#include "glthread.h"
#include "dispatch.h"
+#ifndef GLX_TEXTURE_TARGET_EXT
+#define GLX_TEXTURE_TARGET_EXT 0x6001
+#define GLX_TEXTURE_2D_EXT 0x6002
+#define GLX_TEXTURE_RECTANGLE_EXT 0x6003
+#define GLX_NO_TEXTURE_EXT 0x6004
+#define GLX_Y_INVERTED_EXT 0x6006
+#endif
+
/************************************************************************/
+void
+GlxSetRenderTables (struct _glapi_table *table)
+{
+ _glapi_set_dispatch (table);
+}
+
static int __glXGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc);
static int __glXCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
static int __glXCreateGLXPixmapWithConfigSGIX(__GLXclientState *cl, GLbyte *pc);
@@ -1517,14 +1531,6 @@ int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
pGlxPixmap);
}
-#ifndef GLX_TEXTURE_TARGET_EXT
-#define GLX_TEXTURE_TARGET_EXT 0x6001
-#define GLX_TEXTURE_2D_EXT 0x6002
-#define GLX_TEXTURE_RECTANGLE_EXT 0x6003
-#define GLX_NO_TEXTURE_EXT 0x6004
-#define GLX_Y_INVERTED_EXT 0x6006
-#endif
-
/*
** Get drawable attributes
*/
@@ -1534,7 +1540,7 @@ DoGetDrawableAttributes(__GLXclientState *cl, XID drawId)
ClientPtr client = cl->client;
__GLXpixmap *glxPixmap;
xGLXGetDrawableAttributesReply reply;
- CARD32 attributes[2];
+ CARD32 attributes[4];
int numAttribs;
glxPixmap = (__GLXpixmap *)LookupIDByType(drawId, __glXPixmapRes);
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index e14106913..a52026f88 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -531,7 +531,7 @@ void __glXSwapGetDrawableAttributesReply(ClientPtr client,
__GLX_SWAP_SHORT(&reply->sequenceNumber);
__GLX_SWAP_INT(&reply->length);
__GLX_SWAP_INT(&reply->numAttribs);
- WriteToClient(client, sz_xGLXQueryContextInfoEXTReply, (char *)reply);
+ WriteToClient(client, sz_xGLXGetDrawableAttributesReply, (char *)reply);
__GLX_SWAP_INT_ARRAY((int *)buf, length);
WriteToClient(client, length << 2, (char *)buf);
}
diff --git a/GL/glx/glxutil.c b/GL/glx/glxutil.c
index 8937d12aa..36ffd27eb 100644
--- a/GL/glx/glxutil.c
+++ b/GL/glx/glxutil.c
@@ -225,11 +225,6 @@ __glXDrawableInit(__GLXdrawable *drawable,
drawable->pGlxPixmap = (__GLXpixmap *)
LookupIDByType(drawId, __glXPixmapRes);
- /* since we are creating the drawablePrivate, drawId should be new */
- if (!AddResource(drawId, __glXDrawableRes, drawable)) {
- return GL_FALSE;
- }
-
return GL_TRUE;
}
@@ -251,7 +246,16 @@ __glXGetDrawable(__GLXcontext *ctx, DrawablePtr pDraw, XID drawId)
glxPriv = __glXFindDrawable(drawId);
if (glxPriv == NULL)
+ {
glxPriv = ctx->createDrawable(ctx, pDraw, drawId);
+ /* since we are creating the drawablePrivate, drawId should be new */
+ if (!AddResource(drawId, __glXDrawableRes, glxPriv))
+ {
+ glxPriv->destroy (glxPriv);
+ return NULL;
+ }
+ }
+
return glxPriv;
}
diff --git a/GL/glx/glxvisuals.c b/GL/glx/glxvisuals.c
index 9b5839ce9..f83bbb14e 100644
--- a/GL/glx/glxvisuals.c
+++ b/GL/glx/glxvisuals.c
@@ -432,11 +432,11 @@ void GlxSetVisualConfigs(int nconfigs,
static miInitVisualsProcPtr saveInitVisualsProc;
-static Bool __glXInitVisuals(VisualPtr *visualp, DepthPtr *depthp,
- int *nvisualp, int *ndepthp,
- int *rootDepthp, VisualID *defaultVisp,
- unsigned long sizes, int bitsPerRGB,
- int preferredVis)
+Bool GlxInitVisuals(VisualPtr *visualp, DepthPtr *depthp,
+ int *nvisualp, int *ndepthp,
+ int *rootDepthp, VisualID *defaultVisp,
+ unsigned long sizes, int bitsPerRGB,
+ int preferredVis)
{
Bool ret;
@@ -466,7 +466,7 @@ void
GlxWrapInitVisuals(miInitVisualsProcPtr *initVisProc)
{
saveInitVisualsProc = *initVisProc;
- *initVisProc = __glXInitVisuals;
+ *initVisProc = GlxInitVisuals;
}
static void fixup_visuals(int screen)
diff --git a/GL/mesa/X/xf86glx.c b/GL/mesa/X/xf86glx.c
index b185a958a..34b667088 100644
--- a/GL/mesa/X/xf86glx.c
+++ b/GL/mesa/X/xf86glx.c
@@ -431,3 +431,9 @@ __GLXprovider __glXMesaProvider = {
"MESA",
NULL
};
+
+__GLXprovider *
+GlxGetMesaProvider (void)
+{
+ return &__glXMesaProvider;
+}