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