Sophie

Sophie

distrib > Mandriva > 2007.0 > x86_64 > by-pkgid > dd259df24ce3830770d0dcda9600e8df > files > 18

mesa-6.5-17mdv2007.0.src.rpm

--- ./include/GL/glx.h.attrib	2006-03-31 19:31:46.000000000 +0200
+++ ./include/GL/glx.h	2006-08-10 17:35:24.000000000 +0200
@@ -425,7 +425,7 @@
 
 /* XXX need enums/tokens! */
 
-extern Bool glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer);
+extern Bool glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
 extern Bool glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer);
 
 #endif /* GLX_EXT_texture_from_pixmap */
--- ./src/glx/x11/glxcmds.c.attrib	2006-08-10 17:36:33.000000000 +0200
+++ ./src/glx/x11/glxcmds.c	2006-08-10 17:36:41.000000000 +0200
@@ -2643,17 +2643,27 @@
 
 PUBLIC Bool glXBindTexImageEXT(Display *dpy,
 			       GLXDrawable drawable,
-			       int buffer)
+			       int buffer,
+ 			       const int *attrib_list)
 {
     xGLXVendorPrivateReq *req;
     GLXContext gc = __glXGetCurrentContext();
     CARD32 *drawable_ptr;
     INT32 *buffer_ptr;
+    CARD32 *num_attrib_ptr;
+    CARD32 *attrib_ptr;
     CARD8 opcode;
+    unsigned int i;
 
     if (gc == NULL)
 	return False;
 
+    i = 0;
+    if (attrib_list) {
+ 	while (attrib_list[i * 2] != None)
+ 	    i++;
+    }
+ 
 #ifdef GLX_DIRECT_RENDERING
     if (gc->isDirect)
 	return False;
@@ -2664,7 +2674,7 @@
 	return False;
 
     LockDisplay(dpy);
-    GetReqExtra(GLXVendorPrivate, sizeof(CARD32)+sizeof(INT32),req);
+    GetReqExtra(GLXVendorPrivate, 12 + 8 * i,req);
     req->reqType = opcode;
     req->glxCode = X_GLXVendorPrivate;
     req->vendorCode = X_GLXvop_BindTexImageEXT;
@@ -2672,9 +2682,22 @@
 
     drawable_ptr = (CARD32 *) (req + 1);
     buffer_ptr = (INT32 *) (drawable_ptr + 1);
+    num_attrib_ptr = (CARD32 *) (buffer_ptr + 1);
+    attrib_ptr = (CARD32 *) (num_attrib_ptr + 1);
 
     *drawable_ptr = drawable;
     *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);
     SyncHandle();