1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00

0030638: Visualization, TKOpenGl - load OpenGL 4.5 functions within OpenGl_Context

This commit is contained in:
kgv 2019-04-08 18:03:34 +03:00 committed by apn
parent d325cb7f57
commit 9491df8c1b
5 changed files with 435 additions and 1 deletions

View File

@ -95,6 +95,7 @@ OpenGl_GlCore41.hxx
OpenGl_GlCore42.hxx
OpenGl_GlCore43.hxx
OpenGl_GlCore44.hxx
OpenGl_GlCore45.hxx
OpenGl_LayerList.cxx
OpenGl_LayerList.hxx
OpenGl_LayerFilter.hxx

View File

@ -26,7 +26,7 @@
#include <OpenGl_ExtGS.hxx>
#include <OpenGl_ArbSamplerObject.hxx>
#include <OpenGl_ArbTexBindless.hxx>
#include <OpenGl_GlCore44.hxx>
#include <OpenGl_GlCore45.hxx>
#include <OpenGl_FrameBuffer.hxx>
#include <OpenGl_FrameStats.hxx>
#include <OpenGl_Sampler.hxx>
@ -109,6 +109,8 @@ OpenGl_Context::OpenGl_Context (const Handle(OpenGl_Caps)& theCaps)
core43back (NULL),
core44 (NULL),
core44back (NULL),
core45 (NULL),
core45back (NULL),
caps (!theCaps.IsNull() ? theCaps : new OpenGl_Caps()),
#if defined(GL_ES_VERSION_2_0)
hasHighp (Standard_False),
@ -1266,6 +1268,8 @@ void OpenGl_Context::init (const Standard_Boolean theIsCoreProfile)
core43back = NULL;
core44 = NULL;
core44back = NULL;
core45 = NULL;
core45back = NULL;
arbTBO = NULL;
arbTboRGB32 = Standard_False;
arbIns = NULL;
@ -1532,6 +1536,7 @@ void OpenGl_Context::init (const Standard_Boolean theIsCoreProfile)
bool has42 = false;
bool has43 = false;
bool has44 = false;
bool has45 = false;
// retrieve platform-dependent extensions
#if defined(HAVE_EGL)
@ -2331,6 +2336,131 @@ void OpenGl_Context::init (const Standard_Boolean theIsCoreProfile)
&& FindProcShort (glBindImageTextures)
&& FindProcShort (glBindVertexBuffers);
has45 = IsGlGreaterEqual (4, 5)
&& FindProcShort (glBindVertexBuffers)
&& FindProcShort (glClipControl)
&& FindProcShort (glCreateTransformFeedbacks)
&& FindProcShort (glTransformFeedbackBufferBase)
&& FindProcShort (glTransformFeedbackBufferRange)
&& FindProcShort (glGetTransformFeedbackiv)
&& FindProcShort (glGetTransformFeedbacki_v)
&& FindProcShort (glGetTransformFeedbacki64_v)
&& FindProcShort (glCreateBuffers)
&& FindProcShort (glNamedBufferStorage)
&& FindProcShort (glNamedBufferData)
&& FindProcShort (glNamedBufferSubData)
&& FindProcShort (glCopyNamedBufferSubData)
&& FindProcShort (glClearNamedBufferData)
&& FindProcShort (glClearNamedBufferSubData)
&& FindProcShort (glMapNamedBuffer)
&& FindProcShort (glMapNamedBufferRange)
&& FindProcShort (glUnmapNamedBuffer)
&& FindProcShort (glFlushMappedNamedBufferRange)
&& FindProcShort (glGetNamedBufferParameteriv)
&& FindProcShort (glGetNamedBufferParameteri64v)
&& FindProcShort (glGetNamedBufferPointerv)
&& FindProcShort (glGetNamedBufferSubData)
&& FindProcShort (glCreateFramebuffers)
&& FindProcShort (glNamedFramebufferRenderbuffer)
&& FindProcShort (glNamedFramebufferParameteri)
&& FindProcShort (glNamedFramebufferTexture)
&& FindProcShort (glNamedFramebufferTextureLayer)
&& FindProcShort (glNamedFramebufferDrawBuffer)
&& FindProcShort (glNamedFramebufferDrawBuffers)
&& FindProcShort (glNamedFramebufferReadBuffer)
&& FindProcShort (glInvalidateNamedFramebufferData)
&& FindProcShort (glInvalidateNamedFramebufferSubData)
&& FindProcShort (glClearNamedFramebufferiv)
&& FindProcShort (glClearNamedFramebufferuiv)
&& FindProcShort (glClearNamedFramebufferfv)
&& FindProcShort (glClearNamedFramebufferfi)
&& FindProcShort (glBlitNamedFramebuffer)
&& FindProcShort (glCheckNamedFramebufferStatus)
&& FindProcShort (glGetNamedFramebufferParameteriv)
&& FindProcShort (glGetNamedFramebufferAttachmentParameteriv)
&& FindProcShort (glCreateRenderbuffers)
&& FindProcShort (glNamedRenderbufferStorage)
&& FindProcShort (glNamedRenderbufferStorageMultisample)
&& FindProcShort (glGetNamedRenderbufferParameteriv)
&& FindProcShort (glCreateTextures)
&& FindProcShort (glTextureBuffer)
&& FindProcShort (glTextureBufferRange)
&& FindProcShort (glTextureStorage1D)
&& FindProcShort (glTextureStorage2D)
&& FindProcShort (glTextureStorage3D)
&& FindProcShort (glTextureStorage2DMultisample)
&& FindProcShort (glTextureStorage3DMultisample)
&& FindProcShort (glTextureSubImage1D)
&& FindProcShort (glTextureSubImage2D)
&& FindProcShort (glTextureSubImage3D)
&& FindProcShort (glCompressedTextureSubImage1D)
&& FindProcShort (glCompressedTextureSubImage2D)
&& FindProcShort (glCompressedTextureSubImage3D)
&& FindProcShort (glCopyTextureSubImage1D)
&& FindProcShort (glCopyTextureSubImage2D)
&& FindProcShort (glCopyTextureSubImage3D)
&& FindProcShort (glTextureParameterf)
&& FindProcShort (glTextureParameterfv)
&& FindProcShort (glTextureParameteri)
&& FindProcShort (glTextureParameterIiv)
&& FindProcShort (glTextureParameterIuiv)
&& FindProcShort (glTextureParameteriv)
&& FindProcShort (glGenerateTextureMipmap)
&& FindProcShort (glBindTextureUnit)
&& FindProcShort (glGetTextureImage)
&& FindProcShort (glGetCompressedTextureImage)
&& FindProcShort (glGetTextureLevelParameterfv)
&& FindProcShort (glGetTextureLevelParameteriv)
&& FindProcShort (glGetTextureParameterfv)
&& FindProcShort (glGetTextureParameterIiv)
&& FindProcShort (glGetTextureParameterIuiv)
&& FindProcShort (glGetTextureParameteriv)
&& FindProcShort (glCreateVertexArrays)
&& FindProcShort (glDisableVertexArrayAttrib)
&& FindProcShort (glEnableVertexArrayAttrib)
&& FindProcShort (glVertexArrayElementBuffer)
&& FindProcShort (glVertexArrayVertexBuffer)
&& FindProcShort (glVertexArrayVertexBuffers)
&& FindProcShort (glVertexArrayAttribBinding)
&& FindProcShort (glVertexArrayAttribFormat)
&& FindProcShort (glVertexArrayAttribIFormat)
&& FindProcShort (glVertexArrayAttribLFormat)
&& FindProcShort (glVertexArrayBindingDivisor)
&& FindProcShort (glGetVertexArrayiv)
&& FindProcShort (glGetVertexArrayIndexediv)
&& FindProcShort (glGetVertexArrayIndexed64iv)
&& FindProcShort (glCreateSamplers)
&& FindProcShort (glCreateProgramPipelines)
&& FindProcShort (glCreateQueries)
&& FindProcShort (glGetQueryBufferObjecti64v)
&& FindProcShort (glGetQueryBufferObjectiv)
&& FindProcShort (glGetQueryBufferObjectui64v)
&& FindProcShort (glGetQueryBufferObjectuiv)
&& FindProcShort (glMemoryBarrierByRegion)
&& FindProcShort (glGetTextureSubImage)
&& FindProcShort (glGetCompressedTextureSubImage)
&& FindProcShort (glGetGraphicsResetStatus)
&& FindProcShort (glGetnCompressedTexImage)
&& FindProcShort (glGetnTexImage)
&& FindProcShort (glGetnUniformdv)
&& FindProcShort (glGetnUniformfv)
&& FindProcShort (glGetnUniformiv)
&& FindProcShort (glGetnUniformuiv)
&& FindProcShort (glReadnPixels)
&& FindProcShort (glGetnMapdv)
&& FindProcShort (glGetnMapfv)
&& FindProcShort (glGetnMapiv)
&& FindProcShort (glGetnPixelMapfv)
&& FindProcShort (glGetnPixelMapuiv)
&& FindProcShort (glGetnPixelMapusv)
&& FindProcShort (glGetnPolygonStipple)
&& FindProcShort (glGetnColorTable)
&& FindProcShort (glGetnConvolutionFilter)
&& FindProcShort (glGetnSeparableFilter)
&& FindProcShort (glGetnHistogram)
&& FindProcShort (glGetnMinmax)
&& FindProcShort (glTextureBarrier);
// initialize debug context extension
if (CheckExtension ("GL_ARB_debug_output"))
{
@ -2636,6 +2766,19 @@ void OpenGl_Context::init (const Standard_Boolean theIsCoreProfile)
{
core44back = (OpenGl_GlCore44Back* )(&(*myFuncs));
}
if (!has45)
{
checkWrongVersion (4, 5);
myGlVerMajor = 4;
myGlVerMinor = 4;
return;
}
core45 = (OpenGl_GlCore45* )(&(*myFuncs));
if (!isCoreProfile)
{
core45back = (OpenGl_GlCore45Back* )(&(*myFuncs));
}
#endif
}

