|
Equalizer
1.3.1-git
|
00001 00002 /* Copyright (c) 2011, Stefan Eilemann <eile@eyescale.ch> 00003 * 00004 * This library is free software; you can redistribute it and/or modify it under 00005 * the terms of the GNU Lesser General Public License version 2.1 as published 00006 * by the Free Software Foundation. 00007 * 00008 * This library is distributed in the hope that it will be useful, but WITHOUT 00009 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00010 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00011 * details. 00012 * 00013 * You should have received a copy of the GNU Lesser General Public License 00014 * along with this library; if not, write to the Free Software Foundation, Inc., 00015 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00016 */ 00017 00018 #ifndef EQ_GL_H 00019 #define EQ_GL_H 00020 00030 #include <eq/client/api.h> 00031 00032 #include <string> 00033 00035 #ifndef NOMINMAX 00036 # define NOMINMAX 00037 #endif 00038 #ifndef EQ_IGNORE_GLEW 00039 # ifdef EQ_FOUND_GLEW_MX 00040 # include <GL/glew.h> 00041 # ifdef GLX 00042 # include <GL/glxew.h> 00043 # endif 00044 # ifdef WGL 00045 # include <GL/wglew.h> 00046 # endif 00047 # else 00048 # include <eq/GL/glew.h> 00049 # ifdef GLX 00050 # include <eq/GL/glxew.h> 00051 # endif 00052 # ifdef WGL 00053 # include <eq/GL/wglew.h> 00054 # endif 00055 # endif 00056 #endif 00057 00058 #ifdef AGL 00059 # include <OpenGL/gl.h> 00060 #else 00061 # include <eq/client/os.h> 00062 # include <GL/gl.h> 00063 #endif 00064 00065 #ifndef GL_TEXTURE_RECTANGLE_ARB 00066 # define GL_TEXTURE_RECTANGLE_ARB 0x84F5 00067 #endif 00068 00070 // Error-check macros 00071 namespace eq 00072 { 00074 EQ_API void debugGLError( const std::string& when, const GLenum error, 00075 const char* file, const int line ); 00076 } 00077 00078 #ifdef NDEBUG 00079 # define EQ_GL_ERROR( when ) 00080 # define EQ_GL_CALL( code ) { code; } 00081 #else // NDEBUG 00082 # define EQ_GL_ERROR( when ) \ 00083 { \ 00084 const GLenum eqGlError = glGetError(); \ 00085 if( eqGlError ) \ 00086 eq::debugGLError( when, eqGlError, __FILE__, __LINE__ ); \ 00087 } 00088 00089 # define EQ_GL_CALL( code ) \ 00090 { \ 00091 EQ_GL_ERROR( std::string( "before " ) + #code ); \ 00092 code; \ 00093 EQ_GL_ERROR( std::string( "after " ) + #code ); \ 00094 } 00095 #endif // NDEBUG 00096 00097 #endif // EQ_GL_H 00098
1.3.1-git by
1.8.0