blob: 8f6577f21db9be4b45ee494825e79bc2ff953b0a [file] [log] [blame]
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_gl_dispatch_table.py using data from gl_bindings_data.json and gl.xml.
//
// Copyright 2019 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.
//
// DispatchTableGL_autogen.h:
// Defines the native binding interface for ANGLE's OpenGL back-end.
#ifndef LIBGLESV2_RENDERER_GL_DISPATCH_TABLE_GL_AUTOGEN_H_
#define LIBGLESV2_RENDERER_GL_DISPATCH_TABLE_GL_AUTOGEN_H_
#include "common/angleutils.h"
#include "libANGLE/renderer/gl/functionsgl_typedefs.h"
#include <set>
namespace gl
{
struct Version;
} // namespace gl
namespace rx
{
class DispatchTableGL : angle::NonCopyable
{
public:
// clang-format off
// 1.0
PFNGLBLENDFUNCPROC blendFunc = nullptr;
PFNGLCLEARPROC clear = nullptr;
PFNGLCLEARCOLORPROC clearColor = nullptr;
PFNGLCLEARDEPTHPROC clearDepth = nullptr;
PFNGLCLEARSTENCILPROC clearStencil = nullptr;
PFNGLCOLORMASKPROC colorMask = nullptr;
PFNGLCULLFACEPROC cullFace = nullptr;
PFNGLDEPTHFUNCPROC depthFunc = nullptr;
PFNGLDEPTHMASKPROC depthMask = nullptr;
PFNGLDEPTHRANGEPROC depthRange = nullptr;
PFNGLDISABLEPROC disable = nullptr;
PFNGLDRAWBUFFERPROC drawBuffer = nullptr;
PFNGLENABLEPROC enable = nullptr;
PFNGLFINISHPROC finish = nullptr;
PFNGLFLUSHPROC flush = nullptr;
PFNGLFRONTFACEPROC frontFace = nullptr;
PFNGLGETBOOLEANVPROC getBooleanv = nullptr;
PFNGLGETDOUBLEVPROC getDoublev = nullptr;
PFNGLGETERRORPROC getError = nullptr;
PFNGLGETFLOATVPROC getFloatv = nullptr;
PFNGLGETINTEGERVPROC getIntegerv = nullptr;
PFNGLGETSTRINGPROC getString = nullptr;
PFNGLGETTEXIMAGEPROC getTexImage = nullptr;
PFNGLGETTEXLEVELPARAMETERFVPROC getTexLevelParameterfv = nullptr;
PFNGLGETTEXLEVELPARAMETERIVPROC getTexLevelParameteriv = nullptr;
PFNGLGETTEXPARAMETERFVPROC getTexParameterfv = nullptr;
PFNGLGETTEXPARAMETERIVPROC getTexParameteriv = nullptr;
PFNGLHINTPROC hint = nullptr;
PFNGLISENABLEDPROC isEnabled = nullptr;
PFNGLLINEWIDTHPROC lineWidth = nullptr;
PFNGLLOGICOPPROC logicOp = nullptr;
PFNGLPIXELSTOREFPROC pixelStoref = nullptr;
PFNGLPIXELSTOREIPROC pixelStorei = nullptr;
PFNGLPOINTSIZEPROC pointSize = nullptr;
PFNGLPOLYGONMODEPROC polygonMode = nullptr;
PFNGLREADBUFFERPROC readBuffer = nullptr;
PFNGLREADPIXELSPROC readPixels = nullptr;
PFNGLSCISSORPROC scissor = nullptr;
PFNGLSTENCILFUNCPROC stencilFunc = nullptr;
PFNGLSTENCILMASKPROC stencilMask = nullptr;
PFNGLSTENCILOPPROC stencilOp = nullptr;
PFNGLTEXIMAGE1DPROC texImage1D = nullptr;
PFNGLTEXIMAGE2DPROC texImage2D = nullptr;
PFNGLTEXPARAMETERFPROC texParameterf = nullptr;
PFNGLTEXPARAMETERFVPROC texParameterfv = nullptr;
PFNGLTEXPARAMETERIPROC texParameteri = nullptr;
PFNGLTEXPARAMETERIVPROC texParameteriv = nullptr;
PFNGLVIEWPORTPROC viewport = nullptr;
// 1.1
PFNGLBINDTEXTUREPROC bindTexture = nullptr;
PFNGLCOPYTEXIMAGE1DPROC copyTexImage1D = nullptr;
PFNGLCOPYTEXIMAGE2DPROC copyTexImage2D = nullptr;
PFNGLCOPYTEXSUBIMAGE1DPROC copyTexSubImage1D = nullptr;
PFNGLCOPYTEXSUBIMAGE2DPROC copyTexSubImage2D = nullptr;
PFNGLDELETETEXTURESPROC deleteTextures = nullptr;
PFNGLDRAWARRAYSPROC drawArrays = nullptr;
PFNGLDRAWELEMENTSPROC drawElements = nullptr;
PFNGLGENTEXTURESPROC genTextures = nullptr;
PFNGLISTEXTUREPROC isTexture = nullptr;
PFNGLPOLYGONOFFSETPROC polygonOffset = nullptr;
PFNGLTEXSUBIMAGE1DPROC texSubImage1D = nullptr;
PFNGLTEXSUBIMAGE2DPROC texSubImage2D = nullptr;
// 1.2
PFNGLBLENDCOLORPROC blendColor = nullptr;
PFNGLBLENDEQUATIONPROC blendEquation = nullptr;
PFNGLCOPYTEXSUBIMAGE3DPROC copyTexSubImage3D = nullptr;
PFNGLDRAWRANGEELEMENTSPROC drawRangeElements = nullptr;
PFNGLTEXIMAGE3DPROC texImage3D = nullptr;
PFNGLTEXSUBIMAGE3DPROC texSubImage3D = nullptr;
// 1.2 Extensions
PFNGLDELETEFENCESNVPROC deleteFencesNV = nullptr;
PFNGLFINISHFENCENVPROC finishFenceNV = nullptr;
PFNGLGENFENCESNVPROC genFencesNV = nullptr;
PFNGLGETFENCEIVNVPROC getFenceivNV = nullptr;
PFNGLISFENCENVPROC isFenceNV = nullptr;
PFNGLSETFENCENVPROC setFenceNV = nullptr;
PFNGLTESTFENCENVPROC testFenceNV = nullptr;
// 1.3
PFNGLACTIVETEXTUREPROC activeTexture = nullptr;
PFNGLCOMPRESSEDTEXIMAGE1DPROC compressedTexImage1D = nullptr;
PFNGLCOMPRESSEDTEXIMAGE2DPROC compressedTexImage2D = nullptr;
PFNGLCOMPRESSEDTEXIMAGE3DPROC compressedTexImage3D = nullptr;
PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC compressedTexSubImage1D = nullptr;
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC compressedTexSubImage2D = nullptr;
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC compressedTexSubImage3D = nullptr;
PFNGLGETCOMPRESSEDTEXIMAGEPROC getCompressedTexImage = nullptr;
PFNGLSAMPLECOVERAGEPROC sampleCoverage = nullptr;
// 1.4
PFNGLBLENDFUNCSEPARATEPROC blendFuncSeparate = nullptr;
PFNGLMULTIDRAWARRAYSPROC multiDrawArrays = nullptr;
PFNGLMULTIDRAWELEMENTSPROC multiDrawElements = nullptr;
PFNGLPOINTPARAMETERFPROC pointParameterf = nullptr;
PFNGLPOINTPARAMETERFVPROC pointParameterfv = nullptr;
PFNGLPOINTPARAMETERIPROC pointParameteri = nullptr;
PFNGLPOINTPARAMETERIVPROC pointParameteriv = nullptr;
// 1.5
PFNGLBEGINQUERYPROC beginQuery = nullptr;
PFNGLBINDBUFFERPROC bindBuffer = nullptr;
PFNGLBUFFERDATAPROC bufferData = nullptr;
PFNGLBUFFERSUBDATAPROC bufferSubData = nullptr;
PFNGLDELETEBUFFERSPROC deleteBuffers = nullptr;
PFNGLDELETEQUERIESPROC deleteQueries = nullptr;
PFNGLENDQUERYPROC endQuery = nullptr;
PFNGLGENBUFFERSPROC genBuffers = nullptr;
PFNGLGENQUERIESPROC genQueries = nullptr;
PFNGLGETBUFFERPARAMETERIVPROC getBufferParameteriv = nullptr;
PFNGLGETBUFFERPOINTERVPROC getBufferPointerv = nullptr;
PFNGLGETBUFFERSUBDATAPROC getBufferSubData = nullptr;
PFNGLGETQUERYOBJECTIVPROC getQueryObjectiv = nullptr;
PFNGLGETQUERYOBJECTUIVPROC getQueryObjectuiv = nullptr;
PFNGLGETQUERYIVPROC getQueryiv = nullptr;
PFNGLISBUFFERPROC isBuffer = nullptr;
PFNGLISQUERYPROC isQuery = nullptr;
PFNGLMAPBUFFERPROC mapBuffer = nullptr;
PFNGLUNMAPBUFFERPROC unmapBuffer = nullptr;
// 2.0
PFNGLATTACHSHADERPROC attachShader = nullptr;
PFNGLBINDATTRIBLOCATIONPROC bindAttribLocation = nullptr;
PFNGLBLENDEQUATIONSEPARATEPROC blendEquationSeparate = nullptr;
PFNGLCOMPILESHADERPROC compileShader = nullptr;
PFNGLCREATEPROGRAMPROC createProgram = nullptr;
PFNGLCREATESHADERPROC createShader = nullptr;
PFNGLDELETEPROGRAMPROC deleteProgram = nullptr;
PFNGLDELETESHADERPROC deleteShader = nullptr;
PFNGLDETACHSHADERPROC detachShader = nullptr;
PFNGLDISABLEVERTEXATTRIBARRAYPROC disableVertexAttribArray = nullptr;
PFNGLDRAWBUFFERSPROC drawBuffers = nullptr;
PFNGLENABLEVERTEXATTRIBARRAYPROC enableVertexAttribArray = nullptr;
PFNGLGETACTIVEATTRIBPROC getActiveAttrib = nullptr;
PFNGLGETACTIVEUNIFORMPROC getActiveUniform = nullptr;
PFNGLGETATTACHEDSHADERSPROC getAttachedShaders = nullptr;
PFNGLGETATTRIBLOCATIONPROC getAttribLocation = nullptr;
PFNGLGETPROGRAMINFOLOGPROC getProgramInfoLog = nullptr;
PFNGLGETPROGRAMIVPROC getProgramiv = nullptr;
PFNGLGETSHADERINFOLOGPROC getShaderInfoLog = nullptr;
PFNGLGETSHADERSOURCEPROC getShaderSource = nullptr;
PFNGLGETSHADERIVPROC getShaderiv = nullptr;
PFNGLGETUNIFORMLOCATIONPROC getUniformLocation = nullptr;
PFNGLGETUNIFORMFVPROC getUniformfv = nullptr;
PFNGLGETUNIFORMIVPROC getUniformiv = nullptr;
PFNGLGETVERTEXATTRIBPOINTERVPROC getVertexAttribPointerv = nullptr;
PFNGLGETVERTEXATTRIBDVPROC getVertexAttribdv = nullptr;
PFNGLGETVERTEXATTRIBFVPROC getVertexAttribfv = nullptr;
PFNGLGETVERTEXATTRIBIVPROC getVertexAttribiv = nullptr;
PFNGLISPROGRAMPROC isProgram = nullptr;
PFNGLISSHADERPROC isShader = nullptr;
PFNGLLINKPROGRAMPROC linkProgram = nullptr;
PFNGLSHADERSOURCEPROC shaderSource = nullptr;
PFNGLSTENCILFUNCSEPARATEPROC stencilFuncSeparate = nullptr;
PFNGLSTENCILMASKSEPARATEPROC stencilMaskSeparate = nullptr;
PFNGLSTENCILOPSEPARATEPROC stencilOpSeparate = nullptr;
PFNGLUNIFORM1FPROC uniform1f = nullptr;
PFNGLUNIFORM1FVPROC uniform1fv = nullptr;
PFNGLUNIFORM1IPROC uniform1i = nullptr;
PFNGLUNIFORM1IVPROC uniform1iv = nullptr;
PFNGLUNIFORM2FPROC uniform2f = nullptr;
PFNGLUNIFORM2FVPROC uniform2fv = nullptr;
PFNGLUNIFORM2IPROC uniform2i = nullptr;
PFNGLUNIFORM2IVPROC uniform2iv = nullptr;
PFNGLUNIFORM3FPROC uniform3f = nullptr;
PFNGLUNIFORM3FVPROC uniform3fv = nullptr;
PFNGLUNIFORM3IPROC uniform3i = nullptr;
PFNGLUNIFORM3IVPROC uniform3iv = nullptr;
PFNGLUNIFORM4FPROC uniform4f = nullptr;
PFNGLUNIFORM4FVPROC uniform4fv = nullptr;
PFNGLUNIFORM4IPROC uniform4i = nullptr;
PFNGLUNIFORM4IVPROC uniform4iv = nullptr;
PFNGLUNIFORMMATRIX2FVPROC uniformMatrix2fv = nullptr;
PFNGLUNIFORMMATRIX3FVPROC uniformMatrix3fv = nullptr;
PFNGLUNIFORMMATRIX4FVPROC uniformMatrix4fv = nullptr;
PFNGLUSEPROGRAMPROC useProgram = nullptr;
PFNGLVALIDATEPROGRAMPROC validateProgram = nullptr;
PFNGLVERTEXATTRIB1DPROC vertexAttrib1d = nullptr;
PFNGLVERTEXATTRIB1DVPROC vertexAttrib1dv = nullptr;
PFNGLVERTEXATTRIB1FPROC vertexAttrib1f = nullptr;
PFNGLVERTEXATTRIB1FVPROC vertexAttrib1fv = nullptr;
PFNGLVERTEXATTRIB1SPROC vertexAttrib1s = nullptr;
PFNGLVERTEXATTRIB1SVPROC vertexAttrib1sv = nullptr;
PFNGLVERTEXATTRIB2DPROC vertexAttrib2d = nullptr;
PFNGLVERTEXATTRIB2DVPROC vertexAttrib2dv = nullptr;
PFNGLVERTEXATTRIB2FPROC vertexAttrib2f = nullptr;
PFNGLVERTEXATTRIB2FVPROC vertexAttrib2fv = nullptr;
PFNGLVERTEXATTRIB2SPROC vertexAttrib2s = nullptr;
PFNGLVERTEXATTRIB2SVPROC vertexAttrib2sv = nullptr;
PFNGLVERTEXATTRIB3DPROC vertexAttrib3d = nullptr;
PFNGLVERTEXATTRIB3DVPROC vertexAttrib3dv = nullptr;
PFNGLVERTEXATTRIB3FPROC vertexAttrib3f = nullptr;
PFNGLVERTEXATTRIB3FVPROC vertexAttrib3fv = nullptr;
PFNGLVERTEXATTRIB3SPROC vertexAttrib3s = nullptr;
PFNGLVERTEXATTRIB3SVPROC vertexAttrib3sv = nullptr;
PFNGLVERTEXATTRIB4NBVPROC vertexAttrib4Nbv = nullptr;
PFNGLVERTEXATTRIB4NIVPROC vertexAttrib4Niv = nullptr;
PFNGLVERTEXATTRIB4NSVPROC vertexAttrib4Nsv = nullptr;
PFNGLVERTEXATTRIB4NUBPROC vertexAttrib4Nub = nullptr;
PFNGLVERTEXATTRIB4NUBVPROC vertexAttrib4Nubv = nullptr;
PFNGLVERTEXATTRIB4NUIVPROC vertexAttrib4Nuiv = nullptr;
PFNGLVERTEXATTRIB4NUSVPROC vertexAttrib4Nusv = nullptr;
PFNGLVERTEXATTRIB4BVPROC vertexAttrib4bv = nullptr;
PFNGLVERTEXATTRIB4DPROC vertexAttrib4d = nullptr;
PFNGLVERTEXATTRIB4DVPROC vertexAttrib4dv = nullptr;
PFNGLVERTEXATTRIB4FPROC vertexAttrib4f = nullptr;
PFNGLVERTEXATTRIB4FVPROC vertexAttrib4fv = nullptr;
PFNGLVERTEXATTRIB4IVPROC vertexAttrib4iv = nullptr;
PFNGLVERTEXATTRIB4SPROC vertexAttrib4s = nullptr;
PFNGLVERTEXATTRIB4SVPROC vertexAttrib4sv = nullptr;
PFNGLVERTEXATTRIB4UBVPROC vertexAttrib4ubv = nullptr;
PFNGLVERTEXATTRIB4UIVPROC vertexAttrib4uiv = nullptr;
PFNGLVERTEXATTRIB4USVPROC vertexAttrib4usv = nullptr;
PFNGLVERTEXATTRIBPOINTERPROC vertexAttribPointer = nullptr;
// 2.1
PFNGLUNIFORMMATRIX2X3FVPROC uniformMatrix2x3fv = nullptr;
PFNGLUNIFORMMATRIX2X4FVPROC uniformMatrix2x4fv = nullptr;
PFNGLUNIFORMMATRIX3X2FVPROC uniformMatrix3x2fv = nullptr;
PFNGLUNIFORMMATRIX3X4FVPROC uniformMatrix3x4fv = nullptr;
PFNGLUNIFORMMATRIX4X2FVPROC uniformMatrix4x2fv = nullptr;
PFNGLUNIFORMMATRIX4X3FVPROC uniformMatrix4x3fv = nullptr;
// 3.0
PFNGLBEGINCONDITIONALRENDERPROC beginConditionalRender = nullptr;
PFNGLBEGINTRANSFORMFEEDBACKPROC beginTransformFeedback = nullptr;
PFNGLBINDBUFFERBASEPROC bindBufferBase = nullptr;
PFNGLBINDBUFFERRANGEPROC bindBufferRange = nullptr;
PFNGLBINDFRAGDATALOCATIONPROC bindFragDataLocation = nullptr;
PFNGLBINDFRAMEBUFFERPROC bindFramebuffer = nullptr;
PFNGLBINDRENDERBUFFERPROC bindRenderbuffer = nullptr;
PFNGLBINDVERTEXARRAYPROC bindVertexArray = nullptr;
PFNGLBLITFRAMEBUFFERPROC blitFramebuffer = nullptr;
PFNGLCHECKFRAMEBUFFERSTATUSPROC checkFramebufferStatus = nullptr;
PFNGLCLAMPCOLORPROC clampColor = nullptr;
PFNGLCLEARBUFFERFIPROC clearBufferfi = nullptr;
PFNGLCLEARBUFFERFVPROC clearBufferfv = nullptr;
PFNGLCLEARBUFFERIVPROC clearBufferiv = nullptr;
PFNGLCLEARBUFFERUIVPROC clearBufferuiv = nullptr;
PFNGLCOLORMASKIPROC colorMaski = nullptr;
PFNGLDELETEFRAMEBUFFERSPROC deleteFramebuffers = nullptr;
PFNGLDELETERENDERBUFFERSPROC deleteRenderbuffers = nullptr;
PFNGLDELETEVERTEXARRAYSPROC deleteVertexArrays = nullptr;
PFNGLDISABLEIPROC disablei = nullptr;
PFNGLENABLEIPROC enablei = nullptr;
PFNGLENDCONDITIONALRENDERPROC endConditionalRender = nullptr;
PFNGLENDTRANSFORMFEEDBACKPROC endTransformFeedback = nullptr;
PFNGLFLUSHMAPPEDBUFFERRANGEPROC flushMappedBufferRange = nullptr;
PFNGLFRAMEBUFFERRENDERBUFFERPROC framebufferRenderbuffer = nullptr;
PFNGLFRAMEBUFFERTEXTURE1DPROC framebufferTexture1D = nullptr;
PFNGLFRAMEBUFFERTEXTURE2DPROC framebufferTexture2D = nullptr;
PFNGLFRAMEBUFFERTEXTURE3DPROC framebufferTexture3D = nullptr;
PFNGLFRAMEBUFFERTEXTURELAYERPROC framebufferTextureLayer = nullptr;
PFNGLGENFRAMEBUFFERSPROC genFramebuffers = nullptr;
PFNGLGENRENDERBUFFERSPROC genRenderbuffers = nullptr;
PFNGLGENVERTEXARRAYSPROC genVertexArrays = nullptr;
PFNGLGENERATEMIPMAPPROC generateMipmap = nullptr;
PFNGLGETBOOLEANI_VPROC getBooleani_v = nullptr;
PFNGLGETFRAGDATALOCATIONPROC getFragDataLocation = nullptr;
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC getFramebufferAttachmentParameteriv = nullptr;
PFNGLGETINTEGERI_VPROC getIntegeri_v = nullptr;
PFNGLGETRENDERBUFFERPARAMETERIVPROC getRenderbufferParameteriv = nullptr;
PFNGLGETSTRINGIPROC getStringi = nullptr;
PFNGLGETTEXPARAMETERIIVPROC getTexParameterIiv = nullptr;
PFNGLGETTEXPARAMETERIUIVPROC getTexParameterIuiv = nullptr;
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC getTransformFeedbackVarying = nullptr;
PFNGLGETUNIFORMUIVPROC getUniformuiv = nullptr;
PFNGLGETVERTEXATTRIBIIVPROC getVertexAttribIiv = nullptr;
PFNGLGETVERTEXATTRIBIUIVPROC getVertexAttribIuiv = nullptr;
PFNGLISENABLEDIPROC isEnabledi = nullptr;
PFNGLISFRAMEBUFFERPROC isFramebuffer = nullptr;
PFNGLISRENDERBUFFERPROC isRenderbuffer = nullptr;
PFNGLISVERTEXARRAYPROC isVertexArray = nullptr;
PFNGLMAPBUFFERRANGEPROC mapBufferRange = nullptr;
PFNGLRENDERBUFFERSTORAGEPROC renderbufferStorage = nullptr;
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC renderbufferStorageMultisample = nullptr;
PFNGLTEXPARAMETERIIVPROC texParameterIiv = nullptr;
PFNGLTEXPARAMETERIUIVPROC texParameterIuiv = nullptr;
PFNGLTRANSFORMFEEDBACKVARYINGSPROC transformFeedbackVaryings = nullptr;
PFNGLUNIFORM1UIPROC uniform1ui = nullptr;
PFNGLUNIFORM1UIVPROC uniform1uiv = nullptr;
PFNGLUNIFORM2UIPROC uniform2ui = nullptr;
PFNGLUNIFORM2UIVPROC uniform2uiv = nullptr;
PFNGLUNIFORM3UIPROC uniform3ui = nullptr;
PFNGLUNIFORM3UIVPROC uniform3uiv = nullptr;
PFNGLUNIFORM4UIPROC uniform4ui = nullptr;
PFNGLUNIFORM4UIVPROC uniform4uiv = nullptr;
PFNGLVERTEXATTRIBI1IPROC vertexAttribI1i = nullptr;
PFNGLVERTEXATTRIBI1IVPROC vertexAttribI1iv = nullptr;
PFNGLVERTEXATTRIBI1UIPROC vertexAttribI1ui = nullptr;
PFNGLVERTEXATTRIBI1UIVPROC vertexAttribI1uiv = nullptr;
PFNGLVERTEXATTRIBI2IPROC vertexAttribI2i = nullptr;
PFNGLVERTEXATTRIBI2IVPROC vertexAttribI2iv = nullptr;
PFNGLVERTEXATTRIBI2UIPROC vertexAttribI2ui = nullptr;
PFNGLVERTEXATTRIBI2UIVPROC vertexAttribI2uiv = nullptr;
PFNGLVERTEXATTRIBI3IPROC vertexAttribI3i = nullptr;
PFNGLVERTEXATTRIBI3IVPROC vertexAttribI3iv = nullptr;
PFNGLVERTEXATTRIBI3UIPROC vertexAttribI3ui = nullptr;
PFNGLVERTEXATTRIBI3UIVPROC vertexAttribI3uiv = nullptr;
PFNGLVERTEXATTRIBI4BVPROC vertexAttribI4bv = nullptr;
PFNGLVERTEXATTRIBI4IPROC vertexAttribI4i = nullptr;
PFNGLVERTEXATTRIBI4IVPROC vertexAttribI4iv = nullptr;
PFNGLVERTEXATTRIBI4SVPROC vertexAttribI4sv = nullptr;
PFNGLVERTEXATTRIBI4UBVPROC vertexAttribI4ubv = nullptr;
PFNGLVERTEXATTRIBI4UIPROC vertexAttribI4ui = nullptr;
PFNGLVERTEXATTRIBI4UIVPROC vertexAttribI4uiv = nullptr;
PFNGLVERTEXATTRIBI4USVPROC vertexAttribI4usv = nullptr;
PFNGLVERTEXATTRIBIPOINTERPROC vertexAttribIPointer = nullptr;
// 3.1
PFNGLCOPYBUFFERSUBDATAPROC copyBufferSubData = nullptr;
PFNGLDRAWARRAYSINSTANCEDPROC drawArraysInstanced = nullptr;
PFNGLDRAWELEMENTSINSTANCEDPROC drawElementsInstanced = nullptr;
PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC getActiveUniformBlockName = nullptr;
PFNGLGETACTIVEUNIFORMBLOCKIVPROC getActiveUniformBlockiv = nullptr;
PFNGLGETACTIVEUNIFORMNAMEPROC getActiveUniformName = nullptr;
PFNGLGETACTIVEUNIFORMSIVPROC getActiveUniformsiv = nullptr;
PFNGLGETUNIFORMBLOCKINDEXPROC getUniformBlockIndex = nullptr;
PFNGLGETUNIFORMINDICESPROC getUniformIndices = nullptr;
PFNGLPRIMITIVERESTARTINDEXPROC primitiveRestartIndex = nullptr;
PFNGLTEXBUFFERPROC texBuffer = nullptr;
PFNGLUNIFORMBLOCKBINDINGPROC uniformBlockBinding = nullptr;
// 3.2
PFNGLCLIENTWAITSYNCPROC clientWaitSync = nullptr;
PFNGLDELETESYNCPROC deleteSync = nullptr;
PFNGLDRAWELEMENTSBASEVERTEXPROC drawElementsBaseVertex = nullptr;
PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC drawElementsInstancedBaseVertex = nullptr;
PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC drawRangeElementsBaseVertex = nullptr;
PFNGLFENCESYNCPROC fenceSync = nullptr;
PFNGLFRAMEBUFFERTEXTUREPROC framebufferTexture = nullptr;
PFNGLGETBUFFERPARAMETERI64VPROC getBufferParameteri64v = nullptr;
PFNGLGETINTEGER64I_VPROC getInteger64i_v = nullptr;
PFNGLGETINTEGER64VPROC getInteger64v = nullptr;
PFNGLGETMULTISAMPLEFVPROC getMultisamplefv = nullptr;
PFNGLGETSYNCIVPROC getSynciv = nullptr;
PFNGLISSYNCPROC isSync = nullptr;
PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC multiDrawElementsBaseVertex = nullptr;
PFNGLPROVOKINGVERTEXPROC provokingVertex = nullptr;
PFNGLSAMPLEMASKIPROC sampleMaski = nullptr;
PFNGLTEXIMAGE2DMULTISAMPLEPROC texImage2DMultisample = nullptr;
PFNGLTEXIMAGE3DMULTISAMPLEPROC texImage3DMultisample = nullptr;
PFNGLWAITSYNCPROC waitSync = nullptr;
// 3.3
PFNGLBINDFRAGDATALOCATIONINDEXEDPROC bindFragDataLocationIndexed = nullptr;
PFNGLBINDSAMPLERPROC bindSampler = nullptr;
PFNGLDELETESAMPLERSPROC deleteSamplers = nullptr;
PFNGLGENSAMPLERSPROC genSamplers = nullptr;
PFNGLGETFRAGDATAINDEXPROC getFragDataIndex = nullptr;
PFNGLGETQUERYOBJECTI64VPROC getQueryObjecti64v = nullptr;
PFNGLGETQUERYOBJECTUI64VPROC getQueryObjectui64v = nullptr;
PFNGLGETSAMPLERPARAMETERIIVPROC getSamplerParameterIiv = nullptr;
PFNGLGETSAMPLERPARAMETERIUIVPROC getSamplerParameterIuiv = nullptr;
PFNGLGETSAMPLERPARAMETERFVPROC getSamplerParameterfv = nullptr;
PFNGLGETSAMPLERPARAMETERIVPROC getSamplerParameteriv = nullptr;
PFNGLISSAMPLERPROC isSampler = nullptr;
PFNGLQUERYCOUNTERPROC queryCounter = nullptr;
PFNGLSAMPLERPARAMETERIIVPROC samplerParameterIiv = nullptr;
PFNGLSAMPLERPARAMETERIUIVPROC samplerParameterIuiv = nullptr;
PFNGLSAMPLERPARAMETERFPROC samplerParameterf = nullptr;
PFNGLSAMPLERPARAMETERFVPROC samplerParameterfv = nullptr;
PFNGLSAMPLERPARAMETERIPROC samplerParameteri = nullptr;
PFNGLSAMPLERPARAMETERIVPROC samplerParameteriv = nullptr;
PFNGLVERTEXATTRIBDIVISORPROC vertexAttribDivisor = nullptr;
PFNGLVERTEXATTRIBP1UIPROC vertexAttribP1ui = nullptr;
PFNGLVERTEXATTRIBP1UIVPROC vertexAttribP1uiv = nullptr;
PFNGLVERTEXATTRIBP2UIPROC vertexAttribP2ui = nullptr;
PFNGLVERTEXATTRIBP2UIVPROC vertexAttribP2uiv = nullptr;
PFNGLVERTEXATTRIBP3UIPROC vertexAttribP3ui = nullptr;
PFNGLVERTEXATTRIBP3UIVPROC vertexAttribP3uiv = nullptr;
PFNGLVERTEXATTRIBP4UIPROC vertexAttribP4ui = nullptr;
PFNGLVERTEXATTRIBP4UIVPROC vertexAttribP4uiv = nullptr;
// 4.0
PFNGLBEGINQUERYINDEXEDPROC beginQueryIndexed = nullptr;
PFNGLBINDTRANSFORMFEEDBACKPROC bindTransformFeedback = nullptr;
PFNGLBLENDEQUATIONSEPARATEIPROC blendEquationSeparatei = nullptr;
PFNGLBLENDEQUATIONIPROC blendEquationi = nullptr;
PFNGLBLENDFUNCSEPARATEIPROC blendFuncSeparatei = nullptr;
PFNGLBLENDFUNCIPROC blendFunci = nullptr;
PFNGLDELETETRANSFORMFEEDBACKSPROC deleteTransformFeedbacks = nullptr;
PFNGLDRAWARRAYSINDIRECTPROC drawArraysIndirect = nullptr;
PFNGLDRAWELEMENTSINDIRECTPROC drawElementsIndirect = nullptr;
PFNGLDRAWTRANSFORMFEEDBACKPROC drawTransformFeedback = nullptr;
PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC drawTransformFeedbackStream = nullptr;
PFNGLENDQUERYINDEXEDPROC endQueryIndexed = nullptr;
PFNGLGENTRANSFORMFEEDBACKSPROC genTransformFeedbacks = nullptr;
PFNGLGETACTIVESUBROUTINENAMEPROC getActiveSubroutineName = nullptr;
PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC getActiveSubroutineUniformName = nullptr;
PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC getActiveSubroutineUniformiv = nullptr;
PFNGLGETPROGRAMSTAGEIVPROC getProgramStageiv = nullptr;
PFNGLGETQUERYINDEXEDIVPROC getQueryIndexediv = nullptr;
PFNGLGETSUBROUTINEINDEXPROC getSubroutineIndex = nullptr;
PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC getSubroutineUniformLocation = nullptr;
PFNGLGETUNIFORMSUBROUTINEUIVPROC getUniformSubroutineuiv = nullptr;
PFNGLGETUNIFORMDVPROC getUniformdv = nullptr;
PFNGLISTRANSFORMFEEDBACKPROC isTransformFeedback = nullptr;
PFNGLMINSAMPLESHADINGPROC minSampleShading = nullptr;
PFNGLPATCHPARAMETERFVPROC patchParameterfv = nullptr;
PFNGLPATCHPARAMETERIPROC patchParameteri = nullptr;
PFNGLPAUSETRANSFORMFEEDBACKPROC pauseTransformFeedback = nullptr;
PFNGLRESUMETRANSFORMFEEDBACKPROC resumeTransformFeedback = nullptr;
PFNGLUNIFORM1DPROC uniform1d = nullptr;
PFNGLUNIFORM1DVPROC uniform1dv = nullptr;
PFNGLUNIFORM2DPROC uniform2d = nullptr;
PFNGLUNIFORM2DVPROC uniform2dv = nullptr;
PFNGLUNIFORM3DPROC uniform3d = nullptr;
PFNGLUNIFORM3DVPROC uniform3dv = nullptr;
PFNGLUNIFORM4DPROC uniform4d = nullptr;
PFNGLUNIFORM4DVPROC uniform4dv = nullptr;
PFNGLUNIFORMMATRIX2DVPROC uniformMatrix2dv = nullptr;
PFNGLUNIFORMMATRIX2X3DVPROC uniformMatrix2x3dv = nullptr;
PFNGLUNIFORMMATRIX2X4DVPROC uniformMatrix2x4dv = nullptr;
PFNGLUNIFORMMATRIX3DVPROC uniformMatrix3dv = nullptr;
PFNGLUNIFORMMATRIX3X2DVPROC uniformMatrix3x2dv = nullptr;
PFNGLUNIFORMMATRIX3X4DVPROC uniformMatrix3x4dv = nullptr;
PFNGLUNIFORMMATRIX4DVPROC uniformMatrix4dv = nullptr;
PFNGLUNIFORMMATRIX4X2DVPROC uniformMatrix4x2dv = nullptr;
PFNGLUNIFORMMATRIX4X3DVPROC uniformMatrix4x3dv = nullptr;
PFNGLUNIFORMSUBROUTINESUIVPROC uniformSubroutinesuiv = nullptr;
// 4.1
PFNGLACTIVESHADERPROGRAMPROC activeShaderProgram = nullptr;
PFNGLBINDPROGRAMPIPELINEPROC bindProgramPipeline = nullptr;
PFNGLCLEARDEPTHFPROC clearDepthf = nullptr;
PFNGLCREATESHADERPROGRAMVPROC createShaderProgramv = nullptr;
PFNGLDELETEPROGRAMPIPELINESPROC deleteProgramPipelines = nullptr;
PFNGLDEPTHRANGEARRAYVPROC depthRangeArrayv = nullptr;
PFNGLDEPTHRANGEINDEXEDPROC depthRangeIndexed = nullptr;
PFNGLDEPTHRANGEFPROC depthRangef = nullptr;
PFNGLGENPROGRAMPIPELINESPROC genProgramPipelines = nullptr;
PFNGLGETDOUBLEI_VPROC getDoublei_v = nullptr;
PFNGLGETFLOATI_VPROC getFloati_v = nullptr;
PFNGLGETPROGRAMBINARYPROC getProgramBinary = nullptr;
PFNGLGETPROGRAMPIPELINEINFOLOGPROC getProgramPipelineInfoLog = nullptr;
PFNGLGETPROGRAMPIPELINEIVPROC getProgramPipelineiv = nullptr;
PFNGLGETSHADERPRECISIONFORMATPROC getShaderPrecisionFormat = nullptr;
PFNGLGETVERTEXATTRIBLDVPROC getVertexAttribLdv = nullptr;
PFNGLISPROGRAMPIPELINEPROC isProgramPipeline = nullptr;
PFNGLPROGRAMBINARYPROC programBinary = nullptr;
PFNGLPROGRAMPARAMETERIPROC programParameteri = nullptr;
PFNGLPROGRAMUNIFORM1DPROC programUniform1d = nullptr;
PFNGLPROGRAMUNIFORM1DVPROC programUniform1dv = nullptr;
PFNGLPROGRAMUNIFORM1FPROC programUniform1f = nullptr;
PFNGLPROGRAMUNIFORM1FVPROC programUniform1fv = nullptr;
PFNGLPROGRAMUNIFORM1IPROC programUniform1i = nullptr;
PFNGLPROGRAMUNIFORM1IVPROC programUniform1iv = nullptr;
PFNGLPROGRAMUNIFORM1UIPROC programUniform1ui = nullptr;
PFNGLPROGRAMUNIFORM1UIVPROC programUniform1uiv = nullptr;
PFNGLPROGRAMUNIFORM2DPROC programUniform2d = nullptr;
PFNGLPROGRAMUNIFORM2DVPROC programUniform2dv = nullptr;
PFNGLPROGRAMUNIFORM2FPROC programUniform2f = nullptr;
PFNGLPROGRAMUNIFORM2FVPROC programUniform2fv = nullptr;
PFNGLPROGRAMUNIFORM2IPROC programUniform2i = nullptr;
PFNGLPROGRAMUNIFORM2IVPROC programUniform2iv = nullptr;
PFNGLPROGRAMUNIFORM2UIPROC programUniform2ui = nullptr;
PFNGLPROGRAMUNIFORM2UIVPROC programUniform2uiv = nullptr;
PFNGLPROGRAMUNIFORM3DPROC programUniform3d = nullptr;
PFNGLPROGRAMUNIFORM3DVPROC programUniform3dv = nullptr;
PFNGLPROGRAMUNIFORM3FPROC programUniform3f = nullptr;
PFNGLPROGRAMUNIFORM3FVPROC programUniform3fv = nullptr;
PFNGLPROGRAMUNIFORM3IPROC programUniform3i = nullptr;
PFNGLPROGRAMUNIFORM3IVPROC programUniform3iv = nullptr;
PFNGLPROGRAMUNIFORM3UIPROC programUniform3ui = nullptr;
PFNGLPROGRAMUNIFORM3UIVPROC programUniform3uiv = nullptr;
PFNGLPROGRAMUNIFORM4DPROC programUniform4d = nullptr;
PFNGLPROGRAMUNIFORM4DVPROC programUniform4dv = nullptr;
PFNGLPROGRAMUNIFORM4FPROC programUniform4f = nullptr;
PFNGLPROGRAMUNIFORM4FVPROC programUniform4fv = nullptr;
PFNGLPROGRAMUNIFORM4IPROC programUniform4i = nullptr;
PFNGLPROGRAMUNIFORM4IVPROC programUniform4iv = nullptr;
PFNGLPROGRAMUNIFORM4UIPROC programUniform4ui = nullptr;
PFNGLPROGRAMUNIFORM4UIVPROC programUniform4uiv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX2DVPROC programUniformMatrix2dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX2FVPROC programUniformMatrix2fv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC programUniformMatrix2x3dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC programUniformMatrix2x3fv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC programUniformMatrix2x4dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC programUniformMatrix2x4fv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX3DVPROC programUniformMatrix3dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX3FVPROC programUniformMatrix3fv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC programUniformMatrix3x2dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC programUniformMatrix3x2fv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC programUniformMatrix3x4dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC programUniformMatrix3x4fv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX4DVPROC programUniformMatrix4dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX4FVPROC programUniformMatrix4fv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC programUniformMatrix4x2dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC programUniformMatrix4x2fv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC programUniformMatrix4x3dv = nullptr;
PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC programUniformMatrix4x3fv = nullptr;
PFNGLRELEASESHADERCOMPILERPROC releaseShaderCompiler = nullptr;
PFNGLSCISSORARRAYVPROC scissorArrayv = nullptr;
PFNGLSCISSORINDEXEDPROC scissorIndexed = nullptr;
PFNGLSCISSORINDEXEDVPROC scissorIndexedv = nullptr;
PFNGLSHADERBINARYPROC shaderBinary = nullptr;
PFNGLUSEPROGRAMSTAGESPROC useProgramStages = nullptr;
PFNGLVALIDATEPROGRAMPIPELINEPROC validateProgramPipeline = nullptr;
PFNGLVERTEXATTRIBL1DPROC vertexAttribL1d = nullptr;
PFNGLVERTEXATTRIBL1DVPROC vertexAttribL1dv = nullptr;
PFNGLVERTEXATTRIBL2DPROC vertexAttribL2d = nullptr;
PFNGLVERTEXATTRIBL2DVPROC vertexAttribL2dv = nullptr;
PFNGLVERTEXATTRIBL3DPROC vertexAttribL3d = nullptr;
PFNGLVERTEXATTRIBL3DVPROC vertexAttribL3dv = nullptr;
PFNGLVERTEXATTRIBL4DPROC vertexAttribL4d = nullptr;
PFNGLVERTEXATTRIBL4DVPROC vertexAttribL4dv = nullptr;
PFNGLVERTEXATTRIBLPOINTERPROC vertexAttribLPointer = nullptr;
PFNGLVIEWPORTARRAYVPROC viewportArrayv = nullptr;
PFNGLVIEWPORTINDEXEDFPROC viewportIndexedf = nullptr;
PFNGLVIEWPORTINDEXEDFVPROC viewportIndexedfv = nullptr;
// 4.2
PFNGLBINDIMAGETEXTUREPROC bindImageTexture = nullptr;
PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC drawArraysInstancedBaseInstance = nullptr;
PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC drawElementsInstancedBaseInstance = nullptr;
PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC drawElementsInstancedBaseVertexBaseInstance = nullptr;
PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC drawTransformFeedbackInstanced = nullptr;
PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC drawTransformFeedbackStreamInstanced = nullptr;
PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC getActiveAtomicCounterBufferiv = nullptr;
PFNGLGETINTERNALFORMATIVPROC getInternalformativ = nullptr;
PFNGLMEMORYBARRIERPROC memoryBarrier = nullptr;
PFNGLTEXSTORAGE1DPROC texStorage1D = nullptr;
PFNGLTEXSTORAGE2DPROC texStorage2D = nullptr;
PFNGLTEXSTORAGE3DPROC texStorage3D = nullptr;
// 4.3
PFNGLBINDVERTEXBUFFERPROC bindVertexBuffer = nullptr;
PFNGLCLEARBUFFERDATAPROC clearBufferData = nullptr;
PFNGLCLEARBUFFERSUBDATAPROC clearBufferSubData = nullptr;
PFNGLCOPYIMAGESUBDATAPROC copyImageSubData = nullptr;
PFNGLCOVERAGEMODULATIONNVPROC coverageModulationNV = nullptr;
PFNGLDEBUGMESSAGECALLBACKPROC debugMessageCallback = nullptr;
PFNGLDEBUGMESSAGECONTROLPROC debugMessageControl = nullptr;
PFNGLDEBUGMESSAGEINSERTPROC debugMessageInsert = nullptr;
PFNGLDISPATCHCOMPUTEPROC dispatchCompute = nullptr;
PFNGLDISPATCHCOMPUTEINDIRECTPROC dispatchComputeIndirect = nullptr;
PFNGLFRAMEBUFFERPARAMETERIPROC framebufferParameteri = nullptr;
PFNGLGETDEBUGMESSAGELOGPROC getDebugMessageLog = nullptr;
PFNGLGETFRAMEBUFFERPARAMETERIVPROC getFramebufferParameteriv = nullptr;
PFNGLGETINTERNALFORMATI64VPROC getInternalformati64v = nullptr;
PFNGLGETOBJECTLABELPROC getObjectLabel = nullptr;
PFNGLGETOBJECTPTRLABELPROC getObjectPtrLabel = nullptr;
PFNGLGETPOINTERVPROC getPointerv = nullptr;
PFNGLGETPROGRAMINTERFACEIVPROC getProgramInterfaceiv = nullptr;
PFNGLGETPROGRAMRESOURCEINDEXPROC getProgramResourceIndex = nullptr;
PFNGLGETPROGRAMRESOURCELOCATIONPROC getProgramResourceLocation = nullptr;
PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC getProgramResourceLocationIndex = nullptr;
PFNGLGETPROGRAMRESOURCENAMEPROC getProgramResourceName = nullptr;
PFNGLGETPROGRAMRESOURCEIVPROC getProgramResourceiv = nullptr;
PFNGLINVALIDATEBUFFERDATAPROC invalidateBufferData = nullptr;
PFNGLINVALIDATEBUFFERSUBDATAPROC invalidateBufferSubData = nullptr;
PFNGLINVALIDATEFRAMEBUFFERPROC invalidateFramebuffer = nullptr;
PFNGLINVALIDATESUBFRAMEBUFFERPROC invalidateSubFramebuffer = nullptr;
PFNGLINVALIDATETEXIMAGEPROC invalidateTexImage = nullptr;
PFNGLINVALIDATETEXSUBIMAGEPROC invalidateTexSubImage = nullptr;
PFNGLMULTIDRAWARRAYSINDIRECTPROC multiDrawArraysIndirect = nullptr;
PFNGLMULTIDRAWELEMENTSINDIRECTPROC multiDrawElementsIndirect = nullptr;
PFNGLOBJECTLABELPROC objectLabel = nullptr;
PFNGLOBJECTPTRLABELPROC objectPtrLabel = nullptr;
PFNGLPOPDEBUGGROUPPROC popDebugGroup = nullptr;
PFNGLPUSHDEBUGGROUPPROC pushDebugGroup = nullptr;
PFNGLSHADERSTORAGEBLOCKBINDINGPROC shaderStorageBlockBinding = nullptr;
PFNGLTEXBUFFERRANGEPROC texBufferRange = nullptr;
PFNGLTEXSTORAGE2DMULTISAMPLEPROC texStorage2DMultisample = nullptr;
PFNGLTEXSTORAGE3DMULTISAMPLEPROC texStorage3DMultisample = nullptr;
PFNGLTEXTUREVIEWPROC textureView = nullptr;
PFNGLVERTEXATTRIBBINDINGPROC vertexAttribBinding = nullptr;
PFNGLVERTEXATTRIBFORMATPROC vertexAttribFormat = nullptr;
PFNGLVERTEXATTRIBIFORMATPROC vertexAttribIFormat = nullptr;
PFNGLVERTEXATTRIBLFORMATPROC vertexAttribLFormat = nullptr;
PFNGLVERTEXBINDINGDIVISORPROC vertexBindingDivisor = nullptr;
// 4.4
PFNGLBINDBUFFERSBASEPROC bindBuffersBase = nullptr;
PFNGLBINDBUFFERSRANGEPROC bindBuffersRange = nullptr;
PFNGLBINDIMAGETEXTURESPROC bindImageTextures = nullptr;
PFNGLBINDSAMPLERSPROC bindSamplers = nullptr;
PFNGLBINDTEXTURESPROC bindTextures = nullptr;
PFNGLBINDVERTEXBUFFERSPROC bindVertexBuffers = nullptr;
PFNGLBUFFERSTORAGEPROC bufferStorage = nullptr;
PFNGLCLEARTEXIMAGEPROC clearTexImage = nullptr;
PFNGLCLEARTEXSUBIMAGEPROC clearTexSubImage = nullptr;
// 4.5
PFNGLBINDTEXTUREUNITPROC bindTextureUnit = nullptr;
PFNGLBLITNAMEDFRAMEBUFFERPROC blitNamedFramebuffer = nullptr;
PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC checkNamedFramebufferStatus = nullptr;
PFNGLCLEARNAMEDBUFFERDATAPROC clearNamedBufferData = nullptr;
PFNGLCLEARNAMEDBUFFERSUBDATAPROC clearNamedBufferSubData = nullptr;
PFNGLCLEARNAMEDFRAMEBUFFERFIPROC clearNamedFramebufferfi = nullptr;
PFNGLCLEARNAMEDFRAMEBUFFERFVPROC clearNamedFramebufferfv = nullptr;
PFNGLCLEARNAMEDFRAMEBUFFERIVPROC clearNamedFramebufferiv = nullptr;
PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC clearNamedFramebufferuiv = nullptr;
PFNGLCLIPCONTROLPROC clipControl = nullptr;
PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC compressedTextureSubImage1D = nullptr;
PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC compressedTextureSubImage2D = nullptr;
PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC compressedTextureSubImage3D = nullptr;
PFNGLCOPYNAMEDBUFFERSUBDATAPROC copyNamedBufferSubData = nullptr;
PFNGLCOPYTEXTURESUBIMAGE1DPROC copyTextureSubImage1D = nullptr;
PFNGLCOPYTEXTURESUBIMAGE2DPROC copyTextureSubImage2D = nullptr;
PFNGLCOPYTEXTURESUBIMAGE3DPROC copyTextureSubImage3D = nullptr;
PFNGLCREATEBUFFERSPROC createBuffers = nullptr;
PFNGLCREATEFRAMEBUFFERSPROC createFramebuffers = nullptr;
PFNGLCREATEPROGRAMPIPELINESPROC createProgramPipelines = nullptr;
PFNGLCREATEQUERIESPROC createQueries = nullptr;
PFNGLCREATERENDERBUFFERSPROC createRenderbuffers = nullptr;
PFNGLCREATESAMPLERSPROC createSamplers = nullptr;
PFNGLCREATETEXTURESPROC createTextures = nullptr;
PFNGLCREATETRANSFORMFEEDBACKSPROC createTransformFeedbacks = nullptr;
PFNGLCREATEVERTEXARRAYSPROC createVertexArrays = nullptr;
PFNGLDISABLEVERTEXARRAYATTRIBPROC disableVertexArrayAttrib = nullptr;
PFNGLENABLEVERTEXARRAYATTRIBPROC enableVertexArrayAttrib = nullptr;
PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC flushMappedNamedBufferRange = nullptr;
PFNGLGENERATETEXTUREMIPMAPPROC generateTextureMipmap = nullptr;
PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC getCompressedTextureImage = nullptr;
PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC getCompressedTextureSubImage = nullptr;
PFNGLGETGRAPHICSRESETSTATUSPROC getGraphicsResetStatus = nullptr;
PFNGLGETNAMEDBUFFERPARAMETERI64VPROC getNamedBufferParameteri64v = nullptr;
PFNGLGETNAMEDBUFFERPARAMETERIVPROC getNamedBufferParameteriv = nullptr;
PFNGLGETNAMEDBUFFERPOINTERVPROC getNamedBufferPointerv = nullptr;
PFNGLGETNAMEDBUFFERSUBDATAPROC getNamedBufferSubData = nullptr;
PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC getNamedFramebufferAttachmentParameteriv = nullptr;
PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC getNamedFramebufferParameteriv = nullptr;
PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC getNamedRenderbufferParameteriv = nullptr;
PFNGLGETQUERYBUFFEROBJECTI64VPROC getQueryBufferObjecti64v = nullptr;
PFNGLGETQUERYBUFFEROBJECTIVPROC getQueryBufferObjectiv = nullptr;
PFNGLGETQUERYBUFFEROBJECTUI64VPROC getQueryBufferObjectui64v = nullptr;
PFNGLGETQUERYBUFFEROBJECTUIVPROC getQueryBufferObjectuiv = nullptr;
PFNGLGETTEXTUREIMAGEPROC getTextureImage = nullptr;
PFNGLGETTEXTURELEVELPARAMETERFVPROC getTextureLevelParameterfv = nullptr;
PFNGLGETTEXTURELEVELPARAMETERIVPROC getTextureLevelParameteriv = nullptr;
PFNGLGETTEXTUREPARAMETERIIVPROC getTextureParameterIiv = nullptr;
PFNGLGETTEXTUREPARAMETERIUIVPROC getTextureParameterIuiv = nullptr;
PFNGLGETTEXTUREPARAMETERFVPROC getTextureParameterfv = nullptr;
PFNGLGETTEXTUREPARAMETERIVPROC getTextureParameteriv = nullptr;
PFNGLGETTEXTURESUBIMAGEPROC getTextureSubImage = nullptr;
PFNGLGETTRANSFORMFEEDBACKI64_VPROC getTransformFeedbacki64_v = nullptr;
PFNGLGETTRANSFORMFEEDBACKI_VPROC getTransformFeedbacki_v = nullptr;
PFNGLGETTRANSFORMFEEDBACKIVPROC getTransformFeedbackiv = nullptr;
PFNGLGETVERTEXARRAYINDEXED64IVPROC getVertexArrayIndexed64iv = nullptr;
PFNGLGETVERTEXARRAYINDEXEDIVPROC getVertexArrayIndexediv = nullptr;
PFNGLGETVERTEXARRAYIVPROC getVertexArrayiv = nullptr;
PFNGLGETNCOMPRESSEDTEXIMAGEPROC getnCompressedTexImage = nullptr;
PFNGLGETNTEXIMAGEPROC getnTexImage = nullptr;
PFNGLGETNUNIFORMDVPROC getnUniformdv = nullptr;
PFNGLGETNUNIFORMFVPROC getnUniformfv = nullptr;
PFNGLGETNUNIFORMIVPROC getnUniformiv = nullptr;
PFNGLGETNUNIFORMUIVPROC getnUniformuiv = nullptr;
PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC invalidateNamedFramebufferData = nullptr;
PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC invalidateNamedFramebufferSubData = nullptr;
PFNGLMAPNAMEDBUFFERPROC mapNamedBuffer = nullptr;
PFNGLMAPNAMEDBUFFERRANGEPROC mapNamedBufferRange = nullptr;
PFNGLMEMORYBARRIERBYREGIONPROC memoryBarrierByRegion = nullptr;
PFNGLNAMEDBUFFERDATAPROC namedBufferData = nullptr;
PFNGLNAMEDBUFFERSTORAGEPROC namedBufferStorage = nullptr;
PFNGLNAMEDBUFFERSUBDATAPROC namedBufferSubData = nullptr;
PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC namedFramebufferDrawBuffer = nullptr;
PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC namedFramebufferDrawBuffers = nullptr;
PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC namedFramebufferParameteri = nullptr;
PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC namedFramebufferReadBuffer = nullptr;
PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC namedFramebufferRenderbuffer = nullptr;
PFNGLNAMEDFRAMEBUFFERTEXTUREPROC namedFramebufferTexture = nullptr;
PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC namedFramebufferTextureLayer = nullptr;
PFNGLNAMEDRENDERBUFFERSTORAGEPROC namedRenderbufferStorage = nullptr;
PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC namedRenderbufferStorageMultisample = nullptr;
PFNGLREADNPIXELSPROC readnPixels = nullptr;
PFNGLTEXTUREBARRIERPROC textureBarrier = nullptr;
PFNGLTEXTUREBUFFERPROC textureBuffer = nullptr;
PFNGLTEXTUREBUFFERRANGEPROC textureBufferRange = nullptr;
PFNGLTEXTUREPARAMETERIIVPROC textureParameterIiv = nullptr;
PFNGLTEXTUREPARAMETERIUIVPROC textureParameterIuiv = nullptr;
PFNGLTEXTUREPARAMETERFPROC textureParameterf = nullptr;
PFNGLTEXTUREPARAMETERFVPROC textureParameterfv = nullptr;
PFNGLTEXTUREPARAMETERIPROC textureParameteri = nullptr;
PFNGLTEXTUREPARAMETERIVPROC textureParameteriv = nullptr;
PFNGLTEXTURESTORAGE1DPROC textureStorage1D = nullptr;
PFNGLTEXTURESTORAGE2DPROC textureStorage2D = nullptr;
PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC textureStorage2DMultisample = nullptr;
PFNGLTEXTURESTORAGE3DPROC textureStorage3D = nullptr;
PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC textureStorage3DMultisample = nullptr;
PFNGLTEXTURESUBIMAGE1DPROC textureSubImage1D = nullptr;
PFNGLTEXTURESUBIMAGE2DPROC textureSubImage2D = nullptr;
PFNGLTEXTURESUBIMAGE3DPROC textureSubImage3D = nullptr;
PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC transformFeedbackBufferBase = nullptr;
PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC transformFeedbackBufferRange = nullptr;
PFNGLUNMAPNAMEDBUFFERPROC unmapNamedBuffer = nullptr;
PFNGLVERTEXARRAYATTRIBBINDINGPROC vertexArrayAttribBinding = nullptr;
PFNGLVERTEXARRAYATTRIBFORMATPROC vertexArrayAttribFormat = nullptr;
PFNGLVERTEXARRAYATTRIBIFORMATPROC vertexArrayAttribIFormat = nullptr;
PFNGLVERTEXARRAYATTRIBLFORMATPROC vertexArrayAttribLFormat = nullptr;
PFNGLVERTEXARRAYBINDINGDIVISORPROC vertexArrayBindingDivisor = nullptr;
PFNGLVERTEXARRAYELEMENTBUFFERPROC vertexArrayElementBuffer = nullptr;
PFNGLVERTEXARRAYVERTEXBUFFERPROC vertexArrayVertexBuffer = nullptr;
PFNGLVERTEXARRAYVERTEXBUFFERSPROC vertexArrayVertexBuffers = nullptr;
// ES 3.2
PFNGLBLENDBARRIERPROC blendBarrier = nullptr;
PFNGLPRIMITIVEBOUNDINGBOXPROC primitiveBoundingBox = nullptr;
// GL_ARB_parallel_shader_compile
PFNGLMAXSHADERCOMPILERTHREADSARBPROC maxShaderCompilerThreadsARB = nullptr;
// GL_EXT_debug_marker
PFNGLINSERTEVENTMARKEREXTPROC insertEventMarkerEXT = nullptr;
PFNGLPOPGROUPMARKEREXTPROC popGroupMarkerEXT = nullptr;
PFNGLPUSHGROUPMARKEREXTPROC pushGroupMarkerEXT = nullptr;
// GL_EXT_discard_framebuffer
PFNGLDISCARDFRAMEBUFFEREXTPROC discardFramebufferEXT = nullptr;
// GL_EXT_memory_object
PFNGLBUFFERSTORAGEMEMEXTPROC bufferStorageMemEXT = nullptr;
PFNGLCREATEMEMORYOBJECTSEXTPROC createMemoryObjectsEXT = nullptr;
PFNGLDELETEMEMORYOBJECTSEXTPROC deleteMemoryObjectsEXT = nullptr;
PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC getMemoryObjectParameterivEXT = nullptr;
PFNGLGETUNSIGNEDBYTEI_VEXTPROC getUnsignedBytei_vEXT = nullptr;
PFNGLGETUNSIGNEDBYTEVEXTPROC getUnsignedBytevEXT = nullptr;
PFNGLISMEMORYOBJECTEXTPROC isMemoryObjectEXT = nullptr;
PFNGLMEMORYOBJECTPARAMETERIVEXTPROC memoryObjectParameterivEXT = nullptr;
PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC namedBufferStorageMemEXT = nullptr;
PFNGLTEXSTORAGEMEM2DEXTPROC texStorageMem2DEXT = nullptr;
PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC texStorageMem2DMultisampleEXT = nullptr;
PFNGLTEXSTORAGEMEM3DEXTPROC texStorageMem3DEXT = nullptr;
PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC texStorageMem3DMultisampleEXT = nullptr;
PFNGLTEXTURESTORAGEMEM2DEXTPROC textureStorageMem2DEXT = nullptr;
PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC textureStorageMem2DMultisampleEXT = nullptr;
PFNGLTEXTURESTORAGEMEM3DEXTPROC textureStorageMem3DEXT = nullptr;
PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC textureStorageMem3DMultisampleEXT = nullptr;
// GL_EXT_memory_object_fd
PFNGLIMPORTMEMORYFDEXTPROC importMemoryFdEXT = nullptr;
// GL_EXT_memory_object_win32
PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC importMemoryWin32HandleEXT = nullptr;
PFNGLIMPORTMEMORYWIN32NAMEEXTPROC importMemoryWin32NameEXT = nullptr;
// GL_EXT_semaphore
PFNGLDELETESEMAPHORESEXTPROC deleteSemaphoresEXT = nullptr;
PFNGLGENSEMAPHORESEXTPROC genSemaphoresEXT = nullptr;
PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC getSemaphoreParameterui64vEXT = nullptr;
PFNGLISSEMAPHOREEXTPROC isSemaphoreEXT = nullptr;
PFNGLSEMAPHOREPARAMETERUI64VEXTPROC semaphoreParameterui64vEXT = nullptr;
PFNGLSIGNALSEMAPHOREEXTPROC signalSemaphoreEXT = nullptr;
PFNGLWAITSEMAPHOREEXTPROC waitSemaphoreEXT = nullptr;
// GL_EXT_semaphore_fd
PFNGLIMPORTSEMAPHOREFDEXTPROC importSemaphoreFdEXT = nullptr;
// GL_EXT_semaphore_win32
PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC importSemaphoreWin32HandleEXT = nullptr;
PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC importSemaphoreWin32NameEXT = nullptr;
// GL_KHR_parallel_shader_compile
PFNGLMAXSHADERCOMPILERTHREADSKHRPROC maxShaderCompilerThreadsKHR = nullptr;
// GL_NV_internalformat_sample_query
PFNGLGETINTERNALFORMATSAMPLEIVNVPROC getInternalformatSampleivNV = nullptr;
// GL_OES_EGL_image
PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC eGLImageTargetRenderbufferStorageOES = nullptr;
PFNGLEGLIMAGETARGETTEXTURE2DOESPROC eGLImageTargetTexture2DOES = nullptr;
// GL_OVR_multiview2
PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC framebufferTextureMultiviewOVR = nullptr;
// NV_path_rendering (originally written against 3.2 compatibility profile)
PFNGLCOVERFILLPATHINSTANCEDNVPROC coverFillPathInstancedNV = nullptr;
PFNGLCOVERFILLPATHNVPROC coverFillPathNV = nullptr;
PFNGLCOVERSTROKEPATHINSTANCEDNVPROC coverStrokePathInstancedNV = nullptr;
PFNGLCOVERSTROKEPATHNVPROC coverStrokePathNV = nullptr;
PFNGLDELETEPATHSNVPROC deletePathsNV = nullptr;
PFNGLGENPATHSNVPROC genPathsNV = nullptr;
PFNGLGETPATHPARAMETERFVNVPROC getPathParameterfvNV = nullptr;
PFNGLGETPATHPARAMETERIVNVPROC getPathParameterivNV = nullptr;
PFNGLISPATHNVPROC isPathNV = nullptr;
PFNGLMATRIXLOADFEXTPROC matrixLoadfEXT = nullptr;
PFNGLPATHCOMMANDSNVPROC pathCommandsNV = nullptr;
PFNGLPATHPARAMETERFNVPROC pathParameterfNV = nullptr;
PFNGLPATHPARAMETERINVPROC pathParameteriNV = nullptr;
PFNGLPATHSTENCILFUNCNVPROC pathStencilFuncNV = nullptr;
PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC programPathFragmentInputGenNV = nullptr;
PFNGLSTENCILFILLPATHINSTANCEDNVPROC stencilFillPathInstancedNV = nullptr;
PFNGLSTENCILFILLPATHNVPROC stencilFillPathNV = nullptr;
PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC stencilStrokePathInstancedNV = nullptr;
PFNGLSTENCILSTROKEPATHNVPROC stencilStrokePathNV = nullptr;
PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC stencilThenCoverFillPathInstancedNV = nullptr;
PFNGLSTENCILTHENCOVERFILLPATHNVPROC stencilThenCoverFillPathNV = nullptr;
PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC stencilThenCoverStrokePathInstancedNV = nullptr;
PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC stencilThenCoverStrokePathNV = nullptr;
// clang-format on
DispatchTableGL();
virtual ~DispatchTableGL() = default;
protected:
virtual void *loadProcAddress(const std::string &function) const = 0;
void initProcsDesktopGL(const gl::Version &version, const std::set<std::string> &extensions);
void initProcsGLES(const gl::Version &version, const std::set<std::string> &extensions);
void initProcsSharedExtensions(const std::set<std::string> &extensions);
#if defined(ANGLE_ENABLE_OPENGL_NULL)
void initProcsDesktopGLNULL(const gl::Version &version,
const std::set<std::string> &extensions);
void initProcsGLESNULL(const gl::Version &version, const std::set<std::string> &extensions);
void initProcsSharedExtensionsNULL(const std::set<std::string> &extensions);
#endif // defined(ANGLE_ENABLE_OPENGL_NULL)
};
} // namespace rx
#endif // LIBGLESV2_RENDERER_GL_DISPATCH_TABLE_GL_AUTOGEN_H_