//
// Copyright (c) 2015 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//

// FunctionsGL.h: Defines the FuntionsGL class to contain loaded GL functions

#ifndef LIBANGLE_RENDERER_GL_FUNCTIONSGL_H_
#define LIBANGLE_RENDERER_GL_FUNCTIONSGL_H_

#include "common/debug.h"
#include "libANGLE/Version.h"
#include "libANGLE/renderer/gl/functionsgl_enums.h"
#include "libANGLE/renderer/gl/functionsgl_typedefs.h"

namespace rx
{

enum StandardGL
{
    STANDARD_GL_DESKTOP,
    STANDARD_GL_ES,
};

class FunctionsGL
{
  public:
    FunctionsGL();
    virtual ~FunctionsGL();

    void initialize();

    // Version information
    gl::Version version;
    StandardGL standard;
    GLint profile;
    bool isAtLeastGL(const gl::Version &glVersion) const;
    bool isAtMostGL(const gl::Version &glVersion) const;
    bool isAtLeastGLES(const gl::Version &glesVersion) const;
    bool isAtMostGLES(const gl::Version &glesVersion) const;

    // Extensions
    std::vector<std::string> extensions;
    bool hasExtension(const std::string &ext) const;
    bool hasGLExtension(const std::string &ext) const;
    bool hasGLESExtension(const std::string &ext) const;

    // Entry Points
    // 1.0
    PFNGLBLENDFUNCPROC blendFunc;
    PFNGLCLEARPROC clear;
    PFNGLCLEARCOLORPROC clearColor;
    PFNGLCLEARDEPTHPROC clearDepth;
    PFNGLCLEARSTENCILPROC clearStencil;
    PFNGLCOLORMASKPROC colorMask;
    PFNGLCULLFACEPROC cullFace;
    PFNGLDEPTHFUNCPROC depthFunc;
    PFNGLDEPTHMASKPROC depthMask;
    PFNGLDEPTHRANGEPROC depthRange;
    PFNGLDISABLEPROC disable;
    PFNGLDRAWBUFFERPROC drawBuffer;
    PFNGLENABLEPROC enable;
    PFNGLFINISHPROC finish;
    PFNGLFLUSHPROC flush;
    PFNGLFRONTFACEPROC frontFace;
    PFNGLGETBOOLEANVPROC getBooleanv;
    PFNGLGETDOUBLEVPROC getDoublev;
    PFNGLGETERRORPROC getError;
    PFNGLGETFLOATVPROC getFloatv;
    PFNGLGETINTEGERVPROC getIntegerv;
    PFNGLGETSTRINGPROC getString;
    PFNGLGETTEXIMAGEPROC getTexImage;
    PFNGLGETTEXLEVELPARAMETERFVPROC getTexLevelParameterfv;
    PFNGLGETTEXLEVELPARAMETERIVPROC getTexLevelParameteriv;
    PFNGLGETTEXPARAMETERFVPROC getTexParameterfv;
    PFNGLGETTEXPARAMETERIVPROC getTexParameteriv;
    PFNGLHINTPROC hint;
    PFNGLISENABLEDPROC isEnabled;
    PFNGLLINEWIDTHPROC lineWidth;
    PFNGLLOGICOPPROC logicOp;
    PFNGLPIXELSTOREFPROC pixelStoref;
    PFNGLPIXELSTOREIPROC pixelStorei;
    PFNGLPOINTSIZEPROC pointSize;
    PFNGLPOLYGONMODEPROC polygonMode;
    PFNGLREADBUFFERPROC readBuffer;
    PFNGLREADPIXELSPROC readPixels;
    PFNGLSCISSORPROC scissor;
    PFNGLSTENCILFUNCPROC stencilFunc;
    PFNGLSTENCILMASKPROC stencilMask;
    PFNGLSTENCILOPPROC stencilOp;
    PFNGLTEXIMAGE1DPROC texImage1D;
    PFNGLTEXIMAGE2DPROC texImage2D;
    PFNGLTEXPARAMETERFPROC texParameterf;
    PFNGLTEXPARAMETERFVPROC texParameterfv;
    PFNGLTEXPARAMETERIPROC texParameteri;
    PFNGLTEXPARAMETERIVPROC texParameteriv;
    PFNGLVIEWPORTPROC viewport;

    // 1.1
    PFNGLBINDTEXTUREPROC bindTexture;
    PFNGLCOPYTEXIMAGE1DPROC copyTexImage1D;
    PFNGLCOPYTEXIMAGE2DPROC copyTexImage2D;
    PFNGLCOPYTEXSUBIMAGE1DPROC copyTexSubImage1D;
    PFNGLCOPYTEXSUBIMAGE2DPROC copyTexSubImage2D;
    PFNGLDELETETEXTURESPROC deleteTextures;
    PFNGLDRAWARRAYSPROC drawArrays;
    PFNGLDRAWELEMENTSPROC drawElements;
    PFNGLGENTEXTURESPROC genTextures;
    PFNGLISTEXTUREPROC isTexture;
    PFNGLPOLYGONOFFSETPROC polygonOffset;
    PFNGLTEXSUBIMAGE1DPROC texSubImage1D;
    PFNGLTEXSUBIMAGE2DPROC texSubImage2D;

    // 1.2
    PFNGLBLENDCOLORPROC blendColor;
    PFNGLBLENDEQUATIONPROC blendEquation;
    PFNGLCOPYTEXSUBIMAGE3DPROC copyTexSubImage3D;
    PFNGLDRAWRANGEELEMENTSPROC drawRangeElements;
    PFNGLTEXIMAGE3DPROC texImage3D;
    PFNGLTEXSUBIMAGE3DPROC texSubImage3D;

    // 1.2 Extensions
    PFNGLDELETEFENCESNVPROC deleteFencesNV;
    PFNGLGENFENCESNVPROC genFencesNV;
    PFNGLISFENCENVPROC isFenceNV;
    PFNGLTESTFENCENVPROC testFenceNV;
    PFNGLGETFENCEIVNVPROC getFenceivNV;
    PFNGLFINISHFENCENVPROC finishFenceNV;
    PFNGLSETFENCENVPROC setFenceNV;

    // 1.3
    PFNGLACTIVETEXTUREPROC activeTexture;
    PFNGLCOMPRESSEDTEXIMAGE1DPROC compressedTexImage1D;
    PFNGLCOMPRESSEDTEXIMAGE2DPROC compressedTexImage2D;
    PFNGLCOMPRESSEDTEXIMAGE3DPROC compressedTexImage3D;
    PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC compressedTexSubImage1D;
    PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC compressedTexSubImage2D;
    PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC compressedTexSubImage3D;
    PFNGLGETCOMPRESSEDTEXIMAGEPROC getCompressedTexImage;
    PFNGLSAMPLECOVERAGEPROC sampleCoverage;

