Add attrib_list to glXBindTexImageEXT
This commit is contained in:
@@ -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();
|
||||||
|
Reference in New Issue
Block a user