From: Philip L. <ph...@ed...> - 2006-12-08 22:24:52
|
On 09/12/2006, at 3:44 AM, Braden McDaniel wrote: > On Fri, 2006-12-08 at 12:39 +0100, Thomas Engelmeier wrote: >> On 08.12.2006, at 03:27, Braden McDaniel wrote: >> >>> Well, I spoke with a Mac user on IRC some weeks ago and the glu.h >>> he was >>> able to locate on his system did not exhibit this breakage. I don't >>> know >>> exactly which glu.h he found. (I thought it was the one associated >>> with >>> the OpenGL framework, but maybe not.) As I understand it, you can >>> get >>> one from the normal Apple OpenGL framework, one from Apple's X11, >>> and >>> one from Fink's X11. So, the question is, which header (or headers) >>> are >>> broken? >> >> In my case it is the official system header <OpenGL/glu.h> from the >> 10.4.u SDK (which is identical to the 10.3.9 SDK). The X11 SDK and >> fink are not installed. The copyright note in it indicates it dates >> to 1999 >> >> gluTessCallback is declared there (identical to my 1992 red book) as >> >> extern void gluTessCallback (GLUtesselator* tess, GLenum which, >> GLvoid (*CallBackFunc)()); > > Then you should not be observing this problem. (And in fact, I'd > expect > the patch applied for Fink to cause things to break when built against > that header.) The problem is with glu.h where the declaration of > gluTessCallback looks like this: > > void gluTessCallback(GLUtesselator* tess, GLenum which, > GLvoid (*CallBackFunc)(...)); > Nowhere in any of the glu.h headers on the system is it declared in this way. I'm still not sure that this is a problem with the headers. % locate glu.h | xargs grep gluTessCallback /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/ AGL.framework/Versions/A/Headers/glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()); /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/ OpenGL.framework/Versions/A/Headers/glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()); /Developer/SDKs/MacOSX10.3.9.sdk/usr/X11R6/include/GL/glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/ AGL.framework/Versions/A/Headers/glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()); /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/ OpenGL.framework/Versions/A/Headers/glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()); /Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include/GL/glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); /System/Library/Frameworks/AGL.framework/Versions/A/Headers/ glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()); /System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/ glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()); /usr/X11R6/include/GL/glu.h:extern void gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); and: %grep _GLUfuncptr /usr/X11R6/include/GL/glu.h /usr/X11R6/include/GL/glu.h:typedef GLvoid (*_GLUfuncptr)(); /usr/X11R6/include/GL/glu.h:typedef GLvoid (*_GLUfuncptr)(GLvoid); Phil. |