    // 1.4
    PFNGLBLENDFUNCSEPARATEPROC blendFuncSeparate;
    PFNGLMULTIDRAWARRAYSPROC multiDrawArrays;
    PFNGLMULTIDRAWELEMENTSPROC multiDrawElements;
    PFNGLPOINTPARAMETERFPROC pointParameterf;
    PFNGLPOINTPARAMETERFVPROC pointParameterfv;
    PFNGLPOINTPARAMETERIPROC pointParameteri;
    PFNGLPOINTPARAMETERIVPROC pointParameteriv;

    // 1.5
    PFNGLBEGINQUERYPROC beginQuery;
    PFNGLBINDBUFFERPROC bindBuffer;
    PFNGLBUFFERDATAPROC bufferData;
    PFNGLBUFFERSUBDATAPROC bufferSubData;
    PFNGLDELETEBUFFERSPROC deleteBuffers;
    PFNGLDELETEQUERIESPROC deleteQueries;
    PFNGLENDQUERYPROC endQuery;
    PFNGLGENBUFFERSPROC genBuffers;
    PFNGLGENQUERIESPROC genQueries;
    PFNGLGETBUFFERPARAMETERIVPROC getBufferParameteriv;
    PFNGLGETBUFFERPOINTERVPROC getBufferPointerv;
    PFNGLGETBUFFERSUBDATAPROC getBufferSubData;
    PFNGLGETQUERYOBJECTIVPROC getQueryObjectiv;
    PFNGLGETQUERYOBJECTUIVPROC getQueryObjectuiv;
    PFNGLGETQUERYIVPROC getQueryiv;
    PFNGLISBUFFERPROC isBuffer;
    PFNGLISQUERYPROC isQuery;
    PFNGLMAPBUFFERPROC mapBuffer;
    PFNGLUNMAPBUFFERPROC unmapBuffer;

    // 2.0
    PFNGLATTACHSHADERPROC attachShader;
    PFNGLBINDATTRIBLOCATIONPROC bindAttribLocation;
    PFNGLBLENDEQUATIONSEPARATEPROC blendEquationSeparate;
    PFNGLCOMPILESHADERPROC compileShader;
    PFNGLCREATEPROGRAMPROC createProgram;
    PFNGLCREATESHADERPROC createShader;
    PFNGLDELETEPROGRAMPROC deleteProgram;
    PFNGLDELETESHADERPROC deleteShader;
    PFNGLDETACHSHADERPROC detachShader;
    PFNGLDISABLEVERTEXATTRIBARRAYPROC disableVertexAttribArray;
    PFNGLDRAWBUFFERSPROC drawBuffers;
    PFNGLENABLEVERTEXATTRIBARRAYPROC enableVertexAttribArray;
    PFNGLGETACTIVEATTRIBPROC getActiveAttrib;
    PFNGLGETACTIVEUNIFORMPROC getActiveUniform;
    PFNGLGETATTACHEDSHADERSPROC getAttachedShaders;
    PFNGLGETATTRIBLOCATIONPROC getAttribLocation;
    PFNGLGETPROGRAMINFOLOGPROC getProgramInfoLog;
    PFNGLGETPROGRAMIVPROC getProgramiv;
    PFNGLGETSHADERINFOLOGPROC getShaderInfoLog;
    PFNGLGETSHADERSOURCEPROC getShaderSource;
    PFNGLGETSHADERIVPROC getShaderiv;
    PFNGLGETUNIFORMLOCATIONPROC getUniformLocation;
    PFNGLGETUNIFORMFVPROC getUniformfv;
    PFNGLGETUNIFORMIVPROC getUniformiv;
    PFNGLGETVERTEXATTRIBPOINTERVPROC getVertexAttribPointerv;
    PFNGLGETVERTEXATTRIBDVPROC getVertexAttribdv;
    PFNGLGETVERTEXATTRIBFVPROC getVertexAttribfv;
    PFNGLGETVERTEXATTRIBIVPROC getVertexAttribiv;
    PFNGLISPROGRAMPROC isProgram;
    PFNGLISSHADERPROC isShader;
    PFNGLLINKPROGRAMPROC linkProgram;
    PFNGLSHADERSOURCEPROC shaderSource;
    PFNGLSTENCILFUNCSEPARATEPROC stencilFuncSeparate;
    PFNGLSTENCILMASKSEPARATEPROC stencilMaskSeparate;
    PFNGLSTENCILOPSEPARATEPROC stencilOpSeparate;
    PFNGLUNIFORM1FPROC uniform1f;
    PFNGLUNIFORM1FVPROC uniform1fv;
    PFNGLUNIFORM1IPROC uniform1i;
    PFNGLUNIFORM1IVPROC uniform1iv;
    PFNGLUNIFORM2FPROC uniform2f;
    PFNGLUNIFORM2FVPROC uniform2fv;
    PFNGLUNIFORM2IPROC uniform2i;
    PFNGLUNIFORM2IVPROC uniform2iv;
    PFNGLUNIFORM3FPROC uniform3f;
    PFNGLUNIFORM3FVPROC uniform3fv;
    PFNGLUNIFORM3IPROC uniform3i;
    PFNGLUNIFORM3IVPROC uniform3iv;
    PFNGLUNIFORM4FPROC uniform4f;
    PFNGLUNIFORM4FVPROC uniform4fv;
    PFNGLUNIFORM4IPROC uniform4i;
    PFNGLUNIFORM4IVPROC uniform4iv;
    PFNGLUNIFORMMATRIX2FVPROC uniformMatrix2fv;
    PFNGLUNIFORMMATRIX3FVPROC uniformMatrix3fv;
    PFNGLUNIFORMMATRIX4FVPROC uniformMatrix4fv;
    PFNGLUSEPROGRAMPROC useProgram;
    PFNGLVALIDATEPROGRAMPROC validateProgram;
    PFNGLVERTEXATTRIB1DPROC vertexAttrib1d;
    PFNGLVERTEXATTRIB1DVPROC vertexAttrib1dv;
    PFNGLVERTEXATTRIB1FPROC vertexAttrib1f;
    PFNGLVERTEXATTRIB1FVPROC vertexAttrib1fv;
    PFNGLVERTEXATTRIB1SPROC vertexAttrib1s;
    PFNGLVERTEXATTRIB1SVPROC vertexAttrib1sv;
    PFNGLVERTEXATTRIB2DPROC vertexAttrib2d;
    PFNGLVERTEXATTRIB2DVPROC vertexAttrib2dv;
    PFNGLVERTEXATTRIB2FPROC vertexAttrib2f;
    PFNGLVERTEXATTRIB2FVPROC vertexAttrib2fv;
    PFNGLVERTEXATTRIB2SPROC vertexAttrib2s;
    PFNGLVERTEXATTRIB2SVPROC vertexAttrib2sv;
    PFNGLVERTEXATTRIB3DPROC vertexAttrib3d;
    PFNGLVERTEXATTRIB3DVPROC vertexAttrib3dv;
    PFNGLVERTEXATTRIB3FPROC vertexAttrib3f;
    PFNGLVERTEXATTRIB3FVPROC vertexAttrib3fv;
    PFNGLVERTEXATTRIB3SPROC vertexAttrib3s;
    PFNGLVERTEXATTRIB3SVPROC vertexAttrib3sv;
    PFNGLVERTEXATTRIB4NBVPROC vertexAttrib4Nbv;
    PFNGLVERTEXATTRIB4NIVPROC vertexAttrib4Niv;
    PFNGLVERTEXATTRIB4NSVPROC vertexAttrib4Nsv;
    PFNGLVERTEXATTRIB4NUBPROC vertexAttrib4Nub;
    PFNGLVERTEXATTRIB4NUBVPROC vertexAttrib4Nubv;
    PFNGLVERTEXATTRIB4NUIVPROC vertexAttrib4Nuiv;
    PFNGLVERTEXATTRIB4NUSVPROC vertexAttrib4Nusv;
    PFNGLVERTEXATTRIB4BVPROC vertexAttrib4bv;
    PFNGLVERTEXATTRIB4DPROC vertexAttrib4d;
    PFNGLVERTEXATTRIB4DVPROC vertexAttrib4dv;
    PFNGLVERTEXATTRIB4FPROC vertexAttrib4f;
    PFNGLVERTEXATTRIB4FVPROC vertexAttrib4fv;
    PFNGLVERTEXATTRIB4IVPROC vertexAttrib4iv;
    PFNGLVERTEXATTRIB4SPROC vertexAttrib4s;
    PFNGLVERTEXATTRIB4SVPROC vertexAttrib4sv;
    PFNGLVERTEXATTRIB4UBVPROC vertexAttrib4ubv;
    PFNGLVERTEXATTRIB4UIVPROC vertexAttrib4uiv;
    PFNGLVERTEXATTRIB4USVPROC vertexAttrib4usv;
    PFNGLVERTEXATTRIBPOINTERPROC vertexAttribPointer;

