xserver/GL/mesa/X xf86glx.c,1.3,1.4 xf86glxint.h,1.2,1.3

David Reveman <xserver-commit-u7BhqnqprCWvj1b/[email protected]> Fri, 10 Jun 2005 05:30:41 -0700 (PDT)
Newsgroups gmane.comp.freedesktop.xserver.cvs
Message-ID <[email protected]>
Committed by: davidr

Update of /cvs/xserver/xserver/GL/mesa/X
In directory gabe:/tmp/cvs-serv14008/GL/mesa/X

Modified Files:
	xf86glx.c xf86glxint.h 
Log Message:
New implementation of GLX_MESA_render_texture

Index: xf86glx.c
===================================================================
RCS file: /cvs/xserver/xserver/GL/mesa/X/xf86glx.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- xf86glx.c	7 Jun 2005 15:36:12 -0000	1.3
+++ xf86glx.c	10 Jun 2005 12:30:39 -0000	1.4
@@ -367,28 +367,6 @@
     glCopyTexSubImage3D
 };
 
-static int
-mglXBindTexImageMESA (DrawablePtr pDrawable,
-		      int	  buffer)
-{
-    return FALSE;
-}
-
-static int
-mglXReleaseTexImageMESA (DrawablePtr pDrawable,
-			 int	     buffer)
-{
-    return FALSE;
-}
-
-static int
-mglXQueryDrawableMESA (DrawablePtr  pDrawable,
-		       int	    attribute,
-		       unsigned int *value)
-{
-    return FALSE;
-}
-
 __glProcTableEXT __glMesaRenderTableEXT = {
     glActiveTextureARB,
     glClientActiveTextureARB,
@@ -432,10 +410,7 @@
     glSecondaryColorPointerEXT,
     glPointParameteriNV,
     glPointParameterivNV,
-    glActiveStencilFaceEXT,
-    mglXBindTexImageMESA,
-    mglXReleaseTexImageMESA,
-    mglXQueryDrawableMESA
+    glActiveStencilFaceEXT
 };
 
 /*
@@ -1055,6 +1030,15 @@
     buf->fbswap = glxPriv->swapBuffers;
     glxPriv->swapBuffers = __MESA_swapBuffers;
 
+    /* Wrap the render texture routines */
+    buf->fbbind = glxPriv->bindBuffers;
+    glxPriv->bindBuffers = __MESA_bindBuffers;
+    buf->fbrelease = glxPriv->releaseBuffers;
+    glxPriv->releaseBuffers = __MESA_releaseBuffers;
+
+    /* Mesa doesn't support render texture on its own */
+    glxPriv->texTarget = GLX_NO_TEXTURE_EXT;
+
     /* Save Mesa's private buffer structure */
     glPriv->private = (void *)buf;
     glPriv->freePrivate = __MESA_destroyBuffer;
@@ -1087,6 +1071,18 @@
     return GL_TRUE;
 }
 
+int __MESA_bindBuffers(__GLXdrawablePrivate *glxPriv,
+		       int		    buffer)
+{
+    return FALSE;
+}
+
+int __MESA_releaseBuffers(__GLXdrawablePrivate *glxPriv,
+			  int		       buffer)
+{
+    return FALSE;
+}
+
 void __MESA_destroyBuffer(__GLdrawablePrivate *glPriv)
 {
     __MESA_buffer buf = (__MESA_buffer)glPriv->private;

Index: xf86glxint.h
===================================================================
RCS file: /cvs/xserver/xserver/GL/mesa/X/xf86glxint.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- xf86glxint.h	9 Dec 2003 15:33:42 -0000	1.2
+++ xf86glxint.h	10 Jun 2005 12:30:39 -0000	1.3
@@ -59,6 +59,10 @@
 			  GLint x, GLint y, GLuint width, GLuint height, 
 			  __GLdrawablePrivate *glPriv, GLuint bufferMask);
     GLboolean (*fbswap)(__GLXdrawablePrivate *glxPriv);
+    int (*fbbind)(__GLXdrawablePrivate *glxPriv, int buffer);
+    int (*fbrelease)(__GLXdrawablePrivate *glxPriv, int buffer);
+    int (*fbquery)(__GLXdrawablePrivate *glxPriv, int attribute,
+		   unsigned int *value);
 };
 
 extern void __MESA_setVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
@@ -78,6 +82,10 @@
 				      __GLdrawablePrivate *glPriv,
 				      GLuint bufferMask);
 extern GLboolean __MESA_swapBuffers(__GLXdrawablePrivate *glxPriv);
+extern int __MESA_bindBuffers(__GLXdrawablePrivate *glxPriv, int buffer);
+extern int __MESA_releaseBuffers(__GLXdrawablePrivate *glxPriv, int buffer);
+extern int __MESA_queryBuffers(__GLXdrawablePrivate *glxPriv, int attribute,
+			       unsigned int *value);
 extern void __MESA_destroyBuffer(__GLdrawablePrivate *glPriv);
 
 extern __GLinterface *__MESA_createContext(__GLimports *imports,