Log message:
778. Fix Multitexture problems with vertex arrays and indirect rendering
(Bugzilla #1092, DRI Project).
777. Fix SecondaryColor & FogColor when indirect rendering (Bugzilla #1091,
DRI Project).
These fixes have the side effect of breaking GLX on Mac OS X. The problem is the addition of new server side dependencies on glPointParameteri, glPointParameteriv, glSampleMaskSGIS, glSamplePatternSGIS. Mac OS X instead uses glPointParameteriNV and glPointParameterivNV and GL_SGIS_multisample is not supported. I can fix these by substituting the glPointParameter*NV calls and removing the calls to the glSample*SGIS functions as shown in the patch below. Note the server still says it supports the glx extension GLX_SGIS_multisample. Should I add an #ifdef to glxscreens.c as well to remove claiming this extension? Any other comments?
--Torrey
Index: g_disptab_EXT.h =================================================================== RCS file: /home/x-cvs/xc/programs/Xserver/GL/glx/g_disptab_EXT.h,v retrieving revision 1.5 diff -u -d -b -w -r1.5 g_disptab_EXT.h --- g_disptab_EXT.h 28 Jan 2004 18:11:50 -0000 1.5 +++ g_disptab_EXT.h 11 Feb 2004 02:17:15 -0000 @@ -31,6 +31,16 @@ ** version 1.2.1 Specification. */
+#ifdef __DARWIN__
+#define glPointParameteri glPointParameteriNV
+#define glPointParameteriv glPointParameterivNV
+#define __glXDisp_PointParameteri __glXDisp_PointParameteriNV
+#define __glXDisp_PointParameteriv __glXDisp_PointParameterivNV
+#define __glXDispSwap_PointParameteri __glXDispSwap_PointParameteriNV
+#define __glXDispSwap_PointParameteriv __glXDispSwap_PointParameterivNV
+#define __glPointParameterivNV_size __glPointParameteriv_size
+#endif
+
extern int __glXDisp_AreTexturesResidentEXT(__GLXclientState*, GLbyte*);
extern int __glXDisp_DeleteTexturesEXT(__GLXclientState*, GLbyte*);
extern int __glXDisp_GenTexturesEXT(__GLXclientState*, GLbyte*);
Index: glxcmds.c
===================================================================
RCS file: /home/x-cvs/xc/programs/Xserver/GL/glx/glxcmds.c,v
retrieving revision 1.12
diff -u -d -b -w -r1.12 glxcmds.c
--- glxcmds.c 28 Jan 2004 18:11:50 -0000 1.12
+++ glxcmds.c 11 Feb 2004 02:17:15 -0000
@@ -1554,6 +1554,7 @@
req = (xGLXVendorPrivateReq *) pc;
vendorcode = req->vendorCode;+#ifndef __DARWIN__
switch( vendorcode ) {
case X_GLvop_SampleMaskSGIS:
glSampleMaskSGIS(*(GLfloat *)(pc + 4),
@@ -1563,7 +1564,7 @@
glSamplePatternSGIS( *(GLenum *)(pc + 4));
return Success;
}
-
+#endif if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
(vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT)) {
Index: glxcmdsswap.c
===================================================================
RCS file: /home/x-cvs/xc/programs/Xserver/GL/glx/glxcmdsswap.c,v
retrieving revision 1.10
diff -u -d -b -w -r1.10 glxcmdsswap.c
--- glxcmdsswap.c 28 Jan 2004 18:11:50 -0000 1.10
+++ glxcmdsswap.c 11 Feb 2004 02:17:15 -0000
@@ -791,6 +791,7 @@vendorcode = req->vendorCode;
+#ifndef __DARWIN__
switch( vendorcode ) {
case X_GLvop_SampleMaskSGIS:
__GLX_SWAP_FLOAT(pc + 4);
@@ -803,7 +804,7 @@
glSamplePatternSGIS( *(GLenum *)(pc + 4));
return Success;
}
-
+#endif if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
(vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT)) {
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel
