rpms/mesa/devel mesa-6.4.1-texture-from-drawable.patch, NONE, 1.1 mesa.spec, 1.32, 1.33

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Jan 17 22:30:54 UTC 2006


Author: krh

Update of /cvs/dist/rpms/mesa/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv10978

Modified Files:
	mesa.spec 
Added Files:
	mesa-6.4.1-texture-from-drawable.patch 
Log Message:
Add support for GLX_EXT_texture_from_drawable.

mesa-6.4.1-texture-from-drawable.patch:
 include/GL/glxext.h         |   17 ++++++++
 src/glx/x11/glxcmds.c       |   85 ++++++++++++++++++++++++++++++++++++++++++++
 src/glx/x11/glxextensions.c |    1 
 src/glx/x11/glxextensions.h |    1 
 4 files changed, 104 insertions(+)

--- NEW FILE mesa-6.4.1-texture-from-drawable.patch ---
Index: include/GL/glxext.h
===================================================================
RCS file: /cvs/mesa/Mesa/include/GL/glxext.h,v
retrieving revision 1.12
diff -u -p -r1.12 glxext.h
--- include/GL/glxext.h	15 Aug 2005 23:25:33 -0000	1.12
+++ include/GL/glxext.h	17 Jan 2006 21:55:38 -0000
@@ -177,6 +177,10 @@ extern "C" {
 #define GLX_SCREEN_EXT                     0x800C
 #endif
 
+#ifndef GLX_EXT_texture_from_drawable
+#define GLX_FRONT_LEFT_EXT                 0x6005
+#endif
+
 #ifndef GLX_SGIX_fbconfig
 #define GLX_WINDOW_BIT_SGIX                0x00000001
 #define GLX_PIXMAP_BIT_SGIX                0x00000002
@@ -481,6 +485,19 @@ typedef GLXContext ( * PFNGLXIMPORTCONTE
 typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
 #endif
 
+#ifndef GLX_EXT_texture_from_drawable
+#define GLX_EXT_texture_from_drawable 1
+#ifdef GLX_GLXEXT_PROTOTYPES
+extern Bool glXBindTexImageEXT(Display *dpy, GLXDrawable draw, int buffer, const int *attrib_list);
+extern Bool glXReleaseTexImageEXT(Display *dpy, GLXDrawable draw, int buffer);
+extern Bool glXDrawableAttribEXT(Display *dpy, GLXDrawable draw, const int *attribList);
+#endif
+typedef Bool ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable draw, int buffer, const int *attrib_list);
+typedef Bool (* PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable draw, int buffer);
+typedef Bool ( * PFNGLXDRAWABLEATTRIBEXTPROC) (Display *dpy, GLXDrawable draw, const int *attribList);
+#endif /* GLX_EXT_texture_from_drawable */
+
+
 #ifndef GLX_SGIX_fbconfig
 #define GLX_SGIX_fbconfig 1
 #ifdef GLX_GLXEXT_PROTOTYPES
Index: src/glx/x11/glxcmds.c
===================================================================
RCS file: /cvs/mesa/Mesa/src/glx/x11/glxcmds.c,v
retrieving revision 1.11
diff -u -p -r1.11 glxcmds.c
--- src/glx/x11/glxcmds.c	11 Aug 2005 14:18:53 -0000	1.11
+++ src/glx/x11/glxcmds.c	17 Jan 2006 21:55:38 -0000
@@ -2589,7 +2589,88 @@ PUBLIC Bool glXSet3DfxModeMESA( int mode
 }
 /*@}*/
 
+PUBLIC Bool glXBindTexImageEXT(Display *dpy,
+			       GLXDrawable drawable,
+			       int buffer,
+			       const int *attrib_list)
+{
+    xGLXVendorPrivateReq *req;
+    GLXContext gc = __glXGetCurrentContext();
+    CARD32 *drawable_ptr;
+    INT32 *buffer_ptr;
+    CARD8 opcode;
+
+    if (gc == NULL)
+	return False;
+
+#ifdef GLX_DIRECT_RENDERING
+    if (gc->isDirect)
+	return False;
+#endif
+
+    opcode = __glXSetupForCommand(dpy);
+    if (!opcode)
+	return False;
+
+    LockDisplay(dpy);
+    GetReqExtra(GLXVendorPrivate, sizeof(GLXDrawable)+sizeof(int),req);
+    req->reqType = opcode;
+    req->glxCode = X_GLXVendorPrivate;
+    req->vendorCode = X_GLXvop_BindTexImageMESA;
+    req->contextTag = gc->currentContextTag;
+
+    drawable_ptr = (CARD32 *) (req + 1);
+    buffer_ptr = (INT32 *) (drawable_ptr + 1);
 
+    *drawable_ptr = drawable;
+    *buffer_ptr = buffer;
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return True;
+}
+
+PUBLIC Bool glXReleaseTexImageEXT(Display *dpy,
+				  GLXDrawable drawable,
+				  int buffer)
+{
+    xGLXVendorPrivateReq *req;
+    GLXContext gc = __glXGetCurrentContext();
+    CARD32 *drawable_ptr;
+    INT32 *buffer_ptr;
+    CARD8 opcode;
+
+    if (gc == NULL)
+	return False;
+
+#ifdef GLX_DIRECT_RENDERING
+    if (gc->isDirect)
+	return False;
+#endif
+
+    opcode = __glXSetupForCommand(dpy);
+    if (!opcode)
+	return False;
+
+    LockDisplay(dpy);
+    GetReqExtra(GLXVendorPrivate, sizeof(GLXDrawable)+sizeof(int),req);
+    req->reqType = opcode;
+    req->glxCode = X_GLXVendorPrivate;
+    req->vendorCode = X_GLXvop_ReleaseTexImageMESA;
+    req->contextTag = gc->currentContextTag;
+
+    drawable_ptr = (CARD32 *) (req + 1);
+    buffer_ptr = (INT32 *) (drawable_ptr + 1);
+
+    *drawable_ptr = drawable;
+    *buffer_ptr = buffer;
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return True;
+}
 
 /**
  * \c strdup is actually not a standard ANSI C or POSIX routine.
@@ -2771,6 +2852,10 @@ static const struct name_address_pair GL
    GLX_FUNCTION( glXGetMscRateOML ),
    GLX_FUNCTION( glXGetSyncValuesOML ),
 
+   /*** GLX_EXT_texture_from_drawable ***/
+   GLX_FUNCTION( glXBindTexImageEXT ),
+   GLX_FUNCTION( glXReleaseTexImageEXT ),
+
 #ifdef GLX_DIRECT_RENDERING
    /*** DRI configuration ***/
    GLX_FUNCTION( glXGetScreenDriver ),
Index: src/glx/x11/glxextensions.c
===================================================================
RCS file: /cvs/mesa/Mesa/src/glx/x11/glxextensions.c,v
retrieving revision 1.11
diff -u -p -r1.11 glxextensions.c
--- src/glx/x11/glxextensions.c	11 Aug 2005 14:18:53 -0000	1.11
+++ src/glx/x11/glxextensions.c	17 Jan 2006 21:55:38 -0000
@@ -77,6 +77,7 @@ static const struct extension_info known
    { GLX(EXT_import_context),          VER(0,0), Y, Y, N, N },
    { GLX(EXT_visual_info),             VER(0,0), Y, Y, N, N },
    { GLX(EXT_visual_rating),           VER(0,0), Y, Y, N, N },
+   { GLX(EXT_texture_from_drawable),   VER(0,0), Y, N, N, N },
    { GLX(MESA_agp_offset),             VER(0,0), N, N, N, Y }, /* Deprecated */
    { GLX(MESA_allocate_memory),        VER(0,0), Y, N, N, Y },
    { GLX(MESA_copy_sub_buffer),        VER(0,0), N, N, N, N }, /* Deprecated? */
Index: src/glx/x11/glxextensions.h
===================================================================
RCS file: /cvs/mesa/Mesa/src/glx/x11/glxextensions.h,v
retrieving revision 1.8
diff -u -p -r1.8 glxextensions.h
--- src/glx/x11/glxextensions.h	26 Jul 2005 22:53:38 -0000	1.8
+++ src/glx/x11/glxextensions.h	17 Jan 2006 21:55:38 -0000
@@ -39,6 +39,7 @@ enum {
    EXT_visual_info_bit,
    EXT_visual_rating_bit,
    EXT_import_context_bit,
+   EXT_texture_from_drawable_bit,
    MESA_agp_offset_bit,
    MESA_allocate_memory_bit, /* Replaces MESA_agp_offset & NV_vertex_array_range */
    MESA_copy_sub_buffer_bit,


Index: mesa.spec
===================================================================
RCS file: /cvs/dist/rpms/mesa/devel/mesa.spec,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- mesa.spec	24 Dec 2005 09:12:21 -0000	1.32
+++ mesa.spec	17 Jan 2006 22:30:50 -0000	1.33
@@ -70,6 +70,8 @@
 # branch and can be dropped when we update to 6.4.2.
 Patch100: mesa-6.4.1-amd64-assyntax-fix.patch
 
+Patch200: mesa-6.4.1-texture-from-drawable.patch
+
 BuildRequires: pkgconfig
 BuildRequires: libdrm-devel >= 2.0-1
 BuildRequires: libXxf86vm-devel
@@ -216,6 +218,8 @@
 
 %patch100 -p1 -b .amd64-assyntax-fix
 
+%patch200 -p0 -b .texture-from-drawable
+
 # WARNING: The following files are copyright "Mark J. Kilgard" under the GLUT
 # license and are not open source/free software, so we remove them.
 rm include/GL/uglglutshapes.h
@@ -393,6 +397,10 @@
 %defattr(-,root,root,-)
 
 %changelog
+* Tue Jan 17 2006 Kristian Høgsberg <krh at redhat.com> 6.4.1-3
+- Add mesa-6.4.1-texture-from-drawable.patch to implement protocol
+  support for GLX_EXT_texture_from_drawable extension.
+
 * Sat Dec 24 2005 Mike A. Harris <mharris at redhat.com> 6.4.1-3
 - Manually copy libGLw headers that Mesa forgets to install, to fix (#173879).
 - Added mesa-6.4.1-libGLw-enable-motif-support.patch to fix (#175251).




More information about the fedora-cvs-commits mailing list