diff options
author | Adam Jackson <ajax@redhat.com> | 2012-11-09 17:07:20 -0500 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2013-09-11 14:37:32 -0400 |
commit | d11f13e383dda1e9cabe32793d261d46edc44418 (patch) | |
tree | d73871985a98f7fd6a966513a0218c8cfc6dc67f /glx | |
parent | 468b57324f838144d79e3a9d85a0bde853578c4b (diff) |
glx: Compute number of attributes in GetDrawableAttributes on the fly
This doesn't have any effect yet, but is needed to properly build the
reply for pbuffers.
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'glx')
-rw-r--r-- | glx/glxcmds.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/glx/glxcmds.c b/glx/glxcmds.c index cbbdae8e8..cecbf7bd3 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -1893,27 +1893,29 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId) xGLXGetDrawableAttributesReply reply; __GLXdrawable *pGlxDraw; CARD32 attributes[6]; - int numAttribs, error; + int numAttribs = 0, error; if (!validGlxDrawable(client, drawId, GLX_DRAWABLE_ANY, DixGetAttrAccess, &pGlxDraw, &error)) return error; - numAttribs = 3; - reply = (xGLXGetDrawableAttributesReply) { - .type = X_Reply, - .sequenceNumber = client->sequence, - .length = numAttribs << 1, - .numAttribs = numAttribs - }; - attributes[0] = GLX_TEXTURE_TARGET_EXT; attributes[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++; + + reply = (xGLXGetDrawableAttributesReply) { + .type = X_Reply, + .sequenceNumber = client->sequence, + .length = numAttribs << 1, + .numAttribs = numAttribs + }; if (client->swapped) { __glXSwapGetDrawableAttributesReply(client, &reply, attributes); |