    // 2.1
    PFNGLUNIFORMMATRIX2X3FVPROC uniformMatrix2x3fv;
    PFNGLUNIFORMMATRIX2X4FVPROC uniformMatrix2x4fv;
    PFNGLUNIFORMMATRIX3X2FVPROC uniformMatrix3x2fv;
    PFNGLUNIFORMMATRIX3X4FVPROC uniformMatrix3x4fv;
    PFNGLUNIFORMMATRIX4X2FVPROC uniformMatrix4x2fv;
    PFNGLUNIFORMMATRIX4X3FVPROC uniformMatrix4x3fv;

    // 3.0
    PFNGLBEGINCONDITIONALRENDERPROC beginConditionalRender;
    PFNGLBEGINTRANSFORMFEEDBACKPROC beginTransformFeedback;
    PFNGLBINDBUFFERBASEPROC bindBufferBase;
    PFNGLBINDBUFFERRANGEPROC bindBufferRange;
    PFNGLBINDFRAGDATALOCATIONPROC bindFragDataLocation;
    PFNGLBINDFRAMEBUFFERPROC bindFramebuffer;
    PFNGLBINDRENDERBUFFERPROC bindRenderbuffer;
    PFNGLBINDVERTEXARRAYPROC bindVertexArray;
    PFNGLBLITFRAMEBUFFERPROC blitFramebuffer;
    PFNGLCHECKFRAMEBUFFERSTATUSPROC checkFramebufferStatus;
    PFNGLCLAMPCOLORPROC clampColor;
    PFNGLCLEARBUFFERFIPROC clearBufferfi;
    PFNGLCLEARBUFFERFVPROC clearBufferfv;
    PFNGLCLEARBUFFERIVPROC clearBufferiv;
    PFNGLCLEARBUFFERUIVPROC clearBufferuiv;
    PFNGLCOLORMASKIPROC colorMaski;
    PFNGLDELETEFRAMEBUFFERSPROC deleteFramebuffers;
    PFNGLDELETERENDERBUFFERSPROC deleteRenderbuffers;
    PFNGLDELETEVERTEXARRAYSPROC deleteVertexArrays;
    PFNGLDISABLEIPROC disablei;
    PFNGLENABLEIPROC enablei;
    PFNGLENDCONDITIONALRENDERPROC endConditionalRender;
    PFNGLENDTRANSFORMFEEDBACKPROC endTransformFeedback;
    PFNGLFLUSHMAPPEDBUFFERRANGEPROC flushMappedBufferRange;
    PFNGLFRAMEBUFFERRENDERBUFFERPROC framebufferRenderbuffer;
    PFNGLFRAMEBUFFERTEXTURE1DPROC framebufferTexture1D;
    PFNGLFRAMEBUFFERTEXTURE2DPROC framebufferTexture2D;
    PFNGLFRAMEBUFFERTEXTURE3DPROC framebufferTexture3D;
    PFNGLFRAMEBUFFERTEXTURELAYERPROC framebufferTextureLayer;
    PFNGLGENFRAMEBUFFERSPROC genFramebuffers;
    PFNGLGENRENDERBUFFERSPROC genRenderbuffers;
    PFNGLGENVERTEXARRAYSPROC genVertexArrays;
    PFNGLGENERATEMIPMAPPROC generateMipmap;
    PFNGLGETBOOLEANI_VPROC getBooleani_v;
    PFNGLGETFRAGDATALOCATIONPROC getFragDataLocation;
    PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC getFramebufferAttachmentParameteriv;
    PFNGLGETINTEGERI_VPROC getIntegeri_v;
    PFNGLGETRENDERBUFFERPARAMETERIVPROC getRenderbufferParameteriv;
    PFNGLGETSTRINGIPROC getStringi;
    PFNGLGETTEXPARAMETERIIVPROC getTexParameterIiv;
    PFNGLGETTEXPARAMETERIUIVPROC getTexParameterIuiv;
    PFNGLGETTRANSFORMFEEDBACKVARYINGPROC getTransformFeedbackVarying;
    PFNGLGETUNIFORMUIVPROC getUniformuiv;
    PFNGLGETVERTEXATTRIBIIVPROC getVertexAttribIiv;
    PFNGLGETVERTEXATTRIBIUIVPROC getVertexAttribIuiv;
    PFNGLISENABLEDIPROC isEnabledi;
    PFNGLISFRAMEBUFFERPROC isFramebuffer;
    PFNGLISRENDERBUFFERPROC isRenderbuffer;
    PFNGLISVERTEXARRAYPROC isVertexArray;
    PFNGLMAPBUFFERRANGEPROC mapBufferRange;
    PFNGLRENDERBUFFERSTORAGEPROC renderbufferStorage;
    PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC renderbufferStorageMultisample;
    PFNGLTEXPARAMETERIIVPROC texParameterIiv;
    PFNGLTEXPARAMETERIUIVPROC texParameterIuiv;
    PFNGLTRANSFORMFEEDBACKVARYINGSPROC transformFeedbackVaryings;
    PFNGLUNIFORM1UIPROC uniform1ui;
    PFNGLUNIFORM1UIVPROC uniform1uiv;
    PFNGLUNIFORM2UIPROC uniform2ui;
    PFNGLUNIFORM2UIVPROC uniform2uiv;
    PFNGLUNIFORM3UIPROC uniform3ui;
    PFNGLUNIFORM3UIVPROC uniform3uiv;
    PFNGLUNIFORM4UIPROC uniform4ui;
    PFNGLUNIFORM4UIVPROC uniform4uiv;
    PFNGLVERTEXATTRIBI1IPROC vertexAttribI1i;
    PFNGLVERTEXATTRIBI1IVPROC vertexAttribI1iv;
    PFNGLVERTEXATTRIBI1UIPROC vertexAttribI1ui;
    PFNGLVERTEXATTRIBI1UIVPROC vertexAttribI1uiv;
    PFNGLVERTEXATTRIBI2IPROC vertexAttribI2i;
    PFNGLVERTEXATTRIBI2IVPROC vertexAttribI2iv;
    PFNGLVERTEXATTRIBI2UIPROC vertexAttribI2ui;
    PFNGLVERTEXATTRIBI2UIVPROC vertexAttribI2uiv;
    PFNGLVERTEXATTRIBI3IPROC vertexAttribI3i;
    PFNGLVERTEXATTRIBI3IVPROC vertexAttribI3iv;
    PFNGLVERTEXATTRIBI3UIPROC vertexAttribI3ui;
    PFNGLVERTEXATTRIBI3UIVPROC vertexAttribI3uiv;
    PFNGLVERTEXATTRIBI4BVPROC vertexAttribI4bv;
    PFNGLVERTEXATTRIBI4IPROC vertexAttribI4i;
    PFNGLVERTEXATTRIBI4IVPROC vertexAttribI4iv;
    PFNGLVERTEXATTRIBI4SVPROC vertexAttribI4sv;
    PFNGLVERTEXATTRIBI4UBVPROC vertexAttribI4ubv;
    PFNGLVERTEXATTRIBI4UIPROC vertexAttribI4ui;
    PFNGLVERTEXATTRIBI4UIVPROC vertexAttribI4uiv;
    PFNGLVERTEXATTRIBI4USVPROC vertexAttribI4usv;
    PFNGLVERTEXATTRIBIPOINTERPROC vertexAttribIPointer;

