X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=glimports.hpp;h=9d60c82c26ff3b915b80ebdb99f20f66c38d9b35;hb=4c5f6fa4d7474bc2a13a6c00bd3f4ac47ff56920;hp=5277a0aabd2cc6871f0bc253e28a7dd571563bcc;hpb=676965ea5090a00ebb9f6f47da1c2a03bad7060d;p=apitrace diff --git a/glimports.hpp b/glimports.hpp index 5277a0a..9d60c82 100644 --- a/glimports.hpp +++ b/glimports.hpp @@ -30,36 +30,71 @@ #ifndef _GLIMPORTS_HPP_ #define _GLIMPORTS_HPP_ -#ifdef _WIN32 + +// Prevent including MacOSX's glext.h which lives in OpenGL/glext.h and not +// GL/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__) +# include // 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 #define WIN32_LEAN_AND_MEAN 1 #endif #include +#include -#else /* !_WIN32 */ +#elif defined(__APPLE__) -#include +#include -#endif /* !_WIN32 */ +#else -// Prevent including system's glext.h -#define __glext_h_ +#ifdef HAVE_X11 +#include +#endif #include +#endif /* !_WIN32 */ + + +// Include our own glext.h #undef __glext_h_ +#include -#include "glext/glext.h" #ifndef GL_TEXTURE_INDEX_SIZE_EXT #define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED #endif -#ifdef _WIN32 +// GL_NVX_gpu_memory_info +#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 +#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 +#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 +#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A +#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B -#include "glext/wglext.h" + +#if defined(_WIN32) + +#include #define GLAPIENTRY __stdcall @@ -70,7 +105,7 @@ #define PFD_SUPPORT_COMPOSITION 0x00008000 #endif -#ifdef __MINGW32__ +#ifndef WGL_SWAPMULTIPLE_MAX extern "C" typedef struct _WGLSWAP @@ -81,16 +116,47 @@ typedef struct _WGLSWAP #define WGL_SWAPMULTIPLE_MAX 16 -#endif /* __MINGW32__ */ +#endif /* !WGL_SWAPMULTIPLE_MAX */ + +#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; -#else /* !_WIN32 */ +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 + +#ifdef HAVE_X11 #include -#include "glext/glxext.h" +#include +#endif -/* Prevent collision with Trace::Bool */ +/* Prevent collision with trace::Bool */ #undef Bool -#endif /* !_WIN32 */ +#endif + + +#include "eglimports.hpp" + #endif /* _GLIMPORTS_HPP_ */