glc_ext.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 
00003  This file is part of the GLC-lib library.
00004  Copyright (C) 2005-2008 Laurent Ribon (laumaya@users.sourceforge.net)
00005  Version 2.0.0 Beta 1, packaged on April 2010.
00006 
00007  http://glc-lib.sourceforge.net
00008 
00009  GLC-lib is free software; you can redistribute it and/or modify
00010  it under the terms of the GNU General Public License as published by
00011  the Free Software Foundation; either version 2 of the License, or
00012  (at your option) any later version.
00013 
00014  GLC-lib is distributed in the hope that it will be useful,
00015  but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  GNU General Public License for more details.
00018 
00019  You should have received a copy of the GNU General Public License
00020  along with GLC-lib; if not, write to the Free Software
00021  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00022 
00023 *****************************************************************************/
00025 
00026 #ifndef GLC_EXT_H_
00027 #define GLC_EXT_H_
00028 
00029 #include <QtOpenGL>
00030 #include "glext/glext.h"
00031 
00032 // Buffer offset used by VBO
00033 #define BUFFER_OFFSET(i) ((char*)NULL + (i))
00034 
00035 #if !defined(Q_OS_MAC)
00036 // ARB_vertex_buffer_object
00037 extern PFNGLBINDBUFFERARBPROC                   glBindBuffer;
00038 extern PFNGLDELETEBUFFERSARBPROC                glDeleteBuffers;
00039 extern PFNGLGENBUFFERSARBPROC                   glGenBuffers;
00040 extern PFNGLISBUFFERARBPROC                             glIsBuffer;
00041 extern PFNGLBUFFERDATAARBPROC                   glBufferData;
00042 extern PFNGLBUFFERSUBDATAARBPROC                glBufferSubData;
00043 extern PFNGLGETBUFFERSUBDATAARBPROC             glGetBufferSubData;
00044 extern PFNGLMAPBUFFERARBPROC                    glMapBuffer;
00045 extern PFNGLUNMAPBUFFERARBPROC                  glUnmapBuffer;
00046 extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameteriv;
00047 extern PFNGLGETBUFFERPOINTERVARBPROC    glGetBufferPointerv;
00048 // glDrawRangElement
00049 //extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
00050 // glMultiDrawElement
00051 extern PFNGLMULTIDRAWELEMENTSPROC               glMultiDrawElements;
00052 // GL_ARB_shader_objects
00053 extern PFNGLCREATEPROGRAMOBJECTARBPROC  glCreateProgram;
00054 extern PFNGLDELETEPROGRAMPROC                   glDeleteProgram;
00055 extern PFNGLUSEPROGRAMOBJECTARBPROC             glUseProgram;
00056 extern PFNGLCREATESHADEROBJECTARBPROC   glCreateShader;
00057 extern PFNGLDELETESHADERPROC                    glDeleteShader;
00058 extern PFNGLSHADERSOURCEARBPROC         glShaderSource;
00059 extern PFNGLCOMPILESHADERARBPROC        glCompileShader;
00060 extern PFNGLATTACHOBJECTARBPROC                 glAttachShader;
00061 extern PFNGLDETACHOBJECTARBPROC                 glDetachShader;
00062 extern PFNGLLINKPROGRAMARBPROC          glLinkProgram;
00063 extern PFNGLGETUNIFORMLOCATIONARBPROC   glGetUniformLocation;
00064 extern PFNGLUNIFORM4FARBPROC            glUniform4f;
00065 extern PFNGLUNIFORM1IARBPROC            glUniform1i;
00066 extern PFNGLGETSHADERIVPROC                             glGetShaderiv;
00067 extern PFNGLGETPROGRAMIVARBPROC                 glGetProgramiv;
00068 extern PFNGLISPROGRAMARBPROC                    glIsProgram;
00069 
00070 // GL_point_parameters Point Sprite
00071 extern PFNGLPOINTPARAMETERFARBPROC  glPointParameterf;
00072 extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfv;
00073 
00074 #endif
00075 
00076 namespace glc
00077 {
00079         bool extensionIsSupported(const QString&);
00080 
00082         bool loadVboExtension();
00083 
00085         bool loadGlSlExtension();
00086 
00088         bool loadPointSpriteExtension();
00089 };
00090 #endif /*GLC_EXT_H_*/

SourceForge.net Logo

©2005 Laurent Ribon