    // 3.1
    PFNGLCOPYBUFFERSUBDATAPROC copyBufferSubData;
    PFNGLDRAWARRAYSINSTANCEDPROC drawArraysInstanced;
    PFNGLDRAWELEMENTSINSTANCEDPROC drawElementsInstanced;
    PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC getActiveUniformBlockName;
    PFNGLGETACTIVEUNIFORMBLOCKIVPROC getActiveUniformBlockiv;
    PFNGLGETACTIVEUNIFORMNAMEPROC getActiveUniformName;
    PFNGLGETACTIVEUNIFORMSIVPROC getActiveUniformsiv;
    PFNGLGETUNIFORMBLOCKINDEXPROC getUniformBlockIndex;
    PFNGLGETUNIFORMINDICESPROC getUniformIndices;
    PFNGLPRIMITIVERESTARTINDEXPROC primitiveRestartIndex;
    PFNGLTEXBUFFERPROC texBuffer;
    PFNGLUNIFORMBLOCKBINDINGPROC uniformBlockBinding;

    // 3.2
    PFNGLCLIENTWAITSYNCPROC clientWaitSync;
    PFNGLDELETESYNCPROC deleteSync;
    PFNGLDRAWELEMENTSBASEVERTEXPROC drawElementsBaseVertex;
    PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC drawElementsInstancedBaseVertex;
    PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC drawRangeElementsBaseVertex;
    PFNGLFENCESYNCPROC fenceSync;
    PFNGLFRAMEBUFFERTEXTUREPROC framebufferTexture;
    PFNGLGETBUFFERPARAMETERI64VPROC getBufferParameteri64v;
    PFNGLGETINTEGER64I_VPROC getInteger64i_v;
    PFNGLGETINTEGER64VPROC getInteger64v;
    PFNGLGETMULTISAMPLEFVPROC getMultisamplefv;
    PFNGLGETSYNCIVPROC getSynciv;
    PFNGLISSYNCPROC isSync;
    PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC multiDrawElementsBaseVertex;
    PFNGLPROVOKINGVERTEXPROC provokingVertex;
    PFNGLSAMPLEMASKIPROC sampleMaski;
    PFNGLTEXIMAGE2DMULTISAMPLEPROC texImage2DMultisample;
    PFNGLTEXIMAGE3DMULTISAMPLEPROC texImage3DMultisample;
    PFNGLWAITSYNCPROC waitSync;

    // NV_path_rendering (originally written against 3.2 compatibility profile)
    PFNGLMATRIXLOADFEXTPROC matrixLoadEXT;
    PFNGLGENPATHSNVPROC genPathsNV;
    PFNGLDELETEPATHSNVPROC delPathsNV;
    PFNGLPATHCOMMANDSNVPROC pathCommandsNV;
    PFNGLISPATHNVPROC isPathNV;
    PFNGLPATHPARAMETERFNVPROC setPathParameterfNV;
    PFNGLPATHPARAMETERINVPROC setPathParameteriNV;
    PFNGLGETPATHPARAMETERFVNVPROC getPathParameterfNV;
    PFNGLGETPATHPARAMETERIVNVPROC getPathParameteriNV;
    PFNGLPATHSTENCILFUNCNVPROC pathStencilFuncNV;
    PFNGLSTENCILFILLPATHNVPROC stencilFillPathNV;
    PFNGLSTENCILSTROKEPATHNVPROC stencilStrokePathNV;
    PFNGLCOVERFILLPATHNVPROC coverFillPathNV;
    PFNGLCOVERSTROKEPATHNVPROC coverStrokePathNV;
    PFNGLSTENCILTHENCOVERFILLPATHNVPROC stencilThenCoverFillPathNV;
    PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC stencilThenCoverStrokePathNV;
    PFNGLCOVERFILLPATHINSTANCEDNVPROC coverFillPathInstancedNV;
    PFNGLCOVERSTROKEPATHINSTANCEDNVPROC coverStrokePathInstancedNV;
    PFNGLSTENCILFILLPATHINSTANCEDNVPROC stencilFillPathInstancedNV;
    PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC stencilStrokePathInstancedNV;
    PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC stencilThenCoverFillPathInstancedNV;
    PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC stencilThenCoverStrokePathInstancedNV;
    PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC programPathFragmentInputGenNV;

