glx: Dynamically compute attribute slot in GetDrawableAttributes

No functional change.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Adam Jackson 2014-12-02 14:47:45 -05:00
parent c1455f76c6
commit f452b4a47b

View File

@ -1918,42 +1918,43 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId)
xGLXGetDrawableAttributesReply reply;
__GLXdrawable *pGlxDraw;
CARD32 attributes[14];
int numAttribs = 0, error;
int num = 0, error;
if (!validGlxDrawable(client, drawId, GLX_DRAWABLE_ANY,
DixGetAttrAccess, &pGlxDraw, &error))
return error;
attributes[0] = GLX_TEXTURE_TARGET_EXT;
attributes[1] = pGlxDraw->target == GL_TEXTURE_2D ? GLX_TEXTURE_2D_EXT :
attributes[2*num] = GLX_TEXTURE_TARGET_EXT;
attributes[2*num+1] = pGlxDraw->target == GL_TEXTURE_2D ?
GLX_TEXTURE_2D_EXT :
GLX_TEXTURE_RECTANGLE_EXT;
numAttribs++;
attributes[2] = GLX_Y_INVERTED_EXT;
attributes[3] = GL_FALSE;
numAttribs++;
attributes[4] = GLX_EVENT_MASK;
attributes[5] = pGlxDraw->eventMask;
numAttribs++;
attributes[6] = GLX_WIDTH;
attributes[7] = pGlxDraw->pDraw->width;
numAttribs++;
attributes[8] = GLX_HEIGHT;
attributes[9] = pGlxDraw->pDraw->height;
numAttribs++;
attributes[10] = GLX_FBCONFIG_ID;
attributes[11] = pGlxDraw->config->fbconfigID;
numAttribs++;
num++;
attributes[2*num] = GLX_Y_INVERTED_EXT;
attributes[2*num+1] = GL_FALSE;
num++;
attributes[2*num] = GLX_EVENT_MASK;
attributes[2*num+1] = pGlxDraw->eventMask;
num++;
attributes[2*num] = GLX_WIDTH;
attributes[2*num+1] = pGlxDraw->pDraw->width;
num++;
attributes[2*num] = GLX_HEIGHT;
attributes[2*num+1] = pGlxDraw->pDraw->height;
num++;
attributes[2*num] = GLX_FBCONFIG_ID;
attributes[2*num+1] = pGlxDraw->config->fbconfigID;
num++;
if (pGlxDraw->type == GLX_DRAWABLE_PBUFFER) {
attributes[12] = GLX_PRESERVED_CONTENTS;
attributes[13] = GL_TRUE;
numAttribs++;
attributes[2*num] = GLX_PRESERVED_CONTENTS;
attributes[2*num+1] = GL_TRUE;
num++;
}
reply = (xGLXGetDrawableAttributesReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = numAttribs << 1,
.numAttribs = numAttribs
.length = num << 1,
.numAttribs = num
};
if (client->swapped) {