MPMA Framework 0.4
|
00001 00002 //Luke Lenhart, 2009 00003 //See /docs/License.txt for details on how this code may be used. 00004 00005 #pragma once 00006 00007 #include "../base/Setup.h" 00008 00009 #ifdef MPMA_COMPILE_GFXSETUP 00010 00011 #include "GL.h" 00012 //#define GL_GLEXT_PROTOTYPES 00013 #include <GL/glext.h> //Some platforms may need to obtain this from http://www.opengl.org/registry/ 00014 #include <string> 00015 00016 namespace GFX 00017 { 00018 typedef void (*VoidFuncPtrType)(); 00019 00021 bool IsExtensionAvailable(const std::string &name); 00022 00024 VoidFuncPtrType GetExtensionFunction(const std::string &name); 00025 } 00026 00027 #ifdef OPENGL_LOAD_COMMON_EXTENSIONS 00028 00029 namespace GFX_OPENGL_EXTENSIONS 00030 { 00031 extern PFNGLGENBUFFERSARBPROC glGenBuffersARB; 00032 extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB; 00033 extern PFNGLBINDBUFFERARBPROC glBindBufferARB; 00034 extern PFNGLBUFFERDATAARBPROC glBufferDataARB; 00035 #if !defined(linux) //curiously, these seem to already be defined in the base gl on linux even though they're extensions... which causes a name conflict with our declaration 00036 extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB; 00037 extern PFNGLACTIVETEXTUREPROC glActiveTextureARB; 00038 #endif 00039 00040 extern PFNGLCREATESHADERPROC glCreateShader; 00041 extern PFNGLDELETESHADERPROC glDeleteShader; 00042 extern PFNGLSHADERSOURCEPROC glShaderSourceARB; 00043 extern PFNGLCOMPILESHADERPROC glCompileShaderARB; 00044 extern PFNGLGETSHADERIVPROC glGetShaderiv; 00045 extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog; 00046 extern PFNGLCREATEPROGRAMPROC glCreateProgram; 00047 extern PFNGLDELETEPROGRAMPROC glDeleteProgram; 00048 extern PFNGLATTACHSHADERPROC glAttachShader; 00049 extern PFNGLDETACHSHADERPROC glDetachShader; 00050 extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB; 00051 extern PFNGLGETPROGRAMIVNVPROC glGetProgramiv; 00052 extern PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog; 00053 extern PFNGLUSEPROGRAMPROC glUseProgram; 00054 extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB; 00055 extern PFNGLUNIFORM1FPROC glUniform1fARB; 00056 extern PFNGLUNIFORM2FPROC glUniform2fARB; 00057 extern PFNGLUNIFORM3FPROC glUniform3fARB; 00058 extern PFNGLUNIFORM4FPROC glUniform4fARB; 00059 extern PFNGLUNIFORM1IPROC glUniform1iARB; 00060 extern PFNGLUNIFORM2IPROC glUniform2iARB; 00061 extern PFNGLUNIFORM3IPROC glUniform3iARB; 00062 extern PFNGLUNIFORM4IPROC glUniform4iARB; 00063 extern PFNGLUNIFORM1FVPROC glUniform1fvARB; 00064 extern PFNGLUNIFORM2FVPROC glUniform2fvARB; 00065 extern PFNGLUNIFORM3FVPROC glUniform3fvARB; 00066 extern PFNGLUNIFORM4FVPROC glUniform4fvARB; 00067 extern PFNGLUNIFORM1IVPROC glUniform1ivARB; 00068 extern PFNGLUNIFORM2IVPROC glUniform2ivARB; 00069 extern PFNGLUNIFORM3IVPROC glUniform3ivARB; 00070 extern PFNGLUNIFORM4IVPROC glUniform4ivARB; 00071 extern PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fvARB; 00072 extern PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fvARB; 00073 extern PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fvARB; 00074 } 00075 using namespace GFX_OPENGL_EXTENSIONS; 00076 00077 #endif //GFX_OPENGL_EXTENSIONS 00078 00079 #endif //#ifdef MPMA_COMPILE_GFXSETUP