View File

@ -132,6 +132,10 @@ template<typename theBaseClass_t> struct OpenGl_TmplCore44;
typedef OpenGl_TmplCore44<OpenGl_GlCore43Back> OpenGl_GlCore44Back;
typedef OpenGl_TmplCore44<OpenGl_GlCore43> OpenGl_GlCore44;
template<typename theBaseClass_t> struct OpenGl_TmplCore45;
typedef OpenGl_TmplCore45<OpenGl_GlCore44Back> OpenGl_GlCore45Back;
typedef OpenGl_TmplCore45<OpenGl_GlCore44> OpenGl_GlCore45;
class Graphic3d_PresentationAttributes;
class OpenGl_Aspects;
class OpenGl_FrameBuffer;
@ -853,6 +857,8 @@ public: //! @name core profiles
OpenGl_GlCore43Back* core43back; //!< OpenGL 4.3 backward compatibility profile
OpenGl_GlCore44* core44; //!< OpenGL 4.4 core profile
OpenGl_GlCore44Back* core44back; //!< OpenGL 4.4 backward compatibility profile
OpenGl_GlCore45* core45; //!< OpenGL 4.5 core profile
OpenGl_GlCore45Back* core45back; //!< OpenGL 4.5 backward compatibility profile
Handle(OpenGl_Caps) caps; //!< context options

