]> git.cworth.org Git - apitrace/blobdiff - glimports.hpp
Make X11 dependency optional on Linux
[apitrace] / glimports.hpp
index dce248a2649bc87caf721f2d7db8243595871c2f..7207523fdfa65c3018301a3598ab50b5d714931b 100644 (file)
 #define __glext_h_
 
 
+// Some functions take GLenum disguised as GLint.  Apple noticed and fixed it
+// in the Mac OS X 10.6.x gl.h headers.  Regardless, C++ typechecking rules
+// force the wrappers to match the prototype precisely.
+#if defined(__APPLE__)
+#  include <AvailabilityMacros.h> // for MAC_OS_X_VERSION_10_7
+#  if defined(MAC_OS_X_VERSION_10_7)
+#    define GLenum_int GLint
+#  else
+#    define GLenum_int GLenum
+#  endif
+#else
+#  define GLenum_int GLint
+#endif
+
+
 #if defined(_WIN32)
 
 #ifndef WIN32_LEAN_AND_MEAN
 
 #else
 
+#ifdef HAVE_X11
 #include <X11/Xlib.h>
+#endif
+
 #include <GL/gl.h>
 
 #endif /* !_WIN32 */
@@ -98,9 +116,16 @@ typedef struct _WGLSWAP
 #include <OpenGL/CGLIOSurface.h>
 #include <OpenGL/CGLDevice.h>
 
+#ifndef CGL_VERSION_1_3
+#define kCGLPFAOpenGLProfile 99
+#define kCGLOGLPVersion_Legacy 0x1000
+#define kCGLOGLPVersion_3_2_Core 0x3200
+#endif
+
 extern "C" {
 
-typedef int CGSConnectionID;
+// From http://www.opensource.apple.com/source/gdb/gdb-954/libcheckpoint/cpcg.c
+typedef void * CGSConnectionID;
 typedef int CGSWindowID;
 typedef int CGSSurfaceID;
 
@@ -112,13 +137,18 @@ CGLError CGLUpdateContext(CGLContextObj ctx);
 
 #else
 
+#ifdef HAVE_X11
 #include <GL/glx.h>
 #include "glext/glxext.h"
+#endif
 
-/* Prevent collision with Trace::Bool */
+/* Prevent collision with trace::Bool */
 #undef Bool
 
 #endif
 
 
+#include "eglimports.hpp"
+
+
 #endif /* _GLIMPORTS_HPP_ */