Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:04:34

0001 // Created on: 2014-03-17
0002 // Created by: Kirill GAVRILOV
0003 // Copyright (c) 2014 OPEN CASCADE SAS
0004 //
0005 // This file is part of Open CASCADE Technology software library.
0006 //
0007 // This library is free software; you can redistribute it and/or modify it under
0008 // the terms of the GNU Lesser General Public License version 2.1 as published
0009 // by the Free Software Foundation, with special exception defined in the file
0010 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0011 // distribution for complete text of the license and disclaimer of any warranty.
0012 //
0013 // Alternatively, this file may be used under the terms of Open CASCADE
0014 // commercial license or contractual agreement.
0015 
0016 #ifndef OpenGl_GlFunctions_HeaderFile
0017 #define OpenGl_GlFunctions_HeaderFile
0018 
0019 #include <Standard_Macro.hxx>
0020 #include <Standard_TypeDef.hxx>
0021 
0022 #include <OpenGl_GlTypes.hxx>
0023 
0024 #if !defined(HAVE_EGL)
0025 #if defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(HAVE_GLES2) || defined(OCCT_UWP)
0026   #if !defined(__APPLE__)
0027     #define HAVE_EGL // EAGL is used instead of EGL
0028   #endif
0029 #elif !defined(_WIN32) && !defined(__APPLE__) && !defined(HAVE_XLIB)
0030   #define HAVE_EGL
0031 #endif
0032 #endif
0033 struct Aspect_XDisplay;
0034 
0035 // GL version can be defined by system gl.h header
0036 #ifdef GL_VERSION_1_2
0037   #undef GL_VERSION_1_2
0038   #undef GL_VERSION_1_3
0039   #undef GL_VERSION_1_4
0040   #undef GL_VERSION_1_5
0041   #undef GL_VERSION_2_0
0042   #undef GL_VERSION_2_1
0043   #undef GL_VERSION_3_0
0044   #undef GL_VERSION_3_1
0045   #undef GL_VERSION_3_2
0046   #undef GL_VERSION_3_3
0047   #undef GL_VERSION_4_0
0048   #undef GL_VERSION_4_1
0049   #undef GL_VERSION_4_2
0050   #undef GL_VERSION_4_3
0051   #undef GL_VERSION_4_4
0052   #undef GL_VERSION_4_5
0053 #endif
0054 #ifdef GL_COPY_READ_BUFFER_BINDING
0055   // suppress iOS SDK -Wmacro-redefined warnings
0056   #undef GL_DRAW_FRAMEBUFFER_BINDING
0057   #undef GL_COPY_READ_BUFFER_BINDING
0058   #undef GL_COPY_WRITE_BUFFER_BINDING
0059 #endif
0060 // include glext.h provided by Khronos group
0061 #include <OpenGl_glext.h>
0062 
0063 class OpenGl_Context;
0064 
0065 //! Mega structure defines the complete list of OpenGL functions.
0066 struct OpenGl_GlFunctions
0067 {
0068 
0069   //! Check glGetError(); defined for debugging purposes.
0070   //! @return TRUE on error
0071   Standard_EXPORT static bool debugPrintError (const char* theName);
0072 
0073   //! Read OpenGL version.
0074   Standard_EXPORT static void readGlVersion (Standard_Integer& theGlVerMajor,
0075                                              Standard_Integer& theGlVerMinor);
0076 
0077   //! Load functions.
0078   Standard_EXPORT void load (OpenGl_Context& theCtx,
0079                              Standard_Boolean theIsCoreProfile);
0080 
0081 public: //! @name OpenGL 1.1
0082 
0083   typedef void (APIENTRYP glClearColor_t)(GLclampf theRed, GLclampf theGreen, GLclampf theBlue, GLclampf theAlpha);
0084   glClearColor_t glClearColor;
0085 
0086   typedef void (APIENTRYP glClear_t)(GLbitfield theMask);
0087   glClear_t glClear;
0088 
0089   typedef void (APIENTRYP glColorMask_t)(GLboolean theRed, GLboolean theGreen, GLboolean theBlue, GLboolean theAlpha);
0090   glColorMask_t glColorMask;
0091 
0092   typedef void (APIENTRYP glBlendFunc_t)(GLenum sfactor, GLenum dfactor);
0093   glBlendFunc_t glBlendFunc;
0094 
0095   typedef void (APIENTRYP glCullFace_t)(GLenum theMode);
0096   glCullFace_t glCullFace;
0097 
0098   typedef void (APIENTRYP glFrontFace_t)(GLenum theMode);
0099   glFrontFace_t glFrontFace;
0100 
0101   typedef void (APIENTRYP glLineWidth_t)(GLfloat theWidth);
0102   glLineWidth_t glLineWidth;
0103 
0104   typedef void (APIENTRYP glPolygonOffset_t)(GLfloat theFactor, GLfloat theUnits);
0105   glPolygonOffset_t glPolygonOffset;
0106 
0107   typedef void (APIENTRYP glScissor_t)(GLint theX, GLint theY, GLsizei theWidth, GLsizei theHeight);
0108   glScissor_t glScissor;
0109 
0110   typedef void (APIENTRYP glEnable_t)(GLenum theCap);
0111   glEnable_t glEnable;
0112 
0113   typedef void (APIENTRYP glDisable_t)(GLenum theCap);
0114   glDisable_t glDisable;
0115 
0116   typedef GLboolean (APIENTRYP glIsEnabled_t)(GLenum theCap);
0117   glIsEnabled_t glIsEnabled;
0118 
0119   typedef void (APIENTRYP glGetBooleanv_t)(GLenum theParamName, GLboolean* theValues);
0120   glGetBooleanv_t glGetBooleanv;
0121 
0122   typedef void (APIENTRYP glGetFloatv_t)(GLenum theParamName, GLfloat* theValues);
0123   glGetFloatv_t glGetFloatv;
0124 
0125   typedef void (APIENTRYP glGetIntegerv_t)(GLenum theParamName, GLint* theValues);
0126   glGetIntegerv_t glGetIntegerv;
0127 
0128   typedef GLenum (APIENTRYP glGetError_t)();
0129   glGetError_t glGetError;
0130 
0131   typedef const GLubyte* (APIENTRYP glGetString_t)(GLenum theName);
0132   glGetString_t glGetString;
0133 
0134   typedef void (APIENTRYP glFinish_t)();
0135   glFinish_t glFinish;
0136 
0137   typedef void (APIENTRYP glFlush_t)();
0138   glFlush_t glFlush;
0139 
0140   typedef void (APIENTRYP glHint_t)(GLenum theTarget, GLenum theMode);
0141   glHint_t glHint;
0142 
0143   typedef void (APIENTRYP glGetPointerv_t)(GLenum pname, GLvoid* *params);
0144   glGetPointerv_t glGetPointerv;
0145 
0146   typedef void (APIENTRYP glReadBuffer_t)(GLenum src); // added to OpenGL ES 3.0
0147   glReadBuffer_t glReadBuffer;
0148 
0149   typedef void (APIENTRYP glDrawBuffer_t)(GLenum mode); // added to OpenGL ES 3.0
0150   glDrawBuffer_t glDrawBuffer;
0151 
0152   typedef void (APIENTRYP glPixelTransferi_t)(GLenum pname, GLint param);
0153   glPixelTransferi_t glPixelTransferi;
0154 
0155 public: //! @name Depth Buffer
0156 
0157   typedef void (APIENTRYP glClearDepth_t)(GLclampd theDepth);
0158   glClearDepth_t glClearDepth;
0159 
0160   typedef void (APIENTRYP glDepthFunc_t)(GLenum theFunc);
0161   glDepthFunc_t glDepthFunc;
0162 
0163   typedef void (APIENTRYP glDepthMask_t)(GLboolean theFlag);
0164   glDepthMask_t glDepthMask;
0165 
0166   typedef void (APIENTRYP glDepthRange_t)(GLclampd theNearValue, GLclampd theFarValue);
0167   glDepthRange_t glDepthRange;
0168 
0169 public: //! @name Transformation
0170 
0171   typedef void (APIENTRYP glViewport_t)(GLint theX, GLint theY, GLsizei theWidth, GLsizei theHeight);
0172   glViewport_t glViewport;
0173 
0174 public: //! @name Vertex Arrays
0175 
0176   typedef void (APIENTRYP glDrawArrays_t)(GLenum theMode, GLint theFirst, GLsizei theCount);
0177   glDrawArrays_t glDrawArrays;
0178 
0179   typedef void (APIENTRYP glDrawElements_t)(GLenum theMode, GLsizei theCount, GLenum theType, const GLvoid* theIndices);
0180   glDrawElements_t glDrawElements;
0181 
0182 public: //! @name Raster functions
0183 
0184   typedef void (APIENTRYP glPixelStorei_t)(GLenum theParamName, GLint theParam);
0185   glPixelStorei_t glPixelStorei;
0186 
0187   typedef void (APIENTRYP glReadPixels_t)(GLint x, GLint y,
0188                                           GLsizei width, GLsizei height,
0189                                           GLenum format, GLenum type,
0190                                           GLvoid* pixels);
0191   glReadPixels_t glReadPixels;
0192 
0193 public: //! @name Stenciling
0194 
0195   typedef void (APIENTRYP glStencilFunc_t)(GLenum func, GLint ref, GLuint mask);
0196   glStencilFunc_t glStencilFunc;
0197 
0198   typedef void (APIENTRYP glStencilMask_t)(GLuint mask);
0199   glStencilMask_t glStencilMask;
0200 
0201   typedef void (APIENTRYP glStencilOp_t)(GLenum fail, GLenum zfail, GLenum zpass);
0202   glStencilOp_t glStencilOp;
0203 
0204   typedef void (APIENTRYP glClearStencil_t)(GLint s);
0205   glClearStencil_t glClearStencil;
0206 
0207 public: //! @name Texture mapping
0208 
0209   typedef void (APIENTRYP glTexParameterf_t)(GLenum target, GLenum pname, GLfloat param);
0210   glTexParameterf_t glTexParameterf;
0211 
0212   typedef void (APIENTRYP glTexParameteri_t)(GLenum target, GLenum pname, GLint param);
0213   glTexParameteri_t glTexParameteri;
0214 
0215   typedef void (APIENTRYP glTexParameterfv_t)(GLenum target, GLenum pname, const GLfloat* params);
0216   glTexParameterfv_t glTexParameterfv;
0217 
0218   typedef void (APIENTRYP glTexParameteriv_t)(GLenum target, GLenum pname, const GLint* params);
0219   glTexParameteriv_t glTexParameteriv;
0220 
0221   typedef void (APIENTRYP glGetTexParameterfv_t)(GLenum target, GLenum pname, GLfloat* params);
0222   glGetTexParameterfv_t glGetTexParameterfv;
0223 
0224   typedef void (APIENTRYP glGetTexParameteriv_t)(GLenum target, GLenum pname, GLint* params);
0225   glGetTexParameteriv_t glGetTexParameteriv;
0226 
0227   typedef void (APIENTRYP glTexImage2D_t)(GLenum target, GLint level,
0228                                           GLint internalFormat,
0229                                           GLsizei width, GLsizei height,
0230                                           GLint border, GLenum format, GLenum type,
0231                                           const GLvoid* pixels);
0232   glTexImage2D_t glTexImage2D;
0233 
0234   typedef void (APIENTRYP glGenTextures_t)(GLsizei n, GLuint* textures);
0235   glGenTextures_t glGenTextures;
0236 
0237   typedef void (APIENTRYP glDeleteTextures_t)(GLsizei n, const GLuint* textures);
0238   glDeleteTextures_t glDeleteTextures;
0239 
0240   typedef void (APIENTRYP glBindTexture_t)(GLenum target, GLuint texture);
0241   glBindTexture_t glBindTexture;
0242 
0243   typedef GLboolean (APIENTRYP glIsTexture_t)(GLuint texture);
0244   glIsTexture_t glIsTexture;
0245 
0246   typedef void (APIENTRYP glTexSubImage2D_t)(GLenum target, GLint level,
0247                                              GLint xoffset, GLint yoffset,
0248                                              GLsizei width, GLsizei height,
0249                                              GLenum format, GLenum type,
0250                                              const GLvoid* pixels);
0251   glTexSubImage2D_t glTexSubImage2D;
0252 
0253   typedef void (APIENTRYP glCopyTexImage2D_t)(GLenum target, GLint level,
0254                                               GLenum internalformat,
0255                                               GLint x, GLint y,
0256                                               GLsizei width, GLsizei height,
0257                                               GLint border);
0258   glCopyTexImage2D_t glCopyTexImage2D;
0259 
0260   typedef void (APIENTRYP glCopyTexSubImage2D_t)(GLenum target, GLint level,
0261                                                  GLint xoffset, GLint yoffset,
0262                                                  GLint x, GLint y,
0263                                                  GLsizei width, GLsizei height);
0264   glCopyTexSubImage2D_t glCopyTexSubImage2D;
0265 
0266 public: // not part of OpenGL ES 2.0
0267   typedef void (APIENTRYP glTexImage1D_t)(GLenum target, GLint level,
0268                                           GLint internalFormat,
0269                                           GLsizei width, GLint border,
0270                                           GLenum format, GLenum type,
0271                                           const GLvoid* pixels);
0272   glTexImage1D_t glTexImage1D;
0273 
0274   typedef void (APIENTRYP glTexSubImage1D_t)(GLenum target, GLint level,
0275                                              GLint xoffset,
0276                                              GLsizei width, GLenum format,
0277                                              GLenum type, const GLvoid* pixels);
0278   glTexSubImage1D_t glTexSubImage1D;
0279 
0280   typedef void (APIENTRYP glCopyTexImage1D_t)(GLenum target, GLint level,
0281                                               GLenum internalformat,
0282                                               GLint x, GLint y,
0283                                               GLsizei width, GLint border);
0284   glCopyTexImage1D_t glCopyTexImage1D;
0285 
0286   typedef void (APIENTRYP glCopyTexSubImage1D_t)(GLenum target, GLint level,
0287                                                  GLint xoffset, GLint x, GLint y,
0288                                                  GLsizei width);
0289   glCopyTexSubImage1D_t glCopyTexSubImage1D;
0290 
0291   typedef void (APIENTRYP glGetTexImage_t)(GLenum target, GLint level,
0292                                            GLenum format, GLenum type,
0293                                            GLvoid* pixels);
0294   glGetTexImage_t glGetTexImage;
0295 
0296   typedef void (APIENTRYP glAlphaFunc_t)(GLenum theFunc, GLclampf theRef);
0297   glAlphaFunc_t glAlphaFunc;
0298 
0299   typedef void (APIENTRYP glPointSize_t)(GLfloat theSize);
0300   glPointSize_t glPointSize;
0301 
0302 public: //! @name OpenGL 1.1 FFP (obsolete, removed since 3.1)
0303 
0304   typedef void (APIENTRYP glTexEnvi_t)(GLenum target, GLenum pname, GLint param);
0305   glTexEnvi_t glTexEnvi;
0306 
0307   typedef void (APIENTRYP glGetTexEnviv_t)(GLenum target, GLenum pname, GLint *params);
0308   glGetTexEnviv_t glGetTexEnviv;
0309 
0310   typedef void (APIENTRYP glLogicOp_t)(GLenum opcode);
0311   glLogicOp_t glLogicOp;
0312 
0313 public: //! @name Begin/End primitive specification (removed since 3.1)
0314 
0315   typedef void (APIENTRYP glColor4fv_t)(const GLfloat* theVec);
0316   glColor4fv_t glColor4fv;
0317 
0318 public: //! @name Matrix operations (removed since 3.1)
0319 
0320   typedef void (APIENTRYP glMatrixMode_t)(GLenum theMode);
0321   glMatrixMode_t glMatrixMode;
0322 
0323   typedef void (APIENTRYP glLoadIdentity_t)();
0324   glLoadIdentity_t glLoadIdentity;
0325 
0326   typedef void (APIENTRYP glLoadMatrixf_t)(const GLfloat* theMatrix);
0327   glLoadMatrixf_t glLoadMatrixf;
0328 
0329 public: //! @name Line and Polygon stipple (removed since 3.1)
0330 
0331   typedef void (APIENTRYP glLineStipple_t)(GLint theFactor, GLushort thePattern);
0332   glLineStipple_t glLineStipple;
0333 
0334   typedef void (APIENTRYP glPolygonStipple_t)(const GLubyte* theMask);
0335   glPolygonStipple_t glPolygonStipple;
0336 
0337 public: //! @name Fixed pipeline lighting (removed since 3.1)
0338 
0339   typedef void (APIENTRYP glShadeModel_t)(GLenum theMode);
0340   glShadeModel_t glShadeModel;
0341 
0342   typedef void (APIENTRYP glLightf_t)(GLenum theLight, GLenum pname, GLfloat param);
0343   glLightf_t glLightf;
0344 
0345   typedef void (APIENTRYP glLightfv_t)(GLenum theLight, GLenum pname, const GLfloat* params);
0346   glLightfv_t glLightfv;
0347 
0348   typedef void (APIENTRYP glLightModeli_t)(GLenum pname, GLint param);
0349   glLightModeli_t glLightModeli;
0350 
0351   typedef void (APIENTRYP glLightModelfv_t)(GLenum pname, const GLfloat* params);
0352   glLightModelfv_t glLightModelfv;
0353 
0354   typedef void (APIENTRYP glMaterialf_t)(GLenum face, GLenum pname, GLfloat param);
0355   glMaterialf_t glMaterialf;
0356 
0357   typedef void (APIENTRYP glMaterialfv_t)(GLenum face, GLenum pname, const GLfloat* params);
0358   glMaterialfv_t glMaterialfv;
0359 
0360   typedef void (APIENTRYP glColorMaterial_t)(GLenum face, GLenum mode);
0361   glColorMaterial_t glColorMaterial;
0362 
0363 public: //! @name clipping plane (removed since 3.1)
0364 
0365   typedef void (APIENTRYP glClipPlane_t)(GLenum thePlane, const GLdouble* theEquation);
0366   glClipPlane_t glClipPlane;
0367 
0368 public: //! @name Display lists (removed since 3.1)
0369 
0370   typedef void (APIENTRYP glDeleteLists_t)(GLuint theList, GLsizei theRange);
0371   glDeleteLists_t glDeleteLists;
0372 
0373   typedef GLuint (APIENTRYP glGenLists_t)(GLsizei theRange);
0374   glGenLists_t glGenLists;
0375 
0376   typedef void (APIENTRYP glNewList_t)(GLuint theList, GLenum theMode);
0377   glNewList_t glNewList;
0378 
0379   typedef void (APIENTRYP glEndList_t)();
0380   glEndList_t glEndList;
0381 
0382   typedef void (APIENTRYP glCallList_t)(GLuint theList);
0383   glCallList_t glCallList;
0384 
0385   typedef void (APIENTRYP glCallLists_t)(GLsizei theNb, GLenum theType, const GLvoid* theLists);
0386   glCallLists_t glCallLists;
0387 
0388   typedef void (APIENTRYP glListBase_t)(GLuint theBase);
0389   glListBase_t glListBase;
0390 
0391 public: //! @name Current raster position and Rectangles (removed since 3.1)
0392 
0393   typedef void (APIENTRYP glRasterPos2i_t)(GLint x, GLint y);
0394   glRasterPos2i_t glRasterPos2i;
0395 
0396   typedef void (APIENTRYP glRasterPos3fv_t)(const GLfloat*  theVec);
0397   glRasterPos3fv_t glRasterPos3fv;
0398 
0399 public: //! @name Texture mapping (removed since 3.1)
0400 
0401   typedef void (APIENTRYP glTexGeni_t)(GLenum coord, GLenum pname, GLint param);
0402   glTexGeni_t glTexGeni;
0403 
0404   typedef void (APIENTRYP glTexGenfv_t)(GLenum coord, GLenum pname, const GLfloat* params);
0405   glTexGenfv_t glTexGenfv;
0406 
0407 public: //! @name Pixel copying (removed since 3.1)
0408 
0409   typedef void (APIENTRYP glDrawPixels_t)(GLsizei width, GLsizei height,
0410                                           GLenum format, GLenum type,
0411                                           const GLvoid* pixels);
0412   glDrawPixels_t glDrawPixels;
0413 
0414   typedef void (APIENTRYP glCopyPixels_t)(GLint x, GLint y,
0415                                           GLsizei width, GLsizei height,
0416                                           GLenum type);
0417   glCopyPixels_t glCopyPixels;
0418 
0419   typedef void (APIENTRYP glBitmap_t)(GLsizei width, GLsizei height,
0420                                       GLfloat xorig, GLfloat yorig,
0421                                       GLfloat xmove, GLfloat ymove,
0422                                       const GLubyte* bitmap);
0423   glBitmap_t glBitmap;
0424 
0425 public: //! @name Edge flags and fixed-function vertex processing (removed since 3.1)
0426 
0427   typedef void (APIENTRYP glIndexPointer_t)(GLenum theType, GLsizei theStride, const GLvoid* thePtr);
0428   glIndexPointer_t glIndexPointer;
0429 
0430   typedef void (APIENTRYP glVertexPointer_t)(GLint theSize, GLenum theType, GLsizei theStride, const GLvoid* thePtr);
0431   glVertexPointer_t glVertexPointer;
0432 
0433   typedef void (APIENTRYP glNormalPointer_t)(GLenum theType, GLsizei theStride, const GLvoid* thePtr);
0434   glNormalPointer_t glNormalPointer;
0435 
0436   typedef void (APIENTRYP glColorPointer_t)(GLint theSize, GLenum theType, GLsizei theStride, const GLvoid* thePtr);
0437   glColorPointer_t glColorPointer;
0438 
0439   typedef void (APIENTRYP glTexCoordPointer_t)(GLint theSize, GLenum theType, GLsizei theStride, const GLvoid* thePtr);
0440   glTexCoordPointer_t glTexCoordPointer;
0441 
0442   typedef void (APIENTRYP glEnableClientState_t)(GLenum theCap);
0443   glEnableClientState_t glEnableClientState;
0444 
0445   typedef void (APIENTRYP glDisableClientState_t)(GLenum theCap);
0446   glDisableClientState_t glDisableClientState;
0447 
0448   typedef void (APIENTRYP glGetTexLevelParameterfv_t)(GLenum target, GLint level, GLenum pname, GLfloat *params);
0449   glGetTexLevelParameterfv_t glGetTexLevelParameterfv;
0450 
0451   typedef void (APIENTRYP glGetTexLevelParameteriv_t)(GLenum target, GLint level, GLenum pname, GLint *params);
0452   glGetTexLevelParameteriv_t glGetTexLevelParameteriv;
0453 
0454   typedef void (APIENTRYP glPolygonMode_t)(GLenum face, GLenum mode);
0455   glPolygonMode_t glPolygonMode;
0456 
0457 public: //! @name OpenGL ES 3.2
0458   typedef void (APIENTRYP glBlendBarrier_t) (void);
0459   glBlendBarrier_t glBlendBarrier;
0460 
0461   typedef void (APIENTRYP glPrimitiveBoundingBox_t) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
0462   glPrimitiveBoundingBox_t glPrimitiveBoundingBox;
0463 
0464 public: //! @name OpenGL 1.2
0465 
0466   PFNGLBLENDCOLORPROC               glBlendColor;
0467   PFNGLBLENDEQUATIONPROC            glBlendEquation;
0468   PFNGLDRAWRANGEELEMENTSPROC        glDrawRangeElements;
0469   PFNGLTEXIMAGE3DPROC               glTexImage3D;
0470   PFNGLTEXSUBIMAGE3DPROC            glTexSubImage3D;
0471   PFNGLCOPYTEXSUBIMAGE3DPROC        glCopyTexSubImage3D;
0472 
0473 public: //! @name OpenGL 1.3
0474 
0475   PFNGLACTIVETEXTUREPROC            glActiveTexture;
0476   PFNGLSAMPLECOVERAGEPROC           glSampleCoverage;
0477   PFNGLCOMPRESSEDTEXIMAGE3DPROC     glCompressedTexImage3D;
0478   PFNGLCOMPRESSEDTEXIMAGE2DPROC     glCompressedTexImage2D;
0479   PFNGLCOMPRESSEDTEXIMAGE1DPROC     glCompressedTexImage1D;
0480   PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC  glCompressedTexSubImage3D;
0481   PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC  glCompressedTexSubImage2D;
0482   PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC  glCompressedTexSubImage1D;
0483   PFNGLGETCOMPRESSEDTEXIMAGEPROC    glGetCompressedTexImage;
0484 
0485 public: //! @name OpenGL 1.4
0486 
0487   PFNGLBLENDFUNCSEPARATEPROC        glBlendFuncSeparate;
0488   PFNGLMULTIDRAWARRAYSPROC          glMultiDrawArrays;
0489   PFNGLMULTIDRAWELEMENTSPROC        glMultiDrawElements;
0490   PFNGLPOINTPARAMETERFPROC          glPointParameterf;
0491   PFNGLPOINTPARAMETERFVPROC         glPointParameterfv;
0492   PFNGLPOINTPARAMETERIPROC          glPointParameteri;
0493   PFNGLPOINTPARAMETERIVPROC         glPointParameteriv;
0494 
0495 public: //! @name OpenGL 1.5
0496 
0497   PFNGLGENQUERIESPROC               glGenQueries;
0498   PFNGLDELETEQUERIESPROC            glDeleteQueries;
0499   PFNGLISQUERYPROC                  glIsQuery;
0500   PFNGLBEGINQUERYPROC               glBeginQuery;
0501   PFNGLENDQUERYPROC                 glEndQuery;
0502   PFNGLGETQUERYIVPROC               glGetQueryiv;
0503   PFNGLGETQUERYOBJECTIVPROC         glGetQueryObjectiv;
0504   PFNGLGETQUERYOBJECTUIVPROC        glGetQueryObjectuiv;
0505   PFNGLBINDBUFFERPROC               glBindBuffer;
0506   PFNGLDELETEBUFFERSPROC            glDeleteBuffers;
0507   PFNGLGENBUFFERSPROC               glGenBuffers;
0508   PFNGLISBUFFERPROC                 glIsBuffer;
0509   PFNGLBUFFERDATAPROC               glBufferData;
0510   PFNGLBUFFERSUBDATAPROC            glBufferSubData;
0511   PFNGLGETBUFFERSUBDATAPROC         glGetBufferSubData;
0512   PFNGLMAPBUFFERPROC                glMapBuffer;
0513   PFNGLUNMAPBUFFERPROC              glUnmapBuffer;
0514   PFNGLGETBUFFERPARAMETERIVPROC     glGetBufferParameteriv;
0515   PFNGLGETBUFFERPOINTERVPROC        glGetBufferPointerv;
0516 
0517 public: //! @name OpenGL 2.0
0518 
0519   PFNGLBLENDEQUATIONSEPARATEPROC    glBlendEquationSeparate;
0520   PFNGLDRAWBUFFERSPROC              glDrawBuffers;
0521   PFNGLSTENCILOPSEPARATEPROC        glStencilOpSeparate;
0522   PFNGLSTENCILFUNCSEPARATEPROC      glStencilFuncSeparate;
0523   PFNGLSTENCILMASKSEPARATEPROC      glStencilMaskSeparate;
0524   PFNGLATTACHSHADERPROC             glAttachShader;
0525   PFNGLBINDATTRIBLOCATIONPROC       glBindAttribLocation;
0526   PFNGLCOMPILESHADERPROC            glCompileShader;
0527   PFNGLCREATEPROGRAMPROC            glCreateProgram;
0528   PFNGLCREATESHADERPROC             glCreateShader;
0529   PFNGLDELETEPROGRAMPROC            glDeleteProgram;
0530   PFNGLDELETESHADERPROC             glDeleteShader;
0531   PFNGLDETACHSHADERPROC             glDetachShader;
0532   PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
0533   PFNGLENABLEVERTEXATTRIBARRAYPROC  glEnableVertexAttribArray;
0534   PFNGLGETACTIVEATTRIBPROC          glGetActiveAttrib;
0535   PFNGLGETACTIVEUNIFORMPROC         glGetActiveUniform;
0536   PFNGLGETATTACHEDSHADERSPROC       glGetAttachedShaders;
0537   PFNGLGETATTRIBLOCATIONPROC        glGetAttribLocation;
0538   PFNGLGETPROGRAMIVPROC             glGetProgramiv;
0539   PFNGLGETPROGRAMINFOLOGPROC        glGetProgramInfoLog;
0540   PFNGLGETSHADERIVPROC              glGetShaderiv;
0541   PFNGLGETSHADERINFOLOGPROC         glGetShaderInfoLog;
0542   PFNGLGETSHADERSOURCEPROC          glGetShaderSource;
0543   PFNGLGETUNIFORMLOCATIONPROC       glGetUniformLocation;
0544   PFNGLGETUNIFORMFVPROC             glGetUniformfv;
0545   PFNGLGETUNIFORMIVPROC             glGetUniformiv;
0546   PFNGLGETVERTEXATTRIBDVPROC        glGetVertexAttribdv;
0547   PFNGLGETVERTEXATTRIBFVPROC        glGetVertexAttribfv;
0548   PFNGLGETVERTEXATTRIBIVPROC        glGetVertexAttribiv;
0549   PFNGLGETVERTEXATTRIBPOINTERVPROC  glGetVertexAttribPointerv;
0550   PFNGLISPROGRAMPROC                glIsProgram;
0551   PFNGLISSHADERPROC                 glIsShader;
0552   PFNGLLINKPROGRAMPROC              glLinkProgram;
0553   PFNGLSHADERSOURCEPROC             glShaderSource;
0554   PFNGLUSEPROGRAMPROC               glUseProgram;
0555   PFNGLUNIFORM1FPROC                glUniform1f;
0556   PFNGLUNIFORM2FPROC                glUniform2f;
0557   PFNGLUNIFORM3FPROC                glUniform3f;
0558   PFNGLUNIFORM4FPROC                glUniform4f;
0559   PFNGLUNIFORM1IPROC                glUniform1i;
0560   PFNGLUNIFORM2IPROC                glUniform2i;
0561   PFNGLUNIFORM3IPROC                glUniform3i;
0562   PFNGLUNIFORM4IPROC                glUniform4i;
0563   PFNGLUNIFORM1FVPROC               glUniform1fv;
0564   PFNGLUNIFORM2FVPROC               glUniform2fv;
0565   PFNGLUNIFORM3FVPROC               glUniform3fv;
0566   PFNGLUNIFORM4FVPROC               glUniform4fv;
0567   PFNGLUNIFORM1IVPROC               glUniform1iv;
0568   PFNGLUNIFORM2IVPROC               glUniform2iv;
0569   PFNGLUNIFORM3IVPROC               glUniform3iv;
0570   PFNGLUNIFORM4IVPROC               glUniform4iv;
0571   PFNGLUNIFORMMATRIX2FVPROC         glUniformMatrix2fv;
0572   PFNGLUNIFORMMATRIX3FVPROC         glUniformMatrix3fv;
0573   PFNGLUNIFORMMATRIX4FVPROC         glUniformMatrix4fv;
0574   PFNGLVALIDATEPROGRAMPROC          glValidateProgram;
0575   PFNGLVERTEXATTRIB1DPROC           glVertexAttrib1d;
0576   PFNGLVERTEXATTRIB1DVPROC          glVertexAttrib1dv;
0577   PFNGLVERTEXATTRIB1FPROC           glVertexAttrib1f;
0578   PFNGLVERTEXATTRIB1FVPROC          glVertexAttrib1fv;
0579   PFNGLVERTEXATTRIB1SPROC           glVertexAttrib1s;
0580   PFNGLVERTEXATTRIB1SVPROC          glVertexAttrib1sv;
0581   PFNGLVERTEXATTRIB2DPROC           glVertexAttrib2d;
0582   PFNGLVERTEXATTRIB2DVPROC          glVertexAttrib2dv;
0583   PFNGLVERTEXATTRIB2FPROC           glVertexAttrib2f;
0584   PFNGLVERTEXATTRIB2FVPROC          glVertexAttrib2fv;
0585   PFNGLVERTEXATTRIB2SPROC           glVertexAttrib2s;
0586   PFNGLVERTEXATTRIB2SVPROC          glVertexAttrib2sv;
0587   PFNGLVERTEXATTRIB3DPROC           glVertexAttrib3d;
0588   PFNGLVERTEXATTRIB3DVPROC          glVertexAttrib3dv;
0589   PFNGLVERTEXATTRIB3FPROC           glVertexAttrib3f;
0590   PFNGLVERTEXATTRIB3FVPROC          glVertexAttrib3fv;
0591   PFNGLVERTEXATTRIB3SPROC           glVertexAttrib3s;
0592   PFNGLVERTEXATTRIB3SVPROC          glVertexAttrib3sv;
0593   PFNGLVERTEXATTRIB4NBVPROC         glVertexAttrib4Nbv;
0594   PFNGLVERTEXATTRIB4NIVPROC         glVertexAttrib4Niv;
0595   PFNGLVERTEXATTRIB4NSVPROC         glVertexAttrib4Nsv;
0596   PFNGLVERTEXATTRIB4NUBPROC         glVertexAttrib4Nub;
0597   PFNGLVERTEXATTRIB4NUBVPROC        glVertexAttrib4Nubv;
0598   PFNGLVERTEXATTRIB4NUIVPROC        glVertexAttrib4Nuiv;
0599   PFNGLVERTEXATTRIB4NUSVPROC        glVertexAttrib4Nusv;
0600   PFNGLVERTEXATTRIB4BVPROC          glVertexAttrib4bv;
0601   PFNGLVERTEXATTRIB4DPROC           glVertexAttrib4d;
0602   PFNGLVERTEXATTRIB4DVPROC          glVertexAttrib4dv;
0603   PFNGLVERTEXATTRIB4FPROC           glVertexAttrib4f;
0604   PFNGLVERTEXATTRIB4FVPROC          glVertexAttrib4fv;
0605   PFNGLVERTEXATTRIB4IVPROC          glVertexAttrib4iv;
0606   PFNGLVERTEXATTRIB4SPROC           glVertexAttrib4s;
0607   PFNGLVERTEXATTRIB4SVPROC          glVertexAttrib4sv;
0608   PFNGLVERTEXATTRIB4UBVPROC         glVertexAttrib4ubv;
0609   PFNGLVERTEXATTRIB4UIVPROC         glVertexAttrib4uiv;
0610   PFNGLVERTEXATTRIB4USVPROC         glVertexAttrib4usv;
0611   PFNGLVERTEXATTRIBPOINTERPROC      glVertexAttribPointer;
0612 
0613 public: //! @name OpenGL 2.1
0614 
0615   PFNGLUNIFORMMATRIX2X3FVPROC       glUniformMatrix2x3fv;
0616   PFNGLUNIFORMMATRIX3X2FVPROC       glUniformMatrix3x2fv;
0617   PFNGLUNIFORMMATRIX2X4FVPROC       glUniformMatrix2x4fv;
0618   PFNGLUNIFORMMATRIX4X2FVPROC       glUniformMatrix4x2fv;
0619   PFNGLUNIFORMMATRIX3X4FVPROC       glUniformMatrix3x4fv;
0620   PFNGLUNIFORMMATRIX4X3FVPROC       glUniformMatrix4x3fv;
0621 
0622 public: //! @name GL_ARB_framebuffer_object (added to OpenGL 3.0 core)
0623 
0624   PFNGLISRENDERBUFFERPROC                      glIsRenderbuffer;
0625   PFNGLBINDRENDERBUFFERPROC                    glBindRenderbuffer;
0626   PFNGLDELETERENDERBUFFERSPROC                 glDeleteRenderbuffers;
0627   PFNGLGENRENDERBUFFERSPROC                    glGenRenderbuffers;
0628   PFNGLRENDERBUFFERSTORAGEPROC                 glRenderbufferStorage;
0629   PFNGLGETRENDERBUFFERPARAMETERIVPROC          glGetRenderbufferParameteriv;
0630   PFNGLISFRAMEBUFFERPROC                       glIsFramebuffer;
0631   PFNGLBINDFRAMEBUFFERPROC                     glBindFramebuffer;
0632   PFNGLDELETEFRAMEBUFFERSPROC                  glDeleteFramebuffers;
0633   PFNGLGENFRAMEBUFFERSPROC                     glGenFramebuffers;
0634   PFNGLCHECKFRAMEBUFFERSTATUSPROC              glCheckFramebufferStatus;
0635   PFNGLFRAMEBUFFERTEXTURE1DPROC                glFramebufferTexture1D;
0636   PFNGLFRAMEBUFFERTEXTURE2DPROC                glFramebufferTexture2D;
0637   PFNGLFRAMEBUFFERTEXTURE3DPROC                glFramebufferTexture3D;
0638   PFNGLFRAMEBUFFERRENDERBUFFERPROC             glFramebufferRenderbuffer;
0639   PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
0640   PFNGLGENERATEMIPMAPPROC                      glGenerateMipmap;
0641   PFNGLBLITFRAMEBUFFERPROC                     glBlitFramebuffer;
0642   PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC      glRenderbufferStorageMultisample;
0643   PFNGLFRAMEBUFFERTEXTURELAYERPROC             glFramebufferTextureLayer;
0644 
0645 public: //! @name GL_ARB_vertex_array_object (added to OpenGL 3.0 core)
0646 
0647   PFNGLBINDVERTEXARRAYPROC             glBindVertexArray;
0648   PFNGLDELETEVERTEXARRAYSPROC          glDeleteVertexArrays;
0649   PFNGLGENVERTEXARRAYSPROC             glGenVertexArrays;
0650   PFNGLISVERTEXARRAYPROC               glIsVertexArray;
0651 
0652 public: //! @name GL_ARB_map_buffer_range (added to OpenGL 3.0 core)
0653 
0654   PFNGLMAPBUFFERRANGEPROC              glMapBufferRange;
0655   PFNGLFLUSHMAPPEDBUFFERRANGEPROC      glFlushMappedBufferRange;
0656 
0657 public: //! @name OpenGL 3.0
0658 
0659   PFNGLCOLORMASKIPROC                  glColorMaski;
0660   PFNGLGETBOOLEANI_VPROC               glGetBooleani_v;
0661   PFNGLGETINTEGERI_VPROC               glGetIntegeri_v;
0662   PFNGLENABLEIPROC                     glEnablei;
0663   PFNGLDISABLEIPROC                    glDisablei;
0664   PFNGLISENABLEDIPROC                  glIsEnabledi;
0665   PFNGLBEGINTRANSFORMFEEDBACKPROC      glBeginTransformFeedback;
0666   PFNGLENDTRANSFORMFEEDBACKPROC        glEndTransformFeedback;
0667   PFNGLBINDBUFFERRANGEPROC             glBindBufferRange;
0668   PFNGLBINDBUFFERBASEPROC              glBindBufferBase;
0669   PFNGLTRANSFORMFEEDBACKVARYINGSPROC   glTransformFeedbackVaryings;
0670   PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
0671   PFNGLCLAMPCOLORPROC                  glClampColor;
0672   PFNGLBEGINCONDITIONALRENDERPROC      glBeginConditionalRender;
0673   PFNGLENDCONDITIONALRENDERPROC        glEndConditionalRender;
0674   PFNGLVERTEXATTRIBIPOINTERPROC        glVertexAttribIPointer;
0675   PFNGLGETVERTEXATTRIBIIVPROC          glGetVertexAttribIiv;
0676   PFNGLGETVERTEXATTRIBIUIVPROC         glGetVertexAttribIuiv;
0677   PFNGLVERTEXATTRIBI1IPROC             glVertexAttribI1i;
0678   PFNGLVERTEXATTRIBI2IPROC             glVertexAttribI2i;
0679   PFNGLVERTEXATTRIBI3IPROC             glVertexAttribI3i;
0680   PFNGLVERTEXATTRIBI4IPROC             glVertexAttribI4i;
0681   PFNGLVERTEXATTRIBI1UIPROC            glVertexAttribI1ui;
0682   PFNGLVERTEXATTRIBI2UIPROC            glVertexAttribI2ui;
0683   PFNGLVERTEXATTRIBI3UIPROC            glVertexAttribI3ui;
0684   PFNGLVERTEXATTRIBI4UIPROC            glVertexAttribI4ui;
0685   PFNGLVERTEXATTRIBI1IVPROC            glVertexAttribI1iv;
0686   PFNGLVERTEXATTRIBI2IVPROC            glVertexAttribI2iv;
0687   PFNGLVERTEXATTRIBI3IVPROC            glVertexAttribI3iv;
0688   PFNGLVERTEXATTRIBI4IVPROC            glVertexAttribI4iv;
0689   PFNGLVERTEXATTRIBI1UIVPROC           glVertexAttribI1uiv;
0690   PFNGLVERTEXATTRIBI2UIVPROC           glVertexAttribI2uiv;
0691   PFNGLVERTEXATTRIBI3UIVPROC           glVertexAttribI3uiv;
0692   PFNGLVERTEXATTRIBI4UIVPROC           glVertexAttribI4uiv;
0693   PFNGLVERTEXATTRIBI4BVPROC            glVertexAttribI4bv;
0694   PFNGLVERTEXATTRIBI4SVPROC            glVertexAttribI4sv;
0695   PFNGLVERTEXATTRIBI4UBVPROC           glVertexAttribI4ubv;
0696   PFNGLVERTEXATTRIBI4USVPROC           glVertexAttribI4usv;
0697   PFNGLGETUNIFORMUIVPROC               glGetUniformuiv;
0698   PFNGLBINDFRAGDATALOCATIONPROC        glBindFragDataLocation;
0699   PFNGLGETFRAGDATALOCATIONPROC         glGetFragDataLocation;
0700   PFNGLUNIFORM1UIPROC                  glUniform1ui;
0701   PFNGLUNIFORM2UIPROC                  glUniform2ui;
0702   PFNGLUNIFORM3UIPROC                  glUniform3ui;
0703   PFNGLUNIFORM4UIPROC                  glUniform4ui;
0704   PFNGLUNIFORM1UIVPROC                 glUniform1uiv;
0705   PFNGLUNIFORM2UIVPROC                 glUniform2uiv;
0706   PFNGLUNIFORM3UIVPROC                 glUniform3uiv;
0707   PFNGLUNIFORM4UIVPROC                 glUniform4uiv;
0708   PFNGLTEXPARAMETERIIVPROC             glTexParameterIiv;
0709   PFNGLTEXPARAMETERIUIVPROC            glTexParameterIuiv;
0710   PFNGLGETTEXPARAMETERIIVPROC          glGetTexParameterIiv;
0711   PFNGLGETTEXPARAMETERIUIVPROC         glGetTexParameterIuiv;
0712   PFNGLCLEARBUFFERIVPROC               glClearBufferiv;
0713   PFNGLCLEARBUFFERUIVPROC              glClearBufferuiv;
0714   PFNGLCLEARBUFFERFVPROC               glClearBufferfv;
0715   PFNGLCLEARBUFFERFIPROC               glClearBufferfi;
0716   PFNGLGETSTRINGIPROC                  glGetStringi;
0717 
0718 public: //! @name GL_ARB_uniform_buffer_object (added to OpenGL 3.1 core)
0719 
0720   PFNGLGETUNIFORMINDICESPROC           glGetUniformIndices;
0721   PFNGLGETACTIVEUNIFORMSIVPROC         glGetActiveUniformsiv;
0722   PFNGLGETACTIVEUNIFORMNAMEPROC        glGetActiveUniformName;
0723   PFNGLGETUNIFORMBLOCKINDEXPROC        glGetUniformBlockIndex;
0724   PFNGLGETACTIVEUNIFORMBLOCKIVPROC     glGetActiveUniformBlockiv;
0725   PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC   glGetActiveUniformBlockName;
0726   PFNGLUNIFORMBLOCKBINDINGPROC         glUniformBlockBinding;
0727 
0728 public: //! @name GL_ARB_copy_buffer (added to OpenGL 3.1 core)
0729 
0730   PFNGLCOPYBUFFERSUBDATAPROC           glCopyBufferSubData;
0731 
0732 public: //! @name OpenGL 3.1
0733 
0734   PFNGLDRAWARRAYSINSTANCEDPROC         glDrawArraysInstanced;
0735   PFNGLDRAWELEMENTSINSTANCEDPROC       glDrawElementsInstanced;
0736   PFNGLTEXBUFFERPROC                   glTexBuffer;
0737   PFNGLPRIMITIVERESTARTINDEXPROC       glPrimitiveRestartIndex;
0738 
0739 public: //! @name GL_ARB_draw_elements_base_vertex (added to OpenGL 3.2 core)
0740 
0741   PFNGLDRAWELEMENTSBASEVERTEXPROC      glDrawElementsBaseVertex;
0742   PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
0743   PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
0744   PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex;
0745 
0746 public: //! @name GL_ARB_provoking_vertex (added to OpenGL 3.2 core)
0747 
0748   PFNGLPROVOKINGVERTEXPROC             glProvokingVertex;
0749 
0750 public: //! @name GL_ARB_sync (added to OpenGL 3.2 core)
0751 
0752   PFNGLFENCESYNCPROC                   glFenceSync;
0753   PFNGLISSYNCPROC                      glIsSync;
0754   PFNGLDELETESYNCPROC                  glDeleteSync;
0755   PFNGLCLIENTWAITSYNCPROC              glClientWaitSync;
0756   PFNGLWAITSYNCPROC                    glWaitSync;
0757   PFNGLGETINTEGER64VPROC               glGetInteger64v;
0758   PFNGLGETSYNCIVPROC                   glGetSynciv;
0759 
0760 public: //! @name GL_ARB_texture_multisample (added to OpenGL 3.2 core)
0761 
0762   PFNGLTEXIMAGE2DMULTISAMPLEPROC       glTexImage2DMultisample;
0763   PFNGLTEXIMAGE3DMULTISAMPLEPROC       glTexImage3DMultisample;
0764   PFNGLGETMULTISAMPLEFVPROC            glGetMultisamplefv;
0765   PFNGLSAMPLEMASKIPROC                 glSampleMaski;
0766 
0767 public: //! @name OpenGL 3.2
0768 
0769   PFNGLGETINTEGER64I_VPROC             glGetInteger64i_v;
0770   PFNGLGETBUFFERPARAMETERI64VPROC      glGetBufferParameteri64v;
0771   PFNGLFRAMEBUFFERTEXTUREPROC          glFramebufferTexture;
0772 
0773 public: //! @name GL_ARB_blend_func_extended (added to OpenGL 3.3 core)
0774 
0775   PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glBindFragDataLocationIndexed;
0776   PFNGLGETFRAGDATAINDEXPROC            glGetFragDataIndex;
0777 
0778 public: //! @name GL_ARB_sampler_objects (added to OpenGL 3.3 core)
0779 
0780   PFNGLGENSAMPLERSPROC                 glGenSamplers;
0781   PFNGLDELETESAMPLERSPROC              glDeleteSamplers;
0782   PFNGLISSAMPLERPROC                   glIsSampler;
0783   PFNGLBINDSAMPLERPROC                 glBindSampler;
0784   PFNGLSAMPLERPARAMETERIPROC           glSamplerParameteri;
0785   PFNGLSAMPLERPARAMETERIVPROC          glSamplerParameteriv;
0786   PFNGLSAMPLERPARAMETERFPROC           glSamplerParameterf;
0787   PFNGLSAMPLERPARAMETERFVPROC          glSamplerParameterfv;
0788   PFNGLSAMPLERPARAMETERIIVPROC         glSamplerParameterIiv;
0789   PFNGLSAMPLERPARAMETERIUIVPROC        glSamplerParameterIuiv;
0790   PFNGLGETSAMPLERPARAMETERIVPROC       glGetSamplerParameteriv;
0791   PFNGLGETSAMPLERPARAMETERIIVPROC      glGetSamplerParameterIiv;
0792   PFNGLGETSAMPLERPARAMETERFVPROC       glGetSamplerParameterfv;
0793   PFNGLGETSAMPLERPARAMETERIUIVPROC     glGetSamplerParameterIuiv;
0794 
0795 public: //! @name GL_ARB_timer_query (added to OpenGL 3.3 core)
0796 
0797   PFNGLQUERYCOUNTERPROC                glQueryCounter;
0798   PFNGLGETQUERYOBJECTI64VPROC          glGetQueryObjecti64v;
0799   PFNGLGETQUERYOBJECTUI64VPROC         glGetQueryObjectui64v;
0800 
0801 public: //! @name GL_ARB_vertex_type_2_10_10_10_rev (added to OpenGL 3.3 core)
0802 
0803   PFNGLVERTEXATTRIBP1UIPROC            glVertexAttribP1ui;
0804   PFNGLVERTEXATTRIBP1UIVPROC           glVertexAttribP1uiv;
0805   PFNGLVERTEXATTRIBP2UIPROC            glVertexAttribP2ui;
0806   PFNGLVERTEXATTRIBP2UIVPROC           glVertexAttribP2uiv;
0807   PFNGLVERTEXATTRIBP3UIPROC            glVertexAttribP3ui;
0808   PFNGLVERTEXATTRIBP3UIVPROC           glVertexAttribP3uiv;
0809   PFNGLVERTEXATTRIBP4UIPROC            glVertexAttribP4ui;
0810   PFNGLVERTEXATTRIBP4UIVPROC           glVertexAttribP4uiv;
0811 
0812 public: //! @name OpenGL 3.3
0813 
0814   PFNGLVERTEXATTRIBDIVISORPROC         glVertexAttribDivisor;
0815 
0816 public: //! @name GL_ARB_draw_indirect (added to OpenGL 4.0 core)
0817 
0818   PFNGLDRAWARRAYSINDIRECTPROC          glDrawArraysIndirect;
0819   PFNGLDRAWELEMENTSINDIRECTPROC        glDrawElementsIndirect;
0820 
0821 public: //! @name GL_ARB_gpu_shader_fp64 (added to OpenGL 4.0 core)
0822 
0823   PFNGLUNIFORM1DPROC                   glUniform1d;
0824   PFNGLUNIFORM2DPROC                   glUniform2d;
0825   PFNGLUNIFORM3DPROC                   glUniform3d;
0826   PFNGLUNIFORM4DPROC                   glUniform4d;
0827   PFNGLUNIFORM1DVPROC                  glUniform1dv;
0828   PFNGLUNIFORM2DVPROC                  glUniform2dv;
0829   PFNGLUNIFORM3DVPROC                  glUniform3dv;
0830   PFNGLUNIFORM4DVPROC                  glUniform4dv;
0831   PFNGLUNIFORMMATRIX2DVPROC            glUniformMatrix2dv;
0832   PFNGLUNIFORMMATRIX3DVPROC            glUniformMatrix3dv;
0833   PFNGLUNIFORMMATRIX4DVPROC            glUniformMatrix4dv;
0834   PFNGLUNIFORMMATRIX2X3DVPROC          glUniformMatrix2x3dv;
0835   PFNGLUNIFORMMATRIX2X4DVPROC          glUniformMatrix2x4dv;
0836   PFNGLUNIFORMMATRIX3X2DVPROC          glUniformMatrix3x2dv;
0837   PFNGLUNIFORMMATRIX3X4DVPROC          glUniformMatrix3x4dv;
0838   PFNGLUNIFORMMATRIX4X2DVPROC          glUniformMatrix4x2dv;
0839   PFNGLUNIFORMMATRIX4X3DVPROC          glUniformMatrix4x3dv;
0840   PFNGLGETUNIFORMDVPROC                glGetUniformdv;
0841 
0842 public: //! @name GL_ARB_shader_subroutine (added to OpenGL 4.0 core)
0843 
0844   PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC   glGetSubroutineUniformLocation;
0845   PFNGLGETSUBROUTINEINDEXPROC             glGetSubroutineIndex;
0846   PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC   glGetActiveSubroutineUniformiv;
0847   PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glGetActiveSubroutineUniformName;
0848   PFNGLGETACTIVESUBROUTINENAMEPROC        glGetActiveSubroutineName;
0849   PFNGLUNIFORMSUBROUTINESUIVPROC          glUniformSubroutinesuiv;
0850   PFNGLGETUNIFORMSUBROUTINEUIVPROC        glGetUniformSubroutineuiv;
0851   PFNGLGETPROGRAMSTAGEIVPROC              glGetProgramStageiv;
0852 
0853 public: //! @name GL_ARB_tessellation_shader (added to OpenGL 4.0 core)
0854 
0855   PFNGLPATCHPARAMETERIPROC             glPatchParameteri;
0856   PFNGLPATCHPARAMETERFVPROC            glPatchParameterfv;
0857 
0858 public: //! @name GL_ARB_transform_feedback2 (added to OpenGL 4.0 core)
0859 
0860   PFNGLBINDTRANSFORMFEEDBACKPROC       glBindTransformFeedback;
0861   PFNGLDELETETRANSFORMFEEDBACKSPROC    glDeleteTransformFeedbacks;
0862   PFNGLGENTRANSFORMFEEDBACKSPROC       glGenTransformFeedbacks;
0863   PFNGLISTRANSFORMFEEDBACKPROC         glIsTransformFeedback;
0864   PFNGLPAUSETRANSFORMFEEDBACKPROC      glPauseTransformFeedback;
0865   PFNGLRESUMETRANSFORMFEEDBACKPROC     glResumeTransformFeedback;
0866   PFNGLDRAWTRANSFORMFEEDBACKPROC       glDrawTransformFeedback;
0867 
0868 public: //! @name GL_ARB_transform_feedback3 (added to OpenGL 4.0 core)
0869 
0870   PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glDrawTransformFeedbackStream;
0871   PFNGLBEGINQUERYINDEXEDPROC           glBeginQueryIndexed;
0872   PFNGLENDQUERYINDEXEDPROC             glEndQueryIndexed;
0873   PFNGLGETQUERYINDEXEDIVPROC           glGetQueryIndexediv;
0874 
0875 public: //! @name OpenGL 4.0
0876 
0877   PFNGLMINSAMPLESHADINGPROC            glMinSampleShading;
0878   PFNGLBLENDEQUATIONIPROC              glBlendEquationi;
0879   PFNGLBLENDEQUATIONSEPARATEIPROC      glBlendEquationSeparatei;
0880   PFNGLBLENDFUNCIPROC                  glBlendFunci;
0881   PFNGLBLENDFUNCSEPARATEIPROC          glBlendFuncSeparatei;
0882 
0883 public: //! @name GL_ARB_ES2_compatibility (added to OpenGL 4.1 core)
0884 
0885   PFNGLRELEASESHADERCOMPILERPROC       glReleaseShaderCompiler;
0886   PFNGLSHADERBINARYPROC                glShaderBinary;
0887   PFNGLGETSHADERPRECISIONFORMATPROC    glGetShaderPrecisionFormat;
0888   PFNGLDEPTHRANGEFPROC                 glDepthRangef;
0889   PFNGLCLEARDEPTHFPROC                 glClearDepthf;
0890 
0891 public: //! @name GL_ARB_get_program_binary (added to OpenGL 4.1 core)
0892 
0893   PFNGLGETPROGRAMBINARYPROC            glGetProgramBinary;
0894   PFNGLPROGRAMBINARYPROC               glProgramBinary;
0895   PFNGLPROGRAMPARAMETERIPROC           glProgramParameteri;
0896 
0897 public: //! @name GL_ARB_separate_shader_objects (added to OpenGL 4.1 core)
0898 
0899   PFNGLUSEPROGRAMSTAGESPROC            glUseProgramStages;
0900   PFNGLACTIVESHADERPROGRAMPROC         glActiveShaderProgram;
0901   PFNGLCREATESHADERPROGRAMVPROC        glCreateShaderProgramv;
0902   PFNGLBINDPROGRAMPIPELINEPROC         glBindProgramPipeline;
0903   PFNGLDELETEPROGRAMPIPELINESPROC      glDeleteProgramPipelines;
0904   PFNGLGENPROGRAMPIPELINESPROC         glGenProgramPipelines;
0905   PFNGLISPROGRAMPIPELINEPROC           glIsProgramPipeline;
0906   PFNGLGETPROGRAMPIPELINEIVPROC        glGetProgramPipelineiv;
0907   PFNGLPROGRAMUNIFORM1IPROC            glProgramUniform1i;
0908   PFNGLPROGRAMUNIFORM1IVPROC           glProgramUniform1iv;
0909   PFNGLPROGRAMUNIFORM1FPROC            glProgramUniform1f;
0910   PFNGLPROGRAMUNIFORM1FVPROC           glProgramUniform1fv;
0911   PFNGLPROGRAMUNIFORM1DPROC            glProgramUniform1d;
0912   PFNGLPROGRAMUNIFORM1DVPROC           glProgramUniform1dv;
0913   PFNGLPROGRAMUNIFORM1UIPROC           glProgramUniform1ui;
0914   PFNGLPROGRAMUNIFORM1UIVPROC          glProgramUniform1uiv;
0915   PFNGLPROGRAMUNIFORM2IPROC            glProgramUniform2i;
0916   PFNGLPROGRAMUNIFORM2IVPROC           glProgramUniform2iv;
0917   PFNGLPROGRAMUNIFORM2FPROC            glProgramUniform2f;
0918   PFNGLPROGRAMUNIFORM2FVPROC           glProgramUniform2fv;
0919   PFNGLPROGRAMUNIFORM2DPROC            glProgramUniform2d;
0920   PFNGLPROGRAMUNIFORM2DVPROC           glProgramUniform2dv;
0921   PFNGLPROGRAMUNIFORM2UIPROC           glProgramUniform2ui;
0922   PFNGLPROGRAMUNIFORM2UIVPROC          glProgramUniform2uiv;
0923   PFNGLPROGRAMUNIFORM3IPROC            glProgramUniform3i;
0924   PFNGLPROGRAMUNIFORM3IVPROC           glProgramUniform3iv;
0925   PFNGLPROGRAMUNIFORM3FPROC            glProgramUniform3f;
0926   PFNGLPROGRAMUNIFORM3FVPROC           glProgramUniform3fv;
0927   PFNGLPROGRAMUNIFORM3DPROC            glProgramUniform3d;
0928   PFNGLPROGRAMUNIFORM3DVPROC           glProgramUniform3dv;
0929   PFNGLPROGRAMUNIFORM3UIPROC           glProgramUniform3ui;
0930   PFNGLPROGRAMUNIFORM3UIVPROC          glProgramUniform3uiv;
0931   PFNGLPROGRAMUNIFORM4IPROC            glProgramUniform4i;
0932   PFNGLPROGRAMUNIFORM4IVPROC           glProgramUniform4iv;
0933   PFNGLPROGRAMUNIFORM4FPROC            glProgramUniform4f;
0934   PFNGLPROGRAMUNIFORM4FVPROC           glProgramUniform4fv;
0935   PFNGLPROGRAMUNIFORM4DPROC            glProgramUniform4d;
0936   PFNGLPROGRAMUNIFORM4DVPROC           glProgramUniform4dv;
0937   PFNGLPROGRAMUNIFORM4UIPROC           glProgramUniform4ui;
0938   PFNGLPROGRAMUNIFORM4UIVPROC          glProgramUniform4uiv;
0939   PFNGLPROGRAMUNIFORMMATRIX2FVPROC     glProgramUniformMatrix2fv;
0940   PFNGLPROGRAMUNIFORMMATRIX3FVPROC     glProgramUniformMatrix3fv;
0941   PFNGLPROGRAMUNIFORMMATRIX4FVPROC     glProgramUniformMatrix4fv;
0942   PFNGLPROGRAMUNIFORMMATRIX2DVPROC     glProgramUniformMatrix2dv;
0943   PFNGLPROGRAMUNIFORMMATRIX3DVPROC     glProgramUniformMatrix3dv;
0944   PFNGLPROGRAMUNIFORMMATRIX4DVPROC     glProgramUniformMatrix4dv;
0945   PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC   glProgramUniformMatrix2x3fv;
0946   PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC   glProgramUniformMatrix3x2fv;
0947   PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC   glProgramUniformMatrix2x4fv;
0948   PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC   glProgramUniformMatrix4x2fv;
0949   PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC   glProgramUniformMatrix3x4fv;
0950   PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC   glProgramUniformMatrix4x3fv;
0951   PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC   glProgramUniformMatrix2x3dv;
0952   PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC   glProgramUniformMatrix3x2dv;
0953   PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC   glProgramUniformMatrix2x4dv;
0954   PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC   glProgramUniformMatrix4x2dv;
0955   PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC   glProgramUniformMatrix3x4dv;
0956   PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC   glProgramUniformMatrix4x3dv;
0957   PFNGLVALIDATEPROGRAMPIPELINEPROC     glValidateProgramPipeline;
0958   PFNGLGETPROGRAMPIPELINEINFOLOGPROC   glGetProgramPipelineInfoLog;
0959 
0960 public: //! @name GL_ARB_vertex_attrib_64bit (added to OpenGL 4.1 core)
0961 
0962   PFNGLVERTEXATTRIBL1DPROC             glVertexAttribL1d;
0963   PFNGLVERTEXATTRIBL2DPROC             glVertexAttribL2d;
0964   PFNGLVERTEXATTRIBL3DPROC             glVertexAttribL3d;
0965   PFNGLVERTEXATTRIBL4DPROC             glVertexAttribL4d;
0966   PFNGLVERTEXATTRIBL1DVPROC            glVertexAttribL1dv;
0967   PFNGLVERTEXATTRIBL2DVPROC            glVertexAttribL2dv;
0968   PFNGLVERTEXATTRIBL3DVPROC            glVertexAttribL3dv;
0969   PFNGLVERTEXATTRIBL4DVPROC            glVertexAttribL4dv;
0970   PFNGLVERTEXATTRIBLPOINTERPROC        glVertexAttribLPointer;
0971   PFNGLGETVERTEXATTRIBLDVPROC          glGetVertexAttribLdv;
0972 
0973 public: //! @name GL_ARB_viewport_array (added to OpenGL 4.1 core)
0974 
0975   PFNGLVIEWPORTARRAYVPROC              glViewportArrayv;
0976   PFNGLVIEWPORTINDEXEDFPROC            glViewportIndexedf;
0977   PFNGLVIEWPORTINDEXEDFVPROC           glViewportIndexedfv;
0978   PFNGLSCISSORARRAYVPROC               glScissorArrayv;
0979   PFNGLSCISSORINDEXEDPROC              glScissorIndexed;
0980   PFNGLSCISSORINDEXEDVPROC             glScissorIndexedv;
0981   PFNGLDEPTHRANGEARRAYVPROC            glDepthRangeArrayv;
0982   PFNGLDEPTHRANGEINDEXEDPROC           glDepthRangeIndexed;
0983   PFNGLGETFLOATI_VPROC                 glGetFloati_v;
0984   PFNGLGETDOUBLEI_VPROC                glGetDoublei_v;
0985 
0986 public: //! @name OpenGL 4.1
0987 
0988   //
0989 
0990 public: //! @name GL_ARB_base_instance (added to OpenGL 4.2 core)
0991 
0992   PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC             glDrawArraysInstancedBaseInstance;
0993   PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC           glDrawElementsInstancedBaseInstance;
0994   PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glDrawElementsInstancedBaseVertexBaseInstance;
0995 
0996 public: //! @name GL_ARB_transform_feedback_instanced (added to OpenGL 4.2 core)
0997 
0998   PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC              glDrawTransformFeedbackInstanced;
0999   PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC        glDrawTransformFeedbackStreamInstanced;
1000 
1001 public: //! @name GL_ARB_internalformat_query (added to OpenGL 4.2 core)
1002 
1003   PFNGLGETINTERNALFORMATIVPROC                         glGetInternalformativ;
1004 
1005 public: //! @name GL_ARB_shader_atomic_counters (added to OpenGL 4.2 core)
1006 
1007   PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC              glGetActiveAtomicCounterBufferiv;
1008 
1009 public: //! @name GL_ARB_shader_image_load_store (added to OpenGL 4.2 core)
1010 
1011   PFNGLBINDIMAGETEXTUREPROC                            glBindImageTexture;
1012   PFNGLMEMORYBARRIERPROC                               glMemoryBarrier;
1013 
1014 public: //! @name GL_ARB_texture_storage (added to OpenGL 4.2 core)
1015 
1016   PFNGLTEXSTORAGE1DPROC                                glTexStorage1D;
1017   PFNGLTEXSTORAGE2DPROC                                glTexStorage2D;
1018   PFNGLTEXSTORAGE3DPROC                                glTexStorage3D;
1019 
1020 public: //! @name OpenGL 4.2
1021 
1022 public: //! @name OpenGL 4.3
1023 
1024   PFNGLCLEARBUFFERDATAPROC                 glClearBufferData;
1025   PFNGLCLEARBUFFERSUBDATAPROC              glClearBufferSubData;
1026   PFNGLDISPATCHCOMPUTEPROC                 glDispatchCompute;
1027   PFNGLDISPATCHCOMPUTEINDIRECTPROC         glDispatchComputeIndirect;
1028   PFNGLCOPYIMAGESUBDATAPROC                glCopyImageSubData;
1029   PFNGLFRAMEBUFFERPARAMETERIPROC           glFramebufferParameteri;
1030   PFNGLGETFRAMEBUFFERPARAMETERIVPROC       glGetFramebufferParameteriv;
1031   PFNGLGETINTERNALFORMATI64VPROC           glGetInternalformati64v;
1032   PFNGLINVALIDATETEXSUBIMAGEPROC           glInvalidateTexSubImage;
1033   PFNGLINVALIDATETEXIMAGEPROC              glInvalidateTexImage;
1034   PFNGLINVALIDATEBUFFERSUBDATAPROC         glInvalidateBufferSubData;
1035   PFNGLINVALIDATEBUFFERDATAPROC            glInvalidateBufferData;
1036   PFNGLINVALIDATEFRAMEBUFFERPROC           glInvalidateFramebuffer;
1037   PFNGLINVALIDATESUBFRAMEBUFFERPROC        glInvalidateSubFramebuffer;
1038   PFNGLMULTIDRAWARRAYSINDIRECTPROC         glMultiDrawArraysIndirect;
1039   PFNGLMULTIDRAWELEMENTSINDIRECTPROC       glMultiDrawElementsIndirect;
1040   PFNGLGETPROGRAMINTERFACEIVPROC           glGetProgramInterfaceiv;
1041   PFNGLGETPROGRAMRESOURCEINDEXPROC         glGetProgramResourceIndex;
1042   PFNGLGETPROGRAMRESOURCENAMEPROC          glGetProgramResourceName;
1043   PFNGLGETPROGRAMRESOURCEIVPROC            glGetProgramResourceiv;
1044   PFNGLGETPROGRAMRESOURCELOCATIONPROC      glGetProgramResourceLocation;
1045   PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glGetProgramResourceLocationIndex;
1046   PFNGLSHADERSTORAGEBLOCKBINDINGPROC       glShaderStorageBlockBinding;
1047   PFNGLTEXBUFFERRANGEPROC                  glTexBufferRange;
1048   PFNGLTEXSTORAGE2DMULTISAMPLEPROC         glTexStorage2DMultisample;
1049   PFNGLTEXSTORAGE3DMULTISAMPLEPROC         glTexStorage3DMultisample;
1050   PFNGLTEXTUREVIEWPROC                     glTextureView;
1051   PFNGLBINDVERTEXBUFFERPROC                glBindVertexBuffer;
1052   PFNGLVERTEXATTRIBFORMATPROC              glVertexAttribFormat;
1053   PFNGLVERTEXATTRIBIFORMATPROC             glVertexAttribIFormat;
1054   PFNGLVERTEXATTRIBLFORMATPROC             glVertexAttribLFormat;
1055   PFNGLVERTEXATTRIBBINDINGPROC             glVertexAttribBinding;
1056   PFNGLVERTEXBINDINGDIVISORPROC            glVertexBindingDivisor;
1057   PFNGLDEBUGMESSAGECONTROLPROC             glDebugMessageControl;
1058   PFNGLDEBUGMESSAGEINSERTPROC              glDebugMessageInsert;
1059   PFNGLDEBUGMESSAGECALLBACKPROC            glDebugMessageCallback;
1060   PFNGLGETDEBUGMESSAGELOGPROC              glGetDebugMessageLog;
1061   PFNGLPUSHDEBUGGROUPPROC                  glPushDebugGroup;
1062   PFNGLPOPDEBUGGROUPPROC                   glPopDebugGroup;
1063   PFNGLOBJECTLABELPROC                     glObjectLabel;
1064   PFNGLGETOBJECTLABELPROC                  glGetObjectLabel;
1065   PFNGLOBJECTPTRLABELPROC                  glObjectPtrLabel;
1066   PFNGLGETOBJECTPTRLABELPROC               glGetObjectPtrLabel;
1067 
1068 public: //! @name OpenGL 4.4
1069 
1070   PFNGLBUFFERSTORAGEPROC     glBufferStorage;
1071   PFNGLCLEARTEXIMAGEPROC     glClearTexImage;
1072   PFNGLCLEARTEXSUBIMAGEPROC  glClearTexSubImage;
1073   PFNGLBINDBUFFERSBASEPROC   glBindBuffersBase;
1074   PFNGLBINDBUFFERSRANGEPROC  glBindBuffersRange;
1075   PFNGLBINDTEXTURESPROC      glBindTextures;
1076   PFNGLBINDSAMPLERSPROC      glBindSamplers;
1077   PFNGLBINDIMAGETEXTURESPROC glBindImageTextures;
1078   PFNGLBINDVERTEXBUFFERSPROC glBindVertexBuffers;
1079 
1080 public: //! @name OpenGL 4.5
1081 
1082   PFNGLCLIPCONTROLPROC glClipControl;
1083   PFNGLCREATETRANSFORMFEEDBACKSPROC glCreateTransformFeedbacks;
1084   PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glTransformFeedbackBufferBase;
1085   PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glTransformFeedbackBufferRange;
1086   PFNGLGETTRANSFORMFEEDBACKIVPROC glGetTransformFeedbackiv;
1087   PFNGLGETTRANSFORMFEEDBACKI_VPROC glGetTransformFeedbacki_v;
1088   PFNGLGETTRANSFORMFEEDBACKI64_VPROC glGetTransformFeedbacki64_v;
1089   PFNGLCREATEBUFFERSPROC glCreateBuffers;
1090   PFNGLNAMEDBUFFERSTORAGEPROC glNamedBufferStorage;
1091   PFNGLNAMEDBUFFERDATAPROC glNamedBufferData;
1092   PFNGLNAMEDBUFFERSUBDATAPROC glNamedBufferSubData;
1093   PFNGLCOPYNAMEDBUFFERSUBDATAPROC glCopyNamedBufferSubData;
1094   PFNGLCLEARNAMEDBUFFERDATAPROC glClearNamedBufferData;
1095   PFNGLCLEARNAMEDBUFFERSUBDATAPROC glClearNamedBufferSubData;
1096   PFNGLMAPNAMEDBUFFERPROC glMapNamedBuffer;
1097   PFNGLMAPNAMEDBUFFERRANGEPROC glMapNamedBufferRange;
1098   PFNGLUNMAPNAMEDBUFFERPROC glUnmapNamedBuffer;
1099   PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glFlushMappedNamedBufferRange;
1100   PFNGLGETNAMEDBUFFERPARAMETERIVPROC glGetNamedBufferParameteriv;
1101   PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glGetNamedBufferParameteri64v;
1102   PFNGLGETNAMEDBUFFERPOINTERVPROC glGetNamedBufferPointerv;
1103   PFNGLGETNAMEDBUFFERSUBDATAPROC glGetNamedBufferSubData;
1104   PFNGLCREATEFRAMEBUFFERSPROC glCreateFramebuffers;
1105   PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glNamedFramebufferRenderbuffer;
1106   PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glNamedFramebufferParameteri;
1107   PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glNamedFramebufferTexture;
1108   PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glNamedFramebufferTextureLayer;
1109   PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glNamedFramebufferDrawBuffer;
1110   PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glNamedFramebufferDrawBuffers;
1111   PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glNamedFramebufferReadBuffer;
1112   PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glInvalidateNamedFramebufferData;
1113   PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glInvalidateNamedFramebufferSubData;
1114   PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glClearNamedFramebufferiv;
1115   PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glClearNamedFramebufferuiv;
1116   PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glClearNamedFramebufferfv;
1117   PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glClearNamedFramebufferfi;
1118   PFNGLBLITNAMEDFRAMEBUFFERPROC glBlitNamedFramebuffer;
1119   PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glCheckNamedFramebufferStatus;
1120   PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glGetNamedFramebufferParameteriv;
1121   PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetNamedFramebufferAttachmentParameteriv;
1122   PFNGLCREATERENDERBUFFERSPROC glCreateRenderbuffers;
1123   PFNGLNAMEDRENDERBUFFERSTORAGEPROC glNamedRenderbufferStorage;
1124   PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glNamedRenderbufferStorageMultisample;
1125   PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glGetNamedRenderbufferParameteriv;
1126   PFNGLCREATETEXTURESPROC glCreateTextures;
1127   PFNGLTEXTUREBUFFERPROC glTextureBuffer;
1128   PFNGLTEXTUREBUFFERRANGEPROC glTextureBufferRange;
1129   PFNGLTEXTURESTORAGE1DPROC glTextureStorage1D;
1130   PFNGLTEXTURESTORAGE2DPROC glTextureStorage2D;
1131   PFNGLTEXTURESTORAGE3DPROC glTextureStorage3D;
1132   PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glTextureStorage2DMultisample;
1133   PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glTextureStorage3DMultisample;
1134   PFNGLTEXTURESUBIMAGE1DPROC glTextureSubImage1D;
1135   PFNGLTEXTURESUBIMAGE2DPROC glTextureSubImage2D;
1136   PFNGLTEXTURESUBIMAGE3DPROC glTextureSubImage3D;
1137   PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glCompressedTextureSubImage1D;
1138   PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glCompressedTextureSubImage2D;
1139   PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glCompressedTextureSubImage3D;
1140   PFNGLCOPYTEXTURESUBIMAGE1DPROC glCopyTextureSubImage1D;
1141   PFNGLCOPYTEXTURESUBIMAGE2DPROC glCopyTextureSubImage2D;
1142   PFNGLCOPYTEXTURESUBIMAGE3DPROC glCopyTextureSubImage3D;
1143   PFNGLTEXTUREPARAMETERFPROC glTextureParameterf;
1144   PFNGLTEXTUREPARAMETERFVPROC glTextureParameterfv;
1145   PFNGLTEXTUREPARAMETERIPROC glTextureParameteri;
1146   PFNGLTEXTUREPARAMETERIIVPROC glTextureParameterIiv;
1147   PFNGLTEXTUREPARAMETERIUIVPROC glTextureParameterIuiv;
1148   PFNGLTEXTUREPARAMETERIVPROC glTextureParameteriv;
1149   PFNGLGENERATETEXTUREMIPMAPPROC glGenerateTextureMipmap;
1150   PFNGLBINDTEXTUREUNITPROC glBindTextureUnit;
1151   PFNGLGETTEXTUREIMAGEPROC glGetTextureImage;
1152   PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glGetCompressedTextureImage;
1153   PFNGLGETTEXTURELEVELPARAMETERFVPROC glGetTextureLevelParameterfv;
1154   PFNGLGETTEXTURELEVELPARAMETERIVPROC glGetTextureLevelParameteriv;
1155   PFNGLGETTEXTUREPARAMETERFVPROC glGetTextureParameterfv;
1156   PFNGLGETTEXTUREPARAMETERIIVPROC glGetTextureParameterIiv;
1157   PFNGLGETTEXTUREPARAMETERIUIVPROC glGetTextureParameterIuiv;
1158   PFNGLGETTEXTUREPARAMETERIVPROC glGetTextureParameteriv;
1159   PFNGLCREATEVERTEXARRAYSPROC glCreateVertexArrays;
1160   PFNGLDISABLEVERTEXARRAYATTRIBPROC glDisableVertexArrayAttrib;
1161   PFNGLENABLEVERTEXARRAYATTRIBPROC glEnableVertexArrayAttrib;
1162   PFNGLVERTEXARRAYELEMENTBUFFERPROC glVertexArrayElementBuffer;
1163   PFNGLVERTEXARRAYVERTEXBUFFERPROC glVertexArrayVertexBuffer;
1164   PFNGLVERTEXARRAYVERTEXBUFFERSPROC glVertexArrayVertexBuffers;
1165   PFNGLVERTEXARRAYATTRIBBINDINGPROC glVertexArrayAttribBinding;
1166   PFNGLVERTEXARRAYATTRIBFORMATPROC glVertexArrayAttribFormat;
1167   PFNGLVERTEXARRAYATTRIBIFORMATPROC glVertexArrayAttribIFormat;
1168   PFNGLVERTEXARRAYATTRIBLFORMATPROC glVertexArrayAttribLFormat;
1169   PFNGLVERTEXARRAYBINDINGDIVISORPROC glVertexArrayBindingDivisor;
1170   PFNGLGETVERTEXARRAYIVPROC glGetVertexArrayiv;
1171   PFNGLGETVERTEXARRAYINDEXEDIVPROC glGetVertexArrayIndexediv;
1172   PFNGLGETVERTEXARRAYINDEXED64IVPROC glGetVertexArrayIndexed64iv;
1173   PFNGLCREATESAMPLERSPROC glCreateSamplers;
1174   PFNGLCREATEPROGRAMPIPELINESPROC glCreateProgramPipelines;
1175   PFNGLCREATEQUERIESPROC glCreateQueries;
1176   PFNGLGETQUERYBUFFEROBJECTI64VPROC glGetQueryBufferObjecti64v;
1177   PFNGLGETQUERYBUFFEROBJECTIVPROC glGetQueryBufferObjectiv;
1178   PFNGLGETQUERYBUFFEROBJECTUI64VPROC glGetQueryBufferObjectui64v;
1179   PFNGLGETQUERYBUFFEROBJECTUIVPROC glGetQueryBufferObjectuiv;
1180   PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
1181   PFNGLGETTEXTURESUBIMAGEPROC glGetTextureSubImage;
1182   PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glGetCompressedTextureSubImage;
1183   PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
1184   PFNGLGETNCOMPRESSEDTEXIMAGEPROC glGetnCompressedTexImage;
1185   PFNGLGETNTEXIMAGEPROC glGetnTexImage;
1186   PFNGLGETNUNIFORMDVPROC glGetnUniformdv;
1187   PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
1188   PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
1189   PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
1190   PFNGLREADNPIXELSPROC glReadnPixels;
1191   PFNGLTEXTUREBARRIERPROC glTextureBarrier;
1192 
1193 public: //! @name OpenGL 4.6
1194 
1195   PFNGLSPECIALIZESHADERPROC glSpecializeShader;
1196   PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glMultiDrawArraysIndirectCount;
1197   PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glMultiDrawElementsIndirectCount;
1198   PFNGLPOLYGONOFFSETCLAMPPROC glPolygonOffsetClamp;
1199 
1200 public: //! @name GL_EXT_geometry_shader4
1201 
1202   PFNGLPROGRAMPARAMETERIEXTPROC glProgramParameteriEXT;
1203 
1204 public: //! @name GL_ARB_bindless_texture
1205 
1206   PFNGLGETTEXTUREHANDLEARBPROC             glGetTextureHandleARB;
1207   PFNGLGETTEXTURESAMPLERHANDLEARBPROC      glGetTextureSamplerHandleARB;
1208   PFNGLMAKETEXTUREHANDLERESIDENTARBPROC    glMakeTextureHandleResidentARB;
1209   PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC glMakeTextureHandleNonResidentARB;
1210   PFNGLGETIMAGEHANDLEARBPROC               glGetImageHandleARB;
1211   PFNGLMAKEIMAGEHANDLERESIDENTARBPROC      glMakeImageHandleResidentARB;
1212   PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC   glMakeImageHandleNonResidentARB;
1213   PFNGLUNIFORMHANDLEUI64ARBPROC            glUniformHandleui64ARB;
1214   PFNGLUNIFORMHANDLEUI64VARBPROC           glUniformHandleui64vARB;
1215   PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC     glProgramUniformHandleui64ARB;
1216   PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC    glProgramUniformHandleui64vARB;
1217   PFNGLISTEXTUREHANDLERESIDENTARBPROC      glIsTextureHandleResidentARB;
1218   PFNGLISIMAGEHANDLERESIDENTARBPROC        glIsImageHandleResidentARB;
1219   PFNGLVERTEXATTRIBL1UI64ARBPROC           glVertexAttribL1ui64ARB;
1220   PFNGLVERTEXATTRIBL1UI64VARBPROC          glVertexAttribL1ui64vARB;
1221   PFNGLGETVERTEXATTRIBLUI64VARBPROC        glGetVertexAttribLui64vARB;
1222 
1223 #if defined(_WIN32)
1224 public: //! @name wgl extensions
1225 
1226   typedef const char* (WINAPI *wglGetExtensionsStringARB_t)(HDC theDeviceContext);
1227   wglGetExtensionsStringARB_t wglGetExtensionsStringARB;
1228 
1229   typedef BOOL        (WINAPI *wglSwapIntervalEXT_t)(int theInterval);
1230   wglSwapIntervalEXT_t wglSwapIntervalEXT;
1231 
1232   // WGL_ARB_pixel_format
1233 
1234 #ifndef WGL_NUMBER_PIXEL_FORMATS_ARB
1235   #define WGL_NUMBER_PIXEL_FORMATS_ARB            0x2000
1236   #define WGL_DRAW_TO_WINDOW_ARB                  0x2001
1237   #define WGL_DRAW_TO_BITMAP_ARB                  0x2002
1238   #define WGL_ACCELERATION_ARB                    0x2003
1239   #define WGL_NEED_PALETTE_ARB                    0x2004
1240   #define WGL_NEED_SYSTEM_PALETTE_ARB             0x2005
1241   #define WGL_SWAP_LAYER_BUFFERS_ARB              0x2006
1242   #define WGL_SWAP_METHOD_ARB                     0x2007
1243   #define WGL_NUMBER_OVERLAYS_ARB                 0x2008
1244   #define WGL_NUMBER_UNDERLAYS_ARB                0x2009
1245   #define WGL_TRANSPARENT_ARB                     0x200A
1246   #define WGL_TRANSPARENT_RED_VALUE_ARB           0x2037
1247   #define WGL_TRANSPARENT_GREEN_VALUE_ARB         0x2038
1248   #define WGL_TRANSPARENT_BLUE_VALUE_ARB          0x2039
1249   #define WGL_TRANSPARENT_ALPHA_VALUE_ARB         0x203A
1250   #define WGL_TRANSPARENT_INDEX_VALUE_ARB         0x203B
1251   #define WGL_SHARE_DEPTH_ARB                     0x200C
1252   #define WGL_SHARE_STENCIL_ARB                   0x200D
1253   #define WGL_SHARE_ACCUM_ARB                     0x200E
1254   #define WGL_SUPPORT_GDI_ARB                     0x200F
1255   #define WGL_SUPPORT_OPENGL_ARB                  0x2010
1256   #define WGL_DOUBLE_BUFFER_ARB                   0x2011
1257   #define WGL_STEREO_ARB                          0x2012
1258   #define WGL_PIXEL_TYPE_ARB                      0x2013
1259   #define WGL_COLOR_BITS_ARB                      0x2014
1260   #define WGL_RED_BITS_ARB                        0x2015
1261   #define WGL_RED_SHIFT_ARB                       0x2016
1262   #define WGL_GREEN_BITS_ARB                      0x2017
1263   #define WGL_GREEN_SHIFT_ARB                     0x2018
1264   #define WGL_BLUE_BITS_ARB                       0x2019
1265   #define WGL_BLUE_SHIFT_ARB                      0x201A
1266   #define WGL_ALPHA_BITS_ARB                      0x201B
1267   #define WGL_ALPHA_SHIFT_ARB                     0x201C
1268   #define WGL_ACCUM_BITS_ARB                      0x201D
1269   #define WGL_ACCUM_RED_BITS_ARB                  0x201E
1270   #define WGL_ACCUM_GREEN_BITS_ARB                0x201F
1271   #define WGL_ACCUM_BLUE_BITS_ARB                 0x2020
1272   #define WGL_ACCUM_ALPHA_BITS_ARB                0x2021
1273   #define WGL_DEPTH_BITS_ARB                      0x2022
1274   #define WGL_STENCIL_BITS_ARB                    0x2023
1275   #define WGL_AUX_BUFFERS_ARB                     0x2024
1276 
1277   #define WGL_NO_ACCELERATION_ARB                 0x2025
1278   #define WGL_GENERIC_ACCELERATION_ARB            0x2026
1279   #define WGL_FULL_ACCELERATION_ARB               0x2027
1280 
1281   #define WGL_SWAP_EXCHANGE_ARB                   0x2028
1282   #define WGL_SWAP_COPY_ARB                       0x2029
1283   #define WGL_SWAP_UNDEFINED_ARB                  0x202A
1284 
1285   #define WGL_TYPE_RGBA_ARB                       0x202B
1286   #define WGL_TYPE_COLORINDEX_ARB                 0x202C
1287 
1288 #endif // WGL_NUMBER_PIXEL_FORMATS_ARB
1289 
1290       // WGL_ARB_multisample
1291 #ifndef WGL_SAMPLE_BUFFERS_ARB
1292   #define WGL_SAMPLE_BUFFERS_ARB               0x2041
1293   #define WGL_SAMPLES_ARB                      0x2042
1294 #endif
1295 
1296       // WGL_ARB_create_context_robustness
1297 #ifndef WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB
1298   #define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
1299   #define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
1300   #define WGL_NO_RESET_NOTIFICATION_ARB               0x8261
1301   #define WGL_LOSE_CONTEXT_ON_RESET_ARB               0x8252
1302 #endif
1303 
1304   typedef BOOL (WINAPI *wglChoosePixelFormatARB_t)
1305       (HDC           theDevCtx,
1306        const int*    theIntAttribs,
1307        const float*  theFloatAttribs,
1308        unsigned int  theMaxFormats,
1309        int*          theFormatsOut,
1310        unsigned int* theNumFormatsOut);
1311   wglChoosePixelFormatARB_t wglChoosePixelFormatARB;
1312 
1313   // WGL_ARB_create_context_profile
1314 
1315 #ifndef WGL_CONTEXT_MAJOR_VERSION_ARB
1316   #define WGL_CONTEXT_MAJOR_VERSION_ARB           0x2091
1317   #define WGL_CONTEXT_MINOR_VERSION_ARB           0x2092
1318   #define WGL_CONTEXT_LAYER_PLANE_ARB             0x2093
1319   #define WGL_CONTEXT_FLAGS_ARB                   0x2094
1320   #define WGL_CONTEXT_PROFILE_MASK_ARB            0x9126
1321 
1322   // WGL_CONTEXT_FLAGS bits
1323   #define WGL_CONTEXT_DEBUG_BIT_ARB               0x0001
1324   #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB  0x0002
1325 
1326   // WGL_CONTEXT_PROFILE_MASK_ARB bits
1327   #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB          0x00000001
1328   #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
1329 #endif // WGL_CONTEXT_MAJOR_VERSION_ARB
1330 
1331   typedef HGLRC (WINAPI *wglCreateContextAttribsARB_t)(HDC        theDevCtx,
1332                                                        HGLRC      theShareContext,
1333                                                        const int* theAttribs);
1334   wglCreateContextAttribsARB_t wglCreateContextAttribsARB;
1335 
1336   // WGL_NV_DX_interop
1337 
1338   typedef BOOL   (WINAPI *wglDXSetResourceShareHandleNV_t)(void* theObjectD3d, HANDLE theShareHandle);
1339   typedef HANDLE (WINAPI *wglDXOpenDeviceNV_t      )(void*   theDeviceD3d);
1340   typedef BOOL   (WINAPI *wglDXCloseDeviceNV_t     )(HANDLE  theDeviceIOP);
1341   typedef HANDLE (WINAPI *wglDXRegisterObjectNV_t  )(HANDLE  theDeviceIOP,
1342                                                      void*   theObjectD3d,
1343                                                      GLuint  theName,
1344                                                      GLenum  theType,
1345                                                      GLenum  theAccess);
1346   typedef BOOL   (WINAPI *wglDXUnregisterObjectNV_t)(HANDLE  theDeviceIOP,
1347                                                      HANDLE  theObject);
1348   typedef BOOL   (WINAPI *wglDXObjectAccessNV_t    )(HANDLE  theObject,
1349                                                      GLenum  theAccess);
1350   typedef BOOL   (WINAPI *wglDXLockObjectsNV_t     )(HANDLE  theDeviceIOP,
1351                                                      GLint   theCount,
1352                                                      HANDLE* theObjects);
1353   typedef BOOL   (WINAPI *wglDXUnlockObjectsNV_t   )(HANDLE  theDeviceIOP,
1354                                                      GLint   theCount,
1355                                                      HANDLE* theObjects);
1356 
1357   wglDXSetResourceShareHandleNV_t wglDXSetResourceShareHandleNV;
1358   wglDXOpenDeviceNV_t       wglDXOpenDeviceNV;
1359   wglDXCloseDeviceNV_t      wglDXCloseDeviceNV;
1360   wglDXRegisterObjectNV_t   wglDXRegisterObjectNV;
1361   wglDXUnregisterObjectNV_t wglDXUnregisterObjectNV;
1362   wglDXObjectAccessNV_t     wglDXObjectAccessNV;
1363   wglDXLockObjectsNV_t      wglDXLockObjectsNV;
1364   wglDXUnlockObjectsNV_t    wglDXUnlockObjectsNV;
1365 
1366 #ifndef WGL_ACCESS_READ_WRITE_NV
1367   #define WGL_ACCESS_READ_ONLY_NV     0x0000
1368   #define WGL_ACCESS_READ_WRITE_NV    0x0001
1369   #define WGL_ACCESS_WRITE_DISCARD_NV 0x0002
1370 #endif
1371 
1372   // WGL_AMD_gpu_association
1373 
1374 #ifndef WGL_GPU_VENDOR_AMD
1375   #define WGL_GPU_VENDOR_AMD                 0x1F00
1376   #define WGL_GPU_RENDERER_STRING_AMD        0x1F01
1377   #define WGL_GPU_OPENGL_VERSION_STRING_AMD  0x1F02
1378   #define WGL_GPU_FASTEST_TARGET_GPUS_AMD    0x21A2
1379   #define WGL_GPU_RAM_AMD                    0x21A3
1380   #define WGL_GPU_CLOCK_AMD                  0x21A4
1381   #define WGL_GPU_NUM_PIPES_AMD              0x21A5
1382   #define WGL_GPU_NUM_SIMD_AMD               0x21A6
1383   #define WGL_GPU_NUM_RB_AMD                 0x21A7
1384   #define WGL_GPU_NUM_SPI_AMD                0x21A8
1385 #endif
1386 
1387   typedef UINT (WINAPI *wglGetGPUIDsAMD_t       )(UINT theMaxCount, UINT* theIds);
1388   typedef INT  (WINAPI *wglGetGPUInfoAMD_t      )(UINT theId, INT theProperty, GLenum theDataType, UINT theSize, void* theData);
1389   typedef UINT (WINAPI *wglGetContextGPUIDAMD_t )(HGLRC theHglrc);
1390   wglGetGPUIDsAMD_t       wglGetGPUIDsAMD;
1391   wglGetGPUInfoAMD_t      wglGetGPUInfoAMD;
1392   wglGetContextGPUIDAMD_t wglGetContextGPUIDAMD;
1393 
1394 #elif defined(__APPLE__)
1395 public: //! @name CGL extensions
1396 
1397 #else
1398 public: //! @name glX extensions
1399 
1400   // GLX_EXT_swap_control
1401   //typedef int         (*glXSwapIntervalEXT_t)(Display* theDisplay, GLXDrawable theDrawable, int theInterval);
1402   typedef int         (*glXSwapIntervalEXT_t)();
1403   glXSwapIntervalEXT_t glXSwapIntervalEXT;
1404 
1405   typedef int         (*glXSwapIntervalSGI_t)(int theInterval);
1406   glXSwapIntervalSGI_t glXSwapIntervalSGI;
1407 
1408   // GLX_MESA_query_renderer
1409 #ifndef GLX_RENDERER_VENDOR_ID_MESA
1410   // for glXQueryRendererIntegerMESA() and glXQueryCurrentRendererIntegerMESA()
1411   #define GLX_RENDERER_VENDOR_ID_MESA                      0x8183
1412   #define GLX_RENDERER_DEVICE_ID_MESA                      0x8184
1413   #define GLX_RENDERER_VERSION_MESA                        0x8185
1414   #define GLX_RENDERER_ACCELERATED_MESA                    0x8186
1415   #define GLX_RENDERER_VIDEO_MEMORY_MESA                   0x8187
1416   #define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA    0x8188
1417   #define GLX_RENDERER_PREFERRED_PROFILE_MESA              0x8189
1418   #define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA    0x818A
1419   #define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
1420   #define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA      0x818C
1421   #define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA     0x818D
1422 
1423   #define GLX_RENDERER_ID_MESA                             0x818E
1424 #endif // GLX_RENDERER_VENDOR_ID_MESA
1425 
1426   typedef int (*glXQueryRendererIntegerMESA_t)(Aspect_XDisplay* theDisplay, int theScreen,
1427                                                int theRenderer, int theAttribute,
1428                                                unsigned int* theValue);
1429   typedef int (*glXQueryCurrentRendererIntegerMESA_t)(int theAttribute, unsigned int* theValue);
1430   typedef const char* (*glXQueryRendererStringMESA_t)(Aspect_XDisplay* theDisplay, int theScreen,
1431                                                       int theRenderer, int theAttribute);
1432   typedef const char* (*glXQueryCurrentRendererStringMESA_t)(int theAttribute);
1433 
1434   glXQueryRendererIntegerMESA_t        glXQueryRendererIntegerMESA;
1435   glXQueryCurrentRendererIntegerMESA_t glXQueryCurrentRendererIntegerMESA;
1436   glXQueryRendererStringMESA_t         glXQueryRendererStringMESA;
1437   glXQueryCurrentRendererStringMESA_t  glXQueryCurrentRendererStringMESA;
1438 #endif
1439 
1440 };
1441 
1442 #endif // _OpenGl_GlFunctions_Header