    // 3.3
    PFNGLBINDFRAGDATALOCATIONINDEXEDPROC bindFragDataLocationIndexed;
    PFNGLBINDSAMPLERPROC bindSampler;
    PFNGLDELETESAMPLERSPROC deleteSamplers;
    PFNGLGENSAMPLERSPROC genSamplers;
    PFNGLGETFRAGDATAINDEXPROC getFragDataIndex;
    PFNGLGETQUERYOBJECTI64VPROC getQueryObjecti64v;
    PFNGLGETQUERYOBJECTUI64VPROC getQueryObjectui64v;
    PFNGLGETSAMPLERPARAMETERIIVPROC getSamplerParameterIiv;
    PFNGLGETSAMPLERPARAMETERIUIVPROC getSamplerParameterIuiv;
    PFNGLGETSAMPLERPARAMETERFVPROC getSamplerParameterfv;
    PFNGLGETSAMPLERPARAMETERIVPROC getSamplerParameteriv;
    PFNGLISSAMPLERPROC isSampler;
    PFNGLQUERYCOUNTERPROC queryCounter;
    PFNGLSAMPLERPARAMETERIIVPROC samplerParameterIiv;
    PFNGLSAMPLERPARAMETERIUIVPROC samplerParameterIuiv;
    PFNGLSAMPLERPARAMETERFPROC samplerParameterf;
    PFNGLSAMPLERPARAMETERFVPROC samplerParameterfv;
    PFNGLSAMPLERPARAMETERIPROC samplerParameteri;
    PFNGLSAMPLERPARAMETERIVPROC samplerParameteriv;
    PFNGLVERTEXATTRIBDIVISORPROC vertexAttribDivisor;
    PFNGLVERTEXATTRIBP1UIPROC vertexAttribP1ui;
    PFNGLVERTEXATTRIBP1UIVPROC vertexAttribP1uiv;
    PFNGLVERTEXATTRIBP2UIPROC vertexAttribP2ui;
    PFNGLVERTEXATTRIBP2UIVPROC vertexAttribP2uiv;
    PFNGLVERTEXATTRIBP3UIPROC vertexAttribP3ui;
    PFNGLVERTEXATTRIBP3UIVPROC vertexAttribP3uiv;
    PFNGLVERTEXATTRIBP4UIPROC vertexAttribP4ui;
    PFNGLVERTEXATTRIBP4UIVPROC vertexAttribP4uiv;

    // 4.0
    PFNGLBEGINQUERYINDEXEDPROC beginQueryIndexed;
    PFNGLBINDTRANSFORMFEEDBACKPROC bindTransformFeedback;
    PFNGLBLENDEQUATIONSEPARATEIPROC blendEquationSeparatei;
    PFNGLBLENDEQUATIONIPROC blendEquationi;
    PFNGLBLENDFUNCSEPARATEIPROC blendFuncSeparatei;
    PFNGLBLENDFUNCIPROC blendFunci;
    PFNGLDELETETRANSFORMFEEDBACKSPROC deleteTransformFeedbacks;
    PFNGLDRAWARRAYSINDIRECTPROC drawArraysIndirect;
    PFNGLDRAWELEMENTSINDIRECTPROC drawElementsIndirect;
    PFNGLDRAWTRANSFORMFEEDBACKPROC drawTransformFeedback;
    PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC drawTransformFeedbackStream;
    PFNGLENDQUERYINDEXEDPROC endQueryIndexed;
    PFNGLGENTRANSFORMFEEDBACKSPROC genTransformFeedbacks;
    PFNGLGETACTIVESUBROUTINENAMEPROC getActiveSubroutineName;
    PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC getActiveSubroutineUniformName;
    PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC getActiveSubroutineUniformiv;
    PFNGLGETPROGRAMSTAGEIVPROC getProgramStageiv;
    PFNGLGETQUERYINDEXEDIVPROC getQueryIndexediv;
    PFNGLGETSUBROUTINEINDEXPROC getSubroutineIndex;
    PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC getSubroutineUniformLocation;
    PFNGLGETUNIFORMSUBROUTINEUIVPROC getUniformSubroutineuiv;
    PFNGLGETUNIFORMDVPROC getUniformdv;
    PFNGLISTRANSFORMFEEDBACKPROC isTransformFeedback;
    PFNGLMINSAMPLESHADINGPROC minSampleShading;
    PFNGLPATCHPARAMETERFVPROC patchParameterfv;
    PFNGLPATCHPARAMETERIPROC patchParameteri;
    PFNGLPAUSETRANSFORMFEEDBACKPROC pauseTransformFeedback;
    PFNGLRESUMETRANSFORMFEEDBACKPROC resumeTransformFeedback;
    PFNGLUNIFORM1DPROC uniform1d;
    PFNGLUNIFORM1DVPROC uniform1dv;
    PFNGLUNIFORM2DPROC uniform2d;
    PFNGLUNIFORM2DVPROC uniform2dv;
    PFNGLUNIFORM3DPROC uniform3d;
    PFNGLUNIFORM3DVPROC uniform3dv;
    PFNGLUNIFORM4DPROC uniform4d;
    PFNGLUNIFORM4DVPROC uniform4dv;
    PFNGLUNIFORMMATRIX2DVPROC uniformMatrix2dv;
    PFNGLUNIFORMMATRIX2X3DVPROC uniformMatrix2x3dv;
    PFNGLUNIFORMMATRIX2X4DVPROC uniformMatrix2x4dv;
    PFNGLUNIFORMMATRIX3DVPROC uniformMatrix3dv;
    PFNGLUNIFORMMATRIX3X2DVPROC uniformMatrix3x2dv;
    PFNGLUNIFORMMATRIX3X4DVPROC uniformMatrix3x4dv;
    PFNGLUNIFORMMATRIX4DVPROC uniformMatrix4dv;
    PFNGLUNIFORMMATRIX4X2DVPROC uniformMatrix4x2dv;
    PFNGLUNIFORMMATRIX4X3DVPROC uniformMatrix4x3dv;
    PFNGLUNIFORMSUBROUTINESUIVPROC uniformSubroutinesuiv;