View File

@ -0,0 +1,159 @@
// Copyright (c) 2019 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _OpenGl_GlCore45_Header
#define _OpenGl_GlCore45_Header
#include <OpenGl_GlCore44.hxx>
//! OpenGL 4.5 definition.
template<typename theBaseClass_t>
struct OpenGl_TmplCore45 : public theBaseClass_t
{
public: //! @name OpenGL 4.5 additives to 4.4
#if !defined(GL_ES_VERSION_2_0)
using theBaseClass_t::glClipControl;
using theBaseClass_t::glCreateTransformFeedbacks;
using theBaseClass_t::glTransformFeedbackBufferBase;
using theBaseClass_t::glTransformFeedbackBufferRange;
using theBaseClass_t::glGetTransformFeedbackiv;
using theBaseClass_t::glGetTransformFeedbacki_v;
using theBaseClass_t::glGetTransformFeedbacki64_v;
using theBaseClass_t::glCreateBuffers;
using theBaseClass_t::glNamedBufferStorage;
using theBaseClass_t::glNamedBufferData;
using theBaseClass_t::glNamedBufferSubData;
using theBaseClass_t::glCopyNamedBufferSubData;
using theBaseClass_t::glClearNamedBufferData;
using theBaseClass_t::glClearNamedBufferSubData;
using theBaseClass_t::glMapNamedBuffer;
using theBaseClass_t::glMapNamedBufferRange;
using theBaseClass_t::glUnmapNamedBuffer;
using theBaseClass_t::glFlushMappedNamedBufferRange;
using theBaseClass_t::glGetNamedBufferParameteriv;
using theBaseClass_t::glGetNamedBufferParameteri64v;
using theBaseClass_t::glGetNamedBufferPointerv;
using theBaseClass_t::glGetNamedBufferSubData;
using theBaseClass_t::glCreateFramebuffers;
using theBaseClass_t::glNamedFramebufferRenderbuffer;
using theBaseClass_t::glNamedFramebufferParameteri;
using theBaseClass_t::glNamedFramebufferTexture;
using theBaseClass_t::glNamedFramebufferTextureLayer;
using theBaseClass_t::glNamedFramebufferDrawBuffer;
using theBaseClass_t::glNamedFramebufferDrawBuffers;
using theBaseClass_t::glNamedFramebufferReadBuffer;
using theBaseClass_t::glInvalidateNamedFramebufferData;
using theBaseClass_t::glInvalidateNamedFramebufferSubData;
using theBaseClass_t::glClearNamedFramebufferiv;
using theBaseClass_t::glClearNamedFramebufferuiv;
using theBaseClass_t::glClearNamedFramebufferfv;
using theBaseClass_t::glClearNamedFramebufferfi;
using theBaseClass_t::glBlitNamedFramebuffer;
using theBaseClass_t::glCheckNamedFramebufferStatus;
using theBaseClass_t::glGetNamedFramebufferParameteriv;
using theBaseClass_t::glGetNamedFramebufferAttachmentParameteriv;
using theBaseClass_t::glCreateRenderbuffers;
using theBaseClass_t::glNamedRenderbufferStorage;
using theBaseClass_t::glNamedRenderbufferStorageMultisample;
using theBaseClass_t::glGetNamedRenderbufferParameteriv;
using theBaseClass_t::glCreateTextures;
using theBaseClass_t::glTextureBuffer;
using theBaseClass_t::glTextureBufferRange;
using theBaseClass_t::glTextureStorage1D;
using theBaseClass_t::glTextureStorage2D;
using theBaseClass_t::glTextureStorage3D;
using theBaseClass_t::glTextureStorage2DMultisample;
using theBaseClass_t::glTextureStorage3DMultisample;
using theBaseClass_t::glTextureSubImage1D;
using theBaseClass_t::glTextureSubImage2D;
using theBaseClass_t::glTextureSubImage3D;
using theBaseClass_t::glCompressedTextureSubImage1D;
using theBaseClass_t::glCompressedTextureSubImage2D;
using theBaseClass_t::glCompressedTextureSubImage3D;
using theBaseClass_t::glCopyTextureSubImage1D;
using theBaseClass_t::glCopyTextureSubImage2D;
using theBaseClass_t::glCopyTextureSubImage3D;
using theBaseClass_t::glTextureParameterf;
using theBaseClass_t::glTextureParameterfv;
using theBaseClass_t::glTextureParameteri;
using theBaseClass_t::glTextureParameterIiv;
using theBaseClass_t::glTextureParameterIuiv;
using theBaseClass_t::glTextureParameteriv;
using theBaseClass_t::glGenerateTextureMipmap;
using theBaseClass_t::glBindTextureUnit;
using theBaseClass_t::glGetTextureImage;
using theBaseClass_t::glGetCompressedTextureImage;
using theBaseClass_t::glGetTextureLevelParameterfv;
using theBaseClass_t::glGetTextureLevelParameteriv;
using theBaseClass_t::glGetTextureParameterfv;
using theBaseClass_t::glGetTextureParameterIiv;
using theBaseClass_t::glGetTextureParameterIuiv;
using theBaseClass_t::glGetTextureParameteriv;
using theBaseClass_t::glCreateVertexArrays;
using theBaseClass_t::glDisableVertexArrayAttrib;
using theBaseClass_t::glEnableVertexArrayAttrib;
using theBaseClass_t::glVertexArrayElementBuffer;
using theBaseClass_t::glVertexArrayVertexBuffer;
using theBaseClass_t::glVertexArrayVertexBuffers;
using theBaseClass_t::glVertexArrayAttribBinding;
using theBaseClass_t::glVertexArrayAttribFormat;
using theBaseClass_t::glVertexArrayAttribIFormat;
using theBaseClass_t::glVertexArrayAttribLFormat;
using theBaseClass_t::glVertexArrayBindingDivisor;
using theBaseClass_t::glGetVertexArrayiv;
using theBaseClass_t::glGetVertexArrayIndexediv;
using theBaseClass_t::glGetVertexArrayIndexed64iv;
using theBaseClass_t::glCreateSamplers;
using theBaseClass_t::glCreateProgramPipelines;
using theBaseClass_t::glCreateQueries;
using theBaseClass_t::glGetQueryBufferObjecti64v;
using theBaseClass_t::glGetQueryBufferObjectiv;
using theBaseClass_t::glGetQueryBufferObjectui64v;
using theBaseClass_t::glGetQueryBufferObjectuiv;
using theBaseClass_t::glMemoryBarrierByRegion;
using theBaseClass_t::glGetTextureSubImage;
using theBaseClass_t::glGetCompressedTextureSubImage;
using theBaseClass_t::glGetGraphicsResetStatus;
using theBaseClass_t::glGetnCompressedTexImage;
using theBaseClass_t::glGetnTexImage;
using theBaseClass_t::glGetnUniformdv;
using theBaseClass_t::glGetnUniformfv;
using theBaseClass_t::glGetnUniformiv;
using theBaseClass_t::glGetnUniformuiv;
using theBaseClass_t::glReadnPixels;
using theBaseClass_t::glGetnMapdv;
using theBaseClass_t::glGetnMapfv;
using theBaseClass_t::glGetnMapiv;
using theBaseClass_t::glGetnPixelMapfv;
using theBaseClass_t::glGetnPixelMapuiv;
using theBaseClass_t::glGetnPixelMapusv;
using theBaseClass_t::glGetnPolygonStipple;
using theBaseClass_t::glGetnColorTable;
using theBaseClass_t::glGetnConvolutionFilter;
using theBaseClass_t::glGetnSeparableFilter;
using theBaseClass_t::glGetnHistogram;
using theBaseClass_t::glGetnMinmax;
using theBaseClass_t::glTextureBarrier;
#endif
};
//! OpenGL 4.5 compatibility profile.
typedef OpenGl_TmplCore45<OpenGl_GlCore44Back> OpenGl_GlCore45Back;
//! OpenGL 4.5 core profile.
typedef OpenGl_TmplCore45<OpenGl_GlCore44> OpenGl_GlCore45;
#endif // _OpenGl_GlCore45_Header

