00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #pragma once
00013
00015 #include "nvsgcommon.h"
00016
00017 #include <set>
00018 #include <string>
00019
00020 namespace nvgl
00021 {
00022
00024
00029 class GLFunctions
00030 {
00031 public:
00033 #if defined(_WIN32)
00034 GLFunctions( void );
00035 #elif defined(LINUX)
00036 GLFunctions( Display* dpy );
00037 #endif
00038
00040 ~GLFunctions( void );
00041
00043
00045 bool isAvailable( const std::string& extension ) const;
00046
00048
00050 bool isExported( const std::string& extension ) const;
00051
00052 public:
00053
00054 #if ! defined( DOXYGEN_IGNORE )
00055
00056 PFNGLBLENDCOLORPROC glBlendColor;
00057 PFNGLBLENDEQUATIONPROC glBlendEquation;
00058 PFNGLCOLORTABLEPROC glColorTable;
00059 PFNGLCOLORTABLEPARAMETERFVPROC glColorTableParameterfv;
00060 PFNGLCOLORTABLEPARAMETERIVPROC glColorTableParameteriv;
00061 PFNGLCOPYCOLORTABLEPROC glCopyColorTable;
00062 PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
00063 PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
00064 PFNGLGETCOLORTABLEPROC glGetColorTable;
00065 PFNGLGETCOLORTABLEPARAMETERFVPROC glGetColorTableParameterfv;
00066 PFNGLGETCOLORTABLEPARAMETERIVPROC glGetColorTableParameteriv;
00067 PFNGLTEXIMAGE3DPROC glTexImage3D;
00068 PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
00069
00070
00071 PFNGLACTIVETEXTUREPROC glActiveTexture;
00072 PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTexture;
00073 PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
00074 PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D;
00075 PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D;
00076 PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
00077 PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
00078 PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D;
00079 PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage;
00080 PFNGLLOADTRANSPOSEMATRIXFPROC glLoadTransposeMatrixf;
00081 PFNGLLOADTRANSPOSEMATRIXDPROC glLoadTransposeMatrixd;
00082 PFNGLMULTITEXCOORD1DPROC glMultiTexCoord1d;
00083 PFNGLMULTITEXCOORD1DVPROC glMultiTexCoord1dv;
00084 PFNGLMULTITEXCOORD1FPROC glMultiTexCoord1f;
00085 PFNGLMULTITEXCOORD1FVPROC glMultiTexCoord1fv;
00086 PFNGLMULTITEXCOORD1IPROC glMultiTexCoord1i;
00087 PFNGLMULTITEXCOORD1IVPROC glMultiTexCoord1iv;
00088 PFNGLMULTITEXCOORD1SPROC glMultiTexCoord1s;
00089 PFNGLMULTITEXCOORD1SVPROC glMultiTexCoord1sv;
00090 PFNGLMULTITEXCOORD2DPROC glMultiTexCoord2d;
00091 PFNGLMULTITEXCOORD2DVPROC glMultiTexCoord2dv;
00092 PFNGLMULTITEXCOORD2FPROC glMultiTexCoord2f;
00093 PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv;
00094 PFNGLMULTITEXCOORD2IPROC glMultiTexCoord2i;
00095 PFNGLMULTITEXCOORD2IVPROC glMultiTexCoord2iv;
00096 PFNGLMULTITEXCOORD2SPROC glMultiTexCoord2s;
00097 PFNGLMULTITEXCOORD2SVPROC glMultiTexCoord2sv;
00098 PFNGLMULTITEXCOORD3DPROC glMultiTexCoord3d;
00099 PFNGLMULTITEXCOORD3DVPROC glMultiTexCoord3dv;
00100 PFNGLMULTITEXCOORD3FPROC glMultiTexCoord3f;
00101 PFNGLMULTITEXCOORD3FVPROC glMultiTexCoord3fv;
00102 PFNGLMULTITEXCOORD3IPROC glMultiTexCoord3i;
00103 PFNGLMULTITEXCOORD3IVPROC glMultiTexCoord3iv;
00104 PFNGLMULTITEXCOORD3SPROC glMultiTexCoord3s;
00105 PFNGLMULTITEXCOORD3SVPROC glMultiTexCoord3sv;
00106 PFNGLMULTITEXCOORD4DPROC glMultiTexCoord4d;
00107 PFNGLMULTITEXCOORD4DVPROC glMultiTexCoord4dv;
00108 PFNGLMULTITEXCOORD4FPROC glMultiTexCoord4f;
00109 PFNGLMULTITEXCOORD4FVPROC glMultiTexCoord4fv;
00110 PFNGLMULTITEXCOORD4IPROC glMultiTexCoord4i;
00111 PFNGLMULTITEXCOORD4IVPROC glMultiTexCoord4iv;
00112 PFNGLMULTITEXCOORD4SPROC glMultiTexCoord4s;
00113 PFNGLMULTITEXCOORD4SVPROC glMultiTexCoord4sv;
00114 PFNGLMULTTRANSPOSEMATRIXFPROC glMultTransposeMatrixf;
00115 PFNGLMULTTRANSPOSEMATRIXDPROC glMultTransposeMatrixd;
00116 PFNGLSAMPLECOVERAGEPROC glSampleCoverage;
00117
00118
00119 PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
00120 PFNGLFOGCOORDDPROC glFogCoordd;
00121 PFNGLFOGCOORDDVPROC glFogCoorddv;
00122 PFNGLFOGCOORDFPROC glFogCoordf;
00123 PFNGLFOGCOORDFVPROC glFogCoordfv;
00124 PFNGLFOGCOORDPOINTERPROC glFogCoordPointer;
00125 PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays;
00126 PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements;
00127 PFNGLPOINTPARAMETERFPROC glPointParameterf;
00128 PFNGLPOINTPARAMETERFVPROC glPointParameterfv;
00129 PFNGLPOINTPARAMETERIPROC glPointParameteri;
00130 PFNGLPOINTPARAMETERIVPROC glPointParameteriv;
00131 PFNGLSECONDARYCOLOR3BPROC glSecondaryColor3b;
00132 PFNGLSECONDARYCOLOR3BVPROC glSecondaryColor3bv;
00133 PFNGLSECONDARYCOLOR3DPROC glSecondaryColor3d;
00134 PFNGLSECONDARYCOLOR3DVPROC glSecondaryColor3dv;
00135 PFNGLSECONDARYCOLOR3FPROC glSecondaryColor3f;
00136 PFNGLSECONDARYCOLOR3FVPROC glSecondaryColor3fv;
00137 PFNGLSECONDARYCOLOR3IPROC glSecondaryColor3i;
00138 PFNGLSECONDARYCOLOR3IVPROC glSecondaryColor3iv;
00139 PFNGLSECONDARYCOLOR3SPROC glSecondaryColor3s;
00140 PFNGLSECONDARYCOLOR3SVPROC glSecondaryColor3sv;
00141 PFNGLSECONDARYCOLOR3UBPROC glSecondaryColor3ub;
00142 PFNGLSECONDARYCOLOR3UBVPROC glSecondaryColor3ubv;
00143 PFNGLSECONDARYCOLOR3UIPROC glSecondaryColor3ui;
00144 PFNGLSECONDARYCOLOR3UIVPROC glSecondaryColor3uiv;
00145 PFNGLSECONDARYCOLOR3USPROC glSecondaryColor3us;
00146 PFNGLSECONDARYCOLOR3USVPROC glSecondaryColor3usv;
00147 PFNGLSECONDARYCOLORPOINTERPROC glSecondaryColorPointer;
00148 PFNGLWINDOWPOS2DPROC glWindowPos2d;
00149 PFNGLWINDOWPOS2FPROC glWindowPos2f;
00150 PFNGLWINDOWPOS2IPROC glWindowPos2i;
00151 PFNGLWINDOWPOS2SPROC glWindowPos2s;
00152 PFNGLWINDOWPOS2DVPROC glWindowPos2dv;
00153 PFNGLWINDOWPOS2FVPROC glWindowPos2fv;
00154 PFNGLWINDOWPOS2IVPROC glWindowPos2iv;
00155 PFNGLWINDOWPOS2SVPROC glWindowPos2sv;
00156 PFNGLWINDOWPOS3DPROC glWindowPos3d;
00157 PFNGLWINDOWPOS3FPROC glWindowPos3f;
00158 PFNGLWINDOWPOS3IPROC glWindowPos3i;
00159 PFNGLWINDOWPOS3SPROC glWindowPos3s;
00160 PFNGLWINDOWPOS3DVPROC glWindowPos3dv;
00161 PFNGLWINDOWPOS3FVPROC glWindowPos3fv;
00162 PFNGLWINDOWPOS3IVPROC glWindowPos3iv;
00163 PFNGLWINDOWPOS3SVPROC glWindowPos3sv;
00164
00165
00166
00167
00168 PFNGLCOLORSUBTABLEPROC glColorSubTable;
00169 PFNGLCOPYCOLORSUBTABLEPROC glCopyColorSubTable;
00170 PFNGLCONVOLUTIONFILTER1DPROC glConvolutionFilter1D;
00171 PFNGLCONVOLUTIONFILTER2DPROC glConvolutionFilter2D;
00172 PFNGLCONVOLUTIONPARAMETERFPROC glConvolutionParameterf;
00173 PFNGLCONVOLUTIONPARAMETERFVPROC glConvolutionParameterfv;
00174 PFNGLCONVOLUTIONPARAMETERIPROC glConvolutionParameteri;
00175 PFNGLCONVOLUTIONPARAMETERIVPROC glConvolutionParameteriv;
00176 PFNGLCOPYCONVOLUTIONFILTER1DPROC glCopyConvolutionFilter1D;
00177 PFNGLCOPYCONVOLUTIONFILTER2DPROC glCopyConvolutionFilter2D;
00178 PFNGLGETCONVOLUTIONFILTERPROC glGetConvolutionFilter;
00179 PFNGLGETCONVOLUTIONPARAMETERFVPROC glGetConvolutionParameterfv;
00180 PFNGLGETCONVOLUTIONPARAMETERIVPROC glGetConvolutionParameteriv;
00181 PFNGLGETSEPARABLEFILTERPROC glGetSeparableFilter;
00182 PFNGLSEPARABLEFILTER2DPROC glSeparableFilter2D;
00183 PFNGLGETHISTOGRAMPROC glGetHistogram;
00184 PFNGLGETHISTOGRAMPARAMETERFVPROC glGetHistogramParameterfv;
00185 PFNGLGETHISTOGRAMPARAMETERIVPROC glGetHistogramParameteriv;
00186 PFNGLGETMINMAXPROC glGetMinmax;
00187 PFNGLGETMINMAXPARAMETERFVPROC glGetMinmaxParameterfv;
00188 PFNGLGETMINMAXPARAMETERIVPROC glGetMinmaxParameteriv;
00189 PFNGLHISTOGRAMPROC glHistogram;
00190 PFNGLMINMAXPROC glMinmax;
00191 PFNGLRESETHISTOGRAMPROC glResetHistogram;
00192 PFNGLRESETMINMAXPROC glResetMinmax;
00193
00194
00195 PFNGLGENQUERIESARBPROC glGenQueriesARB;
00196 PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
00197 PFNGLISQUERYARBPROC glIsQueryARB;
00198 PFNGLBEGINQUERYARBPROC glBeginQueryARB;
00199 PFNGLENDQUERYARBPROC glEndQueryARB;
00200 PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
00201 PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
00202 PFNGLGETQUERYIVARBPROC glGetQueryivARB;
00203
00204
00205 PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
00206 PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
00207
00208
00209 PFNGLBINDBUFFERARBPROC glBindBufferARB;
00210 PFNGLBUFFERDATAARBPROC glBufferDataARB;
00211 PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
00212 PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
00213 PFNGLGENBUFFERSARBPROC glGenBuffersARB;
00214 PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
00215 PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
00216 PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
00217 PFNGLISBUFFERARBPROC glIsBufferARB;
00218 PFNGLMAPBUFFERARBPROC glMapBufferARB;
00219 PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
00220
00221
00222 PFNGLBINDPROGRAMARBPROC glBindProgramARB;
00223 PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
00224 PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
00225 PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
00226 PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
00227 PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
00228 PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
00229 PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
00230 PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
00231 PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
00232 PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
00233 PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
00234 PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
00235 PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
00236 PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
00237 PFNGLISPROGRAMARBPROC glIsProgramARB;
00238 PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
00239 PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
00240 PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
00241 PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
00242 PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
00243 PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
00244 PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
00245 PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
00246 PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
00247 PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
00248 PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
00249 PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
00250 PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
00251 PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
00252 PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
00253 PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
00254 PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
00255 PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
00256 PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
00257 PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
00258 PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
00259 PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
00260 PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
00261 PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
00262 PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
00263 PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
00264 PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
00265 PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4NbvARB;
00266 PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4NivARB;
00267 PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4NsvARB;
00268 PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4NubARB;
00269 PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4NubvARB;
00270 PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4NuivARB;
00271 PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4NusvARB;
00272 PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
00273 PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
00274 PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
00275 PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
00276 PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
00277 PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
00278 PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
00279 PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
00280 PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
00281 PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
00282 PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
00283 PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
00284
00285
00286 PFNGLWINDOWPOS2DARBPROC glWindowPos2dARB;
00287 PFNGLWINDOWPOS2FARBPROC glWindowPos2fARB;
00288 PFNGLWINDOWPOS2IARBPROC glWindowPos2iARB;
00289 PFNGLWINDOWPOS2SARBPROC glWindowPos2sARB;
00290 PFNGLWINDOWPOS2DVARBPROC glWindowPos2dvARB;
00291 PFNGLWINDOWPOS2FVARBPROC glWindowPos2fvARB;
00292 PFNGLWINDOWPOS2IVARBPROC glWindowPos2ivARB;
00293 PFNGLWINDOWPOS2SVARBPROC glWindowPos2svARB;
00294 PFNGLWINDOWPOS3DARBPROC glWindowPos3dARB;
00295 PFNGLWINDOWPOS3FARBPROC glWindowPos3fARB;
00296 PFNGLWINDOWPOS3IARBPROC glWindowPos3iARB;
00297 PFNGLWINDOWPOS3SARBPROC glWindowPos3sARB;
00298 PFNGLWINDOWPOS3DVARBPROC glWindowPos3dvARB;
00299 PFNGLWINDOWPOS3FVARBPROC glWindowPos3fvARB;
00300 PFNGLWINDOWPOS3IVARBPROC glWindowPos3ivARB;
00301 PFNGLWINDOWPOS3SVARBPROC glWindowPos3svARB;
00302
00303
00304 PFNGLWINDOWBACKBUFFERHINTAUTODESKPROC glWindowBackBufferHintAutodesk;
00305 PFNGLVALIDBACKBUFFERHINTAUTODESKPROC glValidBackBufferHintAutodesk;
00306
00307
00308 PFNGLBLENDFUNCSEPARATEEXTPROC glBlendFuncSeparateEXT;
00309
00310
00311 PFNGLLOCKARRAYSEXTPROC glLockArraysEXT;
00312 PFNGLUNLOCKARRAYSEXTPROC glUnlockArraysEXT;
00313
00314
00315 PFNGLDEPTHBOUNDSEXTPROC glDepthBoundsEXT;
00316
00317
00318 PFNGLPOINTPARAMETERFEXTPROC glPointParameterfEXT;
00319 PFNGLPOINTPARAMETERFVEXTPROC glPointParameterfvEXT;
00320
00321
00322 PFNGLACTIVESTENCILFACEEXTPROC glActiveStencilFaceEXT;
00323
00324
00325 PFNGLDELETEFENCESNVPROC glDeleteFencesNV;
00326 PFNGLFINISHFENCENVPROC glFinishFenceNV;
00327 PFNGLGENFENCESNVPROC glGenFencesNV;
00328 PFNGLGETFENCEIVNVPROC glGetFenceivNV;
00329 PFNGLISFENCENVPROC glIsFenceNV;
00330 PFNGLSETFENCENVPROC glSetFenceNV;
00331 PFNGLTESTFENCENVPROC glTestFenceNV;
00332
00333
00334 PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC glGetProgramNamedParameterdvNV;
00335 PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC glGetProgramNamedParameterfvNV;
00336 PFNGLPROGRAMNAMEDPARAMETER4DNVPROC glProgramNamedParameter4dNV;
00337 PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC glProgramNamedParameter4dvNV;
00338 PFNGLPROGRAMNAMEDPARAMETER4FNVPROC glProgramNamedParameter4fNV;
00339 PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC glProgramNamedParameter4fvNV;
00340
00341
00342 PFNGLCOLOR3HNVPROC glColor3hNV;
00343 PFNGLCOLOR3HVNVPROC glColor3hvNV;
00344 PFNGLCOLOR4HNVPROC glColor4hNV;
00345 PFNGLCOLOR4HVNVPROC glColor4hvNV;
00346 PFNGLFOGCOORDHNVPROC glFogCoordhNV;
00347 PFNGLFOGCOORDHVNVPROC glFogCoordhvNV;
00348 PFNGLMULTITEXCOORD1HNVPROC glMultiTexCoord1hNV;
00349 PFNGLMULTITEXCOORD1HVNVPROC glMultiTexCoord1hvNV;
00350 PFNGLMULTITEXCOORD2HNVPROC glMultiTexCoord2hNV;
00351 PFNGLMULTITEXCOORD2HVNVPROC glMultiTexCoord2hvNV;
00352 PFNGLMULTITEXCOORD3HNVPROC glMultiTexCoord3hNV;
00353 PFNGLMULTITEXCOORD3HVNVPROC glMultiTexCoord3hvNV;
00354 PFNGLMULTITEXCOORD4HNVPROC glMultiTexCoord4hNV;
00355 PFNGLMULTITEXCOORD4HVNVPROC glMultiTexCoord4hvNV;
00356 PFNGLNORMAL3HNVPROC glNormal3hNV;
00357 PFNGLNORMAL3HVNVPROC glNormal3hvNV;
00358 PFNGLSECONDARYCOLOR3HNVPROC glSecondaryColor3hNV;
00359 PFNGLSECONDARYCOLOR3HVNVPROC glSecondaryColor3hvNV;
00360 PFNGLTEXCOORD1HNVPROC glTexCoord1hNV;
00361 PFNGLTEXCOORD1HVNVPROC glTexCoord1hvNV;
00362 PFNGLTEXCOORD2HNVPROC glTexCoord2hNV;
00363 PFNGLTEXCOORD2HVNVPROC glTexCoord2hvNV;
00364 PFNGLTEXCOORD3HNVPROC glTexCoord3hNV;
00365 PFNGLTEXCOORD3HVNVPROC glTexCoord3hvNV;
00366 PFNGLTEXCOORD4HNVPROC glTexCoord4hNV;
00367 PFNGLTEXCOORD4HVNVPROC glTexCoord4hvNV;
00368 PFNGLVERTEX2HNVPROC glVertex2hNV;
00369 PFNGLVERTEX2HVNVPROC glVertex2hvNV;
00370 PFNGLVERTEX3HNVPROC glVertex3hNV;
00371 PFNGLVERTEX3HVNVPROC glVertex3hvNV;
00372 PFNGLVERTEX4HNVPROC glVertex4hNV;
00373 PFNGLVERTEX4HVNVPROC glVertex4hvNV;
00374 PFNGLVERTEXATTRIB1HNVPROC glVertexAttrib1hNV;
00375 PFNGLVERTEXATTRIB1HVNVPROC glVertexAttrib1hvNV;
00376 PFNGLVERTEXATTRIB2HNVPROC glVertexAttrib2hNV;
00377 PFNGLVERTEXATTRIB2HVNVPROC glVertexAttrib2hvNV;
00378 PFNGLVERTEXATTRIB3HNVPROC glVertexAttrib3hNV;
00379 PFNGLVERTEXATTRIB3HVNVPROC glVertexAttrib3hvNV;
00380 PFNGLVERTEXATTRIB4HNVPROC glVertexAttrib4hNV;
00381 PFNGLVERTEXATTRIB4HVNVPROC glVertexAttrib4hvNV;
00382 PFNGLVERTEXATTRIBS1HVNVPROC glVertexAttribs1hvNV;
00383 PFNGLVERTEXATTRIBS2HVNVPROC glVertexAttribs2hvNV;
00384 PFNGLVERTEXATTRIBS3HVNVPROC glVertexAttribs3hvNV;
00385 PFNGLVERTEXATTRIBS4HVNVPROC glVertexAttribs4hvNV;
00386
00387
00388 PFNGLBEGINOCCLUSIONQUERYNVPROC glBeginOcclusionQueryNV;
00389 PFNGLDELETEOCCLUSIONQUERIESNVPROC glDeleteOcclusionQueriesNV;
00390 PFNGLENDOCCLUSIONQUERYNVPROC glEndOcclusionQueryNV;
00391 PFNGLGENOCCLUSIONQUERIESNVPROC glGenOcclusionQueriesNV;
00392 PFNGLGETOCCLUSIONQUERYIVNVPROC glGetOcclusionQueryivNV;
00393 PFNGLGETOCCLUSIONQUERYUIVNVPROC glGetOcclusionQueryuivNV;
00394 PFNGLISOCCLUSIONQUERYNVPROC glIsOcclusionQueryNV;
00395
00396
00397 PFNGLFLUSHPIXELDATARANGENVPROC glFlushPixelDataRangeNV;
00398 PFNGLPIXELDATARANGENVPROC glPixelDataRangeNV;
00399
00400
00401 PFNGLPRIMITIVERESTARTNVPROC glPrimitiveRestartNV;
00402 PFNGLPRIMITIVERESTARTINDEXNVPROC glPrimitiveRestartIndexNV;
00403
00404
00405 PFNGLCOMBINERPARAMETERFVNVPROC glCombinerParameterfvNV;
00406 PFNGLCOMBINERPARAMETERFNVPROC glCombinerParameterfNV;
00407 PFNGLCOMBINERPARAMETERIVNVPROC glCombinerParameterivNV;
00408 PFNGLCOMBINERPARAMETERINVPROC glCombinerParameteriNV;
00409 PFNGLCOMBINERINPUTNVPROC glCombinerInputNV;
00410 PFNGLCOMBINEROUTPUTNVPROC glCombinerOutputNV;
00411 PFNGLFINALCOMBINERINPUTNVPROC glFinalCombinerInputNV;
00412 PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glGetCombinerInputParameterfvNV;
00413 PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glGetCombinerInputParameterivNV;
00414 PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glGetCombinerOutputParameterfvNV;
00415 PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glGetCombinerOutputParameterivNV;
00416 PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glGetFinalCombinerInputParameterfvNV;
00417 PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glGetFinalCombinerInputParameterivNV;
00418
00419
00420 PFNGLCOMBINERSTAGEPARAMETERFVNVPROC glCombinerStageParameterfvNV;
00421 PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC glGetCombinerStageParameterfvNV;
00422
00423
00424 PFNGLSETWINDOWSTEREOMODENVPROC glSetWindowStereoModeNV;
00425
00426
00427 PFNGLFLUSHVERTEXARRAYRANGENVPROC glFlushVertexArrayRangeNV;
00428 PFNGLVERTEXARRAYRANGENVPROC glVertexArrayRangeNV;
00429
00430
00431 PFNGLAREPROGRAMSRESIDENTNVPROC glAreProgramsResidentNV;
00432 PFNGLBINDPROGRAMNVPROC glBindProgramNV;
00433 PFNGLDELETEPROGRAMSNVPROC glDeleteProgramsNV;
00434 PFNGLEXECUTEPROGRAMNVPROC glExecuteProgramNV;
00435 PFNGLGENPROGRAMSNVPROC glGenProgramsNV;
00436 PFNGLGETPROGRAMPARAMETERDVNVPROC glGetProgramParameterdvNV;
00437 PFNGLGETPROGRAMPARAMETERFVNVPROC glGetProgramParameterfvNV;
00438 PFNGLGETPROGRAMIVNVPROC glGetProgramivNV;
00439 PFNGLGETPROGRAMSTRINGNVPROC glGetProgramStringNV;
00440 PFNGLGETTRACKMATRIXIVNVPROC glGetTrackMatrixivNV;
00441 PFNGLGETVERTEXATTRIBDVNVPROC glGetVertexAttribdvNV;
00442 PFNGLGETVERTEXATTRIBFVNVPROC glGetVertexAttribfvNV;
00443 PFNGLGETVERTEXATTRIBIVNVPROC glGetVertexAttribivNV;
00444 PFNGLGETVERTEXATTRIBPOINTERVNVPROC glGetVertexAttribPointervNV;
00445 PFNGLISPROGRAMNVPROC glIsProgramNV;
00446 PFNGLLOADPROGRAMNVPROC glLoadProgramNV;
00447 PFNGLPROGRAMPARAMETER4DNVPROC glProgramParameter4dNV;
00448 PFNGLPROGRAMPARAMETER4DVNVPROC glProgramParameter4dvNV;
00449 PFNGLPROGRAMPARAMETER4FNVPROC glProgramParameter4fNV;
00450 PFNGLPROGRAMPARAMETER4FVNVPROC glProgramParameter4fvNV;
00451 PFNGLPROGRAMPARAMETERS4DVNVPROC glProgramParameters4dvNV;
00452 PFNGLPROGRAMPARAMETERS4FVNVPROC glProgramParameters4fvNV;
00453 PFNGLREQUESTRESIDENTPROGRAMSNVPROC glRequestResidentProgramsNV;
00454 PFNGLTRACKMATRIXNVPROC glTrackMatrixNV;
00455 PFNGLVERTEXATTRIBPOINTERNVPROC glVertexAttribPointerNV;
00456 PFNGLVERTEXATTRIB1DNVPROC glVertexAttrib1dNV;
00457 PFNGLVERTEXATTRIB1DVNVPROC glVertexAttrib1dvNV;
00458 PFNGLVERTEXATTRIB1FNVPROC glVertexAttrib1fNV;
00459 PFNGLVERTEXATTRIB1FVNVPROC glVertexAttrib1fvNV;
00460 PFNGLVERTEXATTRIB1SNVPROC glVertexAttrib1sNV;
00461 PFNGLVERTEXATTRIB1SVNVPROC glVertexAttrib1svNV;
00462 PFNGLVERTEXATTRIB2DNVPROC glVertexAttrib2dNV;
00463 PFNGLVERTEXATTRIB2DVNVPROC glVertexAttrib2dvNV;
00464 PFNGLVERTEXATTRIB2FNVPROC glVertexAttrib2fNV;
00465 PFNGLVERTEXATTRIB2FVNVPROC glVertexAttrib2fvNV;
00466 PFNGLVERTEXATTRIB2SNVPROC glVertexAttrib2sNV;
00467 PFNGLVERTEXATTRIB2SVNVPROC glVertexAttrib2svNV;
00468 PFNGLVERTEXATTRIB3DNVPROC glVertexAttrib3dNV;
00469 PFNGLVERTEXATTRIB3DVNVPROC glVertexAttrib3dvNV;
00470 PFNGLVERTEXATTRIB3FNVPROC glVertexAttrib3fNV;
00471 PFNGLVERTEXATTRIB3FVNVPROC glVertexAttrib3fvNV;
00472 PFNGLVERTEXATTRIB3SNVPROC glVertexAttrib3sNV;
00473 PFNGLVERTEXATTRIB3SVNVPROC glVertexAttrib3svNV;
00474 PFNGLVERTEXATTRIB4DNVPROC glVertexAttrib4dNV;
00475 PFNGLVERTEXATTRIB4DVNVPROC glVertexAttrib4dvNV;
00476 PFNGLVERTEXATTRIB4FNVPROC glVertexAttrib4fNV;
00477 PFNGLVERTEXATTRIB4FVNVPROC glVertexAttrib4fvNV;
00478 PFNGLVERTEXATTRIB4SNVPROC glVertexAttrib4sNV;
00479 PFNGLVERTEXATTRIB4SVNVPROC glVertexAttrib4svNV;
00480 PFNGLVERTEXATTRIB4UBNVPROC glVertexAttrib4ubNV;
00481 PFNGLVERTEXATTRIB4UBVNVPROC glVertexAttrib4ubvNV;
00482 PFNGLVERTEXATTRIBS1DVNVPROC glVertexAttribs1dvNV;
00483 PFNGLVERTEXATTRIBS1FVNVPROC glVertexAttribs1fvNV;
00484 PFNGLVERTEXATTRIBS1SVNVPROC glVertexAttribs1svNV;
00485 PFNGLVERTEXATTRIBS2DVNVPROC glVertexAttribs2dvNV;
00486 PFNGLVERTEXATTRIBS2FVNVPROC glVertexAttribs2fvNV;
00487 PFNGLVERTEXATTRIBS2SVNVPROC glVertexAttribs2svNV;
00488 PFNGLVERTEXATTRIBS3DVNVPROC glVertexAttribs3dvNV;
00489 PFNGLVERTEXATTRIBS3FVNVPROC glVertexAttribs3fvNV;
00490 PFNGLVERTEXATTRIBS3SVNVPROC glVertexAttribs3svNV;
00491 PFNGLVERTEXATTRIBS4DVNVPROC glVertexAttribs4dvNV;
00492 PFNGLVERTEXATTRIBS4FVNVPROC glVertexAttribs4fvNV;
00493 PFNGLVERTEXATTRIBS4SVNVPROC glVertexAttribs4svNV;
00494 PFNGLVERTEXATTRIBS4UBVNVPROC glVertexAttribs4ubvNV;
00495
00496
00497 PFNGLADDSWAPHINTRECTWINPROC glAddSwapHintRectWIN;
00498
00499 #if defined(_WIN32)
00500
00501 PFNWGLCREATEBUFFERREGIONARBPROC wglCreateBufferRegionARB;
00502 PFNWGLDELETEBUFFERREGIONARBPROC wglDeleteBufferRegionARB;
00503 PFNWGLRESTOREBUFFERREGIONARBPROC wglRestoreBufferRegionARB;
00504 PFNWGLSAVEBUFFERREGIONARBPROC wglSaveBufferRegionARB;
00505
00506
00507 PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
00508
00509
00510 PFNWGLMAKECONTEXTCURRENTARBPROC wglMakeContextCurrentARB;
00511 PFNWGLGETCURRENTREADDCARBPROC wglGetCurrentReadDCARB;
00512
00513
00514 PFNWGLCREATEPBUFFERARBPROC wglCreatePbufferARB;
00515 PFNWGLDESTROYPBUFFERARBPROC wglDestroyPbufferARB;
00516 PFNWGLGETPBUFFERDCARBPROC wglGetPbufferDCARB;
00517 PFNWGLQUERYPBUFFERARBPROC wglQueryPbufferARB;
00518 PFNWGLRELEASEPBUFFERDCARBPROC wglReleasePbufferDCARB;
00519
00520
00521 PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB;
00522 PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB;
00523 PFNWGLGETPIXELFORMATATTRIBFVARBPROC wglGetPixelFormatAttribfvARB;
00524
00525
00526 PFNWGLBINDTEXIMAGEARBPROC wglBindTexImageARB;
00527 PFNWGLRELEASETEXIMAGEARBPROC wglReleaseTexImageARB;
00528 PFNWGLSETPBUFFERATTRIBARBPROC wglSetPbufferAttribARB;
00529
00530
00531 PFNWGLGETEXTENSIONSSTRINGEXTPROC wglGetExtensionsStringEXT;
00532
00533
00534 PFNWGLENABLEGENLOCKEXTPROC wglEnableGenlockEXT;
00535 PFNWGLDISABLEGENLOCKEXTPROC wglDisableGenlockEXT;
00536 PFNWGLGENLOCKSOURCEEXTPROC wglGenlockSourceEXT;
00537 PFNWGLGENLOCKSAMPLERATEEXTPROC wglGenlockSampleRateEXT;
00538 PFNWGLGENLOCKSOURCEDELAYEXTPROC wglGenlockSourceDelayEXT;
00539 PFNWGLGENLOCKSOURCEEDGEEXTPROC wglGenlockSourceEdgeEXT;
00540 PFNWGLGETGENLOCKSOURCEEXTPROC wglGetGenlockSourceEXT;
00541 PFNWGLGETGENLOCKSAMPLERATEEXTPROC wglGetGenlockSampleRateEXT;
00542 PFNWGLGETGENLOCKSOURCEDELAYEXTPROC wglGetGenlockSourceDelayEXT;
00543 PFNWGLGETGENLOCKSOURCEEDGEEXTPROC wglGetGenlockSourceEdgeEXT;
00544 PFNWGLISENABLEDGENLOCKEXTPROC wglIsEnabledGenlockEXT;
00545 PFNWGLQUERYGENLOCKMAXSOURCEDELAYEXTPROC wglQueryGenlockMaxSourceDelayEXT;
00546
00547
00548 PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
00549 PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT;
00550
00551
00552 PFNWGLENABLEFRAMELOCKEXTPROC wglEnableFrameLockEXT;
00553 PFNWGLDISABLEFRAMELOCKEXTPROC wglDisableFrameLockEXT;
00554 PFNWGLISENABLEDFRAMELOCKEXTPROC wglIsEnabledFrameLockEXT;
00555 PFNWGLQUERYFRAMELOCKMASTEREXTPROC wglQueryFrameLockMasterEXT;
00556
00557
00558 PFNWGLENABLEGENLOCKI3DPROC wglEnableGenlockI3D;
00559 PFNWGLDISABLEGENLOCKI3DPROC wglDisableGenlockI3D;
00560 PFNWGLISENABLEDGENLOCKI3DPROC wglIsEnabledGenlockI3D;
00561 PFNWGLGENLOCKSOURCEI3DPROC wglGenlockSourceI3D;
00562 PFNWGLGETGENLOCKSOURCEI3DPROC wglGetGenlockSourceI3D;
00563 PFNWGLGENLOCKSOURCEEDGEI3DPROC wglGenlockSourceEdgeI3D;
00564 PFNWGLGETGENLOCKSOURCEEDGEI3DPROC wglGetGenlockSourceEdgeI3D;
00565 PFNWGLGENLOCKSAMPLERATEI3DPROC wglGenlockSampleRateI3D;
00566 PFNWGLGETGENLOCKSAMPLERATEI3DPROC wglGetGenlockSampleRateI3D;
00567 PFNWGLGENLOCKSOURCEDELAYI3DPROC wglGenlockSourceDelayI3D;
00568 PFNWGLGETGENLOCKSOURCEDELAYI3DPROC wglGetGenlockSourceDelayI3D;
00569 PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC wglQueryGenlockMaxSourceDelayI3D;
00570
00571
00572 PFNWGLNEWBUFFERREGIONPROC wglNewBufferRegion;
00573 PFNWGLDELETEBUFFERREGIONPROC wglDeleteBufferRegion;
00574 PFNWGLREADBUFFERREGIONPROC wglReadBufferRegion;
00575 PFNWGLDRAWBUFFERREGIONPROC wglDrawBufferRegion;
00576 PFNWGLBUFFERREGIONENABLEDPROC wglBufferRegionEnabled;
00577
00578
00579 PFNWGLALLOCATEMEMORYNVPROC wglAllocateMemoryNV;
00580 PFNWGLFREEMEMORYNVPROC wglFreeMemoryNV;
00581
00582
00583 PFNWGLBINDSWAPBARRIERNVPROC wglBindSwapBarrierNV;
00584 PFNWGLJOINSWAPGROUPNVPROC wglJoinSwapGroupNV;
00585 PFNWGLQUERYSWAPGROUPNVPROC wglQuerySwapGroupNV;
00586 PFNWGLQUERYMAXSWAPGROUPSNVPROC wglQueryMaxSwapGroupsNV;
00587 PFNWGLQUERYFRAMECOUNTNVPROC wglQueryFrameCountNV;
00588 PFNWGLRESETFRAMECOUNTNVPROC wglResetFrameCountNV;
00589 #elif defined(LINUX)
00590 PFNGLXQUERYEXTENSIONSSTRINGPROC glXQueryExtensionsString;
00591
00592
00593 PFNGLXCREATEGLXPBUFFERSGIXPROC glXCreateGLXPbufferSGIX;
00594 PFNGLXDESTROYGLXPBUFFERSGIXPROC glXDestroyGLXPbufferSGIX;
00595 PFNGLXQUERYGLXPBUFFERSGIXPROC glXQueryGLXPbufferSGIX;
00596 #endif
00597 #endif // DOXYGEN_IGNORE
00598
00599 private:
00600 int m_glVersion;
00601 std::set<std::string> m_available;
00602 std::set<std::string> m_exported;
00603 };
00604
00605 inline bool GLFunctions::isAvailable( const std::string& extension ) const
00606 {
00607 return( m_available.find( extension ) != m_available.end() );
00608 }
00609
00610 inline bool GLFunctions::isExported( const std::string& extension ) const
00611 {
00612 return( m_exported.find( extension ) != m_exported.end() );
00613 }
00614 }