fife_opengl.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef FIFE_UTIL_FIFEGL_H
00023 #define FIFE_UTIL_FIFEGL_H
00024
00025
00026
00027
00028
00029 #if defined( __unix__ )
00030 #include <GL/gl.h>
00031 #include <GL/glu.h>
00032 #endif
00033
00034
00035 #if defined( WIN32 )
00036
00037 #if defined( _MSC_VER )
00038 #include <windows.h>
00039 #include <GL/gl.h>
00040 #include <GL/glu.h>
00041 #undef DELETE
00042
00043 #else
00044 #include <GL/gl.h>
00045 #include <GL/glu.h>
00046 #endif
00047 #endif
00048
00049
00050 #if defined( __APPLE_CC__ )
00051 #include <OpenGL/gl.h>
00052 #include <OpenGL/glu.h>
00053 #include <OpenGL/glext.h>
00054 #endif
00055
00056
00057
00058
00059
00060
00061
00062
00063 namespace FIFE {
00064
00065 struct GLEnable {
00066 GLenum m_flag;
00067 GLboolean m_oldval;
00068 GLEnable(GLenum flag) : m_flag(flag) {
00069 glGetBooleanv(flag, &m_oldval);
00070 if (!m_oldval) {
00071 glEnable(flag);
00072 }
00073 }
00074 ~GLEnable() {
00075 if (!m_oldval) {
00076 glDisable(m_flag);
00077 }
00078 }
00079 };
00080
00081 struct GLDisable {
00082 GLenum m_flag;
00083 GLboolean m_oldval;
00084 GLDisable(GLenum flag) : m_flag(flag) {
00085 glGetBooleanv(flag, &m_oldval);
00086 if (m_oldval) {
00087 glDisable(flag);
00088 }
00089 }
00090 ~GLDisable() {
00091 if (m_oldval) {
00092 glEnable(m_flag);
00093 }
00094 }
00095 };
00096
00097
00098 }
00099
00100 #endif