X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=glimports.hpp;h=d0dc0daa3e90b1230a19617707caabd17df4fe47;hb=b25c4b9fccc76976d633bc5b183a84553ab01998;hp=5cb276db1d1529bdd311441f92f92b7e3f6bda8b;hpb=3dabe543b983aaa89ff3a85f790d6e1d60d93732;p=apitrace diff --git a/glimports.hpp b/glimports.hpp index 5cb276d..d0dc0da 100644 --- a/glimports.hpp +++ b/glimports.hpp @@ -31,6 +31,19 @@ #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 @@ -38,25 +51,25 @@ #endif #include +#include #elif defined(__APPLE__) +#include + #else #include +#include #endif /* !_WIN32 */ -// Prevent including system's glext.h -#define __glext_h_ - -#include - +// 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,16 +104,40 @@ typedef struct _WGLSWAP #elif defined(__APPLE__) #include +#include +#include + +#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 #include "glext/glxext.h" -/* Prevent collision with Trace::Bool */ +/* Prevent collision with trace::Bool */ #undef Bool #endif +#include "eglimports.hpp" + + #endif /* _GLIMPORTS_HPP_ */