    // 4.1
    PFNGLACTIVESHADERPROGRAMPROC activeShaderProgram;
    PFNGLBINDPROGRAMPIPELINEPROC bindProgramPipeline;
    PFNGLCLEARDEPTHFPROC clearDepthf;
    PFNGLCREATESHADERPROGRAMVPROC createShaderProgramv;
    PFNGLDELETEPROGRAMPIPELINESPROC deleteProgramPipelines;
    PFNGLDEPTHRANGEARRAYVPROC depthRangeArrayv;
    PFNGLDEPTHRANGEINDEXEDPROC depthRangeIndexed;
    PFNGLDEPTHRANGEFPROC depthRangef;
    PFNGLGENPROGRAMPIPELINESPROC genProgramPipelines;
    PFNGLGETDOUBLEI_VPROC getDoublei_v;
    PFNGLGETFLOATI_VPROC getFloati_v;
    PFNGLGETPROGRAMBINARYPROC getProgramBinary;
    PFNGLGETPROGRAMPIPELINEINFOLOGPROC getProgramPipelineInfoLog;
    PFNGLGETPROGRAMPIPELINEIVPROC getProgramPipelineiv;
    PFNGLGETSHADERPRECISIONFORMATPROC getShaderPrecisionFormat;
    PFNGLGETVERTEXATTRIBLDVPROC getVertexAttribLdv;
    PFNGLISPROGRAMPIPELINEPROC isProgramPipeline;
    PFNGLPROGRAMBINARYPROC programBinary;
    PFNGLPROGRAMPARAMETERIPROC programParameteri;
    PFNGLPROGRAMUNIFORM1DPROC programUniform1d;
    PFNGLPROGRAMUNIFORM1DVPROC programUniform1dv;
    PFNGLPROGRAMUNIFORM1FPROC programUniform1f;
    PFNGLPROGRAMUNIFORM1FVPROC programUniform1fv;
    PFNGLPROGRAMUNIFORM1IPROC programUniform1i;
    PFNGLPROGRAMUNIFORM1IVPROC programUniform1iv;
    PFNGLPROGRAMUNIFORM1UIPROC programUniform1ui;
    PFNGLPROGRAMUNIFORM1UIVPROC programUniform1uiv;
    PFNGLPROGRAMUNIFORM2DPROC programUniform2d;
    PFNGLPROGRAMUNIFORM2DVPROC programUniform2dv;
    PFNGLPROGRAMUNIFORM2FPROC programUniform2f;
    PFNGLPROGRAMUNIFORM2FVPROC programUniform2fv;
    PFNGLPROGRAMUNIFORM2IPROC programUniform2i;
    PFNGLPROGRAMUNIFORM2IVPROC programUniform2iv;
    PFNGLPROGRAMUNIFORM2UIPROC programUniform2ui;
    PFNGLPROGRAMUNIFORM2UIVPROC programUniform2uiv;
    PFNGLPROGRAMUNIFORM3DPROC programUniform3d;
    PFNGLPROGRAMUNIFORM3DVPROC programUniform3dv;
    PFNGLPROGRAMUNIFORM3FPROC programUniform3f;
    PFNGLPROGRAMUNIFORM3FVPROC programUniform3fv;
    PFNGLPROGRAMUNIFORM3IPROC programUniform3i;
    PFNGLPROGRAMUNIFORM3IVPROC programUniform3iv;
    PFNGLPROGRAMUNIFORM3UIPROC programUniform3ui;
    PFNGLPROGRAMUNIFORM3UIVPROC programUniform3uiv;
    PFNGLPROGRAMUNIFORM4DPROC programUniform4d;
    PFNGLPROGRAMUNIFORM4DVPROC programUniform4dv;
    PFNGLPROGRAMUNIFORM4FPROC programUniform4f;
    PFNGLPROGRAMUNIFORM4FVPROC programUniform4fv;
    PFNGLPROGRAMUNIFORM4IPROC programUniform4i;
    PFNGLPROGRAMUNIFORM4IVPROC programUniform4iv;
    PFNGLPROGRAMUNIFORM4UIPROC programUniform4ui;
    PFNGLPROGRAMUNIFORM4UIVPROC programUniform4uiv;
    PFNGLPROGRAMUNIFORMMATRIX2DVPROC programUniformMatrix2dv;
    PFNGLPROGRAMUNIFORMMATRIX2FVPROC programUniformMatrix2fv;
    PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC programUniformMatrix2x3dv;
    PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC programUniformMatrix2x3fv;
    PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC programUniformMatrix2x4dv;
    PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC programUniformMatrix2x4fv;
    PFNGLPROGRAMUNIFORMMATRIX3DVPROC programUniformMatrix3dv;
    PFNGLPROGRAMUNIFORMMATRIX3FVPROC programUniformMatrix3fv;
    PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC programUniformMatrix3x2dv;
    PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC programUniformMatrix3x2fv;
    PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC programUniformMatrix3x4dv;
    PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC programUniformMatrix3x4fv;
    PFNGLPROGRAMUNIFORMMATRIX4DVPROC programUniformMatrix4dv;
    PFNGLPROGRAMUNIFORMMATRIX4FVPROC programUniformMatrix4fv;
    PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC programUniformMatrix4x2dv;
    PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC programUniformMatrix4x2fv;
    PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC programUniformMatrix4x3dv;
    PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC programUniformMatrix4x3fv;
    PFNGLRELEASESHADERCOMPILERPROC releaseShaderCompiler;
    PFNGLSCISSORARRAYVPROC scissorArrayv;
    PFNGLSCISSORINDEXEDPROC scissorIndexed;
    PFNGLSCISSORINDEXEDVPROC scissorIndexedv;
    PFNGLSHADERBINARYPROC shaderBinary;
    PFNGLUSEPROGRAMSTAGESPROC useProgramStages;
    PFNGLVALIDATEPROGRAMPIPELINEPROC validateProgramPipeline;
    PFNGLVERTEXATTRIBL1DPROC vertexAttribL1d;
    PFNGLVERTEXATTRIBL1DVPROC vertexAttribL1dv;
    PFNGLVERTEXATTRIBL2DPROC vertexAttribL2d;
    PFNGLVERTEXATTRIBL2DVPROC vertexAttribL2dv;
    PFNGLVERTEXATTRIBL3DPROC vertexAttribL3d;
    PFNGLVERTEXATTRIBL3DVPROC vertexAttribL3dv;
    PFNGLVERTEXATTRIBL4DPROC vertexAttribL4d;
    PFNGLVERTEXATTRIBL4DVPROC vertexAttribL4dv;
    PFNGLVERTEXATTRIBLPOINTERPROC vertexAttribLPointer;
    PFNGLVIEWPORTARRAYVPROC viewportArrayv;
    PFNGLVIEWPORTINDEXEDFPROC viewportIndexedf;
    PFNGLVIEWPORTINDEXEDFVPROC viewportIndexedfv;

    // 4.2
    PFNGLBINDIMAGETEXTUREPROC bindImageTexture;
    PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC drawArraysInstancedBaseInstance;
    PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC drawElementsInstancedBaseInstance;
    PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC drawElementsInstancedBaseVertexBaseInstance;
    PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC drawTransformFeedbackInstanced;
    PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC drawTransformFeedbackStreamInstanced;
    PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC getActiveAtomicCounterBufferiv;
    PFNGLGETINTERNALFORMATIVPROC getInternalformativ;
    PFNGLMEMORYBARRIERPROC memoryBarrier;
    PFNGLTEXSTORAGE1DPROC texStorage1D;
    PFNGLTEXSTORAGE2DPROC texStorage2D;
    PFNGLTEXSTORAGE3DPROC texStorage3D;

