Revision: 316 http://trac.macosforge.org/projects/xquartz/changeset/316 Author: jeremyhu@freedesktop.org Date: 2009-03-18 21:42:48 -0700 (Wed, 18 Mar 2009) Log Message: ----------- Move typedefs after gl.h is included. Also, make sure GL_GLEXT_LEGACY is set when we generate the typedefs, so we don't pull in ones set in glext.h Modified Paths: -------------- AppleSGLX/trunk/Makefile AppleSGLX/trunk/gen_gl_h.sh AppleSGLX/trunk/include/GL/gl.h.footer Added Paths: ----------- AppleSGLX/trunk/include/GL/gl.h.core Modified: AppleSGLX/trunk/Makefile =================================================================== --- AppleSGLX/trunk/Makefile 2009-03-19 01:27:49 UTC (rev 315) +++ AppleSGLX/trunk/Makefile 2009-03-19 04:42:48 UTC (rev 316) @@ -81,7 +81,7 @@ apple_xgl_api.h: gen_api_header.tcl gen_api_library.tcl gen_code.tcl gen_defs.tcl gen_exports.tcl gen_funcs.tcl gen_types.tcl $(TCLSH) gen_code.tcl -include/GL/gl.h: include/GL/gl.h.header include/GL/gl.h.footer +include/GL/gl.h: include/GL/gl.h.header include/GL/gl.h.core include/GL/gl.h.footer gen_gl_h.sh ./gen_gl_h.sh $(BUILD_DIR)/glxinfo: tests/glxinfo/glxinfo.c $(BUILD_DIR)/libGL.1.2.dylib Modified: AppleSGLX/trunk/gen_gl_h.sh =================================================================== --- AppleSGLX/trunk/gen_gl_h.sh 2009-03-19 01:27:49 UTC (rev 315) +++ AppleSGLX/trunk/gen_gl_h.sh 2009-03-19 04:42:48 UTC (rev 316) @@ -4,10 +4,14 @@ cat include/GL/gl.h.header if grep -q GL_GLEXT_PROTOTYPES /System/Library/Frameworks/OpenGL.framework/Headers/gl.h ; then grep gl.*ProcPtr /System/Library/Frameworks/OpenGL.framework/Headers/gl{,ext}.h | sed 's:^.*\(gl.*Ptr\).*$:\1:' | sort -u | perl -ne 'chomp($_); $s = "PFN".uc($_); $s =~ s/PROCPTR/PROC/; print "#define ".$_." ".$s."\n"' - else + fi + cat include/GL/gl.h.core + + if ! grep -q GL_GLEXT_PROTOTYPES /System/Library/Frameworks/OpenGL.framework/Headers/gl.h ; then { echo "#define GL_GLEXT_FUNCTION_POINTERS 1" - grep gl.*ProcPtr /System/Library/Frameworks/OpenGL.framework/Headers/gl{,ext}.h | sed 's:^.*\(gl.*Ptr\).*$:\1:' | sort -u | perl -ne 'chomp($_); $s = "PFN".uc($_); $s =~ s/PROCPTR/PROC/; print "#define ".$_." ".$s."\n"' + echo "#define GL_GLEXT_LEGACY 1" + grep gl.*ProcPtr /System/Library/Frameworks/OpenGL.framework/Headers/gl.h | sed 's:^.*\(gl.*Ptr\).*$:\1:' | sort -u | perl -ne 'chomp($_); $s = "PFN".uc($_); $s =~ s/PROCPTR/PROC/; print "#define ".$_." ".$s."\n"' echo '#include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h"' } | gcc -E - | grep typedef.*PFN fi Copied: AppleSGLX/trunk/include/GL/gl.h.core (from rev 315, AppleSGLX/trunk/include/GL/gl.h.footer) =================================================================== --- AppleSGLX/trunk/include/GL/gl.h.core (rev 0) +++ AppleSGLX/trunk/include/GL/gl.h.core 2009-03-19 04:42:48 UTC (rev 316) @@ -0,0 +1,44 @@ +/* On SL, we want to use OpelGL.framework's headers to get both prototypes and + * function pointers (like Mesa's API), but on Leo and before, OpenGL.framework + * can't give us both. + */ + +#ifdef GL_GLEXT_FUNCTION_POINTERS +#define _GL_GLEXT_FUNCTION_POINTERS GL_GLEXT_FUNCTION_POINTERS +#undef GL_GLEXT_FUNCTION_POINTERS +#endif + +#ifdef GL_GLEXT_PROTOTYPES +#define _GL_GLEXT_PROTOTYPES GL_GLEXT_PROTOTYPES +#else +#define GL_GLEXT_PROTOTYPES 1 +#endif + +/* Our glext.h is based on a version from the registry that is newer. */ +#ifdef GL_GLEXT_LEGACY +#define _GL_GLEXT_LEGACY GL_GLEXT_LEGACY +#else +#define GL_GLEXT_LEGACY 1 +#endif + +#include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h" + +/* Restore our GLEXT-fu */ +#ifdef _GL_GLEXT_FUNCTION_POINTERS +#define GL_GLEXT_FUNCTION_POINTERS _GL_GLEXT_FUNCTION_POINTERS +#else +#undef GL_GLEXT_FUNCTION_POINTERS +#endif + +#ifdef _GL_GLEXT_PROTOTYPES +#define GL_GLEXT_PROTOTYPES _GL_GLEXT_PROTOTYPES +#else +#undef GL_GLEXT_PROTOTYPES +#endif + +#ifdef _GL_GLEXT_LEGACY +#define GL_GLEXT_LEGACY _GL_GLEXT_LEGACY +#else +#undef GL_GLEXT_LEGACY +#endif + Modified: AppleSGLX/trunk/include/GL/gl.h.footer =================================================================== --- AppleSGLX/trunk/include/GL/gl.h.footer 2009-03-19 01:27:49 UTC (rev 315) +++ AppleSGLX/trunk/include/GL/gl.h.footer 2009-03-19 04:42:48 UTC (rev 316) @@ -1,47 +1,3 @@ -/* On SL, we want to use OpelGL.framework's headers to get both prototypes and - * function pointers (like Mesa's API), but on Leo and before, OpenGL.framework - * can't give us both. - */ - -#ifdef GL_GLEXT_FUNCTION_POINTERS -#define _GL_GLEXT_FUNCTION_POINTERS GL_GLEXT_FUNCTION_POINTERS -#undef GL_GLEXT_FUNCTION_POINTERS -#endif - -#ifdef GL_GLEXT_PROTOTYPES -#define _GL_GLEXT_PROTOTYPES GL_GLEXT_PROTOTYPES -#else -#define GL_GLEXT_PROTOTYPES 1 -#endif - -/* Our glext.h is based on a version from the registry that is newer. */ -#ifdef GL_GLEXT_LEGACY -#define _GL_GLEXT_LEGACY GL_GLEXT_LEGACY -#else -#define GL_GLEXT_LEGACY 1 -#endif - -#include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h" - -/* Restore our GLEXT-fu */ -#ifdef _GL_GLEXT_FUNCTION_POINTERS -#define GL_GLEXT_FUNCTION_POINTERS _GL_GLEXT_FUNCTION_POINTERS -#else -#undef GL_GLEXT_FUNCTION_POINTERS -#endif - -#ifdef _GL_GLEXT_PROTOTYPES -#define GL_GLEXT_PROTOTYPES _GL_GLEXT_PROTOTYPES -#else -#undef GL_GLEXT_PROTOTYPES -#endif - -#ifdef _GL_GLEXT_LEGACY -#define GL_GLEXT_LEGACY _GL_GLEXT_LEGACY -#else -#undef GL_GLEXT_LEGACY -#endif - #ifndef GL_GLEXT_LEGACY #include <GL/glext.h> #endif