28 #ifndef __GL3PlusPrerequisites_H__
29 #define __GL3PlusPrerequisites_H__
36 class GL3PlusRenderSystem;
38 class GL3PlusTextureManager;
39 class GL3PlusGpuProgram;
41 class GL3PlusRTTManager;
42 class GL3PlusFBOManager;
43 class GL3PlusHardwarePixelBuffer;
44 class GL3PlusRenderBuffer;
51 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
52 #if !defined( __MINGW32__ )
53 # define WIN32_LEAN_AND_MEAN
55 # define NOMINMAX // required to stop windows.h messing up std::min
58 # define WGL_WGLEXT_PROTOTYPES
62 # include <GL/glext.h>
63 # include <GL/wglext.h>
64 #elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
65 # define GL_GLEXT_PROTOTYPES
66 # define GLX_GLXEXT_PROTOTYPES
68 # include <X11/Xlib.h>
70 # include <GL/glext.h>
72 # include <GL/glxext.h>
74 #elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE
76 # include <OpenGL/gl3ext.h>
80 #if !defined( _CRT_SECURE_NO_DEPRECATE )
81 #define _CRT_SECURE_NO_DEPRECATE
84 #if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32) && !defined(__MINGW32__) && !defined(OGRE_STATIC_LIB)
85 # ifdef RenderSystem_GL3Plus_EXPORTS
86 # define _OgreGL3PlusExport __declspec(dllexport)
88 # if defined( __MINGW32__ )
89 # define _OgreGL3PlusExport
91 # define _OgreGL3PlusExport __declspec(dllimport)
94 #elif defined ( OGRE_GCC_VISIBILITY )
95 # define _OgreGL3PlusExport __attribute__ ((visibility("default")))
97 # define _OgreGL3PlusExport
101 #define GL_BUFFER_OFFSET(i) ((char *)NULL + (i))
103 #if OGRE_COMPILER == OGRE_COMPILER_MSVC
104 # define __PRETTY_FUNCTION__ __FUNCTION__
107 #define ENABLE_GL_CHECK 0
109 #define OGRE_CHECK_GL_ERROR(glFunc) \
112 int e = glGetError(); \
115 const char * errorString = ""; \
118 case GL_INVALID_ENUM: errorString = "GL_INVALID_ENUM"; break; \
119 case GL_INVALID_VALUE: errorString = "GL_INVALID_VALUE"; break; \
120 case GL_INVALID_OPERATION: errorString = "GL_INVALID_OPERATION"; break; \
121 case GL_INVALID_FRAMEBUFFER_OPERATION: errorString = "GL_INVALID_FRAMEBUFFER_OPERATION"; break; \
122 case GL_OUT_OF_MEMORY: errorString = "GL_OUT_OF_MEMORY"; break; \
126 StringVector tokens = StringUtil::split(#glFunc, "("); \
127 sprintf(msgBuf, "OpenGL error 0x%04X %s in %s at line %i for %s\n", e, errorString, __PRETTY_FUNCTION__, __LINE__, tokens[0].c_str()); \
128 LogManager::getSingleton().logMessage(msgBuf, LML_CRITICAL); \
132 # define OGRE_CHECK_GL_ERROR(glFunc) { glFunc; }
135 #endif //#ifndef __GL3PlusPrerequisites_H__
SharedPtr< GL3PlusTexture > GL3PlusTexturePtr
SharedPtr< GL3PlusGpuProgram > GL3PlusGpuProgramPtr
Reference-counted shared pointer, used for objects where implicit destruction is required.