    // 4.3
    PFNGLBINDVERTEXBUFFERPROC bindVertexBuffer;
    PFNGLCLEARBUFFERDATAPROC clearBufferData;
    PFNGLCLEARBUFFERSUBDATAPROC clearBufferSubData;
    PFNGLCOPYIMAGESUBDATAPROC copyImageSubData;
    PFNGLDEBUGMESSAGECALLBACKPROC debugMessageCallback;
    PFNGLDEBUGMESSAGECONTROLPROC debugMessageControl;
    PFNGLDEBUGMESSAGEINSERTPROC debugMessageInsert;
    PFNGLDISPATCHCOMPUTEPROC dispatchCompute;
    PFNGLDISPATCHCOMPUTEINDIRECTPROC dispatchComputeIndirect;
    PFNGLFRAMEBUFFERPARAMETERIPROC framebufferParameteri;
    PFNGLGETDEBUGMESSAGELOGPROC getDebugMessageLog;
    PFNGLGETFRAMEBUFFERPARAMETERIVPROC getFramebufferParameteriv;
    PFNGLGETINTERNALFORMATI64VPROC getInternalformati64v;
    PFNGLGETPOINTERVPROC getPointerv;
    PFNGLGETOBJECTLABELPROC getObjectLabel;
    PFNGLGETOBJECTPTRLABELPROC getObjectPtrLabel;
    PFNGLGETPROGRAMINTERFACEIVPROC getProgramInterfaceiv;
    PFNGLGETPROGRAMRESOURCEINDEXPROC getProgramResourceIndex;
    PFNGLGETPROGRAMRESOURCELOCATIONPROC getProgramResourceLocation;
    PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC getProgramResourceLocationIndex;
    PFNGLGETPROGRAMRESOURCENAMEPROC getProgramResourceName;
    PFNGLGETPROGRAMRESOURCEIVPROC getProgramResourceiv;
    PFNGLINVALIDATEBUFFERDATAPROC invalidateBufferData;
    PFNGLINVALIDATEBUFFERSUBDATAPROC invalidateBufferSubData;
    PFNGLINVALIDATEFRAMEBUFFERPROC invalidateFramebuffer;
    PFNGLINVALIDATESUBFRAMEBUFFERPROC invalidateSubFramebuffer;
    PFNGLINVALIDATETEXIMAGEPROC invalidateTexImage;
    PFNGLINVALIDATETEXSUBIMAGEPROC invalidateTexSubImage;
    PFNGLMULTIDRAWARRAYSINDIRECTPROC multiDrawArraysIndirect;
    PFNGLMULTIDRAWELEMENTSINDIRECTPROC multiDrawElementsIndirect;
    PFNGLOBJECTLABELPROC objectLabel;
    PFNGLOBJECTPTRLABELPROC objectPtrLabel;
    PFNGLPOPDEBUGGROUPPROC popDebugGroup;
    PFNGLPUSHDEBUGGROUPPROC pushDebugGroup;
    PFNGLSHADERSTORAGEBLOCKBINDINGPROC shaderStorageBlockBinding;
    PFNGLTEXBUFFERRANGEPROC texBufferRange;
    PFNGLTEXSTORAGE2DMULTISAMPLEPROC texStorage2DMultisample;
    PFNGLTEXSTORAGE3DMULTISAMPLEPROC texStorage3DMultisample;
    PFNGLTEXTUREVIEWPROC textureView;
    PFNGLVERTEXATTRIBBINDINGPROC vertexAttribBinding;
    PFNGLVERTEXATTRIBFORMATPROC vertexAttribFormat;
    PFNGLVERTEXATTRIBIFORMATPROC vertexAttribIFormat;
    PFNGLVERTEXATTRIBLFORMATPROC vertexAttribLFormat;
    PFNGLVERTEXBINDINGDIVISORPROC vertexBindingDivisor;
    PFNGLCOVERAGEMODULATIONNVPROC coverageModulationNV;

    // 4.4
    PFNGLBINDBUFFERSBASEPROC bindBuffersBase;
    PFNGLBINDBUFFERSRANGEPROC bindBuffersRange;
    PFNGLBINDIMAGETEXTURESPROC bindImageTextures;
    PFNGLBINDSAMPLERSPROC bindSamplers;
    PFNGLBINDTEXTURESPROC bindTextures;
    PFNGLBINDVERTEXBUFFERSPROC bindVertexBuffers;
    PFNGLBUFFERSTORAGEPROC bufferStorage;
    PFNGLCLEARTEXIMAGEPROC clearTexImage;
    PFNGLCLEARTEXSUBIMAGEPROC clearTexSubImage;

