00001 /**************************************************************************** 00002 00003 This file is part of the GLC-lib library. 00004 Copyright (C) 2005-2008 Laurent Ribon (laumaya@users.sourceforge.net) 00005 http://glc-lib.sourceforge.net 00006 00007 GLC-lib is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU Lesser General Public License as published by 00009 the Free Software Foundation; either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 GLC-lib is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU Lesser General Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public License 00018 along with GLC-lib; if not, write to the Free Software 00019 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 00021 *****************************************************************************/ 00023 00024 #ifndef GLC_EXT_H_ 00025 #define GLC_EXT_H_ 00026 00027 #include <QtOpenGL> 00028 #include "3rdparty/glext/glext.h" 00029 00030 // Buffer offset used by VBO 00031 #define BUFFER_OFFSET(i) ((char*)NULL + (i)) 00032 00033 #if !defined(Q_OS_MAC) 00034 // ARB_vertex_buffer_object 00035 extern PFNGLBINDBUFFERARBPROC glBindBuffer; 00036 extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffers; 00037 extern PFNGLGENBUFFERSARBPROC glGenBuffers; 00038 extern PFNGLISBUFFERARBPROC glIsBuffer; 00039 extern PFNGLBUFFERDATAARBPROC glBufferData; 00040 extern PFNGLBUFFERSUBDATAARBPROC glBufferSubData; 00041 extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubData; 00042 extern PFNGLMAPBUFFERARBPROC glMapBuffer; 00043 extern PFNGLUNMAPBUFFERARBPROC glUnmapBuffer; 00044 extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameteriv; 00045 extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointerv; 00046 // glDrawRangElement 00047 //extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements; 00048 // glMultiDrawElement 00049 extern PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements; 00050 00051 // GL_point_parameters Point Sprite 00052 extern PFNGLPOINTPARAMETERFARBPROC glPointParameterf; 00053 extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfv; 00054 00055 #endif 00056 00057 namespace glc 00058 { 00060 bool extensionIsSupported(const QString&); 00061 00063 bool loadVboExtension(); 00064 00066 bool loadGlSlExtension(); 00067 00069 bool loadPointSpriteExtension(); 00070 }; 00071 #endif /*GLC_EXT_H_*/