Add attrib_list to glXBindTexImageEXT

This commit is contained in:
David Reveman
2006-04-11 12:12:13 +00:00
parent 342d1de38c
commit c6f8ae1085

View File

@@ -2643,17 +2643,27 @@ PUBLIC Bool glXSet3DfxModeMESA( int mode )
PUBLIC Bool glXBindTexImageEXT(Display *dpy, PUBLIC Bool glXBindTexImageEXT(Display *dpy,
GLXDrawable drawable, GLXDrawable drawable,
int buffer) int buffer,
const int *attrib_list)
{ {
xGLXVendorPrivateReq *req; xGLXVendorPrivateReq *req;
GLXContext gc = __glXGetCurrentContext(); GLXContext gc = __glXGetCurrentContext();
CARD32 *drawable_ptr; CARD32 *drawable_ptr;
INT32 *buffer_ptr; INT32 *buffer_ptr;
CARD32 *num_attrib_ptr;
CARD32 *attrib_ptr;
CARD8 opcode; CARD8 opcode;
unsigned int i;
if (gc == NULL) if (gc == NULL)
return False; return False;
i = 0;
if (attrib_list) {
while (attrib_list[i * 2] != None)
i++;
}
#ifdef GLX_DIRECT_RENDERING #ifdef GLX_DIRECT_RENDERING
if (gc->isDirect) if (gc->isDirect)
return False; return False;
@@ -2664,7 +2674,7 @@ PUBLIC Bool glXBindTexImageEXT(Display *dpy,
return False; return False;
LockDisplay(dpy); LockDisplay(dpy);
GetReqExtra(GLXVendorPrivate, sizeof(CARD32)+sizeof(INT32),req); GetReqExtra(GLXVendorPrivate, 12 + 8 * i,req);
req->reqType = opcode; req->reqType = opcode;
req->glxCode = X_GLXVendorPrivate; req->glxCode = X_GLXVendorPrivate;
req->vendorCode = X_GLXvop_BindTexImageEXT; req->vendorCode = X_GLXvop_BindTexImageEXT;
@@ -2672,9 +2682,22 @@ PUBLIC Bool glXBindTexImageEXT(Display *dpy,
drawable_ptr = (CARD32 *) (req + 1); drawable_ptr = (CARD32 *) (req + 1);
buffer_ptr = (INT32 *) (drawable_ptr + 1); buffer_ptr = (INT32 *) (drawable_ptr + 1);
num_attrib_ptr = (CARD32 *) (buffer_ptr + 1);
attrib_ptr = (CARD32 *) (num_attrib_ptr + 1);
*drawable_ptr = drawable; *drawable_ptr = drawable;
*buffer_ptr = buffer; *buffer_ptr = buffer;
*num_attrib_ptr = (CARD32) i;
i = 0;
if (attrib_list) {
while (attrib_list[i * 2] != None)
{
*attrib_ptr++ = (CARD32) attrib_list[i * 2 + 0];
*attrib_ptr++ = (CARD32) attrib_list[i * 2 + 1];
i++;
}
}
UnlockDisplay(dpy); UnlockDisplay(dpy);
SyncHandle(); SyncHandle();