]> git.cworth.org Git - apitrace/blobdiff - glimports.hpp
Mac OS X: Fix getProcessName() to avoid assertion failure in truncate
[apitrace] / glimports.hpp
index 5cb276db1d1529bdd311441f92f92b7e3f6bda8b..b5cdb4b279e6b80c0f94683b5aa4e4619195fc0a 100644 (file)
 #define _GLIMPORTS_HPP_
 
 
+// Prevent including system's glext.h
+#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__) && !defined(MAC_OS_X_VERSION_10_7)
+#define GLenum_int GLenum
+#else
+#define GLenum_int GLint
+#endif
+
+
 #if defined(_WIN32)
 
 #ifndef WIN32_LEAN_AND_MEAN
 #endif
 
 #include <windows.h>
+#include <GL/gl.h>
 
 #elif defined(__APPLE__)
 
+#include <OpenGL/gl.h>
+
 #else
 
 #include <X11/Xlib.h>
+#include <GL/gl.h>
 
 #endif /* !_WIN32 */
 
 
-// Prevent including system's glext.h
-#define __glext_h_
-
-#include <GL/gl.h>
-
+// Include our own glext.h
 #undef __glext_h_
-
 #include "glext/glext.h"
 
+
 #ifndef GL_TEXTURE_INDEX_SIZE_EXT
 #define GL_TEXTURE_INDEX_SIZE_EXT         0x80ED
 #endif
@@ -91,13 +104,34 @@ typedef struct _WGLSWAP
 #elif defined(__APPLE__)
 
 #include <OpenGL/OpenGL.h>
+#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" {
+
+// From http://www.opensource.apple.com/source/gdb/gdb-954/libcheckpoint/cpcg.c
+typedef void * CGSConnectionID;
+typedef int CGSWindowID;
+typedef int CGSSurfaceID;
+
+CGLError CGLSetSurface(CGLContextObj ctx, CGSConnectionID cid, CGSWindowID wid, CGSSurfaceID sid);
+CGLError CGLGetSurface(CGLContextObj ctx, CGSConnectionID* cid, CGSWindowID* wid, CGSSurfaceID* sid);
+CGLError CGLUpdateContext(CGLContextObj ctx);
+
+}
 
 #else
 
 #include <GL/glx.h>
 #include "glext/glxext.h"
 
-/* Prevent collision with Trace::Bool */
+/* Prevent collision with trace::Bool */
 #undef Bool
 
 #endif