View File

@ -1528,6 +1528,131 @@ public: //! @name OpenGL 4.4
PFNGLBINDIMAGETEXTURESPROC glBindImageTextures;
PFNGLBINDVERTEXBUFFERSPROC glBindVertexBuffers;
public: //! @name OpenGL 4.5
PFNGLCLIPCONTROLPROC glClipControl;
PFNGLCREATETRANSFORMFEEDBACKSPROC glCreateTransformFeedbacks;
PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glTransformFeedbackBufferBase;
PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glTransformFeedbackBufferRange;
PFNGLGETTRANSFORMFEEDBACKIVPROC glGetTransformFeedbackiv;
PFNGLGETTRANSFORMFEEDBACKI_VPROC glGetTransformFeedbacki_v;
PFNGLGETTRANSFORMFEEDBACKI64_VPROC glGetTransformFeedbacki64_v;
PFNGLCREATEBUFFERSPROC glCreateBuffers;
PFNGLNAMEDBUFFERSTORAGEPROC glNamedBufferStorage;
PFNGLNAMEDBUFFERDATAPROC glNamedBufferData;
PFNGLNAMEDBUFFERSUBDATAPROC glNamedBufferSubData;
PFNGLCOPYNAMEDBUFFERSUBDATAPROC glCopyNamedBufferSubData;
PFNGLCLEARNAMEDBUFFERDATAPROC glClearNamedBufferData;
PFNGLCLEARNAMEDBUFFERSUBDATAPROC glClearNamedBufferSubData;
PFNGLMAPNAMEDBUFFERPROC glMapNamedBuffer;
PFNGLMAPNAMEDBUFFERRANGEPROC glMapNamedBufferRange;
PFNGLUNMAPNAMEDBUFFERPROC glUnmapNamedBuffer;
PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glFlushMappedNamedBufferRange;
PFNGLGETNAMEDBUFFERPARAMETERIVPROC glGetNamedBufferParameteriv;
PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glGetNamedBufferParameteri64v;
PFNGLGETNAMEDBUFFERPOINTERVPROC glGetNamedBufferPointerv;
PFNGLGETNAMEDBUFFERSUBDATAPROC glGetNamedBufferSubData;
PFNGLCREATEFRAMEBUFFERSPROC glCreateFramebuffers;
PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glNamedFramebufferRenderbuffer;
PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glNamedFramebufferParameteri;
PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glNamedFramebufferTexture;
PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glNamedFramebufferTextureLayer;
PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glNamedFramebufferDrawBuffer;
PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glNamedFramebufferDrawBuffers;
PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glNamedFramebufferReadBuffer;
PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glInvalidateNamedFramebufferData;
PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glInvalidateNamedFramebufferSubData;
PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glClearNamedFramebufferiv;
PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glClearNamedFramebufferuiv;
PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glClearNamedFramebufferfv;
PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glClearNamedFramebufferfi;
PFNGLBLITNAMEDFRAMEBUFFERPROC glBlitNamedFramebuffer;
PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glCheckNamedFramebufferStatus;
PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glGetNamedFramebufferParameteriv;
PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetNamedFramebufferAttachmentParameteriv;
PFNGLCREATERENDERBUFFERSPROC glCreateRenderbuffers;
PFNGLNAMEDRENDERBUFFERSTORAGEPROC glNamedRenderbufferStorage;
PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glNamedRenderbufferStorageMultisample;
PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glGetNamedRenderbufferParameteriv;
PFNGLCREATETEXTURESPROC glCreateTextures;
PFNGLTEXTUREBUFFERPROC glTextureBuffer;
PFNGLTEXTUREBUFFERRANGEPROC glTextureBufferRange;
PFNGLTEXTURESTORAGE1DPROC glTextureStorage1D;
PFNGLTEXTURESTORAGE2DPROC glTextureStorage2D;
PFNGLTEXTURESTORAGE3DPROC glTextureStorage3D;
PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glTextureStorage2DMultisample;
PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glTextureStorage3DMultisample;
PFNGLTEXTURESUBIMAGE1DPROC glTextureSubImage1D;
PFNGLTEXTURESUBIMAGE2DPROC glTextureSubImage2D;
PFNGLTEXTURESUBIMAGE3DPROC glTextureSubImage3D;
PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glCompressedTextureSubImage1D;
PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glCompressedTextureSubImage2D;
PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glCompressedTextureSubImage3D;
PFNGLCOPYTEXTURESUBIMAGE1DPROC glCopyTextureSubImage1D;
PFNGLCOPYTEXTURESUBIMAGE2DPROC glCopyTextureSubImage2D;
PFNGLCOPYTEXTURESUBIMAGE3DPROC glCopyTextureSubImage3D;
PFNGLTEXTUREPARAMETERFPROC glTextureParameterf;
PFNGLTEXTUREPARAMETERFVPROC glTextureParameterfv;
PFNGLTEXTUREPARAMETERIPROC glTextureParameteri;
PFNGLTEXTUREPARAMETERIIVPROC glTextureParameterIiv;
PFNGLTEXTUREPARAMETERIUIVPROC glTextureParameterIuiv;
PFNGLTEXTUREPARAMETERIVPROC glTextureParameteriv;
PFNGLGENERATETEXTUREMIPMAPPROC glGenerateTextureMipmap;
PFNGLBINDTEXTUREUNITPROC glBindTextureUnit;
PFNGLGETTEXTUREIMAGEPROC glGetTextureImage;
PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glGetCompressedTextureImage;
PFNGLGETTEXTURELEVELPARAMETERFVPROC glGetTextureLevelParameterfv;
PFNGLGETTEXTURELEVELPARAMETERIVPROC glGetTextureLevelParameteriv;
PFNGLGETTEXTUREPARAMETERFVPROC glGetTextureParameterfv;
PFNGLGETTEXTUREPARAMETERIIVPROC glGetTextureParameterIiv;
PFNGLGETTEXTUREPARAMETERIUIVPROC glGetTextureParameterIuiv;
PFNGLGETTEXTUREPARAMETERIVPROC glGetTextureParameteriv;
PFNGLCREATEVERTEXARRAYSPROC glCreateVertexArrays;
PFNGLDISABLEVERTEXARRAYATTRIBPROC glDisableVertexArrayAttrib;
PFNGLENABLEVERTEXARRAYATTRIBPROC glEnableVertexArrayAttrib;
PFNGLVERTEXARRAYELEMENTBUFFERPROC glVertexArrayElementBuffer;
PFNGLVERTEXARRAYVERTEXBUFFERPROC glVertexArrayVertexBuffer;
PFNGLVERTEXARRAYVERTEXBUFFERSPROC glVertexArrayVertexBuffers;
PFNGLVERTEXARRAYATTRIBBINDINGPROC glVertexArrayAttribBinding;
PFNGLVERTEXARRAYATTRIBFORMATPROC glVertexArrayAttribFormat;
PFNGLVERTEXARRAYATTRIBIFORMATPROC glVertexArrayAttribIFormat;
PFNGLVERTEXARRAYATTRIBLFORMATPROC glVertexArrayAttribLFormat;
PFNGLVERTEXARRAYBINDINGDIVISORPROC glVertexArrayBindingDivisor;
PFNGLGETVERTEXARRAYIVPROC glGetVertexArrayiv;
PFNGLGETVERTEXARRAYINDEXEDIVPROC glGetVertexArrayIndexediv;
PFNGLGETVERTEXARRAYINDEXED64IVPROC glGetVertexArrayIndexed64iv;
PFNGLCREATESAMPLERSPROC glCreateSamplers;
PFNGLCREATEPROGRAMPIPELINESPROC glCreateProgramPipelines;
PFNGLCREATEQUERIESPROC glCreateQueries;
PFNGLGETQUERYBUFFEROBJECTI64VPROC glGetQueryBufferObjecti64v;
PFNGLGETQUERYBUFFEROBJECTIVPROC glGetQueryBufferObjectiv;
PFNGLGETQUERYBUFFEROBJECTUI64VPROC glGetQueryBufferObjectui64v;
PFNGLGETQUERYBUFFEROBJECTUIVPROC glGetQueryBufferObjectuiv;
PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
PFNGLGETTEXTURESUBIMAGEPROC glGetTextureSubImage;
PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glGetCompressedTextureSubImage;
PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
PFNGLGETNCOMPRESSEDTEXIMAGEPROC glGetnCompressedTexImage;
PFNGLGETNTEXIMAGEPROC glGetnTexImage;
PFNGLGETNUNIFORMDVPROC glGetnUniformdv;
PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
PFNGLREADNPIXELSPROC glReadnPixels;
PFNGLGETNMAPDVPROC glGetnMapdv;
PFNGLGETNMAPFVPROC glGetnMapfv;
PFNGLGETNMAPIVPROC glGetnMapiv;
PFNGLGETNPIXELMAPFVPROC glGetnPixelMapfv;
PFNGLGETNPIXELMAPUIVPROC glGetnPixelMapuiv;
PFNGLGETNPIXELMAPUSVPROC glGetnPixelMapusv;
PFNGLGETNPOLYGONSTIPPLEPROC glGetnPolygonStipple;
PFNGLGETNCOLORTABLEPROC glGetnColorTable;
PFNGLGETNCONVOLUTIONFILTERPROC glGetnConvolutionFilter;
PFNGLGETNSEPARABLEFILTERPROC glGetnSeparableFilter;
PFNGLGETNHISTOGRAMPROC glGetnHistogram;
PFNGLGETNMINMAXPROC glGetnMinmax;
PFNGLTEXTUREBARRIERPROC glTextureBarrier;
public: //! @name GL_EXT_geometry_shader4
PFNGLPROGRAMPARAMETERIEXTPROC glProgramParameteriEXT;