#ifndef _GLIMPORTS_HPP_
#define _GLIMPORTS_HPP_
-#ifdef _WIN32
-
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN 1
-#endif
-
-#include <windows.h>
-
-#else /* !_WIN32 */
-
-#include <X11/Xlib.h>
+#if defined(_WIN32)
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN 1
+# endif
+# include <windows.h>
+#elif defined(__APPLE__)
+#elif defined(HAVE_X11)
+# include <X11/Xlib.h>
#endif /* !_WIN32 */
-// Prevent including system's glext.h
-#define __glext_h_
#include <GL/gl.h>
+#include <GL/glext.h>
-#undef __glext_h_
-#include "glext/glext.h"
+// 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
-#ifndef GL_TEXTURE_INDEX_SIZE_EXT
-#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
-#endif
-
-#ifdef _WIN32
-#include "glext/wglext.h"
+#if defined(_WIN32)
-#define GLAPIENTRY __stdcall
+#include <GL/wglext.h>
#ifndef PFD_SUPPORT_DIRECTDRAW
#define PFD_SUPPORT_DIRECTDRAW 0x00002000
#endif /* !WGL_SWAPMULTIPLE_MAX */
-#else /* !_WIN32 */
+#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
+
+#ifdef HAVE_X11
#include <GL/glx.h>
-#include "glext/glxext.h"
+#include <GL/glxext.h>
+#endif
-/* Prevent collision with Trace::Bool */
+/* Prevent collision with trace::Bool */
#undef Bool
-#endif /* !_WIN32 */
+#endif
-#ifdef __APPLE__
-#include <OpenGL/CGLCurrent.h>
+#include "eglimports.hpp"
-#endif /* __APPLE__ */
#endif /* _GLIMPORTS_HPP_ */