First batch of AIGLX fixes from David Reveman.

Add getter for Mesa provider.
Export this for Xgl.
Move resource tracking out of drawable constructor to allow wrapping.
Use corrent reply size #define.
Add this function. (DoGetDrawableAttributes): Fix array length.
This commit is contained in:
Kristian Høgsberg 2006-03-13 01:54:59 +00:00
parent eb63e50d95
commit e5956f49b2
6 changed files with 55 additions and 21 deletions

View File

@ -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

View File

@ -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);

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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)

View File

@ -431,3 +431,9 @@ __GLXprovider __glXMesaProvider = {
"MESA",
NULL
};
__GLXprovider *
GlxGetMesaProvider (void)
{
return &__glXMesaProvider;
}