    // 4.5
    PFNGLBINDTEXTUREUNITPROC bindTextureUnit;
    PFNGLBLITNAMEDFRAMEBUFFERPROC blitNamedFramebuffer;
    PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC checkNamedFramebufferStatus;
    PFNGLCLEARNAMEDBUFFERDATAPROC clearNamedBufferData;
    PFNGLCLEARNAMEDBUFFERSUBDATAPROC clearNamedBufferSubData;
    PFNGLCLEARNAMEDFRAMEBUFFERFIPROC clearNamedFramebufferfi;
    PFNGLCLEARNAMEDFRAMEBUFFERFVPROC clearNamedFramebufferfv;
    PFNGLCLEARNAMEDFRAMEBUFFERIVPROC clearNamedFramebufferiv;
    PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC clearNamedFramebufferuiv;
    PFNGLCLIPCONTROLPROC clipControl;
    PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC compressedTextureSubImage1D;
    PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC compressedTextureSubImage2D;
    PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC compressedTextureSubImage3D;
    PFNGLCOPYNAMEDBUFFERSUBDATAPROC copyNamedBufferSubData;
    PFNGLCOPYTEXTURESUBIMAGE1DPROC copyTextureSubImage1D;
    PFNGLCOPYTEXTURESUBIMAGE2DPROC copyTextureSubImage2D;
    PFNGLCOPYTEXTURESUBIMAGE3DPROC copyTextureSubImage3D;
    PFNGLCREATEBUFFERSPROC createBuffers;
    PFNGLCREATEFRAMEBUFFERSPROC createFramebuffers;
    PFNGLCREATEPROGRAMPIPELINESPROC createProgramPipelines;
    PFNGLCREATEQUERIESPROC createQueries;
    PFNGLCREATERENDERBUFFERSPROC createRenderbuffers;
    PFNGLCREATESAMPLERSPROC createSamplers;
    PFNGLCREATETEXTURESPROC createTextures;
    PFNGLCREATETRANSFORMFEEDBACKSPROC createTransformFeedbacks;
    PFNGLCREATEVERTEXARRAYSPROC createVertexArrays;
    PFNGLDISABLEVERTEXARRAYATTRIBPROC disableVertexArrayAttrib;
    PFNGLENABLEVERTEXARRAYATTRIBPROC enableVertexArrayAttrib;
    PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC flushMappedNamedBufferRange;
    PFNGLGENERATETEXTUREMIPMAPPROC generateTextureMipmap;
    PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC getCompressedTextureImage;
    PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC getCompressedTextureSubImage;
    PFNGLGETGRAPHICSRESETSTATUSPROC getGraphicsResetStatus;
    PFNGLGETNAMEDBUFFERPARAMETERI64VPROC getNamedBufferParameteri64v;
    PFNGLGETNAMEDBUFFERPARAMETERIVPROC getNamedBufferParameteriv;
    PFNGLGETNAMEDBUFFERPOINTERVPROC getNamedBufferPointerv;
    PFNGLGETNAMEDBUFFERSUBDATAPROC getNamedBufferSubData;
    PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC getNamedFramebufferAttachmentParameteriv;
    PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC getNamedFramebufferParameteriv;
    PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC getNamedRenderbufferParameteriv;
    PFNGLGETQUERYBUFFEROBJECTI64VPROC getQueryBufferObjecti64v;
    PFNGLGETQUERYBUFFEROBJECTIVPROC getQueryBufferObjectiv;
    PFNGLGETQUERYBUFFEROBJECTUI64VPROC getQueryBufferObjectui64v;
    PFNGLGETQUERYBUFFEROBJECTUIVPROC getQueryBufferObjectuiv;
    PFNGLGETTEXTUREIMAGEPROC getTextureImage;
    PFNGLGETTEXTURELEVELPARAMETERFVPROC getTextureLevelParameterfv;
    PFNGLGETTEXTURELEVELPARAMETERIVPROC getTextureLevelParameteriv;
    PFNGLGETTEXTUREPARAMETERIIVPROC getTextureParameterIiv;
    PFNGLGETTEXTUREPARAMETERIUIVPROC getTextureParameterIuiv;
    PFNGLGETTEXTUREPARAMETERFVPROC getTextureParameterfv;
    PFNGLGETTEXTUREPARAMETERIVPROC getTextureParameteriv;
    PFNGLGETTEXTURESUBIMAGEPROC getTextureSubImage;
    PFNGLGETTRANSFORMFEEDBACKI64_VPROC getTransformFeedbacki64_v;
    PFNGLGETTRANSFORMFEEDBACKI_VPROC getTransformFeedbacki_v;
    PFNGLGETTRANSFORMFEEDBACKIVPROC getTransformFeedbackiv;
    PFNGLGETVERTEXARRAYINDEXED64IVPROC getVertexArrayIndexed64iv;
    PFNGLGETVERTEXARRAYINDEXEDIVPROC getVertexArrayIndexediv;
    PFNGLGETVERTEXARRAYIVPROC getVertexArrayiv;
    PFNGLGETNCOMPRESSEDTEXIMAGEPROC getnCompressedTexImage;
    PFNGLGETNTEXIMAGEPROC getnTexImage;
    PFNGLGETNUNIFORMDVPROC getnUniformdv;
    PFNGLGETNUNIFORMFVPROC getnUniformfv;
    PFNGLGETNUNIFORMIVPROC getnUniformiv;
    PFNGLGETNUNIFORMUIVPROC getnUniformuiv;
    PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC invalidateNamedFramebufferData;
    PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC invalidateNamedFramebufferSubData;
    PFNGLMAPNAMEDBUFFERPROC mapNamedBuffer;
    PFNGLMAPNAMEDBUFFERRANGEPROC mapNamedBufferRange;
    PFNGLMEMORYBARRIERBYREGIONPROC memoryBarrierByRegion;
    PFNGLNAMEDBUFFERDATAPROC namedBufferData;
    PFNGLNAMEDBUFFERSTORAGEPROC namedBufferStorage;
    PFNGLNAMEDBUFFERSUBDATAPROC namedBufferSubData;
    PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC namedFramebufferDrawBuffer;
    PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC namedFramebufferDrawBuffers;
    PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC namedFramebufferParameteri;
    PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC namedFramebufferReadBuffer;
    PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC namedFramebufferRenderbuffer;
    PFNGLNAMEDFRAMEBUFFERTEXTUREPROC namedFramebufferTexture;
    PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC namedFramebufferTextureLayer;
    PFNGLNAMEDRENDERBUFFERSTORAGEPROC namedRenderbufferStorage;
    PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC namedRenderbufferStorageMultisample;
    PFNGLREADNPIXELSPROC readnPixels;
    PFNGLTEXTUREBARRIERPROC textureBarrier;
    PFNGLTEXTUREBUFFERPROC textureBuffer;
    PFNGLTEXTUREBUFFERRANGEPROC textureBufferRange;
    PFNGLTEXTUREPARAMETERIIVPROC textureParameterIiv;
    PFNGLTEXTUREPARAMETERIUIVPROC textureParameterIuiv;
    PFNGLTEXTUREPARAMETERFPROC textureParameterf;
    PFNGLTEXTUREPARAMETERFVPROC textureParameterfv;
    PFNGLTEXTUREPARAMETERIPROC textureParameteri;
    PFNGLTEXTUREPARAMETERIVPROC textureParameteriv;
    PFNGLTEXTURESTORAGE1DPROC textureStorage1D;
    PFNGLTEXTURESTORAGE2DPROC textureStorage2D;
    PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC textureStorage2DMultisample;
    PFNGLTEXTURESTORAGE3DPROC textureStorage3D;
    PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC textureStorage3DMultisample;
    PFNGLTEXTURESUBIMAGE1DPROC textureSubImage1D;
    PFNGLTEXTURESUBIMAGE2DPROC textureSubImage2D;
    PFNGLTEXTURESUBIMAGE3DPROC textureSubImage3D;
    PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC transformFeedbackBufferBase;
    PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC transformFeedbackBufferRange;
    PFNGLUNMAPNAMEDBUFFERPROC unmapNamedBuffer;
    PFNGLVERTEXARRAYATTRIBBINDINGPROC vertexArrayAttribBinding;
    PFNGLVERTEXARRAYATTRIBFORMATPROC vertexArrayAttribFormat;
    PFNGLVERTEXARRAYATTRIBIFORMATPROC vertexArrayAttribIFormat;
    PFNGLVERTEXARRAYATTRIBLFORMATPROC vertexArrayAttribLFormat;
    PFNGLVERTEXARRAYBINDINGDIVISORPROC vertexArrayBindingDivisor;
    PFNGLVERTEXARRAYELEMENTBUFFERPROC vertexArrayElementBuffer;
    PFNGLVERTEXARRAYVERTEXBUFFERPROC vertexArrayVertexBuffer;
    PFNGLVERTEXARRAYVERTEXBUFFERSPROC vertexArrayVertexBuffers;

    // ES 3.2
    PFNGLBLENDBARRIERPROC blendBarrier;
    PFNGLPRIMITIVEBOUNDINGBOXPROC primitiveBoundingBox;

    // GL_OES_EGL_image
    PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC eglImageTargetRenderbufferStorageOES;
    PFNGLEGLIMAGETARGETTEXTURE2DOESPROC eglImageTargetTexture2DOES;

    // GL_EXT_discard_framebuffer
    PFNGLDISCARDFRAMEBUFFEREXTPROC discardFramebuffer;

  private:
    void initializeProcsDesktopGL();
    void initializeProcsGLES();

    virtual void *loadProcAddress(const std::string &function) = 0;
};

}

#endif // LIBANGLE_RENDERER_GL_FUNCTIONSGL_H_
