Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

OgreGLPrerequisites.h

Go to the documentation of this file.
00001 /*
00002 -----------------------------------------------------------------------------
00003 This source file is part of OGRE
00004     (Object-oriented Graphics Rendering Engine)
00005 For the latest info, see http://www.ogre3d.org/
00006 
00007 Copyright (c) 2000-2005 The OGRE Team
00008 Also see acknowledgements in Readme.html
00009 
00010 This program is free software; you can redistribute it and/or modify it under
00011 the terms of the GNU Lesser General Public License as published by the Free Software
00012 Foundation; either version 2 of the License, or (at your option) any later
00013 version.
00014 
00015 This program is distributed in the hope that it will be useful, but WITHOUT
00016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00017 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
00018 
00019 You should have received a copy of the GNU Lesser General Public License along with
00020 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00021 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
00022 http://www.gnu.org/copyleft/lesser.txt.
00023 -----------------------------------------------------------------------------
00024 */
00025 #ifndef __GLPrerequisites_H__
00026 #define __GLPrerequisites_H__
00027 
00028 #include "OgrePrerequisites.h"
00029 
00030 namespace Ogre {
00031     // Forward declarations
00032     class GLSupport;
00033     class GLRenderSystem;
00034     class GLTexture;
00035     class GLTextureManager;
00036     class GLGpuProgram;
00037     class GLContext;
00038     class GLRTTManager;
00039     class GLFBOManager;
00040     class GLHardwarePixelBuffer;
00041     class GLRenderBuffer;
00042 }
00043 
00044 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
00045 #if !defined( __MINGW32__ )
00046 #   define NOMINMAX // required to stop windows.h messing up std::min
00047 #endif
00048 #   include <windows.h>
00049 #   include <wingdi.h>
00050 #   include <GL/glew.h>
00051 #   include <GL/wglew.h>
00052 #   include <GL/glu.h>
00053 #elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
00054 #   include <GL/glew.h>
00055 #   include <GL/glu.h>
00056 #   define GL_GLEXT_PROTOTYPES
00057 #elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE
00058 #   include <GL/glew.h>
00059 #   include <OpenGL/glu.h>
00060 #endif
00061 
00062 
00063 
00064 
00065 #ifdef  OGRE_DEBUG_MODE
00066 
00067 #ifndef GL_ERROR_EXCEPT
00068 
00069 #define OGRE_GL_GETERROR(ERROR_MSG) {const GLubyte *errString; \
00070     GLenum errCode = glGetError(); \
00071     if (errCode != GL_NO_ERROR) {  \
00072     errString = gluErrorString (errCode);  \
00073     LogManager::getSingleton().logMessage  ("[GL] :" + Ogre::String(ERROR_MSG) +  \
00074     " : " + Ogre::String( (const char*) errString)); \
00075         } \
00076     }
00077 
00078 #else //GL_ERROR_EXCEPT
00079 
00080 #define OGRE_GL_GETERROR(ERROR_MSG) {const GLubyte *errString; \
00081     GLenum errCode = glGetError(); \
00082     if (errCode != GL_NO_ERROR) {  \
00083     errString = gluErrorString (errCode);  \
00084     OGRE_EXCEPT (Exception::ERR_INTERNAL_ERROR,  \
00085     Ogre::String(ERROR_MSG) +  \
00086     " : " + Ogre::String( (const char*) errString), String("")); \
00087         } \
00088     }
00089 
00090 #endif //GL_ERROR_EXCEPT
00091 
00092 #else //OGRE_DEBUG_MODE
00093 
00094 #define OGRE_GL_GETERROR()
00095 
00096 #endif //OGRE_DEBUG_MODE
00097 
00098 #endif